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
Business rules - integrity constraints (BR)
2 rules
KSA - business rules (BR-KSA)
36 rules
BR-CL-01, BR-KSA-05 · MTB-BR-CL-01Invoice type code is not an invoice code in UNTDID 1001BR-CL-KSA-14, BR-KSA-27 · MTB-BR-CL-KSA-14QR code is longer than 1000 charactersBR-KSA-04 · MTB-BR-KSA-04A date on the invoice is in the futureBR-KSA-05 · MTB-BR-KSA-05Invoice type code is not one ZATCA acceptsBR-KSA-07 · MTB-BR-KSA-07An export invoice is marked as self-billedBR-KSA-08 · MTB-BR-KSA-08Seller identification carries no scheme idBR-KSA-09 · MTB-BR-KSA-09Seller address has no street nameBR-KSA-14 · MTB-BR-KSA-14Buyer identification carries no scheme idBR-KSA-16 · MTB-BR-KSA-16Payment means code is not one ZATCA acceptsBR-KSA-17 · MTB-BR-KSA-17Credit or debit note gives no reason for being issuedBR-KSA-18 · MTB-BR-KSA-18VAT category code is not S, Z, E or OBR-KSA-25 · MTB-BR-KSA-25Simplified private education or healthcare invoice does not name the buyerBR-KSA-26, BR-KSA-61 · MTB-BR-KSA-26Previous invoice hash attachment carries no payload elementBR-KSA-27, BR-CL-KSA-14 · MTB-BR-KSA-27Simplified invoice carries no QR code referenceBR-KSA-29, BR-KSA-28, BR-KSA-60, BR-KSA-27, BR-KSA-30 · MTB-BR-KSA-29Signature block does not carry the required signature idBR-KSA-30, BR-KSA-28, BR-KSA-60, BR-KSA-27, BR-KSA-29 · MTB-BR-KSA-30Signature block does not carry the required signature methodBR-KSA-31, BR-KSA-06 · MTB-BR-KSA-31Third party flag is not 0 or 1 on a simplified invoiceBR-KSA-33 · MTB-BR-KSA-33Invoice counter value is missingBR-KSA-34 · MTB-BR-KSA-34Invoice counter value contains something other than digitsBR-KSA-39 · MTB-BR-KSA-39Seller carries no VAT registrationBR-KSA-40 · MTB-BR-KSA-40Seller VAT registration number is emptyBR-KSA-42 · MTB-BR-KSA-42Standard invoice does not name the buyerBR-KSA-44 · MTB-BR-KSA-44Buyer VAT registration number is not 15 digitsBR-KSA-49 · MTB-BR-KSA-49Private education or healthcare supply without the buyer's national IDBR-KSA-51 · MTB-BR-KSA-51Line amount with VAT is missing from an invoice line on this simplified invoiceBR-KSA-52 · MTB-BR-KSA-52An invoice line carries no VAT amountBR-KSA-53 · MTB-BR-KSA-53Tax invoice line has no line amount with VATBR-KSA-56 · MTB-BR-KSA-56Credit or debit note does not reference the original invoiceBR-KSA-60, BR-KSA-28 · MTB-BR-KSA-60Simplified invoice carries no signature blockBR-KSA-61, BR-KSA-26 · MTB-BR-KSA-61Invoice carries no previous invoice hashBR-KSA-63 · MTB-BR-KSA-63Saudi buyer's address has no street nameBR-KSA-68 · MTB-BR-KSA-68Tax currency code is missingBR-KSA-70 · MTB-BR-KSA-70Issue time is missingBR-KSA-71 · MTB-BR-KSA-71Simplified summary invoice does not name the buyerBR-KSA-27 · MTB-QR-00QR code payload is not base64BR-KSA-06 · MTB-STRUCT-01Invoice transaction code is not written on the invoice type element
Business rules - Code lists (BR-CL)
3 rules
Business rules - conditions (BR-CO)
9 rules
BR-CO-10 · MTB-BR-CO-10Sum of line amounts is missing from the document totalsBR-CO-11 · MTB-BR-CO-11Allowance total is missing while the invoice carries allowancesBR-CO-12 · MTB-BR-CO-12Sum of document-level charges is missingBR-CO-13 · MTB-BR-CO-13Tax-exclusive total is missing from the document totalsBR-CO-14 · MTB-BR-CO-14Document VAT total is missing from a tax total blockBR-CO-15 · MTB-BR-CO-15No VAT total is stated in the invoice's own currencyBR-CO-16 · MTB-BR-CO-16Payable amount is missing from the document totalsBR-CO-18 · MTB-BR-CO-18Invoice carries no VAT total blockBR-O-08, BR-CO-17 · MTB-BR-O-08Out-of-scope VAT breakdown states no taxable amount
Business rules - VAT standard and reduced rate (BR-S)
4 rules
BR-CO-17, BR-S-09, BR-CO-15, BR-CO-14 · MTB-BR-CO-17A VAT breakdown states no VAT amountBR-S-06 · MTB-BR-S-06Standard-rated allowance carries no VAT rateBR-S-09, BR-CO-17 · MTB-BR-S-09Standard-rated VAT breakdown states no VAT amountBR-S-10 · MTB-BR-S-10Standard-rated VAT breakdown carries an exemption reason
Business rules - Decimals (BR-DEC)
13 rules
BR-DEC-01 · MTB-BR-DEC-01Document level allowance amount is written with more than two decimal placesBR-DEC-02 · MTB-BR-DEC-02Document level allowance base amount is written with more than two decimal placesBR-DEC-09 · MTB-BR-DEC-09Sum of line amounts is written with more than two decimal placesBR-DEC-10 · MTB-BR-DEC-10Allowance total is written with more than two decimal placesBR-DEC-12 · MTB-BR-DEC-12Tax-exclusive total is written with more than two decimal placesBR-DEC-13 · MTB-BR-DEC-13A VAT amount in the document currency is written with more than two decimal placesBR-DEC-14 · MTB-BR-DEC-14Tax-inclusive total is written with more than two decimal placesBR-DEC-15 · MTB-BR-DEC-15A VAT amount in the accounting currency is written with more than two decimal placesBR-DEC-16 · MTB-BR-DEC-16Prepaid amount is written with more than two decimal placesBR-DEC-18 · MTB-BR-DEC-18Payable amount is written with more than two decimal placesBR-DEC-19 · MTB-BR-DEC-19VAT category taxable amount is written with more than two decimal placesBR-DEC-20 · MTB-BR-DEC-20VAT category tax amount is written with more than two decimal placesBR-DEC-23 · MTB-BR-DEC-23Line net amount is written with more than two decimal places
Business rules - Exempted from VAT (BR-E)
4 rules
BR-E-01 · MTB-BR-E-01Exempt supplies are on the invoice but there is no exempt VAT breakdownBR-E-05 · MTB-BR-E-05Exempt invoice line carries no VAT rateBR-E-06 · MTB-BR-E-06Exempt allowance carries no VAT rateBR-E-09, BR-CO-15, BR-CO-14, BR-CO-17 · MTB-BR-E-09Exempt VAT breakdown states no VAT amount
Business rules - Not subject to VAT (BR-OO)
6 rules
BR-E-08, BR-CO-17 · MTB-BR-E-08Exempt VAT breakdown with nothing exempt on the invoiceBR-KSA-11 · MTB-BR-KSA-11Out-of-scope line item carries a VAT rate that is not zeroBR-O-01 · MTB-BR-O-01Out-of-scope supplies are on the invoice but there is no out-of-scope VAT breakdownBR-O-09 · MTB-BR-O-09Out-of-scope VAT breakdown states no VAT amountBR-S-08 · MTB-BR-S-08Standard-rated VAT breakdown with nothing standard-rated on the invoiceBR-Z-08, BR-CO-17 · MTB-BR-Z-08Zero-rated VAT breakdown with nothing zero-rated on the invoice
Business rules - Exempted from VAT (BR-KSA)
1 rule
Business rules - Not subject to VAT (BR-KSA)
1 rule
Business rules - VAT zero rate (BR-KSA)
1 rule
KSA - code list (BR-KSA-CL)
4 rules
KSA - formats (BR-KSA-84)
1 rule
KSA - decimals rules (BR-KSA-DEC)
4 rules
BR-KSA-DEC-01 · MTB-BR-KSA-DEC-01Allowance percentage is below zero or above one hundredBR-KSA-DEC-02 · MTB-BR-KSA-DEC-02VAT rate is below zero or above one hundredBR-KSA-DEC-03 · MTB-BR-KSA-DEC-03Line VAT amount is written with more than two decimal placesBR-KSA-DEC-04 · MTB-BR-KSA-DEC-04Line amount with VAT is written with more than two decimal places
KSA - EN16931 (BR-KSA-EN16931)
2 rules
KSA - formats (BR-KSA-F)
2 rules
Business rules - VAT zero rate (BR-Z)
4 rules
BR-Z-01 · MTB-BR-Z-01Zero-rated supplies are on the invoice but there is no zero-rated VAT breakdownBR-Z-05 · MTB-BR-Z-05Zero-rated invoice line carries no VAT rateBR-Z-06 · MTB-BR-Z-06Zero-rated allowance carries no VAT rateBR-Z-09, BR-CO-15, BR-CO-14, BR-CO-17 · MTB-BR-Z-09Zero-rated VAT breakdown states no VAT amount
Mutabiq's own checks
10 rules
Ten registered rules that check something no published clause tests: the nine fields of the QR code's payload, and the shape of the previous invoice hash. Each page says what the check is based on and shows it on a document from the measured corpus.
MTB-PIH-01Previous invoice hash is not base64MTB-QR-01QR code carries no seller nameMTB-QR-02QR code carries no VAT registration numberMTB-QR-03QR code carries no timestampMTB-QR-04QR code carries no invoice totalMTB-QR-05QR code carries no VAT amountMTB-QR-06QR code carries no invoice hashMTB-QR-07QR code carries no invoice signatureMTB-QR-08QR code carries no public keyMTB-QR-09QR code carries no cryptographic stamp signature
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.