ZATCA Phase 2 clearance & reporting for Odoo — generate, cryptographically sign, and submit VAT e-invoices via Fatoora. One-time license from $799.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

ZATCA Phase 2 clearance & reporting for Odoo — generate, cryptographically sign, and submit VAT e-invoices via Fatoora.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
ECOSIRE designs, builds, installs, and supports a native Odoo module that makes your Saudi Arabian invoicing fully compliant with ZATCA Phase 2 (the Integration Phase / Fatoora) — no bolt-on middleware, no manual portal uploads, no CSV shuttling between systems. This is not an off-the-shelf apps.odoo.com download you install blind; it is a build-to-order engagement tailored to your chart of accounts, your VAT registration, your invoice branding, and your specific Fatoora onboarding wave.
Generates ZATCA-conformant UBL 2.1 tax-invoice and credit/debit-note XML directly from Odoo's native account.move on invoice confirmation
Real-time Clearance flow for standard (B2B/B2G) tax invoices — the government-signed, cleared XML is returned before the invoice is issued to the customer
Reporting flow for simplified (B2C) invoices submitted to Fatoora within the mandated 24-hour window, with automated retry via scheduled action
Cryptographic stamp application and CSID onboarding through the Fatoora portal API (compliance CSID request, production CSID renewal, and certificate storage)
Per-invoice UUID, invoice hash, and previous-invoice-hash (PIH) chaining computed via @api.depends so the anti-tamper chain is never broken
Embedded TLV-encoded, Base64 QR code (seller name, VAT number, timestamp, total, VAT amount, XML hash, stamp) rendered on the PDF and validated by the ZATCA app
The module extends Odoo's native account.move so that the moment you confirm a customer invoice or credit note, the system generates a ZATCA-conformant UBL 2.1 XML document, builds the invoice hash and chains it to the previous invoice's hash (PIH), stamps it with your cryptographic stamp from your CSID, and — for standard tax invoices — calls the Fatoora Clearance API in real time to obtain the cleared, government-signed invoice before it reaches your customer. For simplified (B2C) invoices it uses the Reporting API within the 24-hour window. Everything is written the Odoo way: new fields on the invoice model, @api.depends computed values for the UUID, hash and QR payload, ir.model.access.csv plus record rules so only authorized finance users can trigger clearance, XML/OWL views that surface a clean "ZATCA status" panel on every invoice, and a bilingual QWeb PDF/A-3 report that embeds the signed XML and the TLV-encoded QR code exactly as the specification requires.
Because it is native Odoo, it works cleanly across Odoo 17, 18 and 19 and on both Community and Enterprise (Enterprise's accounting features are respected, not replaced). Automated actions and scheduled jobs retry failed submissions, keep a full audit trail of every ZATCA request/response, and expose XML-RPC/JSON-RPC endpoints so an external POS, e-commerce front end, or third-party billing system can push transactions into the same compliant pipeline. You get one source of truth for VAT invoicing inside the ERP you already run — with ECOSIRE standing behind onboarding, go-live, and every future regulation update from ZATCA.
Owns VAT compliance for a Saudi SMB or enterprise and must meet ZATCA Phase 2 clearance and reporting obligations without leaving Odoo or hand-uploading files to the Fatoora portal.
Delivers Odoo to Saudi clients and needs a proven, supported Phase 2 integration to embed in projects rather than reinventing the cryptographic stamping, hashing, and Fatoora API plumbing per client.
Runs several companies or branches under different VAT registrations in one Odoo database and needs each entity correctly onboarded, cleared, and audit-logged with clear role-based controls.
Buy the license on ecosire.com and download the ZATCA Phase 2 E-Invoicing for KSA (Fatoora Integration) module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for ZATCA Phase 2 E-Invoicing for KSA (Fatoora Integration), and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| ZATCA Phase 2 clearance & reporting inside Odoo | Built into account.move with real-time Clearance and 24h Reporting flows | Possible but you build every ZATCA API call, hash, and retry yourself | Some cover clearance; reporting, edge cases, and version support vary | |
| Cryptographic stamp / CSID onboarding via Fatoora API | Handled end-to-end during onboarding, incl. compliance and production CSID | You must implement CSR generation, CSID request, and cert storage | Often documented but self-service; support quality varies | |
| UUID, invoice hash & previous-invoice-hash (PIH) chaining | Computed via @api.depends so the anti-tamper chain is never broken | Must be engineered and tested carefully to avoid breaking the chain | Usually implemented, but you rely on the vendor's correctness | |
| Bilingual Arabic/English PDF-A3 with embedded XML & QR | Branded QWeb template built to your identity and ZATCA layout | Full QWeb + PDF/A-3 + TLV QR work from scratch | Generic template; branding and bilingual polish often limited | |
| Fit to your CoA, taxes, multi-company/VAT setup | Configured and tested against your exact Odoo data during the build | You own all mapping and validation logic | One-size-fits-all; you adapt your data to the module | |
| Delivery model & lead time | Build-to-order, scoped and tested, typically 2-4 weeks with go-live support | Months of in-house dev, testing, and certification effort | Instant download, but self-onboarding and self-support | |
| Support, warranty & future ZATCA/Odoo updates | Defined support window + maintenance path for spec and version changes | Your team maintains it indefinitely | Depends on vendor subscription and roadmap | |
| External POS / e-commerce integration (XML-RPC/JSON-RPC) | Exposed endpoints + automated actions feed one compliant pipeline | You design and secure every integration point | Varies; often Odoo-invoice-only |
This is a build-to-order engagement, not an instant apps.odoo.com download. Typical delivery is 2-4 weeks depending on your Odoo version, chart-of-accounts complexity, number of VAT registrations, and how quickly your Fatoora portal access and CSID onboarding can be completed. We scope with you first, build and test against ZATCA's sandbox, then run a supervised production go-live.
Every engagement includes a defined post-go-live support and warranty window for bug fixes and issue resolution. ZATCA periodically updates its Phase 2 specification and business rules, and Odoo ships new major versions — we offer an ongoing maintenance path so your module stays compliant across those changes. Support scope, response times, and the update arrangement are agreed in writing before the build starts.
Yes. The module is built the native Odoo way (extending account.move, standard security via ir.model.access.csv and record rules, XML/OWL views, QWeb reports) so it runs on Odoo 17, 18, and 19. It works on both Community and Enterprise; on Enterprise it complements the built-in accounting features rather than replacing them, and it aligns with the l10n_sa localization.
ZATCA Phase 2 requires standard tax invoices (typically B2B/B2G) to be cleared in real time — the invoice is sent to Fatoora and returned government-signed before it is issued. Simplified invoices (typically B2C, including POS) are reported to ZATCA within 24 hours. The module handles both: real-time clearance on invoice confirmation for standard invoices, and reporting with automated retry (via a scheduled action) for simplified invoices.
During onboarding we request and install your CSID and cryptographic stamp certificate via the Fatoora portal API. For each invoice the module computes a UUID and an invoice hash, chains it to the previous invoice hash (PIH) to form the anti-tamper chain, applies the cryptographic stamp, and renders a TLV-encoded, Base64 QR code on the PDF/A-3. The QR carries the seller name, VAT number, timestamp, totals, VAT amount, XML hash, and stamp, and validates in the official ZATCA app.
Yes. Because it lives inside Odoo, any transaction that becomes an account.move can be cleared or reported. For external systems we expose Odoo's XML-RPC / JSON-RPC API and automated actions so a POS, e-commerce front end, or third-party billing platform can push transactions into the same compliant pipeline, keeping a single audit trail in the ERP.
Every invoice carries a ZATCA status (Not Submitted / Cleared / Reported / Rejected) and stores the full request and response payload for audit. Hard errors are surfaced to the finance user with the ZATCA validation message; warnings are logged but do not block issuance. A scheduled action retries transient failures, and rejected invoices can be corrected and re-submitted without breaking the invoice-hash chain.
ZATCA Phase 2 clearance & reporting for Odoo — generate, cryptographically sign, and submit VAT e-invoices via Fatoora.