Insights
ZATCA E-Invoicing Integration: What Founders Need to Know
A plain-English guide to ZATCA (Fatoora) e-invoicing in Saudi Arabia — who it applies to, the two phases, and how to plan it into your app.
If your product touches invoicing in Saudi Arabia, ZATCA e-invoicing isn’t optional — and it’s much cheaper to design in than to bolt on later. Here’s the founder-level picture. (Rules evolve; always confirm current requirements with ZATCA and a tax advisor.)
What it is and who it applies to
ZATCA — the Zakat, Tax and Customs Authority — mandates electronic invoicing (“Fatoora”) for VAT-registered businesses in Saudi Arabia. If your product issues tax invoices — a marketplace taking a cut, a SaaS billing customers, a POS, a booking platform charging VAT — the invoices it produces must comply. If you never issue tax invoices yourself, it may not apply; check with a tax advisor.
The two phases
- Phase 1 — Generation. Invoices must be issued electronically in a structured, tamper-resistant form with all required fields, a unique identifier, and a QR code (for simplified invoices). Paper and free-form PDFs don’t qualify.
- Phase 2 — Integration. Your system connects to ZATCA’s platform, rolled out in waves by business size. Two flows:
- Standard (B2B) invoices are cleared — submitted to ZATCA and validated before they’re handed to the buyer.
- Simplified (B2C) invoices are reported to ZATCA shortly after issue.
Compliant invoices carry a cryptographic stamp, a hash chaining each invoice to the previous one, a UUID, and a QR code — the structure ZATCA uses to guarantee authenticity.
What this means for your build
Invoicing isn’t a “later” feature if you charge VAT — it’s part of the core money flow, and it has real requirements:
- A compliant invoice format (structured XML, or PDF/A-3 with embedded XML for standard invoices).
- Cryptographic signing and the hash/UUID/QR fields.
- For Phase 2, a live integration with ZATCA for clearance or reporting, with error handling for rejections.
Designed in from the start, this is a well-scoped module. Bolted on after launch, it often means reworking how invoices are generated and stored.
Build it in, or integrate a provider
You have two sane paths:
- Use a ZATCA-certified provider — fastest to integrate, and they track rule changes for you. You wire your app to their API.
- Build it into your system — full control, no per-invoice dependency, but you own the format, signing, and clearance logic.
Either way, treat it as a first-class part of the build. This is exactly the kind of compliant, real-world integration we handle in system integration — and a key thing to check when you choose a development partner for a Saudi product.
The bottom line
If you invoice in Saudi Arabia, plan ZATCA compliance into the MVP, not after it. Pair it with a sensible data-hosting decision and you’ve handled the two compliance items most Saudi products hit first.
Building something that issues invoices? Book a free consultation and we’ll scope the ZATCA integration with you.
FAQ
Does my app or SaaS need ZATCA e-invoicing?
If your business is VAT-registered in Saudi Arabia and your product issues tax invoices — a marketplace, a billing system, a POS, or SaaS charging VAT — then yes, the invoices must comply with ZATCA e-invoicing. If you don't issue tax invoices yourself, you may not, but confirm with a tax advisor.
What's the difference between Phase 1 and Phase 2?
Phase 1 (Generation) requires issuing structured, tamper-resistant electronic invoices with the required fields and a QR code. Phase 2 (Integration) additionally connects your system to ZATCA's platform — standard (B2B) invoices are cleared before issue, and simplified (B2C) invoices are reported shortly after.
Should I build ZATCA compliance in-house or use a provider?
Both work. A certified provider is faster to integrate and stays current with rule changes; building in-house gives full control but means owning the cryptographic and format requirements yourself. Either way, plan it early — retrofitting invoicing late is painful.