A build-to-order AL extension that issues Vietnamese e-invoices straight from Dynamics 365 Business Central postings — provider API transmission, invoice code handling, tax mapping, rejection corrections and a compliant archive. ECOSIRE scopes, builds, installs and supports it; it is not an AppSource download. 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 previewA build-to-order AL extension that issues Vietnamese e-invoices straight from Dynamics 365 Business Central
postings — provider API transmission, invoice code handling, tax mapping, rejection corrections and a compliant archive.
ECOSIRE scopes, builds, installs and supports it; it is not an AppSource download.
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.
Finance teams invoicing in Vietnam carry a compliance burden Dynamics 365 Business Central was never localised for. Vietnamese e-invoicing requires each sales invoice to be transmitted to an authorised e-invoice service provider, to carry a provider-assigned invoice code (and, where the taxpayer is in scope, a tax-authority verification code), to exist in both a human-readable representation and a machine format, and to be retained with an auditable trail. Out of the box, Business Central posts a Sales Invoice Header, prints a report layout, and stops. Everything after that — provider credentials, serial and form patterns, VAT category mapping, transmission retries, rejection handling, adjustment and replacement invoices, archive retention — happens in a spreadsheet, a provider portal, or a second data-entry pass. That gap is where numbers drift: an invoice posted in Business Central and an invoice issued at the provider stop agreeing, and reconciliation at period close becomes manual detective work.
ECOSIRE builds a per-tenant AL extension (or an AppSource-packaged app where you prefer that route) that closes the loop inside Business Central. A setup table and page hold provider endpoint, credentials, invoice form and serial patterns, and environment (test vs production). Table extensions on Sales Invoice Header, Sales Cr.Memo Header and Customer carry the Vietnamese fields the standard tables have no home for — buyer tax code (MST), provider invoice code, provider transaction id, issue status, verification code and rejection reason. Codeunits do the work: a mapping codeunit resolves VAT posting setup and item/resource lines to the tax categories your provider expects, a transmission codeunit calls the provider REST API with typed request objects and handles the authentication and token lifecycle, and a status codeunit polls or receives the outcome. Event subscribers on the posting routines (OnAfterPostSalesDoc and friends) enqueue the document rather than blocking the user's post — transmission runs through a job queue entry, so a slow or unreachable provider never stops a warehouse from invoicing.
Output is generated once from the posted document. The machine format your provider requires is produced from Business Central data, and the human-readable representation is produced from the same source so the two can never diverge — the PDF the customer receives and the file the provider receives are two renderings of one posting, not two independent documents. Where the provider returns a signed or coded artefact, we store it against the document and expose it on the posted invoice page, so a controller can open the invoice in Business Central and see the provider's invoice code, transmission timestamp and current status without leaving the ERP.
Rejections are treated as a first-class workflow, not an error log. A rejected transmission lands in a queue page with the provider's reason code translated into plain language, the offending field highlighted where the provider identifies one, and a guided correction path: fix the master data or the document, then resubmit under the same or a replacement number according to your provider's rules. Adjustment and replacement invoices are modelled explicitly so the audit trail shows what was issued, what was superseded, and why. Everything — request, response, status transition, user, timestamp — is written to a log table that survives the document, and archive retention is configured to your policy. Permission sets ship with the extension so an AP clerk, a finance manager and a system administrator each see only what they should, and API pages (REST API v2.0 / OData v4) expose issue status for Power BI, Power Automate or a Dataverse-connected app when you want compliance reporting outside Business Central. We build for current release waves on both SaaS and on-premises.
This is build-to-order: it does not exist as a download today. We start with a scoping call, confirm your e-invoice service provider and their API contract, your form and serial patterns, your VAT setup and your correction policy, then write a fixed scope. Typical delivery is 2–4 weeks from confirmed scope, depending on provider API complexity and how much of your master data needs tax-code remediation first. You get the AL source built against your Business Central version, deployment to a sandbox for UAT, a documented rollback, then production installation, training and a post-go-live support window.
Owns VAT filings and period close. Needs every invoice posted in Business Central to have a matching, coded, provider-issued e-invoice — and needs to prove it at audit without reconciling two systems by hand.
Runs one Business Central tenant across several countries and refuses to bolt on a separate Vietnamese invoicing system. Wants Vietnam compliance handled inside the same posting flow and reportable through the same Power BI model as every other entity.
Accountable for the extension estate and the upgrade path. Cares about clean object ranges, no base-app modification, permission sets, job queue behaviour under load, and source code they can hand to another developer.
Posts and issues invoices all day. Needs the provider's invoice code visible on the posted document, and a rejection to arrive as an actionable task with a clear reason rather than a silent failure discovered a week later.
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| Provider transmission | Built against your provider's API with auth, retry and status polling in a job queue | Achievable, but retry, token lifecycle and stuck-document handling are the parts DIY projects usually leave out | Supports the providers the vendor chose; yours may not be one of them | None — Business Central posts and prints, nothing leaves the system |
| Tax code mapping | Derived from your VAT posting setup and item master, mapped to your provider's categories at build time | Depends entirely on how well the developer understood your VAT setup | Generic mapping tables you configure yourself, often with a Vietnam-specific gap | Standard VAT posting setup only, with no e-invoice category concept |
| Rejection handling | Dedicated queue page, reason translated, field pointers, guided resubmit and replacement-invoice flow | Typically an error log an administrator has to read | Usually a status field; correction often means returning to the provider portal | Not applicable — nothing is submitted |
| Audit trail and archiving | Immutable request/response and status log plus artefact archive with configurable retention | Whatever was budgeted for; logging is the first thing cut under time pressure | Vendor-defined retention, sometimes stored in the vendor's cloud rather than yours | Standard change log and document history, with no issued-artefact archive |
| Upgrade path | Extension model in a registered object range, recompiled and regression-tested each release wave | Safe if built as an extension, risky if shortcuts were taken into base objects | Vendor updates on their schedule, which may lag your upgrade window | Nothing to upgrade |
| Source code ownership | Full git repository handed over — you can maintain it or reassign it | You own it, and you also own every undocumented decision inside it | Closed source; you rent the functionality | Not applicable |
| Fit to your process | Scoped to your form and serial patterns, correction policy and approval flow before a line is written | Fits exactly, if the requirements were captured properly first | You adapt your process to the app's assumptions | Standard sales posting only |
| Time to live | 2–4 weeks from confirmed scope, including UAT on a sandbox | Months once discovery, build, test and rework are counted honestly | Fast to install, then slow while you discover what it does not cover | Immediate, but the compliance work stays manual |
No. This is a build-to-order extension, not an existing Microsoft AppSource download. ECOSIRE builds it for your Business Central version, your e-invoice service provider and your VAT setup after you request a quotation and we agree the scope.
Typical delivery is 2–4 weeks from confirmed scope. The scoping call takes about 30 minutes; after that we write a fixed scope covering your provider's API, your form and serial patterns, your VAT mapping and your correction policy. Timeline moves within that range mainly on provider API complexity and whether your customer and item master data needs tax-code remediation first. Anything that would push beyond it, we tell you before you sign rather than after.
Whichever authorised provider you already use. Vietnamese e-invoicing runs through service providers with differing REST APIs, authentication and correction rules, so the transmission codeunit is written against your provider's published contract as part of the build. If you have not chosen one yet, we can scope against the provider you shortlist — tell us on the call.
Delivery includes a post-go-live support window for defect fixes and configuration adjustments on the agreed scope. Beyond that, ongoing support and version-uplift work — recompiling and regression-testing against new Business Central release waves, or adapting to a provider API change or a regulatory update — is covered by a separate support agreement, quoted at the same time so there are no surprises. You also receive the git repository, so you are never locked in.
No base application objects are modified. The solution is an AL extension using table extensions, page extensions, codeunits and event subscribers within a registered object range, which is the supported model for both SaaS and on-premises. On each release wave we recompile and regression-test rather than untangle customisations.
No. Posting completes normally; the document is enqueued and transmitted by a job queue entry with configurable retry and backoff. A slow or unavailable provider delays the issue status, never the posting itself, and stuck documents surface in the rejection queue and in Application Insights telemetry.
Yes. Issue status, provider invoice codes and transmission timestamps are exposed through API pages over REST API v2.0 / OData v4, so Power BI, Power Automate and Dataverse-connected apps can read compliance state without direct database access.

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.
A build-to-order AL extension that issues Vietnamese e-invoices straight from Dynamics 365 Business Central postings — provider API transmission, invoice code handling, tax mapping, rejection corrections and a compliant archive. ECOSIRE scopes, builds, installs and supports it; it is not an AppSource download.