ZATCA Phase 2 integration for Odoo and Zoho Books
Wave 25 brings ZATCA Phase 2 to businesses above SAR 187.5k by 1 Feb 2027. How to connect Odoo or Zoho Books to FATOORA, what breaks, and a checklist.
Devvion · Published
"We got the ZATCA letter. Our accountant says the system is ready, the Odoo partner says it's a configuration job, and nobody can tell me who owns it if invoices start bouncing in February."
That is the conversation we hear most from Saudi finance teams this autumn. On 24 July 2026 ZATCA announced Wave 25 of the integration phase: every taxpayer whose VAT-subject revenue exceeded SAR 187,500 in any year from 2022 to 2025 must connect their e-invoicing solution to FATOORA by 1 February 2027. The threshold is half of Wave 24's, so many companies that never thought of themselves as "large" are now in scope (KPMG summary).
The technical part is smaller than people fear. The process around it is where the hours go.
Phase 2 is a process change wearing a software label
In Phase 1 your system had to generate a compliant invoice with a QR code. In Phase 2 it has to talk to FATOORA:
- Standard tax invoices (B2B) are sent to ZATCA for clearance, and only the cleared invoice goes to the buyer.
- Simplified tax invoices (B2C) are issued to the customer and reported to ZATCA within 24 hours.
- Every invoice is UBL 2.1 XML, cryptographically stamped, and chained to the previous one by a hash.
Odoo and Zoho Books both offer a Saudi Phase 2 connection, in Odoo's Saudi e-invoicing module and in the Saudi edition of Zoho Books. Check that your exact version and edition include it before you plan anything else. If you run another ERP, you will connect it through a solution provider that already handles FATOORA. We connect your ERP to that provider and automate the work around it. We are not a ZATCA-certified solution ourselves, and you should be wary of anyone who blurs that line.
What usually breaks
The connection itself rarely fails. The data feeding it does. In order of how often we see it:
- Customer master data. Standard invoices need the buyer's VAT number and a full Saudi national address: building number, street, district, city, postal code. Most customer files hold half of that, typed five different ways.
- Credit and debit notes. Each must reference the original invoice and give a reason. Teams used to "cancel and reissue" find that a cleared invoice can't be deleted.
- Rounding. Line-level VAT rounded differently from the total gets rejected. Discounts applied at the document level are a common cause.
- More than one issuing point. Each branch, POS or ERP instance that issues invoices is a separate device with its own cryptographic stamp identifier (CSID). A second Odoo company or a till nobody listed will fail on day one.
- Invoices raised outside the ERP. Spreadsheets and Word templates for "special" customers keep living in finance. They have no path to FATOORA.
- Rejections with no owner. When clearance fails, the error sits in a log. Nobody is told, the buyer waits for an invoice, and payment slips.
What it costs to do it by hand
Most Wave 25 companies will go live with the connector and keep everything else manual: fixing customer records one by one, re-checking rejected invoices, emailing PDFs, chasing approvals. Put your own numbers in.
The fixed flow
Order to cash from WhatsApp
- WhatsApp order
- Read the order
- Check stock
- In stock?
- Create sales order
- Issue e-invoice
- Tax authority accepted?
- Invoice and pay link
- Reconcile payment
- Booked and shipped
- Order to invoice: 2 days → 12 min (Example)
What changes is not the arrow to FATOORA. It is the box before it. A rules check runs on every draft invoice: buyer VAT number present and valid in format, address complete, credit note linked to an original, totals reconciling. A draft that fails never reaches ZATCA. It goes back to the named person who owns that customer, with the reason in plain words. Rejections that still happen land in the same queue, with a clock.
Approvals move into the same flow, so a supplier credit note or a pricing exception is approved before it becomes a tax document, not after.
What to do this week, without us
You can do all of this with your current team:
- Confirm you're in scope. Look at VAT-subject revenue for 2022 to 2025. If any year exceeded SAR 187,500, plan for 1 February 2027 and watch for the ZATCA notification.
- List every issuing point. Every branch, POS terminal, ERP company and spreadsheet that produces an invoice. That list is your device count.
- Check your ERP version. Ask your Odoo partner or Zoho admin, in writing, whether your edition supports Phase 2 and what upgrade it needs.
- Pull the customer file. Count B2B customers missing a VAT number or a complete national address. That number is the size of your clean-up.
- Read your last three months of credit notes. How many reference an original invoice? How many were "cancel and reissue"?
- Name an owner for rejections. One person, with a deputy, before go-live.
- Use the sandbox. Run standard, simplified, credit and debit notes through ZATCA's compliance checks well before the deadline, not in the last week of January.
If those seven items are done by November, the connection is a two-day job.
When to call us
Call us when the list above turns up more than your team can absorb alongside month-end. Typical signs: several ERP instances or branches, a customer file in the thousands, invoices raised in two systems, or a February deadline sitting on the same people who close the books.
With forward-deployed engineering, our engineer works inside your business, not from a ticket queue. We assess and map every place an invoice is born, clean the master data with rules rather than by hand, and connect your ERP to its Phase 2 module or provider. Then we automate the approvals and rejections around it, so the deadline also removes hours instead of adding them. The people you meet stay on your work from the first day to the last. See our use cases, what we do for companies in Saudi Arabia, or start with the two-week assessment.
FAQ
Is Devvion a ZATCA-certified e-invoicing provider?
No. Devvion is not a certified or accredited e-invoicing solution. We connect your ERP to its ZATCA Phase 2 module or to a provider that already integrates with FATOORA, clean the data that feeds it, and automate the approvals, rejections and follow-ups around it.
Who is in Wave 25 of ZATCA Phase 2?
Devvion reads the ZATCA announcement this way: taxpayers whose VAT-subject revenue exceeded SAR 187,500 in any of 2022, 2023, 2024 or 2025 must integrate with FATOORA by 1 February 2027. ZATCA notifies the taxpayers concerned. Check your own figures with your tax adviser.
Does Odoo or Zoho Books support ZATCA Phase 2?
Devvion works with both. Odoo offers a Saudi e-invoicing module and Zoho Books has a Saudi edition with a Phase 2 connection. Support depends on your version and edition, so confirm it with your partner or admin before planning the go-live.
How long does a ZATCA Phase 2 integration take?
Devvion finds the connection itself takes days when the data is clean. The weeks go into fixing customer records, finding every issuing point and changing how credit notes are handled. Start with those, and the technical step becomes the short part of the project.
What happens when FATOORA rejects an invoice?
With Devvion's setup, a rejected invoice goes to a named owner with the reason and a deadline, instead of sitting in a log. A cleared invoice can't be deleted, so corrections go through a credit or debit note that references the original.