Skip to main content
TechUltra Solutions Pvt. Ltd. — AI-Enabled ERP Transformation
Free Consultation
Menu

Odoo 20 · detailed guide

What's new in Odoo 20 Accounting & Finance

Less manual matching, quicker closing, clearer cash flow.

63 new features
3 apps covered
55 screenshots

Odoo 20 brings a long list of practical updates to the finance side of the business. In Accounting, the focus is on fewer manual steps and fewer mistakes: vendor bills can be paid straight from Odoo, bills are checked against purchase orders line by line, likely duplicates are flagged in colour, and customer follow-ups are easier to run. Expenses gains spending limits by job position and a combined report, while Online Payments adds new providers, more payment methods and better control over which options customers see.

These changes matter most to finance managers, accountants, collection teams and business owners who want a clear view of cash going in and out. If your team spends hours matching bills, chasing payments or checking expense claims, Odoo 20 offers tools that can take a good share of that routine work off their plate. Below, we walk through the highlights app by app, based on what has been confirmed for Odoo 20.

Last updated 14 October 2026

44 new in Odoo 20

Accounting

44 features
01
ImprovedCommunity + Enterprise

Accounting Firms mode settings

Accounting > Configuration > Settings

The Accounting settings include an Accounting Firms mode block made of three independent options: Quick encoding, Document's sequence editable, and Review data. Each option can be switched on or off by itself, so a firm activates only the tools it actually needs instead of taking the whole set. The block sits on the Accounting settings page and is meant for accounting firms and bookkeepers who encode and review entries on behalf of client companies.

Why it matters Lets accounting firms switch on quick encoding, editable sequences and review settings separately as needed.

How to use it

  1. Go to Accounting > Configuration > Settings.
  2. Scroll down to the Accounting Firms mode block.
  3. Enable Quick encoding, editable sequences or Review data as needed.
Odoo 20 · Accounting
Accounting settings block with Quick encoding, editable sequences and Review data toggles
02
ImprovedEnterprise

Asset depreciation

Accounting > Configuration > Depreciation Models

Depreciation models that use the straight-line method can be based on a percentage rate, for example 12.5% per year, as an alternative to a fixed duration. Durations themselves accept decimal values, such as 2.5 years, for assets whose useful life is not a whole number of periods. These options are set on the depreciation model, which accountants then use to compute the depreciation schedules of fixed assets.

Why it matters Lets accountants depreciate assets using percentage rates or fractional durations.

How to use it

  1. Go to Accounting > Configuration > Depreciation Models.
  2. Create a model and set Method to Straight Line.
  3. Set Based On to Rate and enter the yearly percentage.
Odoo 20 · Accounting
Depreciation model form based on a yearly percentage rate
03
ImprovedEnterprise

Bank reconciliation summary report

Accounting > Bank > Bank Reconciliation Summary

The Bank Reconciliation Summary report shows both reconciled and unreconciled transactions of a bank journal. Reconciled receipts and reconciled payments appear as their own lines next to the outstanding items, so the report explains the full bank balance rather than only what is still open. Accountants open it from the bank card on the Accounting dashboard, through the card's menu and its Reconciliation Report entry.

Why it matters Helps accountants review reconciled and unreconciled bank transactions, grouped into receipts and payments.

How to use it

  1. Go to Accounting > Dashboard.
  2. Open the menu on the Bank card.
  3. Click Reconciliation Report to view the Bank Reconciliation Summary.
Odoo 20 · Accounting
Bank Reconciliation Summary listing reconciled and unreconciled receipts and payments
04
ImprovedCommunity + Enterprise

Bill options display

Accounting > Vendors > Bills

On vendor bill lines, extra options such as the depreciation model, the vehicle and deferred dates are shown stacked under the account field, inside the same cell, rather than in separate columns. This keeps the bill line table compact even when a line uses several options, for example a line on a fixed asset account that is also a vehicle account. Accountants see this layout directly in the invoice lines of the bill form.

Why it matters Helps users find extra bill line options like depreciation model, vehicle and deferral dates under the account.

How to use it

  1. Go to Accounting > Vendors > Bills.
  2. Open a bill with a line on a fixed asset account.
  3. Look under the account field for the stacked options.
Odoo 20 · Accounting
Bill line with depreciation model stacked beneath the fixed asset account
05
NewCommunity + Enterprise

Bill/invoice matching rules

Accounting > Configuration > Matching Rules

A Matching Rules menu lets accountants configure how bills and invoices are matched automatically with payments. Each rule defines a payment tolerance, either as a percentage or as a fixed amount, and a matching order that tries the oldest or the newest invoices first. The menu sits in the Accounting configuration and can also be opened from the menu of a bank journal card on the dashboard.

Why it matters Lets accountants set payment tolerance and matching order so automatic reconciliation fits their needs.

How to use it

  1. Go to Accounting > Configuration > Matching Rules.
  2. Click New to create a rule.
  3. Set the Payment Tolerance and the Matching Order.
Odoo 20 · Accounting
New Matching Rule form with Payment Tolerance and Matching Order fields
06
NewCommunity

Cash journal entry hashing

Accounting > Configuration > Journals (Cash type)

Cash journals offer the option 'Secure Posted Entries with Hash'. With it enabled, posting a cash statement marks its transactions as reconciled and protects the resulting journal entries with a cryptographic hash. A hashed statement cannot be put back to draft and cannot end with a negative balance. The option is found in the Advanced Settings tab of a journal whose type is Cash, either a new one or an existing one.

Why it matters Helps protect posted cash entries from tampering by hashing them on reconciliation.

How to use it

  1. Go to Accounting > Configuration > Journals.
  2. Open or create a journal and set Type to Cash.
  3. In Advanced Settings, enable Secure Posted Entries with Hash.
Odoo 20 · Accounting
Cash journal Advanced Settings with Secure Posted Entries with Hash option
07
ImprovedCommunity

Conversion rates

Accounting > Customers > Invoices > Pay

When a payment is registered in a currency that differs from the company currency, the Pay dialog shows the exchange rate just below the amount, written for example as '1 USD = 0.86 EUR'. The user can check the rate being applied before confirming the payment. This appears on foreign-currency documents, such as a posted customer invoice in euros for a company whose own currency is the US dollar.

