The 1.8 million baht threshold
Thai law requires VAT registration once your business revenue exceeds 1.8 million baht in any 12-month period. The clock is rolling — not calendar-year — so the threshold can be crossed mid-year and trigger immediate registration.
Voluntary registration is also available below the threshold. Many of our clients register voluntarily from day one to claim input VAT credits and project a more established profile to enterprise customers.
How to register — PP.01
You file form PP.01 with the Revenue Department within 30 days of crossing the threshold. The supporting documents are routine: company registration certificate, tax ID, registered office evidence, ID of authorised signatory.
Approval is typically issued within 7 to 14 business days. From the effective registration date, you become a "VAT operator" and the obligations attach immediately.
What changes after registration
Your invoices change. Every tax invoice must include your VAT registration number, the buyer's details, the VAT amount broken out separately, and a sequential invoice number.
- Charge 7% VAT on most salesSome categories are zero-rated or exempt — your CPA will map this.
- Claim input VAT on purchasesNet VAT (output minus input) is what you remit monthly.
- File PP.30 monthlyEven in months with zero VAT activity — a "nil" filing is still required.
- Maintain VAT booksOutput tax book and input tax book, with original tax invoices on file.
What happens if you delay
Late registration triggers a backdated obligation. The Revenue Department will assess VAT on revenue earned from the date you should have registered, plus surcharges and interest. We have seen 200,000 baht assessments on businesses that delayed registration by six months "to think about it."
If you suspect you have crossed the threshold, register. The administrative cost of registering early and not needing the credits is trivial. The audit cost of registering late is not.
For our clients, we register at incorporation 80% of the time. Voluntary registration unlocks input credits and removes the threshold-monitoring burden entirely.
