TDS on Purchase Orders — Per-Line Compliance Automation
Published: April 14, 2026
The accounts team processes 40 purchase orders this month. Each one needs a TDS calculation — which section applies, what rate, whether the vendor has a lower deduction certificate, whether the transaction exceeds the threshold. The procurement team does not know TDS rules. The accounts team does not see the POs until payment. By the time the error is caught — wrong section, wrong rate, no deduction at all — the payment has been made and the correction involves revised returns and interest.
TDS compliance in procurement is not conceptually difficult. The rules are well-defined: specific sections apply to specific types of payments, at prescribed rates, above prescribed thresholds. The difficulty is operational — ensuring the correct section and rate are applied to every purchase order, across every vendor, every time. Manual calculation at the payment stage is too late in the process to be reliable.
This article explains how TDS is embedded into the purchase order workflow — applied at creation, verified at approval, and posted to the accounting system — so that compliance is addressed at the point of commitment, not at the point of payment.
1. The Problem: TDS Calculated Manually, After the Fact
In most organisations, TDS enters the picture only at payment processing. The purchase order is created without any TDS information. The invoice arrives. The accounts team manually looks up the vendor's TDS section, calculates the deduction, and adjusts the payment. This creates several problems:
- Wrong section applied. A payment for professional services (Section 194J / payment code 1094) is deducted under the contractor rate (Section 194C / payment code 1024). The rate difference — 10% vs 1% or 2% — results in short deduction, interest, and potential disallowance.
- Threshold not tracked. TDS is applicable only above certain thresholds. Without tracking cumulative payments to a vendor, individual invoices may fall below the threshold while the aggregate exceeds it.
- No deduction certificate on file. A vendor has a lower deduction certificate but nobody told the accounts team. TDS is deducted at the full rate, the vendor complains, and a refund process begins.
- Late discovery. Errors are found during quarterly return filing — weeks or months after the payment. Correction requires revised returns, interest under Section 201(1A), and potential penalty.
2. TDS Section Master — Admin Setup
The foundation is a configurable TDS section master maintained by the administrator. Each entry specifies:
| Field | Purpose |
|---|---|
| Section Code | The Income Tax Act section or payment code (e.g., 1024, 1094) |
| Description | Human-readable name (e.g., "Payment to Contractors") |
| Rate (%) | The applicable TDS rate |
| Threshold | The amount below which TDS is not applicable |
When the Income Tax Act 2025 introduced new 4-digit payment codes — replacing the familiar Section 194C, 194J, and others — the section master was updated to reflect the new codes. Existing POs retained their original section references; new POs default to the updated codes. This is consistent with the legal position: TDS is determined at the time of credit or payment.
The section master is a configuration table, not hardcoded logic. When regulations change — new sections, revised rates, updated thresholds — the administrator updates the master. No code deployment is required. This separation between tax rules and application logic is essential for a system that must adapt to annual budget changes.
3. TDS on PO Lines
When a purchase order is created against a vendor, the TDS section and rate are defaulted from the vendor's TDS configuration. This default is applied per-line, not per-PO — because a single purchase order may contain items with different TDS treatments.
For example, a PO to an IT vendor might include:
- Line 1: Hardware purchase (laptops) — no TDS applicable
- Line 2: Installation and configuration services — TDS under payment code 1024 at 2%
- Line 3: Annual maintenance contract — TDS under payment code 1024 at 2%
The PO creator can override the default TDS on any line — removing it where it does not apply, or changing the section if the nature of the specific line item differs from the vendor's default. The system calculates the TDS amount automatically based on the line value and the selected rate.
4. Approver TDS Override
A distinctive feature of the workflow is that the approver can modify TDS during the approval action. When reviewing a PO for approval, the approver sees the TDS section and rate on each line and can:
- Change the TDS section — if the PO creator selected the wrong section
- Adjust the TDS rate — if the vendor has a lower deduction certificate or a concessional rate applies
- Remove TDS entirely — if the line does not attract TDS (for example, a reimbursement)
This override is recorded in the audit trail — showing the original TDS selection, the override, who made the change, and when. The rationale is practical: the approver (typically a manager or finance head) may have information the PO creator does not — a lower deduction certificate received by email, a revised rate notification from the vendor, or knowledge that the specific payment is exempt.
5. TDS in the Expense Register
For expense-type purchase orders (OPEX rather than CAPEX), TDS flows into the expense register alongside the base amount and GST. The expense register shows:
- Base amount of the expense
- GST (CGST + SGST or IGST)
- TDS deducted — section, rate, and amount
- Net payable to vendor (base + GST - TDS)
This gives the finance team a consolidated view of the tax impact of each expense — not just the gross cost, but the actual cash outflow after TDS deduction.
6. TDS_ENABLED Toggle — Independent of Tally
TDS functionality is controlled by a dedicated feature toggle: TDS_ENABLED. This toggle operates independently of the Tally integration toggle. The practical implications:
| TDS_ENABLED | TALLY_ENABLED | Behaviour |
|---|---|---|
| On | On | TDS calculated on POs, approver can override, entries posted to Tally |
| On | Off | TDS calculated on POs, approver can override, no Tally posting |
| Off | On | No TDS fields on POs, Tally posts without TDS entries |
| Off | Off | TDS and Tally both inactive |
This separation exists because TDS compliance is valuable even without Tally integration. An organisation may use a different accounting system or handle Tally entries manually — but still benefit from having TDS calculated, verified, and documented at the PO stage.
7. Income Tax Act 2025 — New Payment Codes
The Income Tax Act 2025 replaced the familiar section numbers with new 4-digit payment codes. Key mappings relevant to procurement:
| Old Section | New Code | Nature of Payment |
|---|---|---|
| 194C | 1024 | Payment to contractors |
| 194J | 1094 | Professional / technical fees |
| 194H | 1084 | Commission or brokerage |
| 194I(a) | 1091 | Rent — plant and machinery |
| 194I(b) | 1092 | Rent — land, building, furniture |
The section master accommodates both old and new codes. Organisations transitioning to the new Act can update their master as the codes become effective, and existing POs retain their original section references for historical accuracy.
8. Frequently Asked Questions
Can TDS be different for each line on a purchase order?
Yes. TDS is applied per-line, not per-PO. Each line can have a different TDS section and rate. This is necessary because a single purchase order may include items under different TDS provisions — one line for equipment (no TDS) and another for installation services (TDS under payment code 1024). The default TDS section is inherited from the vendor's configuration but can be overridden at the line level during PO creation. This per-line granularity ensures the correct treatment is applied to each item rather than forcing a blanket rate across the entire order.
How does the approver TDS override work?
When an approver reviews a purchase order, they can modify the TDS treatment on any line — change the section, adjust the rate, or remove TDS entirely. This override happens during the approval action, not as a separate edit. The approver may have information the PO creator did not — a lower deduction certificate, a revised rate notification, or knowledge that the payment is exempt. The override is recorded in the audit trail showing who changed the TDS, the original and new values, and when the change was made. The PO creator's original selection is preserved in the history.
What happens if the TDS section changes mid-year due to a regulatory update?
The TDS section master is admin-configurable. When a regulatory change occurs — such as the Income Tax Act 2025 replacing Section 194C with payment code 1024 — the administrator updates the master with the new code and rate. Existing purchase orders retain their original TDS section; they are not retroactively changed. New purchase orders created after the update default to the new section. This is consistent with tax law: TDS is determined at the time of credit or payment, so POs created before the change use the rate applicable at the time of creation.
Is TDS mandatory on every purchase order?
No. TDS applicability depends on the nature of the payment, the vendor's registration status, and the transaction value. Purchases of goods below the threshold, payments to government entities, and exempt categories do not attract TDS. The system does not force TDS on every PO — it defaults the TDS section from the vendor's configuration, but the creator can leave it blank if TDS does not apply. The approver can also remove TDS during approval. The TDS_ENABLED toggle controls whether TDS functionality is active at all — organisations that handle TDS outside the procurement system can disable the feature.
How does TDS flow from the purchase order to Tally?
When a PO with TDS is posted, the Tally integration generates separate ledger entries for the TDS payable amount. The purchase voucher shows the gross amount credited to the vendor, with TDS separated into a TDS payable ledger mapped to the specific section. The vendor's payable balance in Tally reflects the net amount after TDS deduction, and the TDS payable ledger accumulates amounts due for government deposit. The TDS_ENABLED toggle operates independently of the Tally integration — TDS calculations and approver overrides work even if Tally posting is disabled.