Why it matters Lets users see the exact exchange rate used when registering a foreign-currency payment.

How to use it

  1. Open a posted customer invoice in a foreign currency.
  2. Click Pay.
  3. Read the conversion rate shown under the amount.
Odoo 20 · Accounting
Pay wizard showing the explicit USD to EUR conversion rate under the amount
08
NewEnterprise

Cumulative Translation Adjustment (CTA)

Accounting > Configuration > Accounting Reports > Balance Sheet

The balance sheet contains a Cumulative Translation Adjustments line under Other Comprehensive Income. When companies with different currencies are consolidated, this line absorbs the gaps that come from using several exchange rate types, such as historical, closing and average rates, and gives an auditable amount. The same line is also shown in the trial balance and the general ledger. Its structure can be inspected in the balance sheet's report definition in debug mode.

Why it matters Helps groups report currency translation differences on an auditable balance sheet line when consolidating.

How to use it

  1. Enable debug mode.
  2. Go to Accounting > Configuration > Accounting Reports.
  3. Open Balance Sheet and check the Lines tab.
Odoo 20 · Accounting
Balance Sheet report lines with the new Cumulative Translation Adjustments line
09
NewEnterprise

Currency exchange rate providers

Accounting > Settings > Currencies > Service

Automatic currency rates can be fetched from five more central banks: Azerbaijan, Georgia, Kazakhstan, Saudi Arabia (SAMA) and Uzbekistan. Companies based in these countries can have Odoo download the official exchange rates instead of typing them in. The provider is chosen in the Currencies section of the Accounting settings once Automatic Currency Rates is enabled, by searching the Service list for the country name.

Why it matters Lets companies fetch exchange rates from the central banks of Azerbaijan, Georgia, Kazakhstan, Saudi Arabia and Uzbekistan.

How to use it

  1. Go to Accounting > Configuration > Settings.
  2. In Currencies, enable Automatic Currency Rates.
  3. Open the Service dropdown and search for the country.
Odoo 20 · Accounting
Currency rate Service list including new Azerbaijan and Georgia central banks
10
ImprovedCommunity + Enterprise

Customer invoice reminders

Accounting > Customers > Invoices; Accounting Settings

Reminders for customer invoices can be sent by hand, either from the invoice list after selecting several invoices or from a single invoice form, using the Send Reminder button. Automatic reminders are set up in the Accounting settings, where a link opens the management of reminder steps. Accountants and collection staff use these tools to follow up unpaid invoices according to the reminder stages they define.

Why it matters Helps collect payments by sending invoice reminders manually or automatically.

How to use it

  1. Go to Accounting > Customers > Invoices.
  2. Select invoices and click Send Reminder.
  3. For automatic reminders, open Accounting settings and manage the reminder steps.
Odoo 20 · Accounting
Invoice list with Send Reminder button and Last Reminder column
11
ImprovedCommunity + Enterprise

Download invoice attachments

Accounting > Customers > Invoices

From the customer invoice list, users can select several invoices and download one zip file holding all their generated documents, including PDFs, XML files and other e-invoice formats. A Download button appears in the list header once invoices are selected, so the files are gathered in a single action. The zip includes every document format generated for each selected invoice, which is handy when a batch has to be handed over.

Why it matters Lets users download all documents of selected invoices in one zip file.

How to use it

  1. Go to Accounting > Customers > Invoices.
  2. Select the invoices you need.
  3. Click Download in the list header.
Odoo 20 · Accounting
Customer invoice list with selected invoices and the new Download button
12
RemovedCommunity

Employee Expenses menu item

Accounting > Vendors

The Vendors menu of Accounting has no separate Employee Expenses entry. Approved employee expenses create draft bills in the default expense journal, the Purchases journal. Accountants review and post these bills in the same place as receipts and bills from vendors, so employee expenses follow the normal bill workflow. To check, open the Vendors menu and look for the draft bills in the Purchases journal.

Why it matters Find approved expenses as draft bills in the expense journal instead of a separate Employee Expenses menu.

How to use it

  1. Open the Accounting > Vendors menu.
  2. Note that Employee Expenses is not listed.
  3. Find approved expenses as draft bills in the Purchases journal.
Odoo 20 · Accounting
Accounting Vendors menu without a separate Employee Expenses entry
13
ImprovedCommunity

Improved duplicate detection

Accounting > Vendors > Bills

Duplicate warnings on invoices and bills come in two levels. A red alert marks a highly probable duplicate, where the reference, partner, date and amount all match, and it stays visible even after the document is posted. A yellow warning marks a possible duplicate and is shown only while the document is still a draft. Accountants see these coloured warnings on the bill or invoice form while entering documents.

Why it matters Helps avoid paying or sending the same invoice twice through colour-coded duplicate warnings.

How to use it

  1. Go to Accounting > Vendors > Bills.
  2. Post a bill that has a reference.
  3. Create a draft bill with the same vendor, reference, date and amount.
  4. Look at the coloured duplicate warning.
Odoo 20 · Accounting
Draft vendor bill with red warning flagging a likely duplicate bill
14
ChangedCommunity + Enterprise

Intuitive payment status

Accounting > Vendors > Payments

Payments move through the statuses Draft, Paid and Reconciled. Paid means the payment has been validated, while Reconciled means it has been matched with the bank. The 'Mark as Reconciled' button is located in the Actions menu, because payments are meant to be reconciled through bank matching. Accountants see this status bar when they open a validated payment from the vendor payments list in Accounting.

Why it matters Helps users tell at a glance whether a payment is draft, paid or matched with the bank.

How to use it

  1. Go to Accounting > Vendors > Payments.
  2. Open a validated payment and check the status bar.
  3. Use the Actions menu for Mark as Reconciled.
Odoo 20 · Accounting
Vendor payment form with the simplified Draft and Paid status bar
15
ImprovedCommunity

Invoice email attachments

Accounting > Customers > Invoices > Send

