This module improves the 'Change' feature in Odoo Point of Sale, when a customer pays more that the amount of the PoS Order:
By default, a "Change" line is added on the receipt:
from an accounting point of view, it adds a second payment line in 'Cash' method with a negative amount corresponding to the surplus:
In some countries and for some payment methods, this is not the right way to proceed.
This module adds extra "Change Policy" option to manage differently the giving of change.
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Lets you choose, per payment method in Point of Sale, how change is handled when a customer pays more than the order total: either give cash back as usual, or record the surplus as an extra product line (an exceptional profit).
When a customer pays more than the amount due in the Point of Sale, Odoo normally gives the difference back as cash. This module adds a "Change Policy" setting on each payment method so you can decide what happens instead.
On the payment method form (Point of Sale configuration), two new fields appear after the journal: "Change Policy" with the choices "Cash" (the default) and "Exceptional Profit Product", and "Change Product". If you pick "Exceptional Profit Product", the "Change Product" field becomes mandatory and Odoo refuses to save the payment method without it. The product list is limited to services that are available in the Point of Sale.
During payment, if there is change and the payment method uses the "Exceptional Profit Product" policy, the system automatically adds one line of the chosen product to the order, priced at the change amount, before the order is validated. If that product is not available in the current Point of Sale, an error popup asks you to make it available and reload the session.
The payment screen label also changes: it shows "Change" for the cash policy and "Customer Loss" for the exceptional profit policy. The setting is loaded into the Point of Sale session together with the payment methods.
Depends on
Models and fields (1)
- pos.payment.method · extends an existing modelchange_policy, change_product_id
Text generated by AI (DeepSeek) from reading the Odoo 16.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 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/pos.
terminal Installation and usage
OCA documentation · Odoo 16.0Configuration
Source · Odoo 16.0Exceptional Profit Product
- Create a dedicated 'No change' Product. The type of the product should be 'Service' and the product should available in PoS. Generally, no VAT is applied on such product.
- Go to the payment method form.
- set 'Change Option' as 'Exceptional Profit Product'
- set the new product in the 'Change Product field'
Usage
Source · Odoo 16.0Exceptional Profit Product
A dedicated warning will be displayed:
By default, a new sale order line is added on the receipt:
So, from an accounting point of view, it adds a new line that will impact a profit and loss account:
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.