ZATCA QR code generator (phase 1)
Type the invoice details and get the QR code for a Saudi simplified tax invoice: the five phase 1 (generation) fields as TLV, encoded in Base64.
Need to read an existing code? Use the QR invoice reader (Arabic page).
What's inside a phase 1 QR code?
Each field is written as TLV: a tag number, the value's length in bytes, then the value. The five fields are joined, encoded in Base64, and the QR is drawn from that text.
| Tag | Field | Example |
|---|---|---|
| 1 | Seller name | Palm Trading Est. |
| 2 | Seller VAT number | 310122393500003 |
| 3 | Invoice date and time | 2026-11-01T09:30:00Z |
| 4 | Total incl. VAT | 115.00 |
| 5 | VAT amount | 15.00 |
Watch the Arabic name length
TLV lengths count bytes, not letters. An Arabic letter takes 2 bytes in UTF-8, so a 10-letter name is about 20 bytes. Getting this wrong is a common cause of codes that won't scan.
Sources
- ZATCA: e-invoicing technical requirements (phase 1 QR). [exact page link at publish]
Last reviewed: November 2026. For general information, not tax advice.
Print the QR on every invoice automatically
Kaffa prints simplified tax invoices with their QR code on thermal or A4 printers, and works offline.
Frequently asked questions
What does a phase 1 ZATCA QR code contain?
Five TLV fields encoded in Base64: seller name, seller VAT number, invoice date and time, invoice total incl. VAT, and VAT amount.
Does this QR code make my invoices compliant?
No. The tool only builds a QR code from the data you type. Compliance depends on your whole invoicing system, and this tool is not affiliated with ZATCA.
Does it work for phase 2 (integration)?
No. Phase 2 needs more fields, a cryptographic stamp and integration with the ZATCA platform. This tool doesn't produce those.
Is my data sent anywhere?
No. The code is generated in your browser.