REDA One Help Center
EN
Language
English EN Español ES Português PT Italiano coming soon Français FR Deutsch coming soon العربية coming soon
reda.one ↗
Home / REDA Financials AI / Tax Management / Withholding Tax (WHT/TDS) / Purchase-Side WHT (TDS on Bills)

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.

Getting there. Purchase-side WHT (Withholding Tax — India calls its version TDS) is calculated on the bill itself — enter it under the Purchase Invoices tab in the REDA Financials AI app (App Launcher, the grid icon at the top-left of any page). The withholding rules that drive it are maintained separately in the REDA Financials Admin app (see WHT Rules & Rates).
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.
Previewed as you work, stored at posting. While you edit a bill, the engine previews the WHT and shows the net payable — the amount the vendor will actually receive. The stored records (the WHT Transactions, the line amounts, the ledger entries) are written when the bill posts, using the same math. No surprises at payment time.

The flow, end to end

Set up once. Enable WHT on the Entity, set a default WHT Payable account, and assign the vendor a WHT rule (e.g. 194C). Classify the vendor (tax ID + type).
Enter the bill. As you edit, the engine previews the withholding — resolving the rule, checking the gates (exemption, threshold, scope), selecting the rate — so the net payable is visible before you commit anything.
Post the bill. Now the amounts become real: one WHT Transaction per fired rate per line, the Withholding Tax Amount stamped on each line and rolled up to the header, and ledger entries recording the full expense, a net payable to the vendor, and the withheld amount as a liability you owe the authority.
Pay the vendor the net. Remit the WHT to the authority separately, clearing the WHT Payable.

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:

GateWHT skipped when…
Master switchThe Entity’s WHT Enabled (Purchase) is off — nothing is computed at all
Rule resolvedNo rule on the line (Withholding Tax Rule Override) and none on the vendor’s account — the line is treated as exempt
ExemptionThe vendor is marked WHT-exempt and the bill date is within the exemption’s validity (see WHT Exemptions)
Effective dateThe rule isn’t effective on the bill date
Payer-regime scopeYour entity’s regime is outside the rule’s scope (the Brazil PCC pattern)
Payee-type scopeThe vendor’s classification is outside the rule’s scope (Individual Only / Company Only / Non-Resident Only)
ThresholdThe 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 matchNo 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:

AccountDebitCredit
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

EventEntry
Pay the contractorDR Accounts Payable ₹98,000 / CR Cash ₹98,000
Remit TDS to the authorityDR 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 messageWhat 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

  1. Understanding Withholding Tax — the concepts behind purchase-side WHT.
  2. WHT Rules & Rates — the rules and rates that drive it.
  3. WHT Transactions & Reporting — the audit records it creates.
  4. WHT Exemptions — vendors excluded from withholding.
  5. 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?