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 |
|---|---|---|
| 1 | Seller Name | 1 & 2 |
| 2 | VAT Registration Number | 1 & 2 |
| 3 | Timestamp | 1 & 2 |
| 4 | Invoice Total (with VAT) | 1 & 2 |
| 5 | VAT Total | 1 & 2 |
| 6 | Invoice Hash | 2 Only |
| 7 | ECDSA Signature | 2 Only |
| 8 | ECDSA Public Key | 2 Only |
| 9 | Stamp Signature | 2 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.
Lead Magnets
Automate Compliance
Don't manually calculate TLV lengths. Qeemah generates and signs your QR codes instantly.
Book Guided Demo