
What Is New in Odoo 20 for Accounting and for Egyptian Companies
What Odoo 20 (September 2026) changes in e-invoicing, withholding tax, the chart of accounts and payment statuses for Egyptian companies, and what to test before upgrading.
By ERP Consulting Department · 23 October 2026 · 7 min read
In accounting and in the Egyptian localisation, Odoo 20.0 moves e-invoice submission into the Send window, adds two withholding tax flows, replaces account groups with parent accounts, renames payment statuses and makes approved expenses generate draft bills. Odoo released the version in September 2026, according to the release notes page on odoo.com. The screens in this article come from Odoo's public demo database on version 20. Its company is a US company working in US dollars, without the Egyptian localisation installed, so what applies only to Egypt is described without a picture.
The article is for businesses that keep their books on Odoo 17, 18 or 19 and are weighing when to upgrade, and for those starting directly on version 20. Both need to know which of these changes touch their month-end close and their link to the e-invoicing system, and to test them on an upgraded copy before the production database.
E-invoicing and withholding tax in the Egyptian localisation
The release notes give Egypt a section of its own. Synchronisation with the Egyptian Tax Authority (ETA) is now part of the Send window on the invoice, with pre-check validation banners and a trackable submission history, and a Demo Mode option tests the flow internally without any credentials. ETA PDFs can be fetched in batch from the list view, a branch's activity type can be selected by its code and Arabic description as on the ETA portal, and a product's item code can be set per company. More units of measure are mapped to their ETA unit codes, among them the square metre, the tonne and the kilowatt-hour. In Point of Sale, sales and refund receipts are submitted to the ETA as e-receipts. The legal obligation and the steps of the link itself are covered in Integrating an ERP with Egypt's e-invoice and e-receipt systems.
For withholding tax, the Egyptian localisation adds two flows: Deducted Withholding for the standard deduction from the amount due to the supplier, and Gross Withholding (gross-up) for net-of-tax agreements, in which the amount agreed is what the supplier receives after the tax. In the general accounting notes, a vendor bill that involves withholding shows the amount due split into Amount Due, Withhold Due and Net Due, and the payment wizard allows paying only the withholding amount, only the payment amount, or the total. The notes also state that the VAT return and withholding reports have been updated to ensure ETA compliance, and that schedule taxes and other taxes they describe as obsolete have been removed together with their reports. Setting up withholding as a negative tax in Odoo is explained in Recurring accounting errors when configuring Odoo in Egypt.
Chart of accounts
According to the release notes, parent accounts have replaced account groups as the way a chart of accounts is structured, and account codes are now optional. The Allow Reconciliation checkbox on an account has been renamed Payment Reconciliation. It decides whether open items on the account are suggested in the bank reconciliation view, and whether exchange rate difference entries are expected on reconciliation. Manual reconciliation can now be performed on any account.

Account 612000 Rent in the demo, with the Parent Account and Payment Reconciliation fields.
In the Egyptian localisation, the default chart has moved to a six-digit structure grouped under parent accounts, and the default accounts for deferred revenue and expenses and for expense accounts have been changed. Building the chart itself is covered in Odoo's chart of accounts and Egypt's fiscal localisation package.
Payments and the bank
Version 20 renames two payment statuses: what was In Process is now Paid, and what was Paid is now Reconciled. Paid on a payment therefore now means what In Process used to mean, and anyone reading it in the old sense will misread payment lists and reports. On the invoice itself, the payment statuses are In Payment and then Paid, according to the 20.0 payments documentation. In the demo, a payment registered on an invoice left the invoice In Payment and the payment itself Paid. The manual Mark as Reconciled button has moved to the action menu, which the notes explain as a way to encourage linking payments with real bank entries through the bank matching menu.

