ZATCA Hub QR Code Specifications

ZATCA QR Code (TLV)

The QR code in Phase 2 is not a URL. It is a complex binary structure containing 9 mandatory tags, including cryptographic stamps.

TLV Encoding Explained

TLV stands for Tag-Length-Value. It is a method of encoding data where each field has a unique Tag ID, a Length (in bytes), and the actual Value.

Example Tag 1 (Seller Name):

Tag 01
Length 06
Value Qeemah

Phase 2 Mandatory Tags

Tag Field Name Phase
1Seller Name1 & 2
2VAT Registration Number1 & 2
3Timestamp1 & 2
4Invoice Total (with VAT)1 & 2
5VAT Total1 & 2
6Invoice Hash2 Only
7ECDSA Signature2 Only
8ECDSA Public Key2 Only
9Stamp Signature2 Only

Common Errors

  • Base64 Double Encoding: Ensure the binary TLV data is encoded to Base64 once.
  • Timezone: Timestamp must be in ISO 8601 format (UTC+3).
  • Tag 6-9: Missing these tags in Phase 2 results in immediate rejection by the Fatoora portal.

Automate Compliance

Don't manually calculate TLV lengths. Qeemah generates and signs your QR codes instantly.

Book Guided Demo

Get 100% ZATCA Phase 2 Compliance

Join 500+ Saudi companies using Qeemah to automate their e-invoicing and stay safe from ZATCA penalties.

Demo first • Guided trial after the walkthrough

Chat with us on WhatsApp