Try ERPNext Buy Support Partners Foundation Foundation Members

TDS Enhancements

I propose the following changes to the Tax Deducted at Source (TDS) Feature - this is an India Government requirement for purchase of services.

  1. Tax withholding Category: I propose we move it from the Supplier Master to the Purchase Invoice Item level. Why? It’s possible that the Services Supplier could provide a suite of services to the organization that are under different Tax Withholding Categories

  2. TDS on Purchase Receipt: While some might argue that TDS being a service, the underlying item needs to be set up as a Non-Stock item and when setup as a non-stock item makes it conflicting to do a Purchase Receipt, there are two very strong reasosn why you would still want to enable that:

2.1: Unless you do a Stock Transaction (Purchase Receipt or Purchase Invoice with Update Stock Checked), the PO doesn’t disappear from the Pending PO list
2.2: In most organizations the person responsible for the delivery of services and the person responsible for making the purchase invoice are two different people. So the person certifying that the services have been delivered to the organization can do a Purchase Receipt and the accounts person can do the Purchase Invoice

So we just replicate the TDS features on the Purchase Invoice to the Purchase Receipt

  1. TDS on Purchase Order: The TDS rule says that TDS needs to be deducted and remitted to the government the earlier of: 3.1 Invoice, 3.2: Payment

Therefore the TDS process collapses when advance payments need to be made. So, here’s the proposal for #3:

We extend the TDS feature to the Purchase Order. However when a Payment Entry is made for say X amount connected against this PO, TDS is deducted from X and the supplier is given X*(1-R) where R is the TDS deduction rate and R*X is an entry made against the account used in the Tax withholding Category

And as the Purchase Receipt/Invoice is made against this PO, the account balances move to the downstream documents

  1. Tax Withholding Category: There are inconsistencies in the way ERPnext is calculating withholding based on the data entered in Tax Withholding Category:

4.1: If the values in the Single Transaction Threshold and Cumulative Transaction Threshold are left blank (or 0), the formula computes and deducts TDS for any amount.
4.2 Formula for deduction: The Formula for deduction is higher of: 4.2.1: SUM(A)>Cumulative Transaction Threshold, TDS for Transaction = SUM(A)R-Sum(TDS) .OR. AR

Where A is the Net Total of the particular Purchase Invoice/Receipt, SUM(A) is the cumulative Invoicing that has happened by the Supplier for the particular Tax Withholding Category and SUM(TDS) is the sum of TDS deducted for the particularsupplier for the Tax Withholding Category, R is the Tax Withhoding Rate for the particular Tax Withholding Category

Is everybody okay about it?

Is there somebody already working on this? If yes, how can we help her/his efforts?

If no, shall I get my developer to do a pull request to fix this?




Okay, I’m moving this to GitHub.



If you can get a customer to fund it, go for it. All I can say is that build it as a contribution from Day 1. Pay the 30% contribution tax and your customer will be happier in the long run.

Sure chief! And let’s try to keep the contribution tax at 30%, not thrice or four times that. :slight_smile:



This is Ok.

Also, could this feature be extended to payment entry of type Pay too.

In Kenya, WH amount is withheld at the point of paying the vendor. (This could be a different scenario altogether)

When i go to submitt purchase invoice then system shows me error : Supplier is required for TDS payable. Which is stands in Taxes and charges.