Skip to content

Reconcile bank transfers with sales orders

Quick summary: Match an incoming bank transfer to a sales order. Odoo can then confirm the order, create and post its invoice, and reconcile the transaction.


Open order reconciliation in Odoo

Your Odoo address

Enter the base address of your Odoo instance. It will be stored only in this browser.

The documentation does not receive your address, username, or password.

Compare the transaction amount with the total of the selected orders and agree what should happen to any difference before reconciling.

  • Exact payment — MATCH: the invoice is fully settled.
  • Overpayment with a partial return — MATCH & REFUND: the invoice is settled and an outbound payment is created for the difference; you still have to send it to the customer.
  • Overpayment with no return: create the invoice manually and use bank reconciliation. The invoice is settled and the approved difference is posted to the selected account.
  • Underpayment with a write-off: create the invoice manually and use bank reconciliation. The invoice is fully settled and the approved difference is written off to the selected account.
  • Underpayment with an open balance — MATCH for one order: the invoice remains partially paid with an open balance.
  • Payment received by mistake — FULL REFUND: no sales order is matched; Odoo records the receipt and creates an outbound payment for the full amount.

Skip this section for a mistaken payment that will be refunded in full. Use the Full refund tab below directly from the transaction list.

  1. Open Sales > Reconciliation. The list contains unreconciled incoming transactions from bank and cash journals.
  2. Check the date, journal, reference, payer, bank account, and amount. If the transaction is unrelated to sales, turn off Sale Relevant to hide it from the default view.
  3. Click MATCH on the transaction. Odoo opens sales orders that are not yet paid and uses available transaction details as search filters.
  4. For an overpayment or underpayment, remove the preselected Total Amount filter if it hides orders whose totals differ from the transaction.
  5. Verify the customer, order, currency, and total. Do not accept an automatic suggestion solely because its reference or amount is similar.

For one order, click MATCH on its row. If the transfer exactly settles several orders, select them and use MATCH above the list. The action can confirm unconfirmed orders, create and post their invoices, reconcile the complete transaction, and send the invoices to the customer.

Before clicking, check the order, invoice details, and customer email address. When it finishes, open the invoice and verify that no amount remains and the transaction has left the reconciliation list.

If you start from Accounting > Bank Matching, Odoo also provides a native sales-order suggestion after you set the partner. That workflow creates the invoice from the bank transaction; the Implex workflow on this page handles the order, invoice, reconciliation, and sending in one action.

For manual differences, see the bank reconciliation guide and the official Odoo 19 bank reconciliation documentation.