OdooWiki OCA HUB

Reconcile sales orders

account_reconcile_sale_order folder_open OCA/account-reconcile open_in_new
Accounting License: AGPL-3

This module allows a workflow where you don't invoice sales orders until you've received a payment.

That's useful ie for webshops with non-instant payment like wire transfer, where you might have a lot of customers not doing the payment after all, which results in extra work for cancellation of the invoices/orders involved.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Lets you match incoming bank payments to sales orders and invoice them only when the money is received, avoiding invoices for customers who never pay.

This module adds a new way to reconcile bank statement lines against sales orders instead of invoices. On a bank statement line, a new "Sales orders" tab appears where you can pick a sales order to reconcile against. When you confirm the reconciliation, the module automatically confirms the sales order if it is still a quotation, creates the invoice, posts it, and links the receivable lines so the payment is matched.

It also adds a new reconciliation model rule type called "Rule to match sales orders". In the reconciliation model configuration you can restrict matching to specific payment methods, and optionally match by splitting the statement line label into words (tokens) with a minimum word length. The matching looks for sales orders that are not done or cancelled, belong to the same partner, have the same total amount, and are not yet invoiced.

A dedicated sales order list view is used inside the reconciliation widget, where orders already added to the reconciliation are highlighted. The module touches account.bank.statement.line, account.reconcile.model and sale.order.

Depends on

Models and fields (2)
  • account.reconcile.model · extends an existing modelrule_type, sale_order_matching_token_match (Match tokens), sale_order_matching_token_length (Minimum token length), sale_order_matching_payment_method_ids (Payment methods)
  • account.bank.statement.line · extends an existing modeladd_sale_order_id

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/account-reconcile.

terminal Installation and usage

OCA documentation · Odoo 18.0

To configure this module, you need to:

  • Go to Invoicing/Configuration/Reconciliation Models
  • Create a model of type Rule to match sales orders

To use this module, you need to:

  • Have a payment on a bank statement matching the amount of an invoiceable sales order
  • Enter the reconciliation screen
  • Observe that the sales order is offered as reconciliation counterpart
  • You can manually select and deselect sales orders in the sales orders tab of the reconciliation widget

Note the reconciliation only works if fully invoicing the sales order yields an invoice over the order's total amount. Usually this means that all products in the sales order must have invoicing policy Ordered quantities.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.