Skip to Content
Menu
This question has been flagged
3 Replies
8480 Views

Hi

We give our customers a 2% cash discount if the invoice is paid within 15 days.

I configure payment condition 98 in 15 days and balance 30 days.

But when I introduce the paiment value with 2%, odoo show me the total without.  Is there a tutorial for that?


Thanks

Avatar
Discard

Hello,

thanks for answer.  I understand the problem, it's difficult for seller to understand that 2% cash discount is considerated like a charge.  I configure like that.  But I would like to show on quotation the price with 2% (as a note or something like that), it will be easier for our client to make paiement.  In the future, add in invoices table a column to show if 2% are apply (easier for users).  Maybe you know how to make that.



@Dave,

I followed that like.  Now my question is how to show cash discount on quotation and invoice.  And why not show the value of discount in list of invoices


Thanks

You can customize the Quotation report - it is an XML based view that you can inherit and override. This way you can look at the payment term and add an additional field below the total to show the 98% of the total due IF PAID EARLY. In the Invoice Tree View, you could add the payment term to show that some Invoices may be paid with reduced balance.

Best Answer

Here is the link to Odoo docs where this process is described - https://www.odoo.com/documentation/user/10.0/accounting/receivables/customer_invoices/cash_discounts.html

To avoid possible link rot, I copied the information over:

Cash discounts are an incentive (usually a small percentage) that you offer to customers in return for paying a bill owed before the scheduled due date. If used properly, cash discounts improve the Days Sales Outstanding aspect of a business's cash conversion cycle.

For example, a typical cash discount would be: you offer a 2% discount on an invoice due in 30 days if the customer were to pay within the first 5 days of receiving the invoice.

Configuration

Payment terms

In order to manage cash discounts, we will use the payment terms concept of Odoo (From the Accounting module, go to Configuration ‣ Management ‣ Payment terms ‣ Create).

Let's start with the above example: a 2% discount on an invoice due in 30 days if the customer were to pay within the first 5 days.

A typical payment term of 30 days would have only one installment: balance in 30 days. But, in order to configure the cash discount, you can configure the payment term with two installments:

  • 98% within 5 days

  • balance within 30 days



To make it clear that it's not a payment term but a cash discount, don't forget to set a clear description that will appear on the invoice: Invoice is due within 30 days, but you can benefit from a 2% cash discount if you pay within 5 days.

Bank reconciliation model

In order to speed up the bank reconciliation process, we can create a model of entry for all cash discounts. To do that, from the Accounting application dashboard, click on the "More" link on the bank and choose the option "Reconciliation Models".



Create a new model for cash discounts as follow:

  • Button Label: Cash Discount

  • Account: Cash Discount (according to your country)

  • Amount Type: PercentageAmount: 100%

  • Taxes: depending on your country, you may put a tax on the cashdiscount if taxes have to be deduced




Tip
Even if it's a 2% cash discount, set a 100% amount on the reconciliation model as it means 100% of the remaining balance (the 2%). You can use the same reconciliation model for all your cash discount. No need to create a model per payment term.

Creating an invoice with a cash discount

When you create a customer invoice, set the right payment term "30 days, 2% cash discount" right after having selected the customer.



Once the invoice is validated, Odoo will automatically split the account receivable part of the journal entry with two installments having a different due date: 98% within 5 days, 2% within 30 days.



Payment

Paying the invoice with a cash discount

If the customer pays with a cash discount, when processing the bank statement, you will match the payment (98%) with the related line in the journal entry.


As you can see in the above screenshot, when selecting the customer, you also see the 2% remaining of 3$. If you want to accept the cash discount (if the customer paid within the 5 days), you can click on this line with 2%, click on "Open Balance", and select your "Cash Discount" reconciliation model. That way, the invoice is marked as fully paid.

Note:
from now on, matching the remaining 2% has to be done manually. In the future, we plan to automate the reconciliation of the 2% if the 98% are paid on time.

Paying the invoice in full

If the customer pays the invoice fully, without benefiting from the cash discount, you will reconcile the payment (in full) with the two lines from the invoice (98% and 2%). Just click on the two lines to match them with the payment.


Avatar
Discard
Best Answer

One way to support this is to call your Payment Term "2% WITHIN 15" (or whatever you need to call it) but configure it for NET30.

This way Odoo will not split the AR into two pieces (2% and 98%).  This splitting can confuse some users because if they are looking for an $100 Invoice to apply $98 to, they can't find it.  Splitting also means you have two payments to process - one for 98% and one for 2%.  If your customer doesn't take the discount, you then have another problem to solve. For these three reasons, almost all the users I work with opt to have all payment terms calculate like NET30.


After configuring your Payment Term and validating the Invoice, when payment is made:


1. Enter $98 to pay on the $100 invoice.

2. Check Mark invoice as fully paid.

3. Enter the Expense account to book the 2% discount.

 


Avatar
Discard