Loading Barcode Mint…

Barcode Mint

Free Online Barcode & QR Code Generator

2D Code

ZATCA QR Code Generator

Build a ZATCA-compliant QR code for Saudi Arabia e-invoices, encoded exactly as the TLV/base64 structure Fatoora requires.

Open the generator ↓
Preview
100%

01

Symbology

Code 128
All 106 →
02

Data

03

Properties

Properties

2
100
18
10
04

Bulk & batch generate

🔒 Pro

Turn a CSV — or a numbered sequence — into hundreds of barcodes at once, exported as a ZIP of images or a print-ready PDF sheet. Launching with Pro.

Launching soon

Pricing — join the early list

The browser generator stays free forever. Paid plans are for teams who need bulk output and developers who need the REST API at scale — commercial license included. Tell us what you'd use; early-list members get first access and launch pricing.

For the generator

Free $0/forever

What you're using right now

  • 100+ barcode & QR symbologies
  • Live preview & customization
  • PNG & SVG export, no login
  • Copy to clipboard
Available now ✓

For developers — REST API

Priced by requests. Commercial license and self-serve keys included; usage dashboard at launch.

Small $19/mo$190/yr 500 req / mo
Large $499/mo$4,990/yr 50K req / mo
Enterprise Custom Contact us

Get early access + launch pricing

Which features would you actually use? (optional — it helps us decide what to build first)

No spam — one email when it launches. The free tool isn't going anywhere.

What is a ZATCA QR Code?

A ZATCA QR Code is a standard QR Code that encodes invoice data in the specific binary format mandated by Saudi Arabia's Zakat, Tax and Customs Authority (ZATCA) under its Fatoora e-invoicing program. It is not a distinct barcode symbology — like the Swiss QR Code, it's a regular QR Code carrying a structured payload, in this case a Tag-Length-Value (TLV) byte sequence that is base64-encoded before being placed into the QR Code.

Every simplified tax invoice and simplified credit/debit note issued in Saudi Arabia must include this QR Code, whether the invoice is a printed paper receipt or a PDF. Its purpose is to let both a human's phone and the tax authority's systems instantly verify and read the core invoice details without parsing the full invoice document.

How the TLV/base64 structure works

ZATCA's QR Code payload is built from a sequence of tags, each with a length byte and a value, then base64-encoded as a whole:

For Phase 2 (integration phase) e-invoices, ZATCA requires three additional cryptographic tags — the invoice hash, the digital signature, and the seller's certificate's public key (plus, where applicable, the certificate signature) — because Phase 2 invoices must be digitally signed and cleared or reported through ZATCA's systems. Each tag is: one byte for the tag number, one byte for the value's length in bytes, then the value itself. The full binary sequence is then base64-encoded to produce the string that gets placed into the QR Code.

Technical specifications

A ZATCA QR Code is a standard ISO/IEC 18004 QR Code carrying a binary Tag-Length-Value (TLV) payload that is base64-encoded before being placed in the symbol — unlike the Swiss QR Code or EPC QR Code, the raw data is not human-readable plain text. Each tag consists of a one-byte tag number, a one-byte length (in bytes, not characters, which matters for multi-byte UTF-8 Arabic text), and the value itself; Phase 1 (generation phase) requires five tags, while Phase 2 (integration phase) adds three more for the cryptographic invoice hash, ECDSA digital signature, and the seller's certificate public key. ZATCA is Saudi Arabia's Zakat, Tax and Customs Authority, and the specification is published under its Fatoora e-invoicing program; there is no separate check digit on the QR data itself, since the digital signature in Phase 2 payloads serves as the cryptographic integrity and authenticity check.

Where ZATCA QR Codes are used

ZATCA QR Codes are legally required on:

Standard tax invoices (B2B) are not required to carry the same simplified QR Code under Phase 1, though ZATCA's broader e-invoicing rules govern their structure and, in Phase 2, their clearance process separately. Businesses generating simplified invoices integrate ZATCA QR generation directly into their point-of-sale or invoicing software.

How to generate a ZATCA QR Code in Barcode Mint

To create a Phase 1–style ZATCA QR Code:

This builder covers the five core Phase 1 tags. Phase 2 (integration phase) invoices require a cryptographically signed payload with invoice hash, digital signature and certificate data generated through ZATCA's compliance and clearance process — that signing must happen in a system integrated with ZATCA, not through a standalone QR generator.

Compliance and scan best practices

ZATCA specifies the QR Code must be scannable and clearly visible on the invoice; print it with adequate size and quiet zone so both a customer's phone and any auditing tool can decode it cleanly. Because the payload is base64-encoded binary rather than plain text, double-check that your VAT number, timestamp format and amounts exactly match what appears elsewhere on the invoice — a mismatch between the QR data and the printed invoice fields is a common compliance flag during ZATCA audits. On thermal POS receipts, print at a large enough module size that repeated printing on the same roll doesn't degrade contrast over a shift, and confirm the QR Code survives common receipt-printer failure modes like faded ribbon or low paper quality.

ZATCA QR Code vs related codes

A ZATCA QR Code differs from most other payment or invoice QR formats in carrying binary TLV data rather than delimited plain text — the Swiss QR Code and EPC QR Code both use newline-separated plain-text fields that a person can read directly from decoded output, while ZATCA's base64 string decodes first to raw bytes that must be parsed tag by tag. ZATCA QR Codes also serve a different function: Swiss and EPC QR Codes initiate a bank payment, while a ZATCA QR Code verifies and discloses the details of a tax invoice that has already been (or will be) paid through another channel, making it closer in purpose to a compliance stamp than a payment instruction.

Common uses

Frequently asked questions

What does a ZATCA QR code generator do?

A zatca qr code generator encodes seller name, VAT number, invoice timestamp, total, and VAT amount into the TLV binary format ZATCA requires, then base64-encodes it into a scannable QR Code for Saudi e-invoices.

Is the ZATCA QR Code the same for Phase 1 and Phase 2 invoices?
No. Phase 1 requires five basic TLV tags (seller, VAT number, timestamp, total, VAT amount); Phase 2 adds cryptographic tags — invoice hash, digital signature and certificate data — generated through ZATCA's integrated clearance process.
Is a ZATCA QR Code mandatory on every Saudi invoice?

It's mandatory on simplified tax invoices and simplified credit/debit notes, typically B2C transactions; standard B2B tax invoices follow separate e-invoicing requirements.

Why is the ZATCA QR Code base64-encoded instead of plain text?
The underlying data is a compact binary TLV (Tag-Length-Value) sequence; base64 encoding converts that binary data into text-safe characters that a QR Code can reliably store and any reader can decode consistently.
Can I generate ZATCA QR codes in bulk?

Yes — Barcode Mint's bulk CSV to ZIP/PDF tool can generate a compliant QR Code per invoice row, useful for batch-producing receipts or invoices from an accounting export.

Related barcode types

Browse all 106 barcode & QR types →