Odoo is ahead of your other
ERP. In one country.
Odoo ships real ZATCA Phase 2 clearance in the standard distribution — something SAP and Dynamics do not. Its Oman and UAE localisations do not mention e-invoicing at all. Both facts matter, and most Odoo plans only know the first one.
Saudi is native. The UAE is a module. Oman is a build.
Odoo is the pleasant surprise of this set. On Saudi Arabia it does the regulated work in code Odoo itself maintains — and then the pattern stops at the border.
Saudi Arabia. The standard distribution includes
l10n_sa, l10n_sa_edi and l10n_sa_edi_pos. Together
they generate UBL 2.1 XML, apply the cryptographic stamp, carry the UUID and the TLV QR
code, and call ZATCA's clearance and reporting APIs — with sandbox, simulation and
production documented as a staged onboarding path, plus handling for credit and debit
notes, down payments and retention. Compare that with SAP, which has not shipped Fawtara
at all, or Microsoft, which is not an access point. On Saudi, Odoo is genuinely ahead.
Oman. There is an Oman localisation — l10n_om and
l10n_om_reports — with the chart of accounts, 5% VAT and its
zero-rated, exempt, reverse-charge and import treatments, tax reporting, fiscal positions,
and optional Arabic invoice text via the GCC format. We read Odoo's own documentation for
that localisation looking for Fawtara, PINT OM, Peppol, the Oman Tax Authority as Peppol
Authority, and the Oman Tax Data Document. None of those terms appear. It is a VAT and
accounting package.
United Arab Emirates. The same shape. l10n_ae,
l10n_ae_reports and l10n_ae_pos give you an IFRS-aligned chart of
accounts, the 5% VAT treatments, the VAT201 return, corporate tax reporting and Central
Bank rates. Odoo's UAE documentation does not mention e-invoicing, Peppol, PINT AE,
accredited service providers or the FTA programme. Third-party apps on the Odoo store do
connect to accredited providers — but that is somebody else's code in your
compliance path, and it should be priced and governed as such.
None of this is a criticism of Odoo. Oman's enabling regulation is still unissued and PINT OM only reached version 1.0.0 in June 2026; the UAE's own pilot opened in July 2026. Odoo is less late than appropriately unwilling to ship against a moving specification. It is simply a fact to plan around, because your phase date does not move to accommodate a vendor roadmap.
- Saudi e-invoicing — native. ZATCA Phase 2 clearance and reporting APIs
- Oman e-invoicing — not documented. VAT localisation only
- UAE e-invoicing — not documented. VAT and corporate tax only
- Peppol / PINT — not part of the Oman or UAE localisation packages
- Edition requirement — not stated by Odoo for the Saudi modules
Verified 29 July 2026 against the Odoo 19 fiscal-localisation documentation for Saudi Arabia, Oman and the United Arab Emirates. Vendor documentation changes; if you are reading this materially later, re-check before relying on it.
Where a native module stops being the whole answer.
Even in Saudi Arabia, where the code is real, a module is not a programme. These are the four places Odoo estates actually come unstuck.
Your upgrade cycle is a compliance decision.
This is the thing we would raise first on an Odoo estate, and it is rarely on the agenda.
Odoo ships a major version every year, and support for older versions does not run forever. That is a reasonable cadence for an ERP and an awkward one for compliance code, because the two clocks are set by different people. The tax authority revises its specification when it chooses. Your ability to absorb that revision depends on being on a release that still receives it.
The failure mode is specific and common: an Odoo estate customised heavily enough that upgrading is a project nobody wants to fund, sitting two or three versions back, at the moment an authority publishes a change. The fix now exists upstream and cannot reach you. A compliance problem has become an upgrade problem, on the authority's timetable rather than yours.
Which is why we treat the customisation boundary as an architectural decision rather than a preference. The parts that are expensive to redo — master data, entity and identifier structure, the integration layer — should stay as independent as possible from the parts that will move. That principle is not Odoo-specific, but Odoo's release cadence makes the cost of ignoring it arrive sooner.
The question to answer before you customise
If the authority changed its specification next quarter, which Odoo version would we be on, is it still supported, and who pays for the upgrade that lets us take the fix? If nobody can answer that, the customisation decision has not been made — it has been deferred onto a future deadline.
The open-source upside, stated fairly
Odoo's licence and self-hosting option are a real sovereignty advantage: you can run it in infrastructure you control, in the jurisdiction the rules require, and you can read the compliance code rather than trusting a datasheet. That is a genuine answer to the custody question — but only if you exercise it. Self-hostable and self-hosted are different things, and a cloud-hosted Odoo running a third-party compliance app is not meaningfully more sovereign than any other rented stack.
When we would tell you to stay on Odoo.
Most of the time, frankly. We integrate on your ERP rather than selling you a replacement, and Odoo is a better starting point for this work than its reputation among enterprise buyers suggests.
- You are Saudi-only or Saudi-first. The native modules do the regulated work. What remains is master data, certificate operations and the document types beyond a sales invoice — real work, but not a platform change.
- You self-host, or would. Odoo lets you keep the archive, the keys and the compliance code inside infrastructure you control. Few platforms at this price point offer that, and it answers the questions that matter most in a provider evaluation.
- You have in-house Python capability. Odoo rewards a team that can read and extend its own compliance modules, and punishes one that cannot.
- Your customisation is disciplined. A close-to-standard Odoo upgrades on cadence and takes upstream compliance fixes as they ship. That is most of the game.
We would push back if you are planning a multi-country GCC rollout on a heavily forked Odoo with no upgrade plan and no in-house Python capability. Not because Odoo cannot do it — because that combination puts your compliance path on the far side of an upgrade you have not funded.
Asked on most Odoo discovery calls.
Does Odoo support ZATCA Phase 2 out of the box?
Yes, and it is the genuine article. l10n_sa,
l10n_sa_edi and l10n_sa_edi_pos ship in the standard
distribution and cover UBL 2.1 generation, the cryptographic stamp, UUID, TLV QR code and
ZATCA's clearance and reporting APIs, with a documented sandbox → simulation →
production path. Among mainstream ERPs this is unusually complete.
Does Odoo support Oman Fawtara?
No. There is an Oman localisation (l10n_om,
l10n_om_reports) covering chart of accounts, VAT, tax reporting and fiscal
positions. Odoo's documentation for it does not mention Fawtara, PINT OM, Peppol or the
Oman Tax Data Document. An Oman localisation is not an Oman e-invoicing solution —
see the Oman Fawtara briefing for what Phase 1
actually requires.
Does Odoo support UAE e-invoicing and PINT AE?
Not in the standard distribution. l10n_ae,
l10n_ae_reports and l10n_ae_pos handle VAT, the VAT201 return and
corporate tax reporting; Odoo's UAE documentation does not mention e-invoicing, Peppol,
PINT AE, accredited service providers or the FTA programme. Third-party store apps connect
to accredited providers, but that is non-Odoo code in your compliance path. Note the
timing: failing to appoint an accredited service provider by the prescribed date is itself
a penalised violation in the UAE —
AED 5,000 per
month, whether or not you have issued an invoice.
Is Odoo Community enough, or do we need Enterprise?
Odoo's published documentation for the Saudi e-invoicing modules does not state an edition requirement, so we will not assert one. It is a question to settle against your specific deployment and Odoo contract before it becomes a budget surprise, and it is one of the first things we check.
Can we run Saudi and Oman from one Odoo estate?
Yes, but understand what you are running: one native clearance pipeline and one built Peppol pipeline, under two different models, sharing master data and little else. The shared part — entity structure, identifiers, partner data — is where the leverage is. The regulated parts do not converge.
We are already live on ZATCA with Odoo. Is there anything to discuss?
Three things, none of which require changing anything: where your signing credentials live and who renews them, whether you can extract your own cleared XML on demand rather than through a report, and which Odoo version you are on relative to support. If those answers are good, we will tell you so.
What is the biggest risk specific to Odoo?
The upgrade cycle. Annual major releases, plus heavy customisation, plus finite support for older versions is the combination that strands compliance code on a release which can no longer receive the fix.
We integrate on your ERP — we don't replace it.
Each mandate lands differently on each platform. These are the ones we implement most often in the GCC.
Deadlines move. We will tell you when.
Short, source-checked notes when a GCC mandate actually changes — a wave announced, a specification revised, a date moved. Written by the people doing the implementations. No sequence, and you can leave in one click.
We use it to send mandate updates and nothing else. See our privacy policy.
Start with thirty minutes.
Tell us which countries you invoice from, your Odoo version and how far it sits from standard, and whether you self-host. We will tell you what the native modules cover, what has to be built, and what it would cost — with a written fixed-fee quote within 24 hours.