Odoo ERP

Odoo e-Tax Invoice Setup for Thai Companies: A Guide

A practical walkthrough of setting up Odoo e-Tax invoice and e-Receipt for Thai companies, covering numbering, providers and the approval flow.

Ravi Shanker SinghFounder & Odoo ConsultantPublished 5 min read
Share
On this page

Every Thai company we have worked with treats e-Tax Invoice & e-Receipt as a compliance checkbox at first. Halfway through the project, they discover it touches numbering sequences, PDF templates, digital signatures and a third-party submission service all at once. Setting up Odoo e-Tax invoice correctly means getting all four pieces to agree with each other. It is not just installing a module and hoping the Revenue Department accepts whatever comes out.

This is the setup sequence we actually follow on client projects. It includes the parts that go wrong the first time.

Odoo e-Tax invoice: what the Revenue Department actually requires

Thailand runs two separate schemes. Mixing them up is the single most common planning mistake we see. The first is e-Tax Invoice by Email, aimed at small businesses with annual revenue up to THB 30 million. It is verified through an ETDA time stamp rather than a digital signature. The second is e-Tax Invoice & e-Receipt, open to businesses of any size. This route requires a digital signature on every document.

Both schemes require qualifying sales documents to be transmitted electronically. Submission goes directly or through an authorized service provider, within the filing period. The document itself needs a fixed structure: taxpayer ID, branch code, a sequential running number per document series, and a VAT breakdown. Depending on the scheme, it also carries a time stamp or a digital signature tied to the submitting entity.

We tell clients early: confirm which scheme you qualify for and want to register under before touching Odoo configuration. The two paths configure differently downstream. Switching later means redoing numbering and signing setup.

Odoo e-Tax invoice numbering: the part everyone underestimates

Thai e-Tax invoices need a numbering scheme that is sequential, gapless within its series, and traceable back to the issuing branch. Odoo's native sequence engine handles sequential numbering fine. Thai companies usually run multiple document series in parallel, though, one per branch and sometimes one per point of sale. The moment someone manually resets a sequence, or two branches share a prefix by accident, the export file gets rejected. That rejection happens at the provider's validation step, not inside Odoo itself.

Our checklist before go-live:

  • One dedicated sequence per legal branch, matching the branch code registered with the Revenue Department, not an internal Odoo naming convention
  • No gaps allowed. Cancelled invoices get a credit note, never a deleted or renumbered document
  • Prefix and reset rules locked down in access rights, because a single incorrect edit here contaminates the whole month's submission file
  • A test run against the provider's sandbox before the first live batch, always

Choosing a service provider for e-Tax invoice filing

Odoo itself does not submit anything to the Revenue Department. It builds the correctly formatted document. Then it either signs the document directly or hands it to a certified service provider for signing and transmission. Which route to take depends mostly on volume and existing relationships. Some Thai accounting teams already work with a provider for other filings. They often prefer to keep that vendor for e-Tax as well.

When we scope this with a client through our Odoo implementation services, we compare providers on three practical points. First, turnaround time for the daily or monthly submission batch. Second, how their API or file-drop interface integrates with Odoo's export. Third, what happens when a batch is rejected. Some providers give a clear per-line error. Others return an opaque failure that takes a support ticket to decode. That third point matters more than most feature comparisons once you are three months into live filing.

The approval flow inside Odoo

The workflow we implement typically looks like this. An invoice is validated by the accounting team as usual. That validation triggers generation of the e-Tax XML or PDF/A-3 document in the background. The document sits in a pending state until a designated approver reviews it. Usually that is the finance manager, and sometimes a second person for segregation of duties. Only after the provider confirms successful transmission does Odoo mark the document as filed.

We keep this approval step manual rather than fully automatic, even where the technology allows straight-through processing. The reason is simple. The first few months of any e-Tax rollout surface edge cases: a customer with an outdated tax ID, a credit note issued against a document from before go-live, a branch code typo. These are far cheaper to catch before submission than after.

Where Odoo e-Tax invoice work connects to other Thai localization

e-Tax invoicing rarely lives on its own. Most of the Thai companies we support through our ERP development services are also managing VAT reporting, withholding tax certificates for PND 3 and PND 53, and PromptPay reconciliation in the same close cycle. If the e-Tax document numbering is wrong, it usually shows up first as a VAT return that will not tie out. It rarely shows up first as a rejected filing. That is why we treat this as one connected piece of ongoing support rather than a standalone module install.

Companies selling through Shopee, Lazada or TikTok Shop add another layer. Marketplace payouts need to map back to individual e-Tax documents per order. That mapping is where a lot of generic Odoo setups fall apart, usually because the marketplace integration and the e-Tax module were configured by different people at different times. This is where our Odoo API integration services usually get pulled in mid-project.

A realistic project timeline

For a single-entity company with one or two branches, we typically plan the phases below.

PhaseDurationWhat happens
Requirements and provider selection1-2 weeksConfirm filing scheme, pick provider, get sandbox access
Configuration1-2 weeksSequences, templates, approval routing, signing setup
Parallel testing2-4 weeksRun e-Tax alongside existing paper/manual process
Cutover1 filing cycleFirst live batch, close monitoring

Multi-branch or multi-company setups take longer. Branch-level access rights and numbering need sign-off from each branch's accounting lead before anything goes live.

The trade-off worth naming

Here is the honest limitation. e-Tax Invoice & e-Receipt adds a real approval step and a real dependency on a third-party provider's uptime and turnaround. It is not a fully hands-off background process. Companies that expect same-day, zero-touch filing from day one are usually disappointed by month one. That is when the first rejected batch teaches everyone what the edge cases actually are. Budget for that learning period rather than assuming the first configuration will be the last one.

If your company is approaching the mandatory threshold, or already filing manually and looking to automate, start with a short scoping call before committing to a provider. The numbering and approval decisions are much cheaper to get right before the first invoice than to unwind after three months of live filing. Our team at Odoo ERP customization services has rebuilt this setup more than once, after other providers got the numbering wrong the first time. It always costs more the second time. Our Odoo ERP support services team then stays on to watch the first few filing cycles.

Share

Frequently asked questions

Is Odoo e-Tax invoice setup the same for every Thai company?

No. The configuration depends on which scheme you register under, e-Tax Invoice by Email or e-Tax Invoice & e-Receipt, how many branches you operate, and whether you sell through marketplaces that need order-level mapping. We always scope this per company rather than applying one template.

Does Odoo submit e-Tax invoices directly to the Revenue Department?

Odoo generates the correctly structured document, but transmission to the Revenue Department goes through a certified service provider or a direct signing process, depending on the scheme you register under. Odoo itself is not the filing channel.

What happens if an e-Tax invoice batch gets rejected?

The document stays unfiled and needs correction before resubmission, usually within the same filing period. This is why we keep a manual approval step before submission, so numbering or tax ID errors get caught before the batch reaches the provider.

Can we combine e-Tax invoicing with PromptPay and marketplace sales?

Yes, and most of our Thai clients need exactly that combination. It requires the e-Tax document numbering, PromptPay reconciliation and marketplace order data to be configured together, since a mismatch in any one usually surfaces as a VAT reconciliation problem at month-end.

How long does an e-Tax invoice rollout usually take?

For a single-entity company with one or two branches, expect roughly four to eight weeks from provider selection through parallel testing to cutover. Multi-branch companies typically take longer because each branch needs sign-off on its own numbering and access rights.

Sources

About the author

Ravi Shanker Singh

Founder & Odoo Consultant

Founder of Tech After Me and Odoo consultant. Ravi implements, customises and supports Odoo ERP and builds web, mobile and data products for companies in Thailand, the USA and India, working from Bangkok, New York and Delhi NCR.

More from this author

Put what you read into practice

The team writing these guides is the same team that ships them. Tell us what you are working on.

Get new articles in your inbox

Get new articles in your inbox

Odoo guides and IT news that matter to your business. At most one email a week.