— May 15, 2026 · 8 min read
Saudi e-invoicing: ZATCA phases, FATOORA, integration
Saudi Arabia has rolled out, in five years, one of the most structured e-invoicing schemes in the world. Phase 1 mandatory since December 2021, Phase 2 integration rolling out in waves since January 2023: a tour of a framework combining real-time clearance, cryptographic signature and tailored UBL.
ZATCA, the unified tax authority
ZATCA — Zakat, Tax and Customs Authority — is the Saudi public body created in May 2021 by merging the GAZT (General Authority of Zakat and Tax) and the GAC (General Authority of Customs). It reports to the Ministry of Finance and oversees the VAT introduced in 2018 at a standard rate of 15% (raised from 5 to 15% in July 2020 following the drop in oil revenue). VAT-invoice dematerialisation is part of its modernisation plan: E-Invoicing Regulation published on 4 December 2020, phased into force across two phases.
Phase 1 — Generation Phase (4 December 2021)
Phase 1, the Generation Phase, came into force on 4 December 2021. It required every VAT-liable taxable person established in Saudi Arabia to generate invoices electronically in a structured format. Concretely, the issuer must:
- produce an electronic invoice in XML (UBL 2.1) or in PDF/A-3 with embedded XML;
- embed a QR code on B2C invoices (simple TLV in Phase 1) carrying five minimum fields: seller name, VAT number, issue date and time, total amount including VAT, and VAT amount;
- store the invoice in electronic form for the legal retention period (6 years for VAT records);
- ban any manual edit of an invoice after issuance — any correction must go through a credit or debit note, never through reissuance.
At this stage, the invoice is not sent to ZATCA in real time; it is merely generated in a normalised form. The Phase 1 goal is to standardise the format before integration into the ZATCA backend.
Phase 2 — Integration Phase (since January 2023, in waves)
Phase 2, the Integration Phase, started on 1 January 2023 for the first wave of taxable persons (VAT-taxable revenue above SAR 3 bn in 2021). It introduces technical integration with ZATCA's FATOORA platform and mandates a clearance model in real time for B2B invoices and a reporting model within 24h for B2C invoices.
Phase 2 rolls out in successive waves, announced by ZATCA roughly 6 months in advance, each wave targeting a lower revenue threshold. By 2026, more than twenty waves have been announced, gradually covering the full taxable-persons base in the country. The typical observed rhythm: one wave entering into force every two or three months.
XML structure: tailored UBL 2.1
The mandated technical format is UBL 2.1 with restrictions and
extensions defined by ZATCA in its E-Invoicing Resolution and
Detailed Technical Guidelines. The XML root is Invoice for
an invoice, and CreditNote or DebitNote for credit or
debit notes.
Three elements make a ZATCA invoice specific compared with generic UBL 2.1:
-
a mandatory ProfileID with a fixed ZATCA value
(
reporting:1.0for B2C,tax-invoice:1.0for B2B); -
an InvoiceTypeCode with a special name attribute
encoding ZATCA flags over four characters (
0100000for standard B2B,0200000for simplified B2C, etc.); -
a cryptographic
UBLExtensionsextension carrying the invoice's XAdES signature, the base64 TLV (Tag-Length-Value) QR code, and the SHA-256 hash of the previous invoice for the ZATCA chain.
Signature, certificate and chain
Every Phase 2 invoice must carry a XAdES-BES signature compliant with the ZATCA profile. The certificate used is issued by the FATOORA Enterprise Identity Service after taxpayer onboarding. Onboarding goes through a CSR (Certificate Signing Request) emitted from the invoicing system and submitted to FATOORA; FATOORA returns the signed certificate, valid for 1 year and revocable.
The hash of the previous invoice forms a cryptographic chain within the sequence: invoice N carries the SHA-256 of invoice N-1, preventing any silent insertion or removal of an invoice in the sequence. ZATCA can audit the sequence by requesting the ICV (Invoice Counter Value) hash at any time.
TLV QR code and mobile lookup
The mandatory QR code is encoded in TLV (Tag-Length-Value) with nine tags defined by ZATCA in Phase 2 (five in Phase 1): seller name (tag 1), VAT number (tag 2), timestamp (tag 3), total including VAT (tag 4), VAT amount (tag 5), XML hash (tag 6), XAdES signature (tag 7), certificate public key (tag 8), ECDSA signature of the key (tag 9). The whole is base64-encoded and compressed to fit inside a QR code readable by ZATCA's official mobile application ("FATOORA Lookup").
The mobile app lets a consumer instantly authenticate an invoice by scanning its QR code, and report it if non-compliant — a consumer-scale anti-fraud tool for VAT.
Credit and debit notes
Corrections in Saudi Arabia must go through notes: CreditNote
to partially or fully cancel an invoice (refund, return, commercial discount),
DebitNote to increase an invoice (additional charges, penalties,
price adjustment). Every note must reference the original invoice through
cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID and carry
its own ZATCA profile, signature and QR code.
Credit and debit notes are also subject to clearance or reporting depending on their B2B or B2C nature. A B2B note goes through the real-time clearance flow, like the invoice it corrects.
Integrating FATOORA: technical path
The integration path is documented in the Onboarding and Integration Guidelines published by ZATCA. The main steps on the software vendor side:
- Onboarding: generate a CSR from the invoicing module, send it
to FATOORA via the
/compliance/csidsAPI with a One-Time Password (OTP) supplied by the taxpayer from its ZATCA portal. Retrieve the issued certificate. - Compliance check: submit a set of test invoices (standard tax
invoice, simplified tax invoice, credit note, debit note) to FATOORA via
/compliance/invoices. ZATCA validates module conformance. - Production: once compliance check is passed, the taxpayer is
authorised to submit real invoices via
/invoices/reporting/single(B2C) or/invoices/clearance/single(B2B). - Renewal: certificates expire after 1 year and must be renewed
via
/csid/renew.
A reference model for the Middle East
The ZATCA approach — real-time B2B clearance, 24h B2C reporting, XAdES signature, SHA-256 chain, TLV QR code — has become a regional reference. The United Arab Emirates (FTA), Bahrain, Jordan and Egypt announced in 2025 and 2026 models inspired by the same scheme. The initial investment for a software vendor is significant (typically 6 to 12 months of work: cryptographic chain, certificate management, ZATCA compliance), but the model is technically coherent and the official documentation is high quality.
For European vendors deploying a multi-jurisdiction module, ZATCA is often the first non-EU country tackled after the EU stack (PEPPOL, XRechnung, Factur-X). See also the EU e-invoicing roadmap 2025-2030 for contrast with the ViDA decentralised model.