ZATCA QR code decoder and checker
Paste an invoice QR payload, or drop a photo of one, and see the fields inside it — plus whether they contradict each other. Built for accountants checking supplier invoices.
Updated 21 August 2026
Scan the invoice QR with any scanner app and paste what it gives you. It will be a long string of letters and digits, not a web address.
Or drop a photo or screenshot of the QR
What the code contains
| Tag | Field | Value |
|---|
Checks
This reads the code and checks it against itself. It cannot verify the cryptographic stamp — that requires ZATCA's own validation, which no browser tool can stand in for.
A ZATCA invoice QR is not a link. It carries the invoice’s key facts directly, encoded as TLV — tag, length, value — and then Base64’d. Which means nobody can read one by eye, and checking whether a supplier’s code agrees with the invoice printed around it has, until now, meant writing a script.
What this checks
Paste the payload — or drop a photo or screenshot of the code, or just press Ctrl+V with a screenshot on your clipboard — and the tool shows every field it finds, then flags:
- Missing mandatory fields. Tags 1 to 5 are all required. A code missing one is not compliant regardless of how good it looks.
- A malformed VAT number. A Saudi one is fifteen digits, starting and ending with 3. This is the single most common cause of a rejected invoice, and it is visible from the code alone.
- A VAT amount larger than the total. One of the two is wrong.
- An implied rate that is not 15%. The tool divides the VAT by the net and tells you what rate the figures actually describe. On a mixed or zero-rated invoice that is legitimate. On a standard one, somebody has typed something.
- Whether it carries a cryptographic stamp. Tags 6 to 9 hold the invoice hash, the ECDSA signature and the public key. Their presence means the code came from an onboarded device; their absence means it did not.
What it deliberately does not do
It does not tell you an invoice is genuine. Verifying the stamp means checking a signature against a certificate chain that ZATCA issued and only ZATCA can authoritatively confirm. Any browser tool claiming to validate that is either wrong or lying, and an accountant who relies on it will eventually be embarrassed by it.
What this gives you is the internal-consistency check, which is the part you can do from the paper in your hand — and which catches most of what actually goes wrong.
Why an accountant would keep this open
Because the failure mode it catches is quiet. A supplier’s system misconfigured after an update keeps printing invoices that look perfect and carry a QR built from the wrong total. Nothing breaks. Nobody notices until a reconciliation, or an audit, or a buyer’s claim for input VAT is questioned.
Checking a code takes four seconds. Checking a sample of a new supplier’s first month takes about two minutes.
Frequently asked questions
Does this prove an invoice is genuine?
No, and be careful of any tool that claims to. It checks the code against itself — that the mandatory fields are present, that the VAT number is the right shape, that the VAT amount is consistent with the total. Verifying the cryptographic stamp requires ZATCA's own validation, which no browser tool can stand in for.
My scanner returned a web address, not a long string.
Then it is not a ZATCA invoice QR. Some vendors print a QR that links to a portal page instead of carrying the invoice fields. That is not what Phase 1 or Phase 2 asks for.
Why does it say the rate is not 15%?
Because the total and the VAT amount in the code imply something else. On a mixed invoice — some zero-rated lines, some standard — that is correct and expected. On an invoice that should be entirely standard-rated, it means one of the two figures is wrong.
Are my invoices uploaded anywhere?
No. The decoding happens in your browser, including reading the QR out of an image. You can disconnect from the network and the tool still works.
Related
People also search for
zatca qr code decoder · decode invoice qr base64 · tlv qr reader saudi · check zatca invoice validity · verify supplier invoice qr