When an invoice is sent by email, the paperclip button lists the files already attached in the invoice's chatter, and each one can be added to the email with a single click. A second option, 'Add...', lets the user pick other files, including documents stored in the Documents app. Accountants can thus send supporting files already kept on the invoice without downloading and uploading them again.

Why it matters Lets users attach files from the chatter or Documents app when emailing invoices.

How to use it

  1. Attach a file in the invoice's chatter.
  2. Click Send on the invoice.
  3. Click the paperclip icon and pick a chatter file, or choose Add...
Odoo 20 · Accounting
Invoice Send dialog with Add Attachment and Add from Documents buttons
16
ChangedCommunity

Manual reconciliation

Accounting > Configuration > Chart of Accounts

Manual reconciliation can be done on accounts of any type. On each account, a 'Payment Reconciliation' toggle decides whether its journal items are proposed in bank reconciliation suggestions and whether exchange difference entries are expected for it. The same setting is shown as a column in the list of accounts. Accountants manage it from the account form in the chart of accounts configuration.

Why it matters Lets accountants manually reconcile items on any account.

How to use it

  1. Go to Accounting > Configuration > Chart of Accounts.
  2. Open an account form.
  3. Set the Payment Reconciliation toggle.
Odoo 20 · Accounting
Account form with the renamed Payment Reconciliation toggle
17
ChangedCommunity

Multi-ledger consolidation

Accounting > Configuration > Multi-ledger

A multi-ledger, also called a ledger group, is defined by the journals it includes. Each journal refers to its ledger group, and a report filtered on that ledger uses only those journals. This makes it clear which entries feed each ledger. Accountants create a ledger group in the Accounting configuration, pick the journals that belong to it, and then use the ledger as a filter on reports.

Why it matters Helps accountants see clearly which journals make up each ledger group.

How to use it

  1. Go to Accounting > Configuration > Multi-ledger.
  2. Create a ledger group.
  3. Select the journals it includes.
Odoo 20 · Accounting
Accounting Configuration menu: Multi-Ledger, Depreciation Models, Invoice Reminders
18
ImprovedCommunity

Multiple invoice details

Accounting > Customers > Invoices > Send

When several invoices are sent together, the send dialog groups them by sending method, such as email or Peppol. Each group in the summary can be unfolded to show exactly which invoice will go to which customer through that method. The user can therefore check a whole batch before sending it. This applies to posted customer invoices that are selected together in the invoice list.

Why it matters Helps users check which invoice goes to which customer and how before batch-sending.

How to use it

  1. Go to Accounting > Customers > Invoices.
  2. Select several posted invoices and click Send.
  3. Unfold a summary line to see each invoice and customer.
Odoo 20 · Accounting
Batch Send dialog grouping selected invoices by delivery method with customers
19
ImprovedCommunity

New currency: Caribbean Guilder

Contacts > Configuration > Countries > Curaçao

The Caribbean Guilder, with currency code XCG, is a supported currency. It is defined as the default currency of two countries, Curaçao and Sint Maarten, in their country records. Users can see this link by opening the country record for Curaçao in the Contacts configuration, where the currency field shows the guilder. Companies working in these countries can therefore select it for their invoices and accounting.

Why it matters Lets businesses in Curaçao and Sint-Maarten work in the Caribbean Guilder (XCG).

How to use it

  1. Go to Contacts > Configuration > Countries.
  2. Open Curaçao and check its currency.
Odoo 20 · Accounting
Curaçao country form with XCG Caribbean Guilder as default currency
20
ImprovedCommunity + Enterprise

Onboarding improvements

Accounting > Dashboard > Set Periods

The accounting dashboard onboarding handles periods and tax setup in one step. The 'Set Periods' dialog, opened from the Tax Returns card, contains a 'Not Subject to VAT' checkbox together with the tax return periodicity. When a company is marked as not subject to VAT, it receives no sales taxes and only non-deductible purchase taxes. This is used while first setting up Accounting for a company.

Why it matters Helps new companies set VAT status and tax periodicity in one onboarding step.

How to use it

  1. Go to Accounting > Dashboard.
  2. On the Tax Returns card, click Set Periods.
  3. Set the periodicity and tick Not Subject to VAT if needed.
Odoo 20 · Accounting
Set Periods dialog with Not Subject to VAT and tax periodicity
21
ImprovedEnterprise

Optimized data entry

Accounting > Bank Matching

In the bank reconciliation screen, the buttons of the selected transaction have keyboard shortcuts, which appear when the Alt key is held down. Reconciliation models and actions can therefore be applied without using the mouse. Transactions can also be entered one after the other with the 'Add & New' option. These features are aimed at accountants who process many bank transactions in a row.

Why it matters Speeds up bank reconciliation with keyboard shortcuts and quick Add & New entry.

How to use it

  1. Go to Accounting > Dashboard and open the bank reconciliation.
  2. Click a transaction.
  3. Hold Alt to show the keyboard shortcuts.
Odoo 20 · Accounting
Bank Matching transaction buttons showing keyboard shortcuts while Alt is held
22
ChangedEnterprise

PAIN version setting

Accounting > Configuration > Journals > Bank > Outgoing Payments

The SEPA XML version, known as the PAIN version, is chosen for each outgoing payment method line of a journal. A single bank journal can therefore use different XML versions for different payment methods. The setting appears as an 'XML Version' column in the Outgoing Payments tab of the bank journal. Accountants who generate SEPA payment files set it while configuring the journal's payment methods.

Why it matters Lets companies choose the SEPA PAIN version for each outgoing payment method.

How to use it

  1. Go to Accounting > Configuration > Journals and open a bank journal.
  2. Open the Outgoing Payments tab.
  3. Show the XML Version column and set it per method.
Odoo 20 · Accounting
Bank journal Outgoing Payments tab with the per-method XML Version column
23
ChangedCommunity + Enterprise

Parent accounts

Accounting > Configuration > Chart of Accounts

Charts of accounts are organised by giving accounts a parent account, which builds a tree of accounts; there is no separate account group model. Account codes are optional, and the US chart of accounts is provided without codes. Accountants set the parent on the account form in the chart of accounts. The structure can be seen by switching to a company that uses the US chart and opening an account.

