Thai Localization - Account Vendor Tax Invoice
This module address the undue tax requirement for Thailand
In Odoo, cash basis feature is being used to cover case of undue tax (due on payment). This can answer the issue about undue tax in Thailand partially. For customer invoice/payment, Odoo's cash basis alone is enough.
But for supplier invoice/payment and expense, where tax invoice number and tax date is given from vendor. This module will provide ways for user to do so on vendor bill (for normal tax) and in supplier payment (for undue tax which is due on payment).
Note : This module also delete line in journal entry are not used and Remove required field Base Tax Received Account.
auto_awesome What this module does
AI-generated from the code · Odoo 12.0Manage Thai vendor tax invoice numbers and tax dates on supplier bills and payments, including undue (cash basis) VAT that becomes due when the vendor is paid.
This module helps Thai companies record the tax invoice number and tax date that a supplier gives them, both on the vendor bill and later on the payment when VAT is due on payment (undue tax).
On a supplier bill, the tax lines now show fields for Tax Invoice Number and Tax Date. When you confirm a bill, Odoo checks that these are filled in for normal purchase taxes, and blocks confirmation if they are missing. For taxes due on payment, it instead blocks you from filling them in too early.
On a supplier payment, a "Tax Invoice Ready" option opens a table where you key in the vendor's tax invoice number and tax date for each tax line. A "Clear VAT" button appears on posted payments that still have pending cash basis VAT; it validates the entries and posts the corresponding journal entry. Payments cannot be cleared until the tax invoice number and date are filled in.
For sales taxes, you can configure a Tax Invoice Sequence on the tax; the number is then generated automatically from that sequence when the customer invoice is confirmed. Journal items and the tax audit view also display the tax invoice number and tax date. The tax adjustment wizard gains partner, tax date, tax invoice number and tax base fields. Empty journal item lines are removed when posting.
Depends on
Required by other modules
Models and fields (10)
- account.tax · extends an existing modeltaxinv_sequence_id (Tax Invoice Sequence), sequence_number_next (Next Number)
- account.move · extends an existing model
- account.invoice · extends an existing model
- account.payment · extends an existing model
- account.move.line · extends an existing modeltax_date, tax_invoice, tax_date_manual, tax_invoice_manual (Tax Invoice Number), invoice_tax_line_id, payment_tax_line_id
- account.invoice.tax · extends an existing modeltax_date, tax_invoice, move_line_ids (Journal Items), tax_date_manual, tax_invoice_manual (Tax Invoice Number)
- account.payment.tax · new modelname (Tax Description), move_id (Journal Entry), amount_tax (Tax Amount), partner_id, payment_id, move_line_id (Journal Item), tax_date_manual (Tax Date), tax_invoice_manual (Tax Invoice Number), company_currency_id, invoice_tax_line_id
- tax.adjustments.wizard · extends an existing modeltax_date, tax_invoice (Tax Invoice Number), amount_tax_base (Tax Base), debit_partner_id (Partner (Debit Account)), credit_partner_id (Partner (Credit Account))
- account.abstract.payment · extends an existing modeltax_line_ids, taxinv_ready (Tax Invoice Ready), pending_tax_cash_basis_entry
- account.partial.reconcile · extends an existing model
Text generated by AI (DeepSeek) from reading the Odoo 12.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/l10n-thailand.
terminal Installation and usage
OCA documentation · Odoo 12.0Installation
Source · Odoo 12.0To install this module, you need to install the hook addon account_create_tax_cash_basis_entry_hook
Then, simply install l10n_th_vendor_tax_invoice.
Usage
Source · Odoo 12.0With this, 2 new tax related fields will be introduced in account.move.line
- tax_invoice : Tax Invoice Number
- tax_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: These 2 fields will be also be used in Thai VAT report, with the intention that every report should be coded out of account.move.line
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
Case Customer Invoice and Payment
As mentioned earlier, customer side operation do not affected by this module. But we should still now see the new Tax Invoice Number and Tax Date field in account.move.line
- 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
- To check Tax Invoice Number and Date in relevant journal items, go to Invoicing > Accounting > Journal Items, then click to expand
Case Supplier Invoice/Payment
1) Case Input VAT
- Create new vendor bill and choose Input VAT
- At vendor bill's tax table, fill in 2 new fields,
Tax InvoiceandTax Dategiven by your vendor - Validate this vendor bill, the given Tax Invoice Number and Tax Date should be used in account.move.line
- To check Tax Invoice Number and Date in relevant journal items, go to Invoicing > Accounting > Journal Items, then click to expand
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, select
Key-in tax invoice number/date from supplier, and 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
- To check Tax Invoice Number and Date in relevant journal items, go to Invoicing > Accounting > Journal Items, then click to expand
Preparing Tax Adjustments
- Use Developer Mode
- As admin, add access rights
Show Full Accounting Features - Go to Invoicing > Configuration > Accounting > Taxes, create new Tax Scope
Adjustment
Case Tax Adjustments
- Go to Invoicing > Accounting > Tax Adjustments
- Create journal entry directly to adjust tax (manually by accountant)
No verified information in OCA: Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.