An ECOSIRE-built AL extension that turns posted Business Central sales invoices, credit memos, and receipts into digitally signed Thai e-Tax Invoice & Receipt documents, delivers them to the buyer and your accredited channel, and keeps a compliant archive. Built to order for your Business Central version and your Thai tax setup. Built to order by ECOSIRE for Dynamics 365 BC (build-to-order) — indicative price from $499.00 USD; request a quote for a scoped proposal.
Illustrative previewAn ECOSIRE-built AL extension that turns posted Business Central sales invoices,
credit memos, and receipts into digitally signed Thai e-Tax Invoice & Receipt documents, delivers them to the buyer and your accredited channel, and keeps a compliant archive. Built to order for your Business Central version and your Thai tax setup.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your Dynamics 365 Business Central.
You go live in about 2–4 weeks, with a post-launch support window.
Thailand's e-Tax Invoice & Receipt regime does not accept a PDF that merely looks like a tax invoice. The document must carry a digital signature backed by a certificate from an ETDA-recognised authority, must exist in a defined XML structure alongside the human-readable copy the buyer actually reads, must carry the seller's and buyer's 13-digit Tax IDs and branch codes exactly as registered, and must be retained in a form an auditor can reopen years later with the signature still verifiable. Dynamics 365 Business Central ships strong VAT posting, posting groups, and document numbering — but out of the box it has no concept of a Thai e-Tax payload, no signing pipeline, no submission channel, and no way to record that a specific posted document was accepted, rejected, or later cancelled. Teams close the gap with a spreadsheet, a service-bureau portal, and a person who re-keys invoice lines twice a day. That person is the compliance control, and they are also the single point of failure.
We build a per-tenant AL extension (or an AppSource-targeted app where you prefer that packaging) that makes e-Tax issuance a consequence of posting rather than a separate chore. Table and page extensions on Sales Invoice Header, Sales Cr.Memo Header, and your receipt documents add the fields the regime cares about: e-Tax status, authority reference, signing timestamp, certificate serial, rejection reason, and correction linkage. A dedicated E-Tax Document table holds one row per issued document with its full lifecycle. Codeunits do the real work: one composes the XML from Business Central master data (customer Tax Registration No., branch code, VAT Business and Product Posting Groups, unit of measure, line amounts, VAT amount, withholding where it applies), one handles signing against your certificate — HSM, PKCS#12 store, or your signing provider's API — and one handles transport to your ETDA-accredited service provider or the channel your tax advisor has approved. An event subscriber on OnAfterPostSalesDoc queues the document instead of blocking the posting routine, so a network outage at the provider never stops your users from invoicing.
The rest of the design is about what happens when things go wrong, because that is where most e-invoicing projects fail. Submission runs through a Job Queue Entry, so retries, back-off, and error visibility are native Business Central behaviour your administrator already knows how to read. A rejection lands back on the document as a status and a readable reason, with an action that walks the user through the correct remedy — a credit memo and re-issue, or a corrected document referencing the original — rather than letting someone quietly patch the XML by hand. The signed payload and the buyer-facing PDF are both retained, linked to the posted document, and exposed through API pages (REST API v2.0 / OData v4) so Power Platform flows, a Dataverse-connected portal, or your archive of record can pull them without touching the database. Permission sets keep issue, re-issue, and cancel as separate rights, which is what your auditor asks about first.
Everything is built for current Business Central release waves and works on SaaS as well as on-premises, with the signing component chosen to match: a SaaS tenant calls an external signing service, an on-premises deployment can use a local certificate store or HSM directly. Document composition, status lifecycle, job queue behaviour, API surface, and archiving are identical either way, so a group running both deployment models gets one pattern rather than two.
This is build-to-order, not an AppSource download. After a scoping call we confirm your Business Central version and deployment model, your accredited service provider or signing arrangement, which document types are in scope (tax invoice, receipt, tax invoice/receipt, credit note, debit note, abbreviated tax invoice), how your customer master carries Tax IDs and branch codes today, and what your retention obligation looks like. We then build the extension against your setup, deliver it to a sandbox for UAT with your finance team and tax advisor, and go live with a rollback plan in hand. Typical delivery is two to four weeks from confirmed scope. You receive the full AL source for your Business Central version and the git repository — the compliance logic sitting between your ledger and the Revenue Department is not something you should have to rent back from a vendor.
Owns the VAT filing and the relationship with the tax advisor. Needs every posted invoice, receipt, and credit note to reach an accepted state, needs rejections visible the same day rather than at month end, and needs to answer 'show me this document exactly as it was signed' without calling IT.
Runs daily invoicing in Business Central and is the person currently re-keying documents into a service-bureau portal. Needs issuance to be a by-product of posting, a clear queue of what failed and why, and a correction path that never involves editing XML by hand.
Responsible for the environment through every release wave. Needs a proper AL app with declared dependencies, permission sets, and job queue entries — not a customisation that breaks on the next update — and needs the source in a repository they control.
Operates Business Central across several countries and treats Thailand as one of many local obligations. Needs a consistent extension pattern, API access for group reporting, and an archive that satisfies the Thai retention requirement without standing up a separate local system.
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| Time to a working solution | 2-4 weeks from confirmed scope, built against your version and provider | Months of internal AL work competing with your team's existing backlog | Installs in a day, then weeks fitting your data and provider to its assumptions | Never — Business Central has no Thai e-Tax concept at all |
| Fit to your tax and master data setup | Mapped to your actual VAT posting setup, Tax IDs, branch codes, and document types | Exact fit, if the developer understands both AL and the ETDA specification | Fits the vendor's assumed data model; gaps become manual workarounds | VAT posting only; no Thai-specific fields exist |
| Source code ownership | Full AL source and git repository handed to you at delivery | You own it outright, and you own every future fix as well | Closed source; you rent the compliance logic indefinitely | Not applicable |
| Signing and provider integration | Built for your certificate arrangement and accredited provider, SaaS or on-premises | Whatever your team has time to integrate and test properly | Usually tied to the vendor's own service or a short partner list | No signing capability whatsoever |
| Rejection and correction handling | Status, reason, and a guided credit-memo or corrected-document flow with linkage recorded | Commonly deferred to phase two, then handled by email and spreadsheet | Varies widely; often a portal notification outside Business Central | No submission, so no rejection concept |
| Resilience under provider outage | Asynchronous job queue with retry and back-off; posting is never blocked | Depends entirely on whether the team designed for failure | Often synchronous, so a provider outage stops invoicing | Not applicable |
| Update wave maintenance | Optional support covering re-validation each wave, or maintain it yourself with the source | Your team re-validates against every wave and every spec change | Vendor handles it, on the vendor's timeline and price | Nothing to maintain, and nothing to rely on |
| Downstream access and reporting | API pages on REST API v2.0 / OData v4 for Power Platform, Dataverse, and archives | Built only if scoped and funded up front | Often a closed portal with limited export | Standard Business Central APIs, carrying no e-Tax data |
This is a build-to-order extension, so nothing ships the moment you click. Typical delivery is two to four weeks from confirmed scope — the clock starts once we have agreed your Business Central version and deployment model, your accredited service provider or signing arrangement, the document types in scope, and the state of your customer master data. Complex scenarios (several legal entities, unusual withholding treatment, a signing provider we have not integrated before) can extend that, and we tell you before you commit, not after.
No. We build it for your environment, deliberately. Thai e-Tax issuance depends on which accredited service provider you use, how your certificate is held, how your customer master carries Tax IDs and branch codes, and which document types you actually issue. We package it as a per-tenant extension by default, or as an AppSource-targeted app if you prefer that governance model, and either way you receive the source and the git repository.
Every engagement includes a post-go-live support window for defects and configuration adjustment while your first real filing cycles run. Beyond that we offer an ongoing support and maintenance arrangement covering re-compilation and re-validation against each Business Central release wave, changes to the ETDA or Revenue Department specification, and provider API changes. Because you hold the source and the repository, you can equally maintain it in-house or with another partner — there is no lock-in built into the code.
Yes, with the signing path chosen to match. On SaaS, signing is performed by calling your accredited signing service or provider API from the extension, since a SaaS tenant cannot host a local certificate store. On-premises, the extension can use a local PKCS#12 store or an HSM directly. Document composition, status lifecycle, job queue behaviour, API pages, and archiving are identical in both cases.
The rejection comes back onto the Business Central document as a status and a readable reason, and the document sits in a failed queue rather than disappearing. From there the extension drives the correct remedy — a credit memo and re-issue, or a corrected document referencing the original — and records the linkage so the audit trail shows what replaced what. Nobody edits a signed payload by hand; that path does not exist in the design.
Yes. The extension exposes API pages built on REST API v2.0 / OData v4 covering e-Tax status and document retrieval, so Power Platform flows, a Dataverse-connected portal, a group reporting warehouse, or your archive of record can read them without direct database access. If you need a particular payload shape for an existing downstream system, raise it during scoping and we build it into the API surface.
Very little. Users post sales invoices, credit memos, and receipts exactly as they do now — issuance is triggered by an event subscriber on posting and runs asynchronously through a job queue entry. The genuinely new work is monitoring: someone owns the failed-document queue and works rejections. We cover that role explicitly in the user guide and the training session, because a compliance feature nobody watches is not a compliance feature.

Configurable, rule-based approval matrices for every Business Central document type, with per-workflow approvers, amount limits, delegation, and email/mobile responses. Built and installed by ECOSIRE as a per-tenant AL extension.

A build-to-order AL extension that brings Adyen's 150+ global payment methods and unified settlement reconciliation into Business Central accounts receivable, complementing the first-party D365 Commerce Adyen connector.

A build-to-order Business Central extension that registers affiliates and referrers, attributes sales to referral codes and links, calculates tiered commission, and posts payouts as vendor invoices — installed per-tenant and supported by ECOSIRE.

A build-to-order AL extension that adds localized, multi-country African payroll to your Business Central tenant — per-country PAYE and statutory deductions, multi-currency multi-entity runs, statutory filing exports, and employee self-service payslips.
An ECOSIRE-built AL extension that turns posted Business Central sales invoices, credit memos, and receipts into digitally signed Thai e-Tax Invoice & Receipt documents, delivers them to the buyer and your accredited channel, and keeps a compliant archive. Built to order for your Business Central version and your Thai tax setup.