This module extends the functionnality of the Odoo Point of Sale to allow the cashier to change the payments of a PoS order.
This feature is usefull when the user realized that he did a mistake, just after he marked the order as paid, or during the close of the session, Only if entries has not been generated.
auto_awesome What this module does
AI-generated from the code · Odoo 17.0Lets a cashier correct the payment lines of a paid Point of Sale order while its session is still open, either by updating the payments directly or by refunding and re-selling the order.
This module adds a way to fix a mistake made at the Point of Sale counter: when an order has already been marked as paid (or invoiced) but the session is still open, the cashier can replace its payment lines.
On the Point of Sale order form a new "Change Payments" button appears next to the refund button, but only for orders whose state is paid or invoiced. It opens a wizard showing the old payment lines (payment method and amount) and an editable list of new payment lines, where the payment method is limited to the methods available in that session. The total of the new lines must exactly equal the order total, otherwise Odoo refuses to continue and asks the user to correct the amounts.
How the correction is applied depends on a "Payment Change Policy" setting found in the Point of Sale configuration: "Refund and Resale" (the default) refunds the original order and creates a new order with the correct payments, while "Update Payments" simply replaces the payment lines on the existing order. A note is added to the affected orders recording who changed the payments and when.
Changing payments is blocked if the related session is already closed. Also, when the French certification module is installed, the "Update Payments" option is forbidden for companies with unalterable accounting.
Depends on
Models and fields (6)
- pos.order · extends an existing model
- pos.config · extends an existing modelpayment_change_policy
- res.config.settings · extends an existing modelpos_payment_change_policy
- pos.payment.change.wizard · new modelorder_id (Order), amount_total (Total), new_line_ids (New Payment Lines), old_line_ids (Old Payment Lines)
- pos.payment.change.wizard.new.line · new modelamount, wizard_id, company_currency_id (Company Currency), new_payment_method_id (Payment Method), available_payment_method_ids
- pos.payment.change.wizard.old.line · new modelamount, wizard_id, company_currency_id (Company Currency), old_payment_method_id (Payment Method)
Text generated by AI (DeepSeek) from reading the Odoo 17.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: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/pos.
terminal Installation and usage
OCA documentation · Odoo 17.0Configuration
Source · Odoo 17.0- Go to Point of Sale > Configuration > Settings
- Edit your point of sale, and select a value for the field 'Payment Change Policy'.
Two options are available:
- 'Refund and Resale': Odoo will refund the current Pos Order to cancel it, and create a new PoS Order with the correct payment lines
- 'Update Payments': Odoo will change payment lines.
Note In some countries the 'Update Payments' Option is not allowed by law, because orders history shouldn't not be altered.
For that purpose, a constrains is present to check the value of this field. If the module l10n_fr_certification is installed and if the current company has an inalterable accounting, it will not be possible to select the value 'Update Payments'.
Usage
Source · Odoo 17.0- Go to a PoS Order
- Click on the button 'Change Payments'
- In the pop up wizard, select the real payment(s) that have been used to pay the order
- Then click on the button 'Change Payments'
Note
If the option 'Refund and Resale' is selected, changing the payments will display the three PoS orders. the oringal one, the refund one, and the new one.
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.