Account Payment Terms Discount
This module allows to set special discount for customer within periods of discount days.
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Configure early payment discounts on payment terms and let Odoo automatically calculate and apply the discount when registering a customer or vendor payment.
This module adds early payment discount support to payment terms. On a payment term you can tick 'Early Payment Discount' and choose whether to exclude shipping charges and taxes from the discount base. Each payment term line can store a discount percentage, discount days, and the accounts used to post the discount on sales and purchases.
On invoices, Odoo shows a 'Discount Details' group with the possible discount amount and the last date to take it. The invoice list also shows these two columns. A 'Discount taken' field appears once the invoice is posted and a discount is available.
When you register a payment, the wizard automatically fills the discount amount and, if you pay within the discount period, proposes to reconcile the difference against the configured discount account with the label 'Payment Discount'. After the payment is created, the invoice records the discount taken and clears the possible discount.
Products can be flagged to exclude their shipping amount from the discount base. The module works on account.move, account.payment.term, account.payment.term.line, product.template and the payment registration wizard.
Depends on
Required by other modules
Models and fields (5)
- account.move · extends an existing modeldiscount_amt (Discount Possible), discount_date, discount_taken (Discount taken), shipping_lines_total, check_payment_discount
- product.template · extends an existing modelis_exclude_shipping_amount (Exclude Shipping Amount)
- account.payment.term · extends an existing modelis_discount (Early Payment Discount), is_exclude_shipping_lines (Exclude Shipping from Discount), is_exclude_taxes_discount (Exclude Taxes from Discount)
- account.payment.register · extends an existing modelinvoice_id (Invoice), discount_amt, amount_helper (Amount helper)
- account.payment.term.line · extends an existing modelis_discount (Early Payment Discount), discount_income_account_id (Discount on Purchases Account), discount_expense_account_id (Discount on Sales Account)
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: 2 confirmed, 7 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/account-payment.
terminal Installation and usage
OCA documentation · Odoo 16.0Configuration
Source · Odoo 16.0- Go to Accounting > Configuration > Management > Payment Terms
- Create payment terms. Make sure the is cash discount box is checked.
- Add landed costs by selecting the landed cost product and entering the percentage
- Add terms lines and provide discount percentage, discount days, expense and income account.
Usage
Source · Odoo 16.0- Create customer invoice and validate it.
- Apply register payment and set payment date which come eariler to discount days. For example: customer invoice amount is $1,000 and special discount(5%) available if payment done within 10 days. If customer will pay within 10 days, then register payment amount will be $950. System will make it as paid invoice. Because $50 is 5% discount of $1000 (customer invoice total amount.) If customer will pay $900 then invoice will be stay in open state. Because $100 is greater than of $50.
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.