namla

Insights

ZATCA E-Invoicing Integration: What Founders Need to Know

Who Fatoora e-invoicing applies to, what Phase 1 and Phase 2 actually require, and how to plan the integration into your build instead of retrofitting it.

April 10, 2026 Saudi Arabia ZATCA Compliance Integrations

If your product touches invoicing in Saudi Arabia, ZATCA e-invoicing isn’t optional, and it’s far cheaper to design in than to retrofit. Here’s what a founder needs to know before the build starts. Rules evolve, so 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. The test is simple: does your product issue tax invoices? A marketplace taking a commission, a SaaS billing customers, a POS, a booking platform charging VAT: all in scope. If you never issue tax invoices yourself, you may be out of scope; check with a tax advisor rather than guessing.

The two phases

Phase 1: Generation. Invoices must be electronic, structured, and tamper-resistant, with all required fields, a unique identifier, and a QR code on 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, meaning submitted and validated before the buyer receives them. Simplified B2C invoices are reported shortly after issue.

Under the hood, a compliant invoice carries a cryptographic stamp, a hash chaining it to the previous invoice, a UUID, and the QR code. That structure is how ZATCA guarantees authenticity.

What this means for your build

If you charge VAT, invoicing sits in the core money flow, not on a “later” list. Concretely you need a compliant format (structured XML, or PDF/A-3 with embedded XML for standard invoices), cryptographic signing with the hash, UUID, and QR fields, and, for Phase 2, a live clearance-or-reporting integration with real rejection handling.

Designed in early, this is a well-scoped module. Retrofitted after launch, it tends to force a rework of how invoices are generated and stored. That’s why it belongs in the MVP conversation, not the post-launch one.

Provider or in-house

Two sane paths. A ZATCA-certified provider is fastest: you wire your app to their API and they track rule changes. Building it in gives full control with no per-invoice dependency, at the price of owning the format, signing, and clearance logic yourself.

Either way, treat it as a first-order part of the build. It’s exactly the kind of compliance integration we handle in system integration, and one of the sharpest questions to ask when you choose a development partner: “walk me through a ZATCA integration you’ve scoped.”

Pair it with the data-hosting decision and you’ve covered the two compliance calls most Saudi products hit first. Building something that issues invoices? We’ll scope the integration with you.

FAQ

Does my app or SaaS need ZATCA e-invoicing?

If your business is VAT-registered in Saudi Arabia and the product issues tax invoices (a marketplace taking a cut, a billing system, a POS, a SaaS charging VAT), then yes, those invoices must comply. If you never issue tax invoices yourself, it may not apply. A tax advisor settles your specific case quickly.

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) adds a live connection to ZATCA's platform: standard B2B invoices are cleared before they reach the buyer, and simplified B2C invoices are reported shortly after issue.

Should I build ZATCA compliance in-house or use a certified provider?

Both paths work. A certified provider integrates faster and tracks rule changes for you; building in-house gives full control but means owning the cryptographic and format requirements yourself. What matters more than the choice is timing: invoicing retrofitted after launch usually means reworking how invoices are generated and stored.