Complex Payment Terms

Hello,

Same here in France and Luxembourg. We are dealing with European Steel industry companies, and it is mandatory to invoice downpayment, and wait for the payment to come before starting the production.
Sometimes too, we decide to start production anyway before receiving the payment.

Best regards
Frederic

The payment terms features will be released in a few days.

5 Likes

I thank you Tunderbabzy.
Have a nice day.

Hello. Any news about the release?
How can we get informed when it’s available?
Regards
Fred

The feature has been merged in develop, it will merged in master branch with the release of v10 (within next 15 days).

2 Likes

I’ve got the same requirement here in The Netherlands. I’ve posted some thoughts and questions on the Github page of the feature request that started the led to the development of this module. You can read the complete treat here: https://github.com/frappe/erpnext/issues/6301

To sum up, this is essentially my remark/question:

… Am I correct that in your example you’re still creating 1 invoice with two payment terms with both the same due date?

I’ve done some searching on google and couldn’t really find any example of Dutch invoices with multiple due dates. For multiple due dates, they seem to send multiple invoices. This does make sense as the disadvantage of sending one invoice at time of order for the complete order amount with multiple due dates is that you have to pay the VAT for the complete order amount in the beginning of the project. If you would send multiple invoices, one for each payment term, you will pay the VAT of that particular invoice at the time you send it to the customer.
If it’s a small project with a short time frame it doesn’t really matter but if it has a bigger time span, you might end up pre-financing the VAT of the upcoming due dates for a long time.

The easiest solution would be to have an option to set the payment terms as suggested in this future request and have the option to choose if you want to make one invoice with multiple due dates or to make multiple invoices one for each due date. That way we can choose which approach would fit your situation the best.

As far As I know at this moment there isn’t a good solution to make multiple invoices for on order. I can make multiple invoices but then I’m facing the following situation:

Lets say I have the following order.

1pc Machine A €5.000,-
1pc Machine B €5.000,-
1pc Machine C €5.000,-
1pc Machine D €5.000,-
Payment term: 25% at order, 50% before delivery, remaining 25% within 30 days after delivery.

I could make the invoices as follow:

(invoice 1, 25% at order:)

1pc Machine A €5.000,-
1pc Machine B €5.000,-
1pc Machine C €5.000,-
1pc Machine D €5.000,-
1pc To pay later: 50% before delivery, remaining 25% within 30 days after delivery -€15.000,-
Total invoice amount: €5.000,-

(invoice 2, 50% before delivery:)

1pc Machine A €5.000,-
1pc Machine B €5.000,-
1pc Machine C €5.000,-
1pc Machine D €5.000,-
1pc Already paid : 25% at order -€5.000,-
1pc To pay later : remaining 25% within 30 days after delivery -€5.000,-
Total invoice amount: €10.000,-

(invoice 3, 25% at 30 days:)

1pc Machine A €5.000,-
1pc Machine B €5.000,-
1pc Machine C €5.000,-
1pc Machine D €5.000,-
1pc Already paid : 25% at order, 50% before delivery -€15.000,-
Total invoice amount: €5.000,-

This looks like a good work arround but:

