ZATCA QR code decoder and generator
Paste the text from a Saudi e-invoice QR and see every field: seller, VAT number, date, total and VAT. Phase 2 hash and signature included.
Three steps, no signup
Paste the QR text
Scan the invoice QR with any phone scanner and paste the Base64 text. It usually starts with "AR".
See every field
Seller name, VAT number, date, total and VAT are decoded. Phase 2 hash, signature and key are shown too.
Check or generate
Spot a wrong VAT number or total at once, or build a Phase 1 QR from invoice values for testing.
Questions about this tool
What is inside a ZATCA e-invoice QR code?
A Base64 text in TLV format (tag, length, value). Tags 1 to 5 hold the seller name, VAT registration number, invoice date and time, invoice total with VAT and the VAT amount. Phase 2 simplified invoices add tags 6 to 9: invoice hash, ECDSA signature, public key and the stamp signature.
Why does my ZATCA QR start with "AR"?
The first byte is tag 1 (the seller name) and the second byte is its length. Encoded in Base64 those first bytes often become "AR", so most valid ZATCA QR texts start that way.
How do I know if a VAT number in the QR is valid?
A Saudi VAT registration number has 15 digits and starts and ends with 3. The decoder checks this format automatically.
Is the Phase 1 QR from the generator valid for Phase 2?
No. Phase 2 (integration phase) QR codes must include the cryptographic hash and signature produced by your e-invoicing solution after onboarding with ZATCA. Use the generator for Phase 1 and for testing only.
Is my invoice data sent anywhere?
No. Decoding and QR generation happen in your browser. Nothing is uploaded.
Built for SAP Business One teams
Need ZATCA Phase 2 inside SAP Business One?
We connect SAP B1 to ZATCA Fatoora: onboarding, UBL XML, signing, QR and clearance. Fixed price, usually quoted within 24 hours.
