Purchase-Side WHT (TDS on Bills)
Purchase-side withholding is the common case: you withhold tax from a payment to a vendor — an Indian contractor (TDS 194C), a Brazilian service provider (IRRF), a non-resident — and remit it to the authority on their behalf. This article follows a bill from entry to payment.
Access you'll need. Entering and posting bills with withholding requires the Accounts Payable v2 permission set (AP clerks & managers) or Accounting Admin v2 (system administrators). The Accounting Controller v2, Accounts Receivable v2, and Read Only v2 sets can view bills but not post them; setting up the underlying WHT rules is an Accounting Admin or Controller task.
The flow, end to end
The gates (why WHT might not apply)
For each line, the engine runs a series of checks in order — any one can switch WHT off for that line, each with its own reason:
| Gate | WHT skipped when… |
|---|---|
| Master switch | The Entity’s WHT Enabled (Purchase) is off — nothing is computed at all |
| Rule resolved | No rule on the line (Withholding Tax Rule Override) and none on the vendor’s account — the line is treated as exempt |
| Exemption | The vendor is marked WHT-exempt and the bill date is within the exemption’s validity (see WHT Exemptions) |
| Effective date | The rule isn’t effective on the bill date |
| Payer-regime scope | Your entity’s regime is outside the rule’s scope (the Brazil PCC pattern) |
| Payee-type scope | The vendor’s classification is outside the rule’s scope (Individual Only / Company Only / Non-Resident Only) |
| Threshold | The line is below the rule’s single-payment threshold — compared in the rule’s currency, with the line converted at the document date when the currencies differ |
| Rate match | No rate on the rule matches the vendor’s classification |
One check works the other way: a rule whose Applicable Side is SALES cannot be used on a bill at all — assigning one raises an error rather than being quietly skipped, because it’s a configuration mistake rather than a legitimate exemption.
What the percentage is applied to
The base is the line’s pre-tax subtotal — quantity × price, less the line discount. Three refinements:
- Tax-inclusive lines are un-grossed first. If a line’s price includes tax, the computed tax is subtracted before withholding, so the base is genuinely pre-tax.
- Base Includes Tax on the rule adds the line’s tax back in, for the jurisdictions that withhold on the tax-inclusive amount.
- Zero and negative lines are skipped — withholding applies to amounts actually payable.
The withholding is then base × rate, rounded half-up to two decimals — the same rounding the tax engine uses.
Worked example: a contractor bill (India TDS 194C)
You receive a ₹100,000 bill from a contractor. TDS 194C applies at 2% for a company (the line clears the section’s ₹30,000 threshold). The preview shows WHT of ₹2,000 and a net payable of ₹98,000. On posting, the ledger records:
| Account | Debit | Credit |
|---|---|---|
| Expense | ₹100,000.00 | |
| Accounts Payable (net to vendor) | ₹98,000.00 | |
| WHT Payable (owed to the authority) | ₹2,000.00 |
The full ₹100,000 expense is recognised; the vendor is owed ₹98,000; and ₹2,000 sits in WHT Payable until you remit it.
Then the payment
| Event | Entry |
|---|---|
| Pay the contractor | DR Accounts Payable ₹98,000 / CR Cash ₹98,000 |
| Remit TDS to the authority | DR WHT Payable ₹2,000 / CR Cash ₹2,000 |
The contractor receives ₹98,000 and a TDS certificate for the ₹2,000 withheld, which they claim against their own tax.
Line overrides & multiple rates
A bill line can override the vendor’s default WHT rule — useful when one vendor provides different services (a contractor bill under 194C, a separate consulting line under 194J). And where a rule carries several Always rates, more than one withholding can apply to a line at once (the rate-selection logic is in WHT Rules & Rates).
The posting details worth knowing
- One home account. The withholding credit always books to the entity’s Default WHT Payable account — it may appear as one credit per line or a single consolidated credit, depending on your territory’s posting mode, but either way the per-rate, per-line detail lives in the WHT Transaction records.
- Vendor memos flip it. A vendor credit reverses direction — the memo debits WHT Payable, unwinding the withholding on the amounts being credited.
- Unposting removes it. Reopening a bill deletes its WHT Transactions and zeroes the line withholding amounts (along with the tax records and accounting entries). The next post recalculates everything against the rules then in force.
Two setup guards can stop a posting, each with an exact message:
| The message | What it means / what to do |
|---|---|
| “Cannot post invoice with Withholding Tax: Entity … has no Default WHT Payable GL Account configured. Set… before posting.” | The withheld money needs a home in your books — your administrator sets the entity’s Default WHT Payable account once. |
| “WHT engine error: …” | The withholding calculation itself failed — the wrapped detail says why; fix the configuration it names and post again. |
Where to go next
- Understanding Withholding Tax — the concepts behind purchase-side WHT.
- WHT Rules & Rates — the rules and rates that drive it.
- WHT Transactions & Reporting — the audit records it creates.
- WHT Exemptions — vendors excluded from withholding.
- Purchase Invoice WHT — withholding on a purchase invoice.
Frequently asked questions
You see a live preview while editing the bill — deliberately, so the net payable is visible before you commit anything. The stored amounts are written at posting: that’s when the WHT Transactions, line amounts, and ledger entries are created, and the on-screen hint says exactly that (“Withholding Tax computed at save/post time.”).
No — the full expense is recognised. WHT reduces what you pay the vendor (the payable), with the withheld amount becoming a liability to the authority. The vendor still gets credit for the full amount via their certificate.
One of the gates: WHT disabled on the entity, no rule assigned, the vendor exempt, below the threshold, or out of the rule’s scope (regime / payee type / effective date). Walk the gates table above in order — and in multi-currency setups, remember the threshold compares in the rule’s currency.
By remitting the withheld amounts to the tax authority on the due date — a payment (or journal) that debits WHT Payable and credits cash. The WHT Transaction records support your filing.
Was this article helpful?