Cryptographic signature is mandatory
A PDF is no longer enough. Every invoice needs a signed UBL XML using your ZATCA certificate, and a single format error is enough for it to be rejected.
Saudi Arabia's e-invoicing waves 23 and 24 are already live: every invoice has to be signed, stamped and reported to ZATCA, and every invoice you fail to report is a penalty risk. This module handles it inside Odoo, with no separate middleware and no parallel portal, so you can get compliant this week.

Try the ZATCA Phase 2 module inside a real Odoo, no sign-up. User demo / flexigodemo.
Phase 1 was just storing the invoice with a basic QR code. Phase 2 (the Integration Phase) changes the rules: every invoice must be signed, chained and reported to ZATCA. This is the part that usually hurts when your wave goes live.
A PDF is no longer enough. Every invoice needs a signed UBL XML using your ZATCA certificate, and a single format error is enough for it to be rejected.
Standard (B2B) tax invoices need prior clearance; simplified (B2C) invoices must be reported within 24 hours. Without an integration, keeping up by hand is simply not viable.
Each invoice carries the hash of the previous one. If the chain breaks or invoices are numbered out of sequence, ZATCA detects it and the invoice is left at risk of rejection.
This is not a marketing layer on top of the invoice: it is the complete Phase 2 flow, from onboarding your device with ZATCA to submitting the signed document.
CSR generation, Compliance CSID request and the switch to a Production CSID with ZATCA, all managed from inside Odoo.
Generation of the compliant XML, digital signature (XAdES), the ZATCA cryptographic stamp and embedding into the final document.
QR code with all the mandatory TLV-encoded fields, plus Previous Invoice Hash (PIH) management so the invoice chain never breaks.
Submission to the ZATCA API, parsing of the response (cleared, reported, warnings, errors) and the resulting status shown right on the Odoo invoice.
Support for credit and debit notes with the reference back to the original document, exactly as Phase 2 requires.
Multi-company support: each Saudi entity manages its own CSID, its own certificate and its own invoice chain inside the same Odoo instance.
You don't talk to a reseller. Support comes from the person who wrote the module, in case your go-live needs a hand.
Four steps, all inside Odoo. No separate portal to log into and no gateway to babysit.
Install the module in your Odoo 17, 18 or 19, set the Saudi company's VAT details and choose the ZATCA environment (sandbox, simulation or production).
Generate the CSR, request the Compliance CSID with the OTP from the Fatoora portal and promote it to a Production CSID, all without leaving Odoo.
Post an invoice as usual and the module builds the UBL 2.1 XML, signs it, computes the hash, chains it to the previous one and generates the compliant QR.
Standard invoices are sent for clearance and simplified ones are reported. Odoo shows the ZATCA response and marks the invoice as cleared or reported.
FlexigoTech is an independent developer in Barcelona specialised in Odoo. The ZATCA Phase 2 module installs inside your Odoo and talks directly to the ZATCA API: no intermediate SaaS, no monthly fee for an external gateway, no parallel panel to keep an eye on. To be straight with you: we don't invent customer case studies or fake reviews. What we offer is the module, the source code and direct support from the person who maintains it.
Waves 23 and 24 bring in taxpayers with lower turnover thresholds: small and mid-sized businesses without a large IT team. The module is designed for exactly that profile, so you can meet Phase 2 without an expensive bespoke project or an integration that never ends.
You pay once for the ZATCA Phase 2 module and keep it. No per-invoice cost, no monthly gateway fee.
We link this page to the rest of the site so you can find what you need without getting lost.
Yes. The module is built for Phase 2 (the Integration Phase) of Fatoora: cryptographically signed invoices, a compliant QR code, chained hashing (Previous Invoice Hash) and communication with the ZATCA platform, covering both clearance of standard tax invoices and reporting of simplified invoices.
Yes, it is sized exactly for that profile. Waves 23 and 24 bring in taxpayers with lower turnover thresholds, typically SMEs with a smaller IT team, and the whole point of the module is to let them comply without building an expensive custom integration.
No. The module runs inside Odoo and talks directly to the ZATCA API. It does not rely on an intermediate SaaS gateway or a separate portal: the invoice is signed, stamped and submitted from the ERP itself, with no monthly gateway fee.
Yes. The module works on both Odoo Community and Odoo Enterprise, and supports Odoo versions 17, 18 and 19. You buy it once, install it as a module and keep the source code, so it does not tie you to a specific edition.
Yes. There is a live demo, a real Odoo with the ZATCA Phase 2 module installed and no sign-up required (user demo, password flexigodemo), where you can see the signing flow, the compliant QR and the clearance and reporting statuses. When you are ready, you buy the license on the Odoo App Store, and if you need it we help with the CSID onboarding and your first live invoices.
It is a one-time payment of €49, with the source code included and no recurring fees. You can install it yourself or ask for direct developer support with CSID onboarding, certificate configuration and the first live invoices. Support comes from the developer who wrote the module, with no reseller in between.
Waves 23 and 24 are already in force. If you are not yet reporting invoices to ZATCA, get compliant this week: talk to us and we'll check whether the module fits your Odoo and your invoicing operation in Saudi Arabia. No commitment.