Skip to Content

E-Invoicing in Odoo: The Complete ZATCA Integration Guide 2026

Everything you need to know about Odoo's support for Saudi e-invoicing: the two phases, the waves, the penalties, and the actual steps to integrate with the FATOORA platform.

E-Invoicing in Odoo: The Complete ZATCA Integration Guide 2026

E-Invoicing in Odoo: Integration with ZATCA

Quick answer: Odoo Enterprise supports full official integration with the Saudi e-invoicing system "FATOORA" run by the Zakat, Tax and Customs Authority (ZATCA), covering both of its phases: Generation (Phase 1) and Integration (Phase 2). This includes generating invoices in the approved XML format, the encrypted cryptographic stamp, the QR code, and a direct connection to the FATOORA API to obtain instant invoice clearance. An important timing note: the deadlines for most of the major waves (Wave 23 and Wave 24) had already passed by mid-2026, and the penalty grace period ended with them. This means compliance is now mandatory and immediate for any company that has exceeded the specified revenue threshold, with no exceptions.

What Is the FATOORA System? Its Two Main Phases

FATOORA is Saudi Arabia's national e-invoicing system, overseen by ZATCA. It aims to replace paper invoices and invoices issued with word processing software with trusted, fully traceable electronic invoices. The system is divided into two technically distinct phases:

Phase 1: Generation (In Effect Since December 2021)

Every VAT-registered company is required to issue its invoices electronically (instead of manual invoices) in a format containing all mandatory fields, with a QR code on simplified invoices, but without any direct connection to ZATCA's systems yet. This phase has been mandatory for virtually every Saudi company for years, and every company is expected to be compliant with it by now.

Phase 2: Integration (Rolled Out Gradually in Waves)

This is where things get more technically complex: your system must connect directly to the FATOORA platform through an approved API, so that every invoice is sent for clearance or reported in near real time as soon as it is issued. Every invoice compliant with this phase must contain:


  • A universally unique identifier (UUID) for each individual invoice.

  • A cryptographic stamp signed with a Cryptographic Stamp Identifier (CSID) certificate.

  • A digital signature using an X.509 certificate issued through the ZATCA onboarding portal.

  • A TLV-encoded QR code carrying nine specific mandatory data fields.

  • A SHA-256 hash chain linking each invoice to the previous one, making it difficult to delete or modify any invoice without breaking this chain in a way ZATCA can detect immediately.

The Difference Between Clearance (B2B) and Reporting (B2C)

A technical point that often causes confusion: invoices are handled differently depending on the type of customer:


  • Standard tax invoices (B2B and B2G): subject to the Clearance model. The invoice must be sent to the FATOORA platform and cleared before it is actually delivered to the customer, usually within a few seconds.

  • Simplified tax invoices (B2C, such as point of sale and retail): subject to the Reporting model. The invoice is issued to the customer immediately, but it must be reported to the FATOORA platform within a maximum of 24 hours of issuance.

Important Timing Update: The Waves and the End of the Grace Period

Phase 2 integration is rolled out gradually through "waves" targeting companies based on the size of their taxable revenue, with advance notice from ZATCA of at least six months before each deadline. The last two major announced waves:


  • Wave 23: targeted companies whose revenue exceeded SAR 750,000 in any of the years 2022, 2023, or 2024, with a deadline of March 31, 2026.

  • Wave 24: lowered the threshold to just SAR 375,000, with a deadline of June 30, 2026, the same date on which ZATCA's initiative to cancel penalties and exempt taxpayers from them also ended.


In other words: if your company's taxable revenue exceeded SAR 375,000 in any of the years mentioned, you are most likely already subject to the full integration requirement, and as of July 2026 ZATCA has entered a phase of "full enforcement with no exceptions." If you have not yet completed integration and your company falls within this range, the urgent next step is to check your company's status on the official ZATCA portal immediately, without delay.

Penalties: What Is at Stake for Non-Compliance?

ZATCA has published a clear penalty structure, the most notable of which include:


  • Failure to issue or archive an electronic invoice: a fine starting from SAR 5,000.

  • Deleting or modifying an electronic invoice after it has been issued: a fine starting from SAR 10,000.

  • Missing a compliant QR code: a fine of up to SAR 10,000 per invoice.

  • Penalties escalate with repeated violations within a twelve-month period, and in more serious cases can lead to temporary suspension of tax registration.

How Does Odoo Support This Integration in Practice?

Within the Enterprise edition, Odoo provides an official, ready-made integration that covers all the technical requirements above, with no need to build a solution from scratch. The main setup steps:


  1. Verify company information: make sure the company name is complete (up to 63 characters per ZATCA requirements), along with the full address (including building number and additional number), the VAT number, and the currency set to Saudi riyal (SAR).

  2. Generate a Certificate Signing Request (CSR) and obtain a Compliance CSID, a temporary certificate used to test the integration before going into actual production.

  3. Run complete tests on the FATOORA Simulation Portal: log in with the company's credentials and switch to the simulation environment dedicated to testing, where all invoicing scenarios (standard invoices, simplified invoices, and credit and debit notes) are tested without any actual official effect.

  4. Configure journals: each sales journal needs a dedicated serial number and must be linked using a one-time password (OTP) generated from the FATOORA portal itself.

  5. Move to the production environment and obtain the Production CSID: after successfully passing all tests, you can activate "Production" mode and obtain the final production certificate.


⚠️ A warning that cannot be stressed enough: switching from simulation mode to production mode is completely irreversible. Any invoice sent by mistake in production mode is considered official, and the company may actually be held accountable for it. That is why every possible invoicing scenario (including exceptional cases such as discounts and credit notes) must be tested in the simulation environment first, and the setup must be fully verified before any final activation.

A Critical Point: This Integration Is Exclusive to the Enterprise Edition

As mentioned in previous articles in this series, the full Saudi localization package (the compliant chart of accounts, ready-made VAT taxes, and specifically the official FATOORA integration) is available exclusively in Odoo Enterprise. Odoo Community does not include this integration by default, and any company relying on it must either build a custom integration solution from scratch or rely on a third-party add-on that is not officially supported by Odoo. That is a far less secure option given the sensitivity of this type of regulatory compliance and how quickly its requirements change.

Practical Steps to Check Your Company's Readiness Now

  1. Check your status on the ZATCA portal to find out whether your company is actually covered by any active wave, based on your taxable revenue in recent years.

  2. Review the Odoo edition you are currently using. If it is Community, you need an urgent plan to move to Enterprise or to a reliable alternative solution.

  3. Do not rely solely on Phase 1 compliance. A system that issues electronic invoices correctly is not necessarily fully ready for the actual integration requirements of Phase 2.

  4. Test all of your actual invoicing scenarios (including exceptions and special cases) in the simulation environment before any move to production.

  5. Work with an Odoo partner that has proven experience specifically in ZATCA integration, not just general Odoo experience. The difference in expertise is decisive here given the sensitivity of the subject.

Conclusion

Saudi e-invoicing is no longer just an "optional technical add-on" but a full legal obligation subject to strict enforcement as of mid-2026 for every company that exceeds relatively low revenue thresholds. Odoo Enterprise provides an official, ready-made integration that covers all the complex technical requirements of this obligation, but successful implementation depends heavily on accurate setup and testing before any final move to production. It is a step worth entrusting to specialized expertise rather than risking real, entirely avoidable penalties.

Frequently Asked Questions

Is every Saudi company required to comply with Phase 2 of e-invoicing? The obligation depends on exceeding a specific revenue threshold announced by ZATCA for each wave. By mid-2026, this threshold had dropped to include companies whose taxable revenue exceeded SAR 375,000 in recent years, which means a very wide range of small and midsize businesses is covered.


What is the difference between the Clearance model and the Reporting model? The Clearance model applies to business invoices (B2B) and requires the invoice to be cleared by ZATCA before it is delivered to the customer. The Reporting model applies to consumer invoices (B2C): the invoice is issued immediately and reported to ZATCA within 24 hours.


Can I revert after activating production mode in Odoo? No, this switch is final and irreversible. That is why it is always recommended to test every possible scenario in the simulation environment first, before any actual activation.


Can I rely on Odoo Community to achieve compliance? This is not recommended; the official FATOORA integration is exclusive to the Enterprise edition. Relying on unofficial alternative solutions with Community carries a much higher risk given the sensitivity of this type of compliance.


What happens if my company misses its wave deadline? The company faces actual fines, typically ranging from SAR 5,000 to SAR 50,000 depending on the type of violation, with fines escalating for repeat violations, and the most serious cases can lead to temporary suspension of tax registration.