MTB-QR-05QR code carries no VAT amount

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.

Validate 5 invoices free

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.

  1. Field 1Seller name MTB-QR-01
  2. Field 2VAT registration number MTB-QR-02
  3. Field 3Timestamp MTB-QR-03
  4. Field 4Invoice total with VAT MTB-QR-04
  5. Field 5VAT amount MTB-QR-05
  6. Field 6Hash of the XML invoice MTB-QR-06
  7. Field 7Signature of the invoice hash MTB-QR-07
  8. Field 8Public key MTB-QR-08
  9. Field 9Signature of the cryptographic stamp MTB-QR-09

A worked example

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.

Document
good-09-qr-tag5-mismatch.xml
Mutabiq's verdict
Passed
Reported as
mismatchdiffers from the invoice

Download this example (.xml)Check it in Mutabiq

This page's example, checked by the same rules your own upload goes through. No upload and no sign-in.

Rules evaluated against the same part of the document. One wrong value often reports several of them at once.

Check an invoice

Check your own invoice

© 2026 Hayatiq AI Solutions F.Z.E. All rights reserved.