This module implements customer receivables returns and allows to send related reconciled account move lines back to a state where the debt is still open, and letting history of it.
This module can be extended adding importers that automatically fills the full returned payment record.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Record customer payment returns (bounced cheques, rejected transfers) and automatically reopen the related invoices so the debt is still owed. Track the return history and see which invoices have a returned payment.
This module adds a new "Customer Payment Returns" screen under the Accounting > Receivables menu. There you create a return document, choose the bank journal and return date, and add lines for each returned payment.
- On each line you can enter a reference, a return reason, the customer, the returned amount and optional bank charges (with a charges account and charges partner). A "Match" button tries to find the original payment or invoice automatically from the reference.
- When you confirm a return, Odoo creates and posts a journal entry, undoes the original reconciliation and reopens the related invoices, so they show again as unpaid. The return can later be cancelled, which reverses the entry and restores the previous situation.
- Invoices whose payment was returned are flagged with a "Payment returned" marker, visible on the invoice form and filterable in the invoice list. The payment information panel then shows "Returned on" instead of "Paid on".
- On bank journals you can set a default charges account and default charges partner, which are proposed automatically when you enter bank charges on a return line.
- Return reasons are a small reference list with a code and a translated name.
A company rule limits returns to the allowed companies, and access is granted to the invoicing/accounting group.
Depends on
Required by other modules
Menus it adds
Models and fields (7)
- account.move · extends an existing modelreturned_payment (Payment returned)
- payment.return · new modeldate (Return date), name (Reference), state, move_id (Reference to the created journal entry), line_ids, company_id (Company), journal_id (Bank journal), total_amount, payment_method_line_id
- account.journal · extends an existing modeldefault_expense_account_id (Default Charges Account), default_expense_partner_id (Default Charges Partner)
- account.move.line · extends an existing modelpartial_reconcile_returned_ids
- payment.return.line · new modeldate (Return date), amount, concept, reason_id (Return reason), reference, return_id (Payment return), partner_id (Customer), partner_name, move_line_ids (Payment Reference), expense_amount (Charges Amount), expense_account (Charges Account), expense_partner_id (Charges Partner), reason_additional_information (Return reason (info))
- payment.return.reason · new modelcode, name (Reason), display_name
- account.partial.reconcile · extends an existing modelorigin_returned_move_ids
Text generated by AI (DeepSeek) from reading the Odoo 19.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: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/account-payment.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0- Go to Invoicing \> Customers \> Customer Payment Returns, and create a new record, register on each line a paid (reconciled) receivable journal item, and input the amount that is going to be returned. Another option to fill info is setting references and click match button to find matches with invoices, move lines or moves. This functionality is extended by other modules as account_payment_return_import_sepa_pain
- It's possible to add bank charges amount on each line.
- Next, press button "Confirm" to create a new move line that removes the balance from the bank journal and reconcile items together to show payment history through it.
- After confirmation you can access from the payment form view to the move created.
No verified information in OCA: Installation, Configuration.
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.