ZATCA E-Invoice QR Code Reader
Paste the Base64 string from a Saudi e-invoice QR code to decode its TLV tags, or build a valid TLV string from the five fields for your own invoices.
Spec checked October 2026. The QR code has been mandatory on simplified (B2C) tax invoices since Phase 1 of e-invoicing began on 4 December 2021. Everything runs in your browser; nothing is uploaded. This reader gives general information about the published TLV format, not tax advice.
Scan the QR with a plain camera or scanner app and copy the text it returns. Valid input contains only Base64 characters (A-Z, a-z, 0-9, +, /, =).
Decoded tags
Saudi VAT registration numbers are 15 digits.
Use the format YYYY-MM-DDTHH:MM:SSZ.
Your Base64 TLV string
Encode this string as a QR code and print it on the invoice. Verify against the ZATCA specification and test with the ZATCA tools before using it on real invoices.
What TLV Means, and What Each Tag Holds
TLV stands for Tag-Length-Value. Every piece of data in the QR code is stored as three parts: a tag number saying which field it is, a length saying how many bytes the value takes, and then the value itself in bytes. Tag 1 carries the seller name, tag 2 the 15-digit VAT registration number, tag 3 the invoice timestamp in ISO 8601 format, tag 4 the invoice total including VAT, and tag 5 the VAT total. This is Phase 1 of Saudi e-invoicing (Fatoora), and the QR code carrying these five fields has been required on simplified, business-to-consumer tax invoices since 4 December 2021. When a plain phone camera shows you a long string of random-looking characters, it is showing you this TLV data after Base64 encoding; this tool turns it back into the five readable fields.
Phase 2 integration adds four cryptographic tags on top: tag 6 is the invoice XML hash, tag 7 the ECDSA signature, tag 8 the public key, and tag 9 the ZATCA signature. They prove the invoice is genuine, but they are not human-readable data. When the reader meets them it labels them and shows the raw value with a note instead of trying to interpret it. If you are generating invoices yourself, the Build tab constructs a correct Phase 1 TLV string from your five fields: enter them, copy the Base64 output, and turn it into a QR code for the invoice.
The Phase 1 tags at a glance
Tag 1: seller name. Tag 2: VAT registration number (15 digits). Tag 3: timestamp, ISO 8601. Tag 4: invoice total including VAT. Tag 5: VAT total. All five must be present on a compliant simplified invoice.
Phase 2 tags are cryptographic
Tags 6 to 9 (invoice XML hash, ECDSA signature, public key, ZATCA signature) appear on Phase 2 integrated invoices. The reader displays them with a note; they verify authenticity, they are not fields to read.
How to use this reader
- On the Read tab, paste the Base64 string your scanner app returns from the invoice QR code.
- Decode it and read tags 1 to 5; check that the VAT number is 15 digits and the timestamp looks right.
- If tags 6 to 9 appear, note them as Phase 2 cryptographic fields shown as-is.
- To create a QR string, switch to the Build tab, enter the five fields, and copy the Base64 output.
Frequently Asked Questions
Related Saudi Tools
Check Out Other Popular Tools
HTTPS Redirect Checker
Verify if your website correctly redirects HTTP traffic to HTTPS. Improve your SEO and security with our free checker.
Word to Text Converter
Extract clean plain text, Markdown, tables, and metadata from Microsoft Word (.docx, .docm) files in your browser.
Online Rekenmachine & Pythagoras Berekenen
Gratis online rekenmachine voor Nederland en België. Eenvoudig en wetenschappelijk rekenen, stelling van Pythagoras (a² + b² = c²), percentages en geschiedenis.
Was this tool helpful?
Comments
Loading comments...