The rules this pack checks

One page for every rule that mirrors a clause in ZATCA's published validation rules: the message the clause prints, the guard that actually runs, what it means in plain language, and what to change in your e-invoicing mapping. Each page has a worked example: the lines that trip the rule next to a document that passed, ready to download and check.

Mutabiq's 97 rules that mirror a published clause check 96 of the 242 rule codes in ZATCA's SDK 3.4.8 rule files (Schematron dated 2025-12); the other rule codes are not checked. A rule code mirrored by more than one rule is counted once.

97 of Mutabiq's 110 registered rules mirror a published clause and have a page below. The other 13 check something no published clause tests — the QR payload, the previous invoice hash, the XML schema — so there is no clause for a page to quote; 10 of them have a page below all the same, which says what the check is based on instead.

This is pre-validation against published ZATCA requirements, not an approval by the authority.

Every rule code Mutabiq does not check, and how the codes were counted

How the rules are tested: the test documents, the SDK's verdicts, and the checks that hold them

Rule pack version2.2.0

KSA - business rules (BR-KSA)

36 rules

Reader notes

5 rules

Five ids a report can print that mirror no published clause: the parser's, the archive reader's and the schema engine's. Each page says what the id means and what Mutabiq reports under it.