Used by 700,000+ people
Free ZATCA QR code generator.
The ZATCA QR code holds seller name, VAT (value added tax) number, time stamp and both totals of a Saudi e-invoice. Enter all five to create a Phase 1 code.
How to create a ZATCA QR code
-
01
Check the invoice type and your wave
Simplified tax invoices need the five-tag code until your integration wave's deadline. From then on, every invoice needs the Phase 2 code, which this generator cannot make.
-
02
Enter the five values from the invoice
Copy all five unchanged from the invoice. The generator checks no formats and drops the tag of an empty field.
-
03
Leave a margin and test the printout
Keep 4 modules clear around the code; by default, the image has no margin. Scan the printout with ZATCA's VAT app; developers can run ZATCA's
fatoorah validateqr.
What the ZATCA QR code is
The ZATCA QR code is the QR code that Saudi Arabia's Zakat, Tax and Customs Authority (ZATCA) prescribes for e-invoicing (FATOORA). It stores invoice data as tag-length-value (TLV) records in one Base64 string, for basic validation in ZATCA's VAT app. Phase 2 adds the invoice hash and signatures to the five Phase 1 fields.
Tills, online shops and cleared B2B invoices
Simplified tax invoices go mostly to consumers, printed unless both sides agree on another format. ZATCA's examples: a retailer with 3 stores and more than 12 cash registers, an online pharmacy emailing them, a private university billing tuition.
Business buyers may also receive one for supplies below 1,000 Saudi riyals (SAR). B2B tax invoices carry the code from the seller's Phase 2 deadline, added by ZATCA at clearance. Buyers can check both kinds with ZATCA's VAT app.
Penalties, customer checks and print size
The e-invoicing resolution makes the code mandatory, and breaches carry the VAT law's penalties. In the VAT app, customers see the decoded values to compare with the printout.
ZATCA sets no print size, and the generator always uses level M: the sample has 41 × 41 modules. At TEC-IT's recommended minimum for scanners, 0.5 mm per module, it measures 20.5 mm plus a 2 mm quiet zone per side. ZATCA's nine-tag example needs 89 × 89 modules, 44.5 mm.
Downloads, data sheets and invoice software
Download PNG, GIF or JPG; SVG and higher print resolution come with a plan. Without an account you create one code at a time; after a free sign-in, a data sheet draws many, one finished Base64 string per row, Phase 2 strings included.
TBarCode SDK draws the string in .NET, ActiveX or DLL applications, TBarCode Office in Word mail merges. SAP passes 70–255 characters per barcode line, so with TBarCode/SAPwin you split a 520-character Phase 2 string into fields of 255 (Smart Forms) or 68 (SAPscript).
ZATCA QR code at a glance
- Specification
- ZATCA Security Features Implementation Standards 1.2 (19 May 2023), section 4
- Data
- TLV records: 1-byte tag, 1-byte length, value; Base64 text
- Fields
- Tags 1–5 in Phase 1; up to 9 in Phase 2
- Length
- Up to 700 Base64 characters
- Error correction
- Not set by ZATCA; the generator uses level M
- Quiet zone
- 4 modules on every side
The five tags of ZATCA's sample
Each record is a tag byte, a length byte and a UTF-8 value, with nothing between records:
| Tag | Content | Bytes | Sample value |
|---|---|---|---|
| 1 | Seller's name | 12 | Bobs Records |
| 2 | Seller's VAT registration number | 15 | 310122393500003 |
| 3 | Time stamp, ISO 8601 | 20 | 2022-04-25T15:30:00Z |
| 4 | Invoice total with VAT | 7 | 1000.00 |
| 5 | VAT total | 6 | 150.00 |
Record 1 reads 01 0C plus “Bobs Records”; the 70 bytes become 96 Base64 characters.
Tag and length are binary: a length of 21 is 0x15, not the characters 2 and 1, as ZATCA warns. The length counts UTF-8 bytes, two per Arabic letter.
The amounts only illustrate the format: at 15% VAT, a 1000.00 total including VAT contains 130.43 VAT.
Which invoices need which code
| Invoice | Phase 1 (generation), from 4 December 2021 | Phase 2 (integration), by wave |
|---|---|---|
| Simplified tax invoice and its notes, mostly business-to-consumer (B2C) | Tags 1–5, printed | Tags 1–9 from your onboarded e-invoicing system |
| Tax invoice and its notes, mostly B2B | No QR code required | Tags 1–7, 8 optional, from ZATCA at clearance, then printed |
Phase 1 requires resident taxpayers to generate and store e-invoices with compliant systems. Phase 2 connects these systems to ZATCA's FATOORA platform, in waves by annual revenue subject to VAT, with at least six months' notice.
As of October 2026, waves 1–24, covering revenue above SAR 375,000, are past their deadlines. Wave 25, above SAR 187,500, must integrate by 1 February 2027; ZATCA will announce more.
ZATCA QR code or a payment QR code
The EPC QR code prefills a SEPA (Single Euro Payments Area) credit transfer; the ZATCA code pays nothing.
The Swiss QR Code pays a QR-bill; the ZATCA code documents a Saudi invoice for VAT.
A plain QR Code may hold any link or text; ZATCA marks both as incorrect on invoices.
Frequently asked questions
Learn more about ZATCA QR code.
Can a free online generator create a Phase 2 ZATCA QR code?
Do B2B tax invoices need a ZATCA QR code?
Why does a phone camera show text like AQxCb2Jz…?
01 0C and “Bobs Records” for tag 1. ZATCA's VAT app decodes it, shows the invoice data and checks whether it is compliant.
Which formats do the VAT number and time stamp take?
More resources
QR Code® (2D Barcode)
QR Code ® is a two-dimensional barcode created by the Japanese corporation Denso-Wave in 1994. The QR is derived from Quick Response , as the code is intended…
ProductTBarCode SDK
The developer package for Windows: .NET, OCX and DLL components generate and print 100+ barcode symbologies from your applications.
ProductTBarCode Office
Add compliant barcodes to documents, mail merges and spreadsheets.
ProductTBarCode/SAPwin
The Barcode DLL for SAP: print barcodes from SAPscript, Smart Forms and ABAP on almost every printer – via SAPSprint, SAPGUI or WWI.