424 Tax
Today: 9 Nov 2026

Withholding tax

What we withheld from vendors (to file and pay) and what customers withheld from us (to claim back).

PND 53 - companies
6,075.90
Pay by 7 Nov 2026 (paper) / +8 days online
PND 3 - persons
0.00
Withheld from us (prepaid tax)
3,600.00
Deducted from corporate income tax (PND 50)

Tax we withheld

FormDateDocumentPaid toTax IDIncome typeRateAmount paidTax withheld
PND 53 6 Oct 2026 Bangkok Office Tower Co., Ltd.0105550099887 Rent of property 40(5) 5% 85,000.00 4,250.00 50 Tawi
PND 53 8 Oct 2026 Bright Ads Agency Co., Ltd.0105561044556 Advertising 40(8) 2% 89,590.00 1,791.80 50 Tawi
PND 53 20 Oct 2026 Swift Courier Co., Ltd.0105563088776 Transport 40(8) 1% 3,410.00 34.10 50 Tawi

Tax withheld from us

Ask each payer for their 50 Tawi certificate
DateDocumentInvoiceWithheld byAmount
9 Oct 2026 Chao Phraya Logistics PLC 3,600.00
How this works - feature 424 Tax we withheld (PND 3 / PND 53) and tax withheld from us.

Concepts

  • PND 53 for companies, PND 3 for persons - decided by party.juristic.
  • Each deduction prints a 50 Tawi certificate for the vendor.
  • Tax customers withheld from us is an asset (WHT prepaid) we deduct from corporate income tax.

Read the code

  • service/TaxService#whtDeducted
  • web/TaxController#certificate

SQL behind this page

SELECT 'PAY' AS src, bp.id AS src_id, bp.payment_date AS doc_date, bp.payment_no AS doc_no, p.name AS party, p.tax_id,
       p.address, CASE WHEN p.juristic = 1 THEN 'PND 53' ELSE 'PND 3' END AS form,
       w.name AS income_type, w.income_section, b.wht_rate AS rate,
       ROUND((bp.amount - bp.amount * b.vat_amount / b.total) * bp.fx_rate, 2) AS paid_base,
       ROUND(bp.wht_amount * bp.fx_rate, 2) AS wht
FROM bill_payment bp JOIN bill b ON b.id = bp.bill_id JOIN party p ON p.id = b.vendor_id
LEFT JOIN wht_type w ON w.code = b.wht_code
WHERE bp.wht_amount > 0 AND bp.payment_date BETWEEN :from AND :to
UNION ALL
SELECT 'EXP', t.id, t.txn_date, t.doc_no, COALESCE(p.name, t.description), p.tax_id, p.address,
       CASE WHEN p.juristic = 0 THEN 'PND 3' ELSE 'PND 53' END,
       w.name, w.income_section, t.wht_rate, ROUND(t.net_amount * t.fx_rate, 2), ROUND(t.wht_amount * t.fx_rate, 2)
FROM cash_transaction t LEFT JOIN party p ON p.id = t.party_id LEFT JOIN wht_type w ON w.code = t.wht_code
WHERE t.kind = 'EXPENSE' AND t.wht_amount > 0 AND t.txn_date BETWEEN :from AND :to
ORDER BY form, doc_date