Customer payments in the demo: a payment registered from an invoice is Paid, and two earlier Point of Sale payments are Reconciled.
The month-end close has another change, stated in the release notes: every journal entry affecting a bank account must now originate from a bank transaction, to prevent mismatches caused by manual entries. In our view, bank fees and similar items are therefore recorded when the transaction itself is reconciled, against an account chosen for them or through a reconciliation model, the two ways the bank reconciliation documentation describes for such items. A new Reset to Draft action in any list view also resets several entries to draft at once, so who holds that right should be reviewed; access rights are covered in Access rights and internal controls in Odoo for Egyptian companies.
Expenses, inventory valuation and payroll
The standalone Employee Expenses menu item has been removed, and approved expenses now generate draft bills in the default expense journal, which accountants filter, review and post alongside standard vendor receipts. An employee's expense document therefore stays in draft until an accountant posts it.

Two approved expenses of one employee in the demo created a Receipt in Draft in the Purchases journal, and the document's chatter records that it was created from them.
In perpetual inventory valuation, accrual entries that affect inventory valuation can now be made from the inventory valuation closing report itself, through the Bills To Receive, Billed Not Received, Invoices To Be Issued and Invoiced Not Delivered reports, and the entry goes straight to the inventory valuation account instead of passing through the stock variation account. When a product's cost changes after it has been delivered or used, through a landed cost or because the bill price differs from the purchase price, the value of the delivery is updated retroactively, and so is the invoice cost under perpetual accounting. This matters to an importer whose customs and clearance costs arrive after the goods are sold. Landed costs can also now be added to individual products of a transfer; their set-up is described in Odoo 20.0's purchase cycle for an Egyptian company.
For Egyptian payroll, the notes list a calendar-day working schedule for payroll and leave calculations, end-of-year income tax adjustments on payslips, and export formats for Forms 1, 2 and 6 of the National Organization for Social Insurance and Form 2 of the ETA. Checking these calculations against the law will be the subject of a later article.
Before upgrading from 17, 18 or 19
Support periods for each version, and the upgrades each hosting type requires, are set out in Choosing Odoo for an Egyptian Company. Before moving the production database, we recommend the following:
- Request an upgraded test database and run the full cycle on it: an invoice, a credit note, a payment, a bank reconciliation and a month-end close, together with the integrations with external software that the 20.0 upgrade documentation lists. A database with custom modules cannot be upgraded until a version of those modules exists for the target version.
- Use the ETA's preproduction credentials on the upgraded copy, or Demo Mode, so that no test invoice reaches the production environment. The Egyptian localisation documentation states that the two environments have different credentials, and that testing is done on the preproduction portal before real invoices are issued.
- Review customer addresses now that Helwan and 6th of October have been removed from the localisation's list of states and their records moved to Cairo and Giza, and review product codes, units of measure and each branch's activity code.
- For companies on Anglo-Saxon perpetual valuation: the stock input and output accounts are no longer used from version 19, and any balance left in the stock interim accounts is transferred by journal entry to the stock valuation account before or after the upgrade to 19, according to the 20.0 inventory valuation documentation. In our view this concerns companies upgrading from 17 or 18, and those already on 19 that have not yet made the transfer.
- After the upgrade, review the chart of accounts, the taxes the Egyptian localisation removed, and any receivables and follow-up reports that rely on payment status.
The firm's ERP Consulting Department assesses what an upgrade to Odoo 20 changes in a company's books and tests it on an upgraded copy, including the e-invoicing link, before the production database is moved.
Mahmoud Nassef, Founder Partner
Chartered Accountant, Ministry of Finance, Egypt
Member, Egyptian Society of Accountants & Auditors
Member, Egyptian Tax Society
Member, Egyptian Society for Public Finance and Taxation
Partner profile · Book a consultation
Disclaimer: This bulletin is prepared for general information on the legislation in force at the date of its publication. It does not constitute a professional opinion or tax or legal advice on any particular matter, and it should not be relied upon in place of advice based on an examination of the circumstances of each case. Nassef & Partners International accepts no responsibility for any action taken, or refrained from, in reliance on its contents. The positions stated remain subject to subsequent legislation and decisions.
