ZATCA TLV QR
TLV QR code of ZATCA invoices, Phases 1 and 2.
Definition
The ZATCA QR code encodes each field as a TLV triplet (a 1-byte tag, a 1-byte length, then the value), with the concatenated string then Base64-encoded. Phase 1 (Generation) requires 5 tags: seller name, VAT number, timestamp, invoice total (with VAT) and VAT amount. Phase 2 (Integration) adds up to 9 tags, including the invoice hash, the ECDSA signature and the cryptographic stamp public key.
Origin
Defined by ZATCA in the "Guide to Developed FATOORA Compliant QR Code" and the Detailed Technical Guidelines (Version 2, FATOORA, 2022); QR code per ISO/IEC 18004.
Example in context
Tag 1 (seller name): 01 0A 4D 61 78 69 6D 75 6D ... — tag 0x01, length 0x0A (10 bytes), then the UTF-8 value, all concatenated then Base64.