Payment Register with Multiple Deduction
This module extend invoice(s)'s register payment feature, from "Mark invoice as fully paid" with a single writeoff amount, to "Mark invoice as fully paid (multi deduct)" which allow multiple deduction amounts.
Note: We use the word "Deduction", as the diff amount can be anything not only to writeoff.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Adds a new option in the Register Payment wizard to mark an invoice as fully paid using several deduction lines instead of a single write-off amount. Each deduction can have its own account, label, amount and analytic distribution.
When you register a payment on an invoice, the wizard now offers an extra choice in the payment difference handling field: "Mark invoice as fully paid (multi deduct)". Selecting it replaces the single write-off account with a table of deductions.
In that table you can add as many deduction lines as needed. Each line has a label, an amount, an optional account, and an analytic distribution. A line can also be flagged as "Open" to keep it open instead of closing it against the invoice; when you tick Open, the account and label are cleared automatically.
A "Remainings" field shows how much of the payment difference is still not covered by the deductions. The module blocks saving if the total of the deduction lines does not exactly match the payment difference, so the invoice is always fully reconciled.
When the payment is created, each deduction line becomes a write-off line on the payment, with the correct sign depending on whether the payment is incoming or outgoing, and with the analytic distribution you entered. The module also adds an analytic distribution field to the standard single write-off option, and marks generated write-off lines so they can be identified.
It touches the payment register wizard, invoice lines, and adds a new deduction model. Access is given to users with billing rights.
Depends on
Required by other modules
Models and fields (3)
- account.move.line · extends an existing modelis_writeoff
- account.payment.register · new modeldeduction_ids (Deductions), deduct_residual (Remainings), payment_difference_handling, deduct_analytic_distribution
- account.payment.deduction · new modelname (Label), amount (Deduction Amount), is_open (Open), account_id, company_id, currency_id, register_payment_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: 7 confirmed, 2 with no information of 9 versions.
Sources · Odoo 13.0
Confirmed on 2026-11-03 in branch 13.0 of OCA/account-payment.
terminal Installation and usage
OCA documentation · Odoo 18.0Usage
Source · Odoo 18.0- Select 1 invoice, either on form view or tree view
- Click to Register Payment, a payment wizard will open
- Reduce the amount to pay and payment difference amount will appear
- Choose "Mark invoice as fully paid (multi deduct)", and a new deduction table will appear
- Add deduction amount, make sure total deduction amount is equal to the payment difference
- Click validate to finish the payment
Note: this feature only works for 1 invoice payment
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.