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.0Lets 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-03Confirmation 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.0Configuration
Source · Odoo 18.0To configure this module, you need to:
- Go to Invoicing/Configuration/Reconciliation Models
- Create a model of type Rule to match sales orders
Usage
Source · Odoo 18.0To 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.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.