Why it matters Lets accountants structure their chart of accounts with parent and child accounts, with optional codes.

How to use it

  1. Switch to a company using the US chart.
  2. Go to Accounting > Configuration > Chart of Accounts.
  3. Open an account to see its parent account.
Odoo 20 · Accounting
Chart of Accounts with the parent-account hierarchy panel
24
NewEnterprise

Pay bills from Odoo

Accounting > Vendors > Payments

Vendor payments can be sent directly to the bank from Odoo with the 'Pay Now' action, either one at a time or in batches, and signed only once. The feature uses the bank connection set up through Online Synchronization as a payment initiation service (PISP). Accountants use it from the vendor payments list after selecting draft payments, so bills are paid without leaving Odoo.

Why it matters Lets companies pay vendor bills singly or in batches with one signature from Odoo.

How to use it

  1. Go to Accounting > Vendors > Payments.
  2. Select one or more draft payments.
  3. Click Pay Now and sign once.
Odoo 20 · Accounting
Vendor Payments list with the Pay Now button for selected payments
25
ImprovedCommunity

Peppol global location identifiers

Contacts > delivery address > Sales & Purchase tab

Delivery addresses carry a GLN (Global Location Number) field on their Sales & Purchase tab. The value is used in Peppol electronic documents to identify the delivery location. The field is part of Accounting itself and needs no separate bridge module. Users fill it in on the delivery address contact belonging to a company, so documents sent through Peppol include the right location identifier.

Why it matters Lets businesses include delivery address GLNs in their Peppol documents.

How to use it

  1. Go to Contacts and open a company.
  2. Open one of its delivery addresses.
  3. Fill in the GLN field on the Sales & Purchase tab.
Odoo 20 · Accounting
Delivery address Sales & Purchase tab with the new GLN field
26
ImprovedCommunity

Prevent double payments in the payment wizard

Accounting > Vendors > Bills > Pay

When a payment is registered on a bill or invoice, the payment wizard takes into account payments already made but not yet matched with the bank, which are in the Paid state. It shows the amount already paid and lowers the proposed amount accordingly, which helps avoid paying twice. The payments listed on an invoice are sorted by date. This is visible when clicking Pay again on a partly paid bill.

Why it matters Helps avoid paying twice by accounting for pending payments in the proposed amount.

How to use it

  1. Create a bill and register a partial payment.
  2. Click Pay again on the bill.
  3. Check the already-paid amount and the reduced proposal.
Odoo 20 · Accounting
Second Pay wizard proposing only the remaining amount after a partial payment
27
ImprovedCommunity

Professional percentage for receipts

Accounting > Vendors > Purchase Receipts

The 'Professional' percentage column, which records how much of an expense is for business use, is available on purchase receipts as well as on vendor bills. It is an optional column on the receipt lines. A purchase receipt is created from the bill form with the Receipt option, and the column is then added through the optional columns menu of the lines, where a percentage is entered for each line.

Why it matters Lets users show the Professional percentage on purchase receipts and vendor bills.

How to use it

  1. Create a purchase receipt using the Receipt option on the bill form.
  2. Show the Professional optional column on the lines.
Odoo 20 · Accounting
Purchase receipt with the Professional percentage column on lines
28
ImprovedCommunity

Purchase order matching

Accounting > Vendors > Bills

Bills can be matched to purchase orders line by line. The Auto-Complete action first links existing bill lines to purchase order lines before adding new lines, and reports how many lines it matched. Each matched line displays a warning when its price or quantity differs from the purchase order, and lines can be unmatched when needed. Users check the links through the optional 'Purchase Order' column on the bill lines.

Why it matters Helps match bills to purchase orders accurately, with warnings on price or quantity differences.

How to use it

  1. Create a bill for a vendor with a confirmed purchase order.
  2. Use Auto-Complete to match the lines.
  3. Show the Purchase Order optional column to check the matching.
Odoo 20 · Accounting
Vendor bill with Auto-Complete purchase document field and PO Matching smart button
29
ImprovedEnterprise

Reminder workflow

Accounting > Customers > Invoices

Payment reminders work per invoice. Each invoice has a 'Send Reminder' button and a 'Last Reminder' date showing when the customer was last reminded. Reminder levels can be set to trigger before or after the due date, so customers can be warned ahead of time as well as once an invoice is overdue. Collection staff use these options from the customer invoice list and invoice forms.

Why it matters Helps track and time payment reminders for each invoice before or after its due date.

How to use it

  1. Go to Accounting > Customers > Invoices.
  2. Open an unpaid invoice.
  3. Click Send Reminder and check the Last Reminder date.
Odoo 20 · Accounting
Invoice Reminders steps with due-day offsets and before/after timing
30
NewCommunity

Reset to Draft action in list views

Accounting > Customers > Invoices > Actions

Journal entries, invoices and bills can be put back to draft in bulk with a 'Reset to Draft' action available from list views. Users select the posted documents in the list and run the action from the Actions menu, without opening each document separately. This is used when several posted documents need to be corrected at the same time, for example a group of customer invoices.

Why it matters Saves time by resetting many journal entries, invoices or bills to draft at once.

How to use it

  1. Go to Accounting > Customers > Invoices.
  2. Select posted invoices.
  3. Open Actions and click Reset to Draft.
Odoo 20 · Accounting
Invoice list: Reset to Draft action, Send Reminder, Download
31
NewEnterprise

Run Auto Reconciliation

Accounting > Bank Matching > gear menu

The bank reconciliation screen includes a 'Run Auto Reconciliation' option in the gear menu next to its title. It launches the automatic matching of bank transactions again whenever the user asks for it. Accountants working in the bank matching screen use it to have the automatic matching applied once more to the transactions that are still open, for example after new invoices or payments have been recorded.

Why it matters Lets accountants rerun automatic bank matching whenever they need.

How to use it

  1. Go to Accounting > Dashboard and open bank reconciliation.
  2. Open the gear menu next to the title.
  3. Click Run Auto Reconciliation.
Odoo 20 · Accounting
Bank Matching actions menu with the Run Auto Reconciliation option
32
ChangedEnterprise

