Advance payment with taxes


Because of a government rule, we are forced to charge taxes on Advance Payment we perceives from customers. Right now, the Advance Payment amount is deducted after the taxes are applied to the full amount of an Invoice, which would lead to incorrect calculations. The current scenario is:

Advance Payment = 10000
Sales Invoice = 20000 + 3000 (taxes) = 23000 - 10000 (advance) = 13000 (amount due)

I need to achieve this:

Advance Payment = 10000
Taxes on Advance Payment = 1500

Sales Invoice = 20000 - 10000 (advance) = 10000 (residual amount) + 1500 (taxes) = 11500 (amount due)

Would there be an accounting way to solve this issue?
If not, is it possible to place a hook on the “Get Advances Received” button to call a custom function?

Thank you


It will be more flexible to manage such entry using Journal Entry. You can treat Journal Entry as an Advance Payment Entry and adjust against the Sales Invoice. Since payment transactions doesn’t have special provision for the taxes, you will have to select tax account in it manually. Accordingly, you will have to update amount and rate in the Sales Invoice to ensure customer is not taxed twice.

Ideally, we will suggest you to apply taxes from a single transaction only. If you sent invoice to the customer at later date as well, it will have total tax amount calculated and booked in the respective accounts. Also, it will be easier for the user to create invoice, as they won’t have to recalculate amount and tax based on advance payment entry.

Thank you Umair

I forgot to mention that the Advance Payment we receive from the customer must not be treated as an Income. In fact, it is a deposit, so we owe the customer money, but the government wants us to collect taxes on this amount, even if it is not really an invoice. Pretty weird situation, I must admit. I tried every way possible with a Journal Entry, but I couldn’t figure a way to do it correctly.

Another alternative would be to create a partial Sales Invoice only, with payment (Is POS). For the reference of Customer, you can change the label of Sales Invoice to Advance Payment or something. It will be very easy to manage taxes in the Sales Invoice.


Did we come to a resolution? We have this issue in Thailand too.

Same here in our country. VAT to be applied only on paid amount. Invoice 10,0000 paid 4,0000. VAT only on 4,0000.

Subsequent VAT will be on paid amount only. Sales revenue recognised when full payment done. Anyone has a solution. JV is not an option.

Thank you


In our country, we are having the same scenario of yours. We are forced to declare tax on advances. So this is how we treat it:

Payment terms
50% advance
50% delivery

Payment entry:
Dr cash 11,500
Cr Debitor 11,500

Sales invoice against advance:
Dr Debitor 11,500
Cr customer advance 10,000
Cr Tax output 1,500

When you want to invoice partial delivery or service:

Item A == 5,000 (revenue account)
Item B == 1,000 (revenue account)
Less advance == <3000> (customer advance account)

Net invoice 3000
Tax 450
Total invoice 3,450

With the above, there will be no double tax treaty in addition to customer advance recovery on proportion basis.

Now if you wanted to see the status (balance) of the advances, go to sales register and get it easily from there…

Hope this helps.


@umair @TetraComSA Did you got any solution, if yes kindly help I’m also stuck in this scenario

@vinit_27 check

Hi @max_morais_dmm ,

Thanks for your reply !

I have gone through the official documentation but it is not solving my purpose, explaining use case in brief -
1.) Customer has paid Advance of 5 lacs for which Payment Entry is created and on this 18% tax is also applied i.e. 90k.
2.) Now these advances are taken in “Deposit Account” (custom account head created in COA) to track the advances customer wise.
3.) Now while creating Sales Invoice of 1 lacs, taxes are again 18% and wants to adjust 59k (partial) from advance in which 50k is advance and 9k is taxes.
4.) Catch is Sales Invoice is getting created against default Debtors account head, and Payment entry was taken in “Deposit Account” so in advance table payment entry record is not fetching.
5.) Client doesn’t want to pass JV also.
6.) Wants to adjust allocated amount and taxes from advance.

If you or anyone can suggest an idea it would be a great help. I’ll do the custom development accordingly.

Thanks in advance !

Hi @max_morais_dmm @umair @revant_one @rmeyer @rmehta ,

Can anyone suggest a way for this?

Thanks in advance !

This is a tricky situation and it’s been a week I am trying to find ways to record the advance with a tax invoice. The tax invoice on submission should not record this amount as revenue but as a liability just like deferred revenue. But there is no start & end date to book this on monthly basis as revenue. It depends on the company to book this advance as revenue based on their progress billing.

@Deepesh_Garg @umair
Experts Please need your advice.

There is a new “advance payment” feature in v15. Did you try this? (Under your company):