item 1 to 4 are invoiced 3 times now so the turn over for those products is registered as 3 times the original turn over? (if it’s only one item that has been ordered it would be easy to solve by adding the same item with an other description and a deducting value like:
1pc, item nr 1234, Machine A €5.000,-
1pc, item nr 1234, To pay later: -€2.500,-
after sending the first invoice the order status will already turn to “paid” instead of “partially paid” so after delivery, the order status will turn to completed and there is no indication anymore that there is still an invoice to send and be paid.
I’m sorry for making such a long comment but for me, it’s an issue that I don’t know how to deal with and I hope someone has a suggestion how to deal with it. Hopefully, I’m seeing problems that are not really there.

I’ve given the Dutch Tax Authority a call to ask about the multiple invoices vs multiple due dates on one invoice issue.

They stated that the moment I send an invoice I’m required to pay VAT over 100% of the invoice amount, no matter what the payment term is. The invoice date is leading for the VAT period. The customer can pay me a down payment but I’m required by the Dutch law to send him an invoice within 15 days from the date I received the down payment.

They stated that the easiest and for me most beneficial way is to send multiple invoices, one for each due date. That way I can spread the VAT .

So it seems that unfortunately, the multiple due dates in one invoice is not going to work for me.
Is there a way to use this new payment terms feature to make and track multiple invoices?

Does the new module provide any way to handle the above situation? If not does anybody know a good workaround to make and track multiple Invoices against one Sales Order?

Unfortunately, no. The Dutch tax laws makes ERPNext payment terms not ideal in most cases and I agree that you are better off with multiple invoices. In Nigeria for example, you only remit collected VAT.

That said, I think we can create a feature that allows users split invoices. The invoice that is to be split will be cancelled and two new invoices will be created in its stead - one that is to be sent out immediately and another for the balance.

Hello Tundebabzy.
I just tested the feature in the develop branch. It is great job and looks nice.

Nevertheless there is one annoying stuff that makes it unusable for us (and most of the users, I’m afraid):
the Due Date is based on the initial invoice date, and obviously you did not plan that there could be several invoices for a SO.
For us this is always the case, there is an invoice for each term.
And these invoices are emited at the end of a specific project step whose the date is not always exactly known at the time of the order.
For instance, we invoice 50% on delivery of the manufactured equipement.
The invoice for this term must be of the exact amount of the term, and not necessarily mention all the other terms.

That is not feasable with the current approach, which seems to make it unusable for us, unfortunately :frowning:

Is there any way to work around this limitation?
Would it be possible to upgrade your module that let it generate an invoice for each term, in which case the Due Date based on invoice date would make sense (but no date would be calculated upfront)?

That is a real pain. We were waiting on this feature to switch to ERPNext.
We can’t as it is now.

Best regards
Fred

Sounds complicated and hard to follow, IMHO.
We need to see the all invoices attached to a SO, whose the sum, at the end of the project, matches the total amount.

Good point. That means we’ll have to create a new Document entirely that inherits a lot of features from Sales Invoice. Sales Invoice cannot be used as you need because immediately it is submitted, it writes to your GL. You need some intermediary that will hold all the needed information that will ultimately be used to create proper sales invoices as needed. The same document will also list invoices created and show their status. Sound ok?

Thanks for your answer Tundebabzy.
I’m sorry, I can’t understand all points.

What is a GL ?

Sounds ok. It is true that each invoice must properly mention the origin SO, and possibly the percentage of the total amount that comes from the related term.
Also, as you propose, listing all invoices of the SO and showing the status makes sense.

By the way, in relation to you update and your complexe terms module, how would it go along? It makes sense to me that each invoice is actually related to each term.
You should then make your term editor more flexible, by letting the user set the due date later, in relation to the invoice that will be specific to the term itself.

SO-0001 = one single sales order
→ Terms
- Term1 (downpayment) 30% → first invoice SINV-0001 → term due date based on SINV-0001 date
- Term2 (before delivery) 60% → second invoice SINV-0002 → term due date based on SINV-0002 date
- Term3 (post-commissioning) 10% → third invoice, closing invoice SINV-0003 → term due date based on SINV-0003 date

→ Invoices
- first invoice SINV-0001 of 30% of the amount for each item line → related to term1, due date based on this invoice date
- first invoice SINV-0002 of 60% of the amount for each item line → related to term2, due date based on this invoice date
- first invoice SINV-0003 of 10% of the amount for each item line → related to term3, due date based on this invoice date

The invoices could be automatically prepared when submitting the SO, ready to be edited and submitted at the appropriate time and event, by the responsible user.

@tundebabzy first thanks for your efforts. And please is the new payment terms feature working with purchase invoce or just sales invoice.

@tundebabzy
Do you have any suggestion for a good workaround until a permanent solution has been developed?

The only way I can think of to handle let’s say an SO with different items with a total amount of let’s say €10.000,- and a payment term of 50% at order, remaining 5o% before delivery; is by making an item named “To pay later: 50% before delivery” and one “Already paid: 50% at order”

Create SINV-001 with all items in it and at the “To pay later: 50% before delivery” item and give this item a negative value of 50% of the total order amount so €-5.000,-

The second invoice SINV-002 will be created just before delivery and will again have all items plus the “To pay later: 50% before delivery” this item will have a negative value of 50% of the total amount again.

This give at least 2 problems I can think of

  1. All your items are registered as being sold two times or even more if you have your payment terms split into more terms. this gives a wrong impression of which items are selling good and which not.
  2. Only the first invoice will be tracked against the SO. as soon as that one is paid the status of the SO will change to “Paid” where in reality it’s not. Maybe this can be addressed by a custom script that looks at the amount that has been paid comparing that to the SO amount would give an adequate indication.

Maybe you have a better suggestion or other ideas how to address this.

Sales invoice and Purchase Invoice

1 Like

@Bas_de_Reus
I still think you are better off with multiple invoices pending when a design specification is developed for your use case. However, maybe my accounting is off although I don’t think I am wrong but when you invoice before delivery, you get Deferred Revenue (a liability) and I don’t know how the Tax authorities in Netherlands will treat that. Note that ERPNext Sales Invoice will immediate book a revenue immediately you submit the Sales Invoice but in reality you have a liability.

  1. If I were the one, I would create a Quotation for the whole order specifying the terms and send that to the customer. At this point, no accounting entries have been made. At this point the customer can bail and if that happens, auditors won’t be asking me questions.

  1. Next, If the customer pays the first 50%, I create a Sales Order and change the due date to present date. Still no accounting entries made.

  1. I will also immediately create a Payment Entry for the advance that was made i.e line 1 in the Payment Terms table. (I just discovered that the split of Sales Order is not yet implemented so I’m working on that at the moment).

  1. When the customer pays the pre-delivery fee (final 50%), repeat 3

  2. After that create invoice from the sales order. You will see the two previously received payments as advances (which they are).

I hope I have not succeeded in confusing you :smile:

Well, just a little :wink:

Problem with your solution is that it does only provide one invoice. The Dutch tax authority demands that an official invoice is sent to the customer within 14 days of each kind of payment he makes. So I can’t get away with only one invoice.

Even advance payments? It’s not right to invoice an advance because you can’t recognize revenue or a sale until you deliver. Ideally, after receiving an advance, you should send a receipt to the customer. You can do that with ERPNext by customizing the Payment Entry print format. The Receipt should also suffice for the tax authority’s requirement

So it seems. I was beginning to question myself if I understood the person I’ve spoken to from the Dutch Tax Authority correctly. So I did some searching and found the following Dutch law: wetten.nl - Regeling - Wet op de omzetbelasting 1968 - BWBR0002629

Which says:

Artikel 34c
1 Iedere ondernemer zorgt ervoor dat door hemzelf dan wel, in zijn naam en voor zijn rekening, door zijn afnemer of een derde, in de volgende gevallen een factuur wordt uitgereikt ter zake van:

d. de vooruitbetalingen die aan hem worden gedaan voordat een van de in de onderdelen a en b bedoelde goederenleveringen is verricht;
e. de vooruitbetalingen die door een andere ondernemer of een rechtspersoon, andere dan ondernemer, aan hem worden gedaan voordat de dienst is verricht.

As your Dutch is probably a little rusty I will translate it as:

Aticle 34C
1 Every entrepreneur ensures that by himself or in his name and for his account, by his customer or a third party, an invoice is issued in the following cases concerning:

d. the advance payments made to him before any of the supplies of goods referred to in parts a and b have been made;
e. the advance payments made to him by another entrepreneur or a legal entity other than the entrepreneur before the service is provided.

So maybe it’s typical Dutch to demand this but it would surprise me if other European countries would have completely different demands.

I did some testing, trying if my suggested workaround could work.
And it seems to work. I was concerned that I couldn’t get a reliable sales report anymore. but I just discovered that I can also use the SO or the DN as the basis to project the sales figures. Also, my concerns that the inventory management would become unusable is not trough as it is controlled by the Delivery notes and Purchase receipts.

The only issue or call it inconvenience I had is that I can only link one SINV to a SO. As soon as I made the first SINV which contain all the items plus the item that reflects the payment term, the status of the SO changes to To deliver and I can’t add anymore SINV to it.
I tried a second time with a little different approach which seems to solve most of my issues. I’m doing the following:

  1. Make a SO with all the items and at one extra item called Payment term and give it a value of 0

Let’s say that the payment terms are as follow: 30% at order, 50% before delivery and the remaining 20% within 30 days after delivery.

Item, QTY, Rate
Item1, 1, €5.000,-
Item2, 1, €5.000,-
Payment Term, 1, €0,-

  1. From the SO make a new SINV. Remove all items except for the Payment Term item. change it’s value to the amount of the first down payment and change the description to reflect the current payment term the invoice addresses.

Item, QTY, Rate
Payment Term Down Payment 30% at order, 1, €3000,-

Submit the invoice. it will be linked to the SO, the SO still has the status of “To Bill” which is good.

  1. Same steps as at step 2.

Item, QTY, Rate
Payment Term Down Payment 50% before delivery, 1, €5000,-

  1. It’s time for the last and final invoice. make a new invoice from the SO but this time leave all items in it. Change the value of the Payment Item to the total amount of the previous down payments and change qty to -1

Item, QTY, Rate
Item1, 1, €5.000,-
Item2, 1, €5.000,-
Payment Term Down Payment already paid, -1, €8000,-

After submitting this last invoice the status of the SO will change to Billed.

I might have to fine tune this a little further but for the time being this seems to work.

Curious if you were able to get this working the way you wanted?

In our industry, the standard is 2% discount in 15 days, 1% discount in 20, and then net 30. Those are pretty common. I’m curious how you were able to achieve this?

Our bookkeeper likes to run all payables based on this. For instance, if we are getting a 2% discount to pay in 15 days, she will run a report and it will automatically show this should be paid this week to get the discount. Is this possible to see on a report like that?

1 Like

@nabinhait, was something like this of conditional payment with % of discount rolled out in v10 as stated by you above?