What Is ZATCA E-Invoicing? Phase 1 vs Phase 2 Explained
What is ZATCA e-invoicing?
ZATCA (Zakat, Tax and Customs Authority) is the Saudi authority that runs the national e-invoicing system. E-invoicing means generating, storing, and—in Phase 2—exchanging invoices electronically with ZATCA in the required format. The goal is to reduce tax evasion and standardize how businesses issue invoices in the Kingdom.
Phase 1 vs Phase 2
Phase 1 (Generation) has been mandatory since December 2021. It required businesses to:
- Generate tax invoices electronically (no handwritten or simple Word/PDF-only invoices)
- Store them in a structured format
- Include basic fields (seller, buyer, amounts, VAT, etc.)
Phase 2 (Integration) adds a direct link to ZATCA:
- B2B (standard tax invoices): Each invoice is sent to ZATCA for clearance before you share it with the buyer. ZATCA validates it and returns a clearance status.
- B2C (simplified tax invoices): You issue the invoice and report it to ZATCA within 24 hours. No pre-clearance.
Phase 2 is rolling out in waves by business size. Your deadline depends on your VAT revenue; you can see it in the Fatoora portal.
Who must comply?
VAT-registered businesses in Saudi Arabia. Phase 1 applied to almost all of them. Phase 2 applies in waves: larger businesses first, then mid-size, then smaller ones. Check the official ZATCA roll-out page and your Fatoora account for your exact wave and date.
What you need technically
- Format: UBL 2.1 XML (or PDF/A-3 with embedded XML) following ZATCA’s Saudi profile
- Signing: Digital signature with a certificate (CSID) from ZATCA
- QR code: On each invoice, in the format ZATCA specifies (TLV-encoded)
- Connection: Integration with ZATCA’s Fatoora platform for clearance/reporting
You can build this in-house or use a compliant solution or API (e.g. Esnad) that handles format, signing, QR, and Fatoora integration for you.
Next steps: For a step-by-step checklist, see our compliance checklist. For Fatoora setup, read how to register and connect.
Skip the boilerplate. Use Esnad API.
The fastest way to integrate ZATCA compliance into any system.
Read next
Keep going — these posts connect to what you just read.