[New Feature] Discount on Early Payment

Hi Community,

We’ve been designing & working on a feature to set discounts on payments made before a specified date. I am here to share the current design of it.

The configuration of discount percentage & validity will be set in the Payment Terms such as,

Here we will set the Discount, Invoice Portion and the validity will be defined by Due Date Based On & Credit Days field.
In the above example, 2% Discount will be given on 100% invoice value if payment is made within 2 days after the invoice date.

Next, this can be manually added to an Invoice or Payment Terms Template.

Here, the terms states that 2% discount will be given if payment made within 2 days and if not, payment has to be done within 30 days with no discount.

In the above template, total portion of the invoice is 200%, i.e the validion which checks if it is not more that 100% has been remove.
Now, this allows a user to set payment terms for a discount as well as a normal credit period.

Next, we can attach this template to a customer or supplier and make an invoice against them.

When you create a payment entry against this,

The difference amount will be populated as discount, and it has to be written off against some account.

Submitting the payment entry will update the outstanding invoice and mark it as paid. That concludes the whole process.

This is still under development. Any UX or process changes/feedbacks are welcome.


Good Work

But since this is already a discount by definition then the write off should automatically be taking to the designated discount account.

I think you should add a setting in Account Settings or Company settings where the default discount account for this purpose will be defined.

1 Like

Great initiative.
And name it Payment Rules.

1 Like

Great feature. This is very common in Germany. Here’s the (german) Wikipedia article on it, if you want to dive deeper into this topic: Skonto – Wikipedia .

I agree with @olamide_shodunke, we have a dedicated account for early payment discount (which is not the “discount allowed” account) in Germany and it should be set automatically.

Much thanks to @nextchamp.saqib for this initiative. This is actually essential for our company, just like @rmeyer wrote it’s really very common over here in Germany.
Is there any roadmap, or a beta test download I could somehow implement and support you a little? I’d like to help out to get it functional, if I can.

@mwrsa Thanks for your support. I’ll be setting up a test instance tomorrow with updated design.

1 Like

This feature will only be released for v13?

What is the version?

Minor Design Change

We have separated out the Discount Settings in Payment Terms.

The above configuration states that 30 days credit will be applicable and if paid within 10 Days after Invoice Date then, 10% of Total Invoice Value will be given as Discount.
Discount Type can be set to Percentage or Amount.
For now, the discount is calculated on the grand total and is not dependent on the invoice portion.

Rest all works as mentioned above. Also, a default discount account can be set in the company master.


This feature is still not available in version 13, may I know when this will be available?

Good work, also we have to set Penality on Late payment or late delivery of Goods.
Like if someone not pay with in 30 days then 2% will be charged over and above the invoice price.
Same case for Purchasing, if Items/Goods not delivered on time then Supplier invoice will not be paid in full.

orning @nextchamp.saqib

Is this feature in the released version 13 yet?


Yes. It was released quite a few weeks back.

1 Like

Hi, thank you for adding this nice feature. Is there a way to change this to calculate the discount based on the net, not total, invoice?

Is this feature is available in version 13?

I require this feature but I am not able to see in version 13(Using ERPNext: v13.43.2 (version-13)).where it is available?

@Namrata_Ingale when you populate the "discount"field the other two fields will show.

I have added a side note in the docs to reflect as such , awaiting review and approval