Simplification of asset models

Accounting > Configuration > Chart of Accounts > Fixed Assets account

Depreciation models hold only the calculation settings: method, duration and rate. The related accounts and the default depreciation model are defined on the fixed asset account itself in the chart of accounts. Accountants configure them by opening a Fixed Assets account from the chart of accounts and filling in the accounts and the depreciation model to use for assets recorded on that account.

Why it matters Helps keep asset setup simple, with settings on fixed asset accounts and models for calculation only.

How to use it

  1. Go to Accounting > Configuration > Chart of Accounts.
  2. Open a Fixed Assets account.
  3. Set its accounts and default depreciation model.
Odoo 20 · Accounting
Fixed Assets account form with depreciation model and asset accounts
33
NewEnterprise

Split items on invoices

Invoice > Journal Items smart button > Split

Journal items of an invoice or bill can be split. From the Journal Items smart button of the document, the user selects lines and clicks 'Split'. A line can be divided by quantity, for example to create one asset for each unit, or part of its amount can be moved to another account. Accountants use this to detail or correct postings directly from the document's journal items.

Why it matters Lets accountants split invoice items by quantity or amount, such as per-unit assets.

How to use it

  1. Open a posted invoice or bill.
  2. Click the Journal Items smart button.
  3. Select a line and click Split.
Odoo 20 · Accounting
Invoice journal items list with a line selected and the Split button
34
ChangedCommunity

Taxes in fiscal positions

Accounting > Configuration > Taxes

A tax that is linked to one or more fiscal positions can only be used inside those fiscal positions. If the default tax of a product or account does not belong to the fiscal position of the invoice, Odoo removes it from the line, even when the fiscal position defines no replacement tax. Accountants manage this link on the tax form in the Accounting configuration, under the list of taxes.

Why it matters Helps ensure invoices only apply taxes that belong to their fiscal position.

How to use it

  1. Go to Accounting > Configuration > Taxes.
  2. Open a tax and check its fiscal positions.
Odoo 20 · Accounting
Tax form linked to a fiscal position and the tax it replaces
35
ChangedCommunity

Valuation without Inventory

Invoicing > Configuration > Product Categories > Accounting tab

Basic stock valuation works without the Inventory app. 'Track Inventory' and the on-hand quantity are part of the Product settings, while the valuation method, costing and the Inventory Valuation report belong to Accounting. Companies can therefore follow stock on hand and its accounting value using only Invoicing or Accounting. On such databases, the valuation and costing fields sit on the Accounting tab of product categories.

Why it matters Lets businesses value stock in accounting without installing the Inventory app.

How to use it

  1. Go to Invoicing > Configuration > Product Categories.
  2. Open a category.
  3. Set valuation and costing on the Accounting tab.
Odoo 20 · Accounting
Product category Accounting tab with valuation, costing method and stock accounts
36
ImprovedCommunity

Withholding tax on payment improvements

Accounting > Vendors > Bills

Bills that carry a withholding tax show the amount owed in three parts: Amount Due, Withhold Due and Net Due. In the payment wizard, the user chooses to pay only the withholding, only the payment, or both together. The feature needs the Withholding Tax on Payment module and a purchase tax with the Withhold option ticked, for example a tax of -10% applied on a vendor bill.

Why it matters Helps users see and pay withholding, the payment, or both from bills.

How to use it

  1. Install Withholding Tax on Payment from Apps.
  2. Create a purchase tax with Withhold ticked in Accounting > Configuration > Taxes.
  3. Create and confirm a vendor bill using that tax.
  4. Click Pay and choose withholding, payment or both.
Odoo 20 · Accounting
Vendor bill totals showing Amount Due, Withhold Due and Net Due
37
ImprovedEnterprise

Analytic distribution for write-offs

Accounting > Journal Items > Reconcile

When items being reconciled do not balance and a write-off is required, the Write-Off Entry dialog offers an Analytic Distribution field. The accountant can assign the written-off amount to analytic accounts, such as a project or a department, so the cost is tracked where it belongs. The field appears during manual reconciliation of journal items, for example when an invoice is matched with a smaller credit note on a receivable account.

Why it matters Lets accountants charge reconciliation write-offs to the right projects or departments.

How to use it

  1. Go to Accounting > Accounting > Journal Items.
  2. Filter on a customer and the Receivable account.
  3. Select an invoice and a smaller credit note, then click Reconcile.
  4. Fill in Analytic Distribution in the Write-Off Entry dialog.
38
ImprovedEnterprise

Annual report layout

Accounting > Reporting > Annual Report

PDF exports of annual reports use the company's document layout and colours. The cover, the title pages, the table of contents and the body pages all follow the external layout configured for the company, so the report looks like the company's other official documents. The company document layout has to be set up beforehand. Users create the annual report in Accounting reporting, open it and export it to PDF to get the branded version.

Why it matters Helps companies issue annual report PDFs that match their own document layout and branding.

How to use it

  1. Go to Accounting > Reporting > Annual Report.
  2. Create a report and open it.
  3. Export the report to PDF.
39
ImprovedCommunity + Enterprise

Bank consistency

Accounting > Journal Entries; Accounting > Dashboard > Bank

Bank and cash accounts cannot be used on the lines of manual journal entries; every movement on these accounts must come from bank transactions. This keeps the bank balance in Odoo in line with real statements. In addition, when a bank statement fails validation, for instance because its ending balance is wrong, the matching screen shows detailed error messages that name the specific problem. Accountants meet the restriction when adding a bank account line to a new journal entry.

Why it matters Helps keep bank account balances accurate by blocking manual postings and explaining statement mismatches.

How to use it

  1. Go to Accounting > Journal Entries and click New.
  2. Try adding a line with a bank account to see the block.
  3. Open the bank matching screen from the Accounting Dashboard to see statement errors.
40
ImprovedEnterprise

Bill line prediction

Accounting > Vendors > Bills

