Back to blog

ZATCA Phase 2 on Odoo, without the last-minute panic

Clearance and reporting are two different integrations with different failure modes. Most rollouts discover this a week before go-live.

Phase 2 e-invoicing is not one integration. It's two, they behave differently, and conflating them is the most common reason a rollout slips.

Clearance vs reporting

Clearance applies to standard tax invoices — B2B. The invoice goes to ZATCA before it reaches your customer, and comes back with a cryptographic stamp and a QR code. If the call fails, you cannot legally issue the invoice. That's a hard blocker on your sales process.

Reporting applies to simplified invoices — B2C. You issue the invoice immediately and report it within twenty-four hours. A failure here is recoverable; you retry.

The operational consequence: clearance needs synchronous error handling that a salesperson can act on. Reporting needs a retry queue and an alert when the queue stops draining. Teams that build one mechanism for both end up with either a fragile checkout or a silent backlog.

Test against the sandbox with your real invoice shapes

The sandbox will happily accept a textbook invoice. Your actual invoices have credit notes, multi-currency lines, discounts applied at the line and the document level, and at least one product with a unit of measure nobody can explain.

Generate the awkward ones deliberately and push them through the sandbox before go-live. Every rejection you find there is one you're not finding on a Sunday with real customers waiting.

The certificate lifecycle

Compliance certificates expire. Production CSIDs need renewal, and the renewal is a process, not a button. Put the expiry date in a calendar the day you get the certificate, with a reminder six weeks out.

We've been called in twice by companies whose invoicing stopped on a certificate nobody was tracking.

Arabic on the invoice

The printed invoice needs Arabic. Not transliterated Arabic, and not Arabic that renders as disconnected letters because the PDF font doesn't support shaping. Check the rendered PDF, not the HTML preview — they use different font stacks and only one of them is what your customer receives.


None of this is difficult. All of it takes longer than the two weeks people allocate.

Running into the same thing?

Start with an audit call and we’ll tell you what we see.