Thai Localization - VAT and Withholding Tax

Technical Name:
  • Odoo Version

Terms and Conditions 

Thai Localization - VAT and Withholding Tax

Beta License: AGPL-3 OCA/l10n-thailand Translate me on Weblate Try me on Runbot

This module address 2 main tax requirement in Thailand

1. Tax Invoice (VAT)

Point of tax invoice can occur either on Invoice (VAT) or on Payment (Undue VAT on invoice become VAT on payment)

2. Withholding Tax

This is the tax that is deducted during payment. There are 2 kinds of withholding tax calculataion.

  1. Fixed rate of based amount, i.e., service 3%
  2. Progressive rate of accumulated amount, i.e., personal income tax

Table of contents


Tax Invoices

Preparing Undue Tax

  • Use Developer Mode
  • In Chart of Account, add new account for Undue Tax, if not already exists.
  • As admin, add access rights Show Full Accounting Features
  • Go to Invoicing > Configuration > Settings and select Cash Basis, this will open cash basis options in Tax master data
  • Go to Invoicing > Configuration > Accounting > Taxes, create new undue tax for both sales and purchase

For Sales Taxes (tax scope = Sales), there is option to run Tax Invoice number by sequence model. If set properly, Tax Invoice Number will be using this sequence instead of customer invoice number / payment number

  • Goto Accounting > Configuration > Invoicing > Taxes
  • For sales tax, choose 'Tax Invoice Sequence' (or create new one)
  • Make sure you also set the same sequence for the same tax on payment too. I.e., Output VAT7% and Undue Output VAT7% must select the same sequence, both both of them will result in same Tax Report

Note: this option is not avaiable for purchase tax, because the Tax Invoice Number is from vendor, and are filled manually.

Withholding Tax and Personal Income Tax (PIT)

Setup account related to withholding tax will help set default tax amount when create certificate from payment.

  • Go to Invoicing > Configuration > Accounting > Chart of Accounts
  • Search for withholding tax related account
  • Check "WHT Account"
  • Go to Invoicing > Configuration > Invoicing > Withholding Tax
  • Create withholding Tax (normal and personal income tax)

Configured Withholding Tax by Product (optional)

  • Go to Invoicing > Customers or Vendors > Products
  • Select product that you need withholding tax
  • Add Withholding Tax on General Information Tab (Invoices) / Purchase Tab (Bills)

Configure Personal Income Tax Rate

  1. Go to Invoicing > Configuration > Accounting > PIT Rate
  2. Change range or tax rate (if any)

Configure PIT Withholding Tax as following,

  1. Go to Invoicing > Configuration > Invoicing > Withholing Tax
  2. Create new Withholding Tax for PIT and check Personal Income Tax checkbox
  3. PIT Rate that will be used to caclulate the withholding amount will be shown
  4. You can set default Withholding Tax on the Product's Purchase Tab


Tax Invoice

With this, 2 new tax related fields will be introduced in

  1. tax_invoice_number : Tax Invoice Number
  2. tax_invoice_date : Tax Invoice Date

In customer invoice, both field will be defaulted by Odoo's document number and date. But in supplier invoice, both field must be filled by user with tax invoice number and date from vendor.

Note: The new table is the main source of Thai VAT Report

Case Customer Invoice and Payment

  • Create new customer invoice and choose to use sales' VAT or Undue VAT
  • Process invoice and payment as per normal, Odoo document number and date should be used as Tax Invoice Number/Date

Case Supplier Invoice/Payment

1) Case Input VAT

  • Create new vendor bill and choose Input VAT
  • At vendor bill's tax invoice tab, fill in 2 new fields, Tax Invoice and Tax Date given by your vendor
  • Validate this vendor bill, the given Tax Invoice Number and Tax Date are set in

2) Case Undue Input VAT

  • Create new vendor bill and choose Undue Input VAT
  • Validate vendor bill, journal entry will be created with Undue VAT
  • Register payment as per normal, this will create new payment document as per normal
  • From this process, the journal entry (cash basis) for clear undue is created, but it will be in state Draft
  • Go to payment document, in tax invoice tab, fill in Tax Invoice Number and Tax Date
  • Click on Clear VAT button, the journal entry (cash basis) for clear undue will now be Posted

Withholding Tax

From bills / invoices that require withheld tax,

  • Create invoice and Fill withholding tax in Field WT at Invoice Lines tab.
  • Post > Register Payment.
  • System will auto computed amount include withholding tax.


  • if you configured withholding tax on product, it fill withholding tax in field WT automatic.

  • for invoices with withholding tax,

    • you can't make payment to multiple invoices belongs to multiple partners.
    • you can only make payment to multiple invoices belongs to the same partner (using Group Payments).

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.



  • Ecosoft



This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:


This module is part of the OCA/l10n-thailand project on GitHub.

You are welcome to contribute. To learn how please visit

This is a preview of the recently viewed products by the user.
Once the user has seen at least one product this snippet will be visible.

Recently viewed Products