Complex Payment Terms

@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?