MTB-QR-02QR code carries no VAT registration number

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-02.

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 2 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 registration number

Reported asmtb_qr_02.tag_absentthe field is absent from the QR code

What is wrong

The QR code decoded from this invoice has no field for the seller VAT registration number, which is tag 2 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. A missing tag 2 usually means the generator was given no number to write. Check the VAT registration number reaching the QR generator, which in some systems is configured separately from the one written into the invoice XML.

QR code VAT registration number is empty

Reported asmtb_qr_02.tag_emptythe field is empty in the QR code

What is wrong

The QR code decoded from this invoice carries the VAT registration number field, tag 2, 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. Check the VAT registration number recorded against the issuing entity, and whether the QR generator reads it from the same record the invoice XML does. An empty value here alongside a correct one in the XML means the two read different settings.

QR code VAT registration number differs from the invoice

Reported asmtb_qr_02.mismatchdiffers from the invoice

What is wrong

The VAT registration number in the QR code, tag 2, is not the seller VAT registration number written in the invoice XML. The two describe the same invoice and must agree. 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 comparison ignores differences in surrounding and repeated whitespace, so the two values genuinely differ. Check whether one of the two is formatted for display - with spaces or dashes - while the other is not, and whether a group VAT number is being written in one place and a per-entity one in the other. Both must be the 15 digits of the entity that issued this document.

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 2.

  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-12-qr-vat-number.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.