Try ERPNext Buy Support Partners Foundation

Tax rate per item in Quotation and Invoice


I am new to ERPNext and frappe. I would like to create an application / module to allow the user to define taxes per item in a quotation. These values will then be also reflected in the invoice. There will be different type of taxes (E.g standard, non standard etc). And the total taxes value will need to be calculated and put inside an account for reporting.

My plan is to create a doctype to define a master value for each of the tax type. Also, for each tax type, the user can set which account head these taxes should go into. Global settings and values will be done here.

Then inside the quotation form, there will be additional columns in the per item row listing such as Tax Type, Tax Rate (%).

The default value of tax rate will be auto set to which tax type is selected (E.g standard, non standard etc). But users can change the value of the tax rate as they wish.

Once the values are entered, there is a summary table which calculates the different type of taxes and show the value. For example,

Tax Type, Total
Standard, 199
Non standard, 90

The same applies for invoice except that, invoice doesn’t allow to change the values. Those fields and values will be read only based on what was set in the quotation.

Can this be done without touching the core? How can I insert a custom table and columns to the quotation table via my application? I was looking and saw adding of custom fields but I am not sure if that would work.

1 Like


What if there are multiple taxes and charges applied on an item?

Any views on why it couldn’t be managed using existing functionality? Check the following link to learn how item wise taxation can be managed in ERPNext.

edit: Feb 2020 " Item Tax Template is useful for item wise taxation .

The link you provided seems close enough to what is required. But the requirement is exactly as per your question. There will be multiple taxes and charges applied to the same time in different quotations.

The same item in Quotation A can be set to a standard tax with 5% rate, and set to non-standard tax with 0% rate in Quotation B and in Quotation C it could be standard tax with 10% rate.

This is the flexibility required due to the business requirements. What’s your opinion on this?

You can change the tax template on the quotation as per your requirement.

The tax template can be changed in quotation but it is on the quotation level. The item wise taxation allows to change the tax of the item but the business requirements is that the tax item can be different rate across different quotations.

The tax rate is not fixed for an item. It varies. It’s almost saying that the tax type and tax rate of an item in the quotation is like a remarks or comments which is different for each quotation.

Question is, can this be done using custom fields or if I were to develop an application for this purpose?

You need neither. You have the option in Item Tax table to add multiple tax rates for different tax templates. So, you can simply create multiple templates and add the rate for each template to the item tax table to serve your purpose.

Hope this helps.

I think it is more of a case of this scenario

A quotation of 2 unit of item A
one is taxed 7% for standard tax,
and another one is taxed 0% due to some reason…

if i choose standard tax from the sales tax template, both of my items will be charged standard tax

And also to add on,

In Quotation A
1 Unit of Item A can be taxed as standard, 7%
1 Unit of Item A can be taxed as non-standard, 0%
1 Unit of Item B can be taxed as standard, 10%

In Quotation B
1 Unit of Item A can be taxed as standard, 10%
1 Unit of Item A can be taxed as non-standard, 2%
1 Unit of Item B can be taxed as standard, 7%

Using the Item tax table, it does allow me to set different tax rates based on the tax templates but it doesn’t allow me to set the tax rate in the quotation itself as per above scenarios.

I would like to be able to set per item row, the tax rate and tax type. Ideally, the current and price list table would be (using Quotation B as example):

Item Code, Quantity, Rate, Amount, Tax Type, Tax Rate (%)
Item A, 1, 1000, 1000, Standard, 10 —> Tax value will be $100
Item A, 1, 1000, 1000, Non-Standard, 2 —> Tax value will be $20
Item B, 1, 100, 100, Standard, 7 —> Tax value will be $7

And inside the Taxes and Charges it should display:

Type, Account Head, Amount, Total
On Net Total, Standard, 107, 2207
On Net Total, Non-Standard, 20, 2227



We can create Group of Taxes and charges.

and each group we can put TAXES Like

New York(group1) >> (Tax1(10%)-GST , Tax2(15%)-VAT , tax3(20%)-MAT) = PER ITEM

Boston(group2) >> (Tax1(9%)-GST , Tax2(10%)-VAT , tax3(25%)-MAT) = PER ITEM

and we assign each group with the Quotation as per required , we can add , remove

Surendra Gupta

While that is possible, Boston tax 2 could be set to another value which is same as New York tax 2 value. If we were to do it that way, there’s a possibility there will be too many groups to create.

Using the Sales Tax Template and the Item tax, they are all preset beforehand which is cleaner but the business requires the tax rate to be flexible and allowed to change anytime for every item even though they are similar right in the quotation.

We are thinking if we could make use of custom fields or create application for this purpose.

I’m having this problem too because I need to create a purchase invoice with some items that has a normal VAT tax plus a withholding tax, some that has only VAT and some that don’t have any tax.
So the ability to select the tax per item would be really great.

Since I see that this is yet not implemented and I don’t see the implementation anytime soon, we could collect the money needed to develop this feature.
We need to know the amount and who is interested.

1 Like

Same requirement here:
Line 1: VAT + Withholding
Line 2: No VAT & No Withholding

Has anyone found any work around this? Because I have the same requirement. Need tax rates on different items on different quotations. Please let me know. @darnpunk