Odoo Accounting configured for ZATCA Phase 2, 15% VAT and Zakat reporting, implemented in Riyadh by an Odoo Gold Partner in Saudi Arabia.

Saudi finance teams are asked to clear every B2B invoice with ZATCA, report B2C sales within a day, file VAT on time and hand the auditor Zakat ready statements, often from spreadsheets and a separate e-invoicing add on. Odoo's native Saudi localization covers the chart of accounts, e-invoicing and tax reports, and Naqlah, as an Odoo partner in Saudi Arabia, onboards your journals, maps your branches and connects your sales channels so the ledger fills itself.
Odoo ships the Saudi localization modules for the chart of accounts, Phase 1 QR codes, Phase 2 Fatoora integration, POS reporting and withholding tax, and Naqlah configures them against your actual company data: the full address with district, building number and plot, the VAT number shared across branches, and a CRN per branch. Invoice layouts are Arabic by default with a bilingual option for foreign customers, and reports such as the VAT return and the Zakat schedule follow the periods ZATCA assigns you. Sales from Salla through the Naqlah app, Zid, Foodics and your payment gateways post as journal entries, so the books reflect every channel without re-keying.
Fatoora onboarding per journal
Each sales journal is onboarded with the OTP from the Fatoora portal, tested in simulation mode and then moved to production. Naqlah runs the onboarding with your finance team so the first live invoice clears without surprises.
VAT periods built into the tax report
The VAT return report is set to your monthly or quarterly period and shows output and input tax by box as ZATCA expects. Finance reviews it, exports it and files before the end of the following month.
Arabic and English documents with Hijri dates
Invoices, credit notes and statements print in Arabic with English alongside where your customers need it. Hijri date display can be enabled on the layouts that require it.
1. Invoice confirmed
A sales order, a Salla order synced through the Naqlah app or a POS session closes into an invoice in Odoo with the customer's VAT number and the right 15% tax lines.
2. XML generated and signed
Odoo generates the UBL XML, signs it with the CSID issued to that journal and attaches the QR code required for the Saudi format.
3. Cleared or reported through Fatoora
B2B standard invoices go to the clearance API and return approved or rejected. B2C simplified invoices are reported in batches within the 24 hour window.
4. Delivered and posted
The QR coded PDF/A-3 is emailed to the customer, the receivable posts to the ledger, and PayTabs, Paymob or bank statement lines reconcile against it. See the integrations Naqlah supports.
Timelines depend on scope, number of journals and the state of the current books, and Naqlah gives you a clear roadmap in the first consultation.
| Area | Before | With Odoo via Naqlah |
|---|---|---|
| E-invoicing | Manual portal upload or a third party add on bolted to the books | Native Fatoora clearance and reporting from the invoice itself |
| VAT return | Built in a spreadsheet from exports each period | Report generated per filing period with box level detail |
| Bank reconciliation | Manual matching of statements against entries | Statement import with matching rules and gateway settlements |
| Branches | Separate files or companies per branch | One company, analytic accounts and CRN per branch |
| Sales channel data | Salla, Zid and Foodics reports re-keyed monthly | Orders and sessions synced as journal entries |
| Closing | Weeks after month end, statements out of date | Continuous posting with real time statements |
Everything else, we cover in a free 30-minute consultation.
Free consultation. Meet the team and get a clear roadmap in one call.