Mutabiq checks Saudi ZATCA Phase 2 e-invoice XML before you submit it: pre-validation against published ZATCA requirements, not an approval by the authority. This page explains one rule, MTB-QR-05.
Five checks a month on the Free plan. The file is checked in memory and is never stored.
No published ZATCA clause
No clause in ZATCA's published validation rules decodes the QR code's payload, so there is no clause for this page to quote. Mutabiq reads field 5 of the payload as ZATCA's Security Features Implementation Standards, version 1.2, section 4.1, table 3, lays it out, and reports what it finds there at the Warning level. A finding under this rule is Mutabiq's own check, not a rule ZATCA runs.
Reported at
Warning
What Mutabiq reports
One entry for each way this rule can be reported.
Reported as
What kind of value was found — empty, not_15_digits and the like — never the value itself.
QR code carries no VAT amount
Reported asmtb_qr_05.tag_absentthe field is absent from the QR code
What is wrong
The QR code decoded from this invoice has no field for the VAT amount, which is tag 5 and is mandatory on every Phase 2 QR code. Nothing in the published ZATCA rule set decodes the QR payload, so this is reported as a risk rather than as a rejection - but a QR code missing a mandatory field is a real defect.
What to check in your ERP
The QR payload is built from five mandatory fields in order: seller name, VAT registration number, timestamp, total including VAT, and VAT amount. Tag 5 is the document's total VAT, the same figure as the document-level cbc:TaxAmount. A missing tag 5 usually means the generator ran before the tax totals were computed.
QR code VAT amount is empty
Reported asmtb_qr_05.tag_emptythe field is empty in the QR code
What is wrong
The QR code decoded from this invoice carries the VAT amount field, tag 5, with no value in it. The field is mandatory on every Phase 2 QR code. Nothing in the published ZATCA rule set decodes the QR payload, so this is reported as a risk rather than as a rejection.
What to check in your ERP
The generator is writing the field and being given nothing to put in it. On a zero-rated or exempt supply the VAT amount is 0.00 and is written as such - an empty field is not the way to express zero. Otherwise, check that QR generation happens after the tax totals are computed.
QR code VAT amount differs from the invoice
Reported asmtb_qr_05.mismatchdiffers from the invoice
What is wrong
The VAT amount in the QR code, tag 5, is not the VAT amount written in the invoice XML. The two are compared as numbers, so 15.0 and 15.00 are treated as the same amount - the difference here is a difference in value. Nothing in the published ZATCA rule set decodes the QR payload, so this is reported as a risk rather than as a rejection.
What to check in your ERP
The two figures are coming from different places or being computed at different moments. Point the QR generator at the document-level cbc:TaxAmount - the invoice's total VAT, not a single category's subtotal and not a line's - and generate the QR after the document is final. A QR amount that matches one VAT category on a multi-rate invoice is this mistake.
QR code VAT amount cannot be read as a number
Reported asmtb_qr_05.not_a_decimalcannot be read as a number
What is wrong
The QR code carries a value in the VAT amount field, tag 5, but it is not a plain decimal number, so it could not be compared with the invoice. Nothing in the published ZATCA rule set decodes the QR payload, so this is reported as a risk rather than as a rejection.
What to check in your ERP
Tag 5 holds the amount as digits with an optional decimal point and nothing else - for example 15.00. A currency code or symbol, a thousands separator, Arabic-Indic digits, or a percentage sign will not read. This normally comes from a generator that formats the amount for display; write the raw amount instead, the same value that goes into the document-level cbc:TaxAmount.
The fields of the QR code's payload
The nine fields ZATCA's Security Features Implementation Standards, version 1.2 lays out, in order, each with the rule that reads it. This page is about field 5.
A synthetic document from the measured test corpus that trips this rule, shown where it differs from one that passed. Mutabiq's report names the class of the value, never the value itself.