Odoo 20 Accounting: Changes Finance Teams Will Notice
Odoo 20 accounting changes explained: bill line prediction, matching rules, duplicate warnings, parent accounts, renamed payment statuses and tax-included pricing.
Finance teams tend to notice upgrades first, because their month-end close depends on everything behaving the same way it did last month. Odoo 20 brings genuinely useful accounting improvements and a few changes that will catch people out. Here are both.
As always, some of these sit in Odoo Enterprise's Accounting app. Check your edition.
Less data entry
Bill line prediction
Odoo 20 pre-fills product, account, tax, analytic distribution and vehicle on vendor bill lines, based on bill history and line labels. For businesses that receive the same kinds of bills every month, this removes a lot of repetitive coding.
It still needs checking. Predictions are only as good as your history. If past bills were coded inconsistently, the predictions will be too.
AI financial insights
There are AI-powered insights based on your accounting data. Like all Odoo 20 AI features, these use IAP credits. See Odoo 20 AI agents for the cost side.
Better reconciliation
- Matching rules for automatic bill and invoice reconciliation, including payment tolerance and matching order
- Purchase order matching improvements, including an unmatch option and a warning when price or quantity differs
- A bank reconciliation summary report
- Syncfy added as a bank synchronisation provider
- The payment wizard detects pending payments to prevent paying the same bill twice
Payment tolerance is the one we'd set up first. It stops small differences, such as bank charges or rounding, from leaving invoices half open.
Fewer duplicate bills
Duplicate detection now shows red warnings for likely duplicates and yellow warnings for ones worth investigating. Red warnings stay visible after posting, so a duplicate that slips through is still easy to spot later.
Changes that will confuse people
Payment statuses renamed
- "In Process" is now "Paid"
- "Paid" is now "Reconciled"
Long-time users will read "Paid" and assume the money is matched in the bank. Brief the finance team and update any saved filters, reports or automations that use these statuses.
Parent accounts replace account groups
Account groups are gone. Parent accounts take their place, and account codes become optional. Check any custom reports, spreadsheets or exports that grouped by account group.
Bank consistency rule
Entries that affect bank accounts must now come from bank transactions. If your team posts manual journals directly to bank accounts, that habit has to change.
Other useful additions
- Tax-included or tax-excluded pricing switch on sales orders, purchase orders and invoices, with per-tax override
- Withholding tax on bills shows amount due, withholding due and net due
- Customer invoice reminders, manual and automatic, with a reworked reminder workflow
- "Reset to Draft" from list views, and zip download of invoice attachments
- Cumulative Translation Adjustment line on the balance sheet, trial balance and general ledger, for multi-currency groups
- COGS updated retroactively when a product's cost changes after delivery
- Inventory valuation accrual entries from the valuation closing report
- Valuation without Inventory: stock valuation without installing the Inventory app
Expenses
The Employee Expenses menu is removed. Approved expenses now create draft bills. If you have an approval process built around the old menu, retest it.
Before upgrading
- List every report, filter and automation that uses payment status or account groups
- Run a test upgrade and close a past month on it
- Compare the trial balance and aged receivables to production
- Brief the finance team on the renamed statuses
More in the Odoo 20 upgrade checklist and our Odoo accounting setup guide.
Frequently asked questions
What happened to account groups in Odoo 20?
They're replaced by parent accounts, and account codes become optional. Reports that relied on account groups need reviewing after the upgrade.
Why does Odoo 20 show invoices as Paid when they aren't reconciled?
The statuses were renamed. What used to be 'In Process' is now 'Paid', and what used to be 'Paid' is now 'Reconciled'.
ERP Builders Team
Articles written and reviewed by the ERP Builders delivery team — functional consultants, solution architects and developers who implement, integrate and support ERP systems.
Related articles
Odoo Accounting Setup: Decisions to Get Right Early
Odoo accounting decisions that are hard to change later: localisation, chart of accounts, taxes, fiscal positions, analytics, bank reconciliation.
Odoo 20 POS and eCommerce: What Retailers Get
Odoo 20 for retailers: POS self-ordering, multiple currencies, employee access levels, label printing, plus eCommerce cross-sells, review requests and AI editing.
Odoo 20 Sales and CRM: Commissions, Leads and Quotes
Odoo 20 sales and CRM changes: lead rotation modes, Dun and Bradstreet lead data, upsells from leads, commissions, quotation sections and discount codes.
Next step
Turn the plan into a working system.
Book a consultation with an ERP consultant. No sales script — just an honest look at your situation.