When bill lines are created or imported, Odoo looks at the same vendor's earlier bills and proposes values for the product, account, taxes, analytic distribution and vehicle, based on lines with matching descriptions. Values the user has typed in are kept and not overwritten. For example, if a vendor's earlier bill had a line labelled 'Diesel fuel card' on a given account, a new e-invoice from that vendor with the same label gets that account suggested.

Why it matters Speeds up bill entry by proposing product, account, taxes and analytics from the vendor's past bills.

How to use it

  1. Post a vendor bill with a labelled line on a chosen account.
  2. Go to Accounting > Vendors > Bills.
  3. Upload an e-invoice from the same vendor with the same line label.
  4. Check the predicted account and other values.
41
ImprovedCommunity

Exchange entries

Accounting > Customers > Invoices

On an invoice paid in a foreign currency, exchange gains and losses are shown as a single combined line with the total amount. The line sits in the payments area under the invoice totals. An info icon next to it reveals how the amount was calculated, so the accountant can check the details when needed. This applies to customer invoices whose payments are in a currency other than the company's.

Why it matters Helps accountants read exchange gains and losses as one line per invoice, with details on demand.

How to use it

  1. Go to Accounting > Customers > Invoices.
  2. Open an invoice with foreign currency payments.
  3. Check the exchange line below the totals and click its info icon.
42
ImprovedEnterprise

Intercompany purchase order matching

Accounting > Vendors > Bills

When inter-company rules synchronize invoices and purchase orders between two companies, the vendor bill created automatically in the buying company is matched to its purchase order. The bill shows the PO matching percentage, so the buyer sees how far it corresponds to what was ordered. This works in the flow where one company confirms a purchase order to the other, which then confirms, invoices and posts the generated sales order.

Why it matters Saves manual matching by linking inter-company vendor bills to their originating purchase order lines.

How to use it

  1. Set up inter-company sales orders and bills between two companies.
  2. Confirm a purchase order to the other company.
  3. Confirm, invoice and post the generated sales order.
  4. Open the generated bill in the buying company.
43
NewCommunity

Inventory valuation

Accounting > Reporting > Inventory Valuation

With perpetual inventory valuation, the Inventory Valuation closing report contains an Accruals section. It lists Bills to Receive, Billed Not Received, Invoices to be Issued and Invoiced Not Delivered, which show where goods and documents are out of step. A Generate Entries function books the accrual entries straight from the report. The report can be opened from Inventory or from Accounting for product categories that use perpetual valuation.

Why it matters Lets accountants book inventory accruals directly from the Inventory Valuation report.

How to use it

  1. Create a product category with Perpetual valuation.
  2. Confirm and receive a purchase order without billing it.
  3. Open Inventory Valuation from Inventory or Accounting.
  4. Review the Accruals section and use Generate Entries.
44
ImprovedEnterprise

Reconciliation with multiple accounts

Accounting > Bank Matching > Set Account

In bank reconciliation, 'Set Account' opens a list in which several accounts can be ticked, each with its own amount. One bank transaction can thus be split over multiple accounts in a single action, without creating the counterpart lines one by one. Accountants use it when a single bank movement has to be spread over several accounts, directly from the bank reconciliation screen of the dashboard.

Why it matters Lets accountants split one bank transaction across several accounts.

How to use it

  1. Go to Accounting > Dashboard and open bank reconciliation.
  2. Click Set Account on a transaction.
  3. Tick the accounts and type an amount for each.

16 new in Odoo 20

Online Payments

16 features
45
ImprovedCommunity

ACH payments

Invoicing > Configuration > Payment Methods > ACH Direct Debit > Configuration

ACH Direct Debit, the US bank debit method, can be saved as a payment token. Customers can then reuse their bank account for later payments and for subscriptions without entering the details again. The option is set on the ACH Direct Debit payment method, in its Configuration tab, which is reached through the payment methods list in developer mode. It serves US businesses collecting recurring payments by bank debit.

Why it matters Lets customers save ACH bank details for reuse, such as subscription payments.

How to use it

  1. Activate developer mode.
  2. Go to Invoicing > Configuration > Payment Methods > ACH Direct Debit.
  3. Open the Configuration tab.
Odoo 20 · Online Payments
ACH Direct Debit payment method Configuration tab with Tokenization enabled
46
ImprovedCommunity

Authorize.net

Invoicing > Configuration > Payment Providers > Authorize.net > Configuration

Authorize.net can notify Odoo through a webhook when a payment is confirmed at a later time, for example an eCheck that settles a few days after the order. To set it up, the Signature Key is entered in the provider's Configuration tab and the webhook is created from there. Merchants using Authorize.net for delayed payment methods rely on it. The webhook is created from the same tab.

Why it matters Helps confirm late-settling Authorize.net payments, such as eChecks, automatically.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers > Authorize.net.
  2. In the Configuration tab, enter the Signature Key.
  3. Create the webhook.
Odoo 20 · Online Payments
Authorize.net Configuration tab with the API Signature Key used for webhooks
47
NewCommunity

ECPay

Invoicing > Configuration > Payment Providers

ECPay is a payment provider for Taiwan included in Odoo 20. It is listed among the payment providers and can be installed from that list. It offers local Taiwanese payment methods to customers paying online. Businesses selling in Taiwan can use it to accept online payments through these local methods. Like other providers, ECPay is set up from Invoicing > Configuration > Payment Providers.

Why it matters Lets businesses in Taiwan accept online payments through ECPay.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers.
  2. Find ECPay in the list and install it.
Odoo 20 · Online Payments
Payment Providers list with the new ECPay provider for Taiwan
48
ImprovedCommunity

Mollie

Invoicing > Configuration > Payment Providers > Mollie > Payment Methods

The Mollie provider lists Apple Pay, Google Pay, Klarna, BLIK, Swish, in3, Multibanco and MB WAY among its payment methods. Mollie can also save payment details as tokens, so the same card can be charged again later, for example for subscription renewals. The methods are managed in the Payment Methods tab of the Mollie provider. Merchants using Mollie can offer these methods to their customers.

Why it matters Lets businesses offer more Mollie payment methods and charge subscriptions automatically.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers > Mollie.
  2. Open the Payment Methods tab.
