What's New in Odoo 20 for Saudi Arabia: ZATCA, GOSI Payroll and AI Agents

Odoo 20, released in September 2026, moves ZATCA e-invoicing into the Send wizard, deepens GOSI and end-of-service payroll, and adds AI agents that do real work. Here is what changes for Saudi SMEs, what it costs and how to upgrade.

Published 2026-10-06 · METCH

AI agents that do the work, and what they cost

Odoo 20 was released in September 2026 with changes across more than 40 apps and areas. For Saudi companies the headline items are ZATCA e-invoicing and payroll, covered in the last two sections. The change your team will feel first, though, is AI that acts instead of only answering.

An Odoo 20 agent can create and update records for you, including from an uploaded instruction file such as a PDF, and it shows live, step-by-step progress instead of a generic "thinking" message. Picture a Riyadh trading company that receives a supplier quotation as a PDF: the buyer uploads it, asks the agent to prepare the purchase order, then reviews the draft before confirming.

  • Automated and scheduled actions can call agents, so recurring work runs without anyone starting it.
  • Each automated run leaves a chat you can review, and you can ask the agent to adjust based on the errors it met.
  • Outside AI tools can connect to your database through MCP (Model Context Protocol).
  • Requests can be dictated by voice, and agent chats are kept for up to 30 days after the last message.

The cost is easy to state. Every AI feature now consumes credits bought through Odoo's in-app purchase service (IAP), sold in packs with pricing set per service, and Enterprise users with a valid subscription get free credits to test IAP features. Pilot one process first, then budget credits from real usage.

Finance: less typing, fewer mistakes, clearer currencies

When a vendor bill is entered or imported, Odoo 20 pre-fills the product, account, tax, analytic distribution and vehicle from your bill history, and keeps anything you type by hand. The payment wizard detects payments already registered but not yet reconciled, deducts them from the amount due and sorts them by date, closing a common route to paying a supplier twice. Automatic customer invoice reminders can be switched on in the settings. Coming from Odoo 18 or older? You also gain red and yellow duplicate warnings on bills and invoices, which arrived in 19.0.

Two changes suit Saudi trading. Prices can be toggled between tax-included and tax-excluded on sales orders, purchase orders and invoices, handy when shop prices include the 15% VAT but B2B quotes are net. And the Saudi Central Bank (SAMA) is now a built-in exchange-rate provider. Importers paying in dollars, euros or yuan also see the rate date on converted totals, the rate when registering a foreign-currency payment, and one expandable exchange-difference line per invoice. On the e-invoicing side, rounding is now handled at document level.

What changes for your accountant:

  • Any journal entry that touches a bank account must come from a bank transaction.
  • Parent accounts replace account groups, and account codes become optional.
  • "In Process" is renamed "Paid", and "Paid" becomes "Reconciled", so update internal guides and reports.

Selling, stock and the shop counter

Sales gains a dashboard above the quotations and orders lists. Order lines can carry a description without a product, useful for one-off installation or fit-out items, and a new Mandatory Product setting forbids that if you prefer. Margins are editable on the line, quotation templates are easier to build, and periodic pricing sets pricelist rules for specific periods or weekdays, such as a Ramadan offer or a Friday and Saturday rate.

Inventory suggests min and max for reordering rules from demand history, days of coverage and order frequency. You also get a stock aging report, stock at a past date, landed costs per product (helpful when customs duty and freight apply to part of a shipment) and simpler returns, since the return wizard is gone. Small shops can ship sales orders without the Inventory app, and eCommerce and POS can run on one on-hand quantity per product.

At the counter, Point of Sale adds:

  • Several currencies at checkout in the same POS
  • Multiple printers per POS, and service fees through presets
  • Snoozing products and an alert when an expired product is selected
  • One summary sale per session, with payment entries posted on schedule

For Saudi shops, POS down payments are improved, and the ZATCA PDF is generated on demand (available since 18.0); eCommerce e-invoicing has existed since 19.0. Staff can also create, edit, archive and delete records offline, re-run earlier searches, and share bills from a phone straight into Odoo to digitize them.

People: attendance, time off and Saudi payroll

Time off can now be counted in calendar days or working days, so the system follows your written leave policy. Public holidays load for the whole year, with your company country's holidays suggested; check Eid dates against the official announcement, since they follow the Hijri calendar. Attendance can take a photo at check-in on devices with a camera, receive records from eSSL and Mantra biometric devices, and analyze overtime in a new report. Payroll adds net-to-gross simulation, useful when an offer is agreed as a net monthly figure in SAR, plus step-by-step pay runs and a choice of when payslips are sent. Expense limits can be set per job position.

The Saudi payroll localization is among the deepest in this release:

  • GOSI integration and an auto-generated GOSI Wages Update Sheet
  • End of service aligned with QIWA and Ministry of Human Resources and Social Development (MHRSD) rules, with an End-of-Service liability report
  • End-of-service provisions for Article 77 terminations
  • Advance salary paid with annual leave
  • Deductions for late attendance, sick leave and disciplinary actions
  • A "Month (30 days)" pay option and calendar-day working schedules

Two cautions before upgrading. Work entries are removed from Payroll and their types merge with time-off types, so review how absences reach your payslips. And service firms, such as AC maintenance companies dispatching technicians across Riyadh, should know Field Service is discontinued: its live map, routing, travel fees and worksheets now sit in Planning.

Odoo 20 for Saudi Arabia: ZATCA localization and a safe upgrade

For ZATCA e-invoicing Phase 2 (integration with the Fatoora platform), Odoo 20 brings the work to where invoices are already sent:

  • ZATCA syncing inside the Send wizard, with pre-checks, a ZATCA history tab and batch sending
  • Invoice type (Tax or Simplified) and transaction type (Export, Summary or Nominal) set on the invoice
  • A Supply End Date field and a line-level discount amount
  • Building and Secondary Numbers held to exactly 4 digits, preventing BR-KSA-37 XML errors
  • Invoices no longer blocked by ZATCA timeouts or outages
  • Contacts holding several IDs: national ID, Iqama or GCC ID
  • States following the 13 regions

Using the invoice date as the ZATCA issue date is not new; it has been available since 17.0.

Before you upgrade:

  • Odoo 17 left standard support in September 2026; 18.0 is planned to follow in September 2027 and 19.0 in September 2028, while Odoo 20 is planned until September 2029.
  • On Enterprise, the upgrade is free for standard apps and Studio, but custom or third-party modules, data cleanup and training are not covered.
  • Always upgrade a test copy first. It runs neutralized, with outgoing mail, scheduled actions and bank sync switched off.
  • On Odoo Online, a production upgrade cannot be reverted once it completes.

METCH's team in Riyadh follows three steps: upgrade assessment, testing on a copy, then training and go-live. To plan your Odoo 20 upgrade, book a free consultation.

Frequently asked questions

Is upgrading to Odoo 20 free?

On Odoo Enterprise, yes for the standard apps and for Studio customizations, as long as Studio is still installed and its subscription is active; code under a maintenance-of-customizations subscription is covered too. Custom or third-party modules, including those built by Odoo partners, cleaning up existing data and training are not included. Whatever your setup, upgrade a test copy first and run real daily work on it before switching production.

Do Odoo 20's AI agents cost extra?

Yes. Every AI feature in Odoo 20 consumes credits bought through Odoo's in-app purchase service (IAP), sold in packs with pricing set per service. Enterprise users with a valid subscription get free credits to test IAP features, so you can try an agent on one process, such as turning supplier PDFs into purchase orders, before setting a budget.

I'm on Odoo 17. Do I need to upgrade now?

Standard support for Odoo 17 ended in September 2026. Extended support costs extra and is only available on Odoo.sh (for some versions) or on-premise. On Odoo Online, moving to a new major version is mandatory every two years anyway. You can upgrade from any version to any major version still under standard support, so you can go straight to Odoo 20, which is planned to be supported until September 2029.

What changed for ZATCA e-invoicing in Odoo 20?

ZATCA syncing moved into the Send wizard, with pre-checks, a ZATCA history tab and batch sending. Invoice and transaction types are now set on the invoice, a Supply End Date field and a line-level discount amount were added, Building and Secondary Numbers must be exactly 4 digits, and ZATCA timeouts or outages no longer block invoicing. Compliance still depends on correct configuration and testing in your own database.

Need help with this?

METCH is a certified Odoo partner in Saudi Arabia — book a free consultation.

Get a proposal