# ZATCA QR Codes Explained: What's Inside a Saudi E-Invoice QR

> Every Saudi e-invoice carries a QR code encoding key tax data as Base64 TLV. Here's what's inside it and how to decode and check one for free.

- URL: https://www.pyalm.com/blog/zatca-qr-code-explained
- Author: Fadhil Abdulla
- Category: Pyalm Books
- Published: 2026-06-10
- Updated: 2026-06-10

---

## The QR on every Saudi invoice

Saudi Arabia's e-invoicing system (Fatoora), run by ZATCA, requires a QR code on every invoice. It encodes key tax data as a Base64-encoded **TLV** (Tag-Length-Value) string. The free [ZATCA QR Decoder](https://www.pyalm.com/free-tools/zatca-qr-decoder) unpacks it into readable fields.

## What's inside

The TLV structure carries, by tag:

- **(1) Seller name**
- **(2) VAT registration number**
- **(3) Timestamp** of the invoice
- **(4) Invoice total** including VAT
- **(5) VAT total**

Phase 2 invoices add a cryptographic hash, signature, and public key for authenticity.

## How to read one

Scan the QR with any reader and it returns a Base64 string rather than a URL. Paste that into the decoder to see each labelled field — useful when testing an integration or checking a supplier's invoice is well-formed.

## Decoding vs full validation

The decoder reads the structure and values and confirms the TLV is well-formed. It does not verify the Phase 2 cryptographic signature, which requires the issuer's certificate. For UAE counterparts, see the [TRN Validator](https://www.pyalm.com/free-tools/trn-validator).

[Use the free ZATCA QR Decoder](https://www.pyalm.com/free-tools/zatca-qr-decoder) | [UAE TRN Validator](https://www.pyalm.com/free-tools/trn-validator)