Odoo 20 · Online Payments
Mollie Payment Methods tab with BLIK, in3, Klarna, MB WAY, Multibanco, Swish
49
NewCommunity

Pay on Invoice provider

Invoicing > Configuration > Payment Providers

Pay on Invoice is a custom payment provider. When a customer selects it at checkout, the order is confirmed immediately and the customer pays later, once the invoice is received. It is installed from the payment providers list. It suits businesses that let customers order online and settle the amount when invoiced. The provider is reached from Invoicing > Configuration > Payment Providers.

Why it matters Lets customers confirm orders now and pay later upon invoice.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers.
  2. Open Pay on Invoice and set it up.
Odoo 20 · Online Payments
Pay on Invoice payment provider form letting customers pay later by invoice
50
ChangedCommunity

Payment provider views

Invoicing > Configuration > Payment Providers > Stripe

The payment provider form uses a Published button, a Live checkbox and an Archive action to control a provider's status, in place of a single State field. Smart buttons show the number of transactions with the processed amount, and the number of saved tokens. Settings are grouped in the Payment Methods, Configuration, Restrictions and Messages tabs. Administrators configuring providers such as Stripe work in this form.

Why it matters Makes setting up and publishing payment providers easier with simpler forms.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers.
  2. Open a provider, for example Stripe.
Odoo 20 · Online Payments
Simplified Stripe provider form with Published smart button and Live checkbox
51
ImprovedCommunity

PayPal

Invoicing > Configuration > Payment Providers > PayPal

PayPal works as a full payment provider in Odoo 20. Besides the PayPal wallet, it accepts cards and local methods including iDEAL, Bancontact, Venmo, Pay Later, Trustly, BLIK, P24, EPS, MyBank and Multibanco. It can save payment details as tokens for later charges. The merchant account is linked with a Connect button using OAuth, without copying API keys by hand.

Why it matters Lets businesses accept cards and other methods through PayPal and save payment details.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers > PayPal.
  2. Click Connect to link the merchant account.
Odoo 20 · Online Payments
PayPal provider with Connect button for OAuth onboarding and card methods
52
NewCommunity

PayU

Invoicing > Configuration > Payment Providers

PayU, a payment gateway used in India, is available as a payment provider in Odoo 20. It can be installed from the list of payment providers and then configured like the other providers. Businesses selling to customers in India can use it to collect online payments through this gateway. The provider is listed under Invoicing > Configuration > Payment Providers, alongside the other gateways.

Why it matters Lets businesses in India accept online payments through PayU.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers.
  2. Find PayU in the list and install it.
Odoo 20 · Online Payments
Payment Providers list with the PayU provider for India
53
NewCommunity

Pricelist and amount restriction

Invoicing > Configuration > Payment Providers > Stripe > Restrictions

The Restrictions tab of a payment provider includes Pricelists, Minimum Amount and Maximum Amount fields. The provider is offered to a customer only when the customer's pricelist is one of those listed and the payment amount falls within the set range. Administrators can use this to show certain providers only to some customer groups or for certain order sizes. Both conditions must be met.

Why it matters Lets businesses offer payment providers only for certain pricelists or order amounts.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers and open a provider.
  2. Open the Restrictions tab.
  3. Set Pricelists, Minimum Amount and Maximum Amount.
Odoo 20 · Online Payments
Stripe Restrictions tab with Pricelists, Minimum Amount and Maximum Amount
54
ImprovedCommunity

Redsys

Invoicing > Configuration > Payment Providers > Redsys > Configuration

Redsys, the Spanish payment provider, can save card details as tokens. Later payments, such as subscription renewals, can then be charged without the customer having to take part. The setting is found in the Configuration tab of the Redsys provider. Merchants using Redsys can rely on saved cards to collect repeat payments. The provider is configured from Invoicing > Configuration > Payment Providers > Redsys.

Why it matters Lets businesses save Redsys payment methods for recurring charges.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers > Redsys.
  2. Open the Configuration tab.
Odoo 20 · Online Payments
Redsys Configuration tab with Allow Saving Payment Methods for tokenization
55
RemovedCommunity

SOFORT

Invoicing > Configuration > Payment Methods

The SOFORT payment method is not part of Odoo 20. It is not defined for Adyen, Buckaroo or any other provider, so a search for it in the payment methods list returns no results. The list of available payment methods is under Invoicing configuration. No other provider defines the method, so it cannot be activated for any provider in Odoo 20.

Why it matters Switch customers using SOFORT to another available payment method.

How to use it

  1. Go to Invoicing > Configuration > Payment Methods.
  2. Search for Sofort to confirm it is not listed.
Odoo 20 · Online Payments
Payment Methods search for Sofort returning no results in Odoo 20
56
ImprovedCommunity

Stripe

Invoicing > Configuration > Payment Providers > Stripe > Payment Methods

The Stripe provider offers Alma, Satispay, Swish and Canadian pre-authorized (ACSS) debit among its payment methods. Apple Pay and Google Pay are handled as card brands and are shown next to Card. These methods are managed in the Payment Methods tab of the Stripe provider. Merchants using Stripe can offer these options to customers paying online. These methods appear in the tab's list.

Why it matters Lets businesses offer more payment methods through Stripe, such as Apple Pay and Swish.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers > Stripe.
  2. Open the Payment Methods tab.
Odoo 20 · Online Payments
Stripe Payment Methods tab listing newly supported ACSS Debit and Alma
57
NewCommunity

Toss Payments

Invoicing > Configuration > Payment Providers

Toss Payments, an online payment service from South Korea, is available as a payment provider in Odoo 20. It can be installed from the list of payment providers. Businesses selling to customers in South Korea can use it to accept online payments through this service. Toss Payments appears in Invoicing > Configuration > Payment Providers, where it is installed and configured like other providers.

Why it matters Lets businesses in South Korea accept online payments through Toss Payments.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers.
  2. Find Toss Payments in the list and install it.
Odoo 20 · Online Payments
Payment Providers list with Toss Payments for South Korea
58
ImprovedCommunity

Wero

Invoicing > Configuration > Payment Providers > Buckaroo/Worldline > Payment Methods

Wero, the European wallet, is available as a payment method through the Buckaroo and Worldline providers. The method is added to both providers and mapped to each provider's own payment code. It is managed in the Payment Methods tab of either provider. Merchants using Buckaroo or Worldline can let European customers pay with Wero. Each provider uses its own code for the method.

Why it matters Lets customers pay with the Wero wallet through Buckaroo or Worldline.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers.
  2. Open Buckaroo or Worldline.
  3. Open the Payment Methods tab.
Odoo 20 · Online Payments
Worldline Payment Methods tab listing the new Wero wallet
59
NewCommunity

Wire transfers

Settings > Technical > Scheduled Actions

Pending wire transfer payments are confirmed automatically. A scheduled action, 'Wire Transfer: Confirm paid transactions', looks for bank statement lines whose reference, partner, currency and amount match a pending transaction and marks that payment as done. This can also confirm the linked sales order. The scheduled action can be viewed in the technical settings with developer mode on. No manual matching is required.

Why it matters Saves time by confirming wire transfer payments automatically against bank transactions.

How to use it

  1. Activate developer mode.
  2. Go to Settings > Technical > Scheduled Actions.
  3. Open Wire Transfer: Confirm paid transactions.
Odoo 20 · Online Payments
Scheduled action confirming pending wire transfers against bank transactions
60

Xendit

Xendit accepts payments in Malaysia, Thailand and Vietnam. MYR, THB and VND are among its supported currencies, and local payment methods such as FPX are available. The settings are found on the Xendit payment provider. Businesses selling in these markets can use Xendit to collect online payments in the local currency. The provider settings are under Invoicing > Configuration > Payment Providers > Xendit.

Why it matters Lets businesses accept Xendit payments in Malaysia, Thailand and Vietnam.

How to use it

  1. Go to Invoicing > Configuration > Payment Providers.
  2. Open Xendit.
Odoo 20 · Online Payments
Xendit Restrictions tab with Vietnamese, Malaysian and Thai currencies supported

3 new in Odoo 20

Expenses

3 features
61
ImprovedCommunity

Consolidated expenses report

Expenses > My Expenses > select multiple > Print

In Odoo 20 several expenses can be selected in the expenses list and printed together. Odoo produces one report in which all selected lines appear in a single table with one total, followed by the receipts. The lines are grouped by employee and payment mode with totals. Employees and managers use it to hand over or archive a set of expenses as one document rather than one page per expense.

Why it matters Lets managers print several expenses in one report grouped by employee and payment mode with totals.

How to use it

  1. Go to Expenses > My Expenses.
  2. Select several expenses.
  3. Click Print.
Odoo 20 · Expenses
My Expenses list with several expenses selected and the Print button
62
NewCommunity

Expense limits per job position

Expenses > Configuration > Expense Categories > Limits

In Odoo 20 each expense category has a Limits list, which sets a maximum amount per job position or one default limit for everyone. When an expense goes above its limit, the employee sees a warning. The approver sees the limit along with a Cap Reimbursement to Policy button, which splits off the part above the limit so only the allowed amount is reimbursed.

Why it matters Helps control spending by flagging expenses above each job position's limit and letting approvers cap them.

How to use it

  1. Go to Expenses > Configuration > Expense Categories.
  2. Open a category and add a limit for a job position.
  3. Submit an expense above it and open it as approver.
Odoo 20 · Expenses
Expense category: limits per job position
63
ImprovedEnterprise

Salary rules for expense products

Expenses > Configuration > Expense Categories > Payroll Group

When Payroll is installed in Odoo 20, an expense category has a Salary Rules field in its Payroll group. When an expense is reimbursed through a payslip, Odoo uses the rule set on the expense's category for the employee's salary structure. This lets different kinds of expenses be computed correctly on payslips. Payroll and expense managers set the rule on each category that is reimbursed through payroll.

Why it matters Ensures expense reimbursements are computed correctly on payslips by linking categories to salary rules.

How to use it

  1. Go to Expenses > Configuration > Expense Categories.
  2. Open a category such as Meals.
  3. In the Payroll group, set Salary Rules.
Odoo 20 · Expenses
Expense category form with the new Payroll Salary Rules field

in depth

The Accounting & Finance changes that matter most

Accounting that matches, predicts and pays

Configurable bill and invoice matching rules with tolerance and order; bill line prediction learned from your history and labels; every bank-affecting entry must originate from a bank transaction; double-payment detection; paying bills directly from Odoo through PISP (payment initiation services); parent accounts replacing account groups; a cumulative translation adjustment line for foreign currency.

Month-end moves from matching lines by hand to reviewing exceptions. For most mid-market finance teams this cluster is the most valuable part of the release.

Odoo Accounting →

keep exploring

Odoo 20 in other business areas

Odoo 20 Accounting & Finance questions

  • How many new Accounting & Finance features are in Odoo 20?

    63 across 3 apps, 10% of the 637 new features in the release by TechUltra's count. By app: Accounting (44), Online Payments (16), Expenses (3).

  • What are the biggest Accounting & Finance changes in Odoo 20?

    In Accounting, parent accounts: lets accountants structure their chart of accounts with parent and child accounts, with optional codes. In Online Payments, wire transfers: saves time by confirming wire transfer payments automatically against bank transactions.

  • How do we get the Odoo 20 Accounting & Finance features?

    If you run Odoo 16, 17, 18 or 19, they arrive with the upgrade to Odoo 20. A free written assessment lists your modules, the risks in your build and a fixed price. If you are new to Odoo, start directly on Odoo 20 with a fixed-price implementation, priced after a paid discovery week.

Sources: features, steps and the 55 screenshots are from TechUltra's Odoo 20 feature guide. Counted by TechUltra's Odoo team from the Odoo 20 source code and a live Odoo 20 database; industry packages are based on Odoo's official release notes. Localization changes are not included. The in-depth notes are from Odoo's Odoo 20 release notes.

ready when you are

Planning your move to Odoo 20?

Book a free 30-minute call with a TechUltra senior consultant for a process review or a clear upgrade path from Odoo 16, 17, 18 or 19.