A build-to-order Dynamics 365 Business Central AL extension that posts, validates and transmits Peppol BIS Billing invoices for Belgium's structured B2B e-invoicing mandate through your chosen access point. ECOSIRE builds, installs and supports it after you request a quotation. 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 Dynamics 365 Business Central AL extension that posts,
validates and transmits Peppol BIS Billing invoices for Belgium's structured B2B e-invoicing mandate through your chosen access point.
ECOSIRE builds, installs and supports it after you request a quotation.
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.
Belgian finance teams face a structural change, not a formatting change. Structured electronic invoicing between Belgian VAT-registered businesses means an invoice is no longer a PDF you email — it is a UBL document that must be addressed to a registered Peppol participant, validated against the Peppol BIS Billing 3.0 rules, transmitted through a certified access point, and provable years later. Dynamics 365 Business Central ships genuine electronic-document plumbing — the E-Document framework, the Service Participant and electronic-document service setup, PEPPOL export codeunits and the standard PEPPOL BIS Billing 3.0 format — but it stops short of a Belgian production process. There is no participant lookup against the Peppol directory before you post, no Belgian VAT-category mapping that survives reverse charge and intra-community supply, no queue that tells an AP clerk which invoices were rejected by the receiver's access point and what to do about them, and no archive whose retention story a Belgian auditor will accept without a spreadsheet.
We build a Business Central AL extension that closes that gap end to end. On the posting side, table extensions on Customer carry the Peppol participant identifier (typically the 0208 Belgian enterprise-number scheme) and the endpoint scheme code, with a lookup codeunit that resolves and caches the participant against the SML/SMP so a bad identifier is caught at order entry rather than at transmission. A VAT Posting Setup extension maps each Belgian VAT combination to its UNCL5305 tax category and, where required, the exemption reason code and text — so posting a Sales Invoice Header produces a UBL that carries S, AE, K or E correctly rather than a hardcoded standard rate. Event subscribers on OnAfterPostSalesDoc enqueue the posted document; a job queue entry drives the transmission codeunit, which serialises the UBL via the extended PEPPOL mapping, submits it to your access point over its REST or AS4 interface, and records the transmission ID, timestamp and receiver acknowledgement on a new Peppol Transmission Log table. The same posting produces the human-readable PDF from your existing report layout, so the customer-facing document and the machine document never drift apart.
Rejections are treated as a first-class workflow, because in practice that is where the effort goes. A message-level rejection (schematron failure, unknown participant, unroutable document type) or a business-level rejection returned by the receiver lands on a Peppol Rejections list page with the raw reason, the mapped plain-language cause, and a prescribed action: fix and resubmit, or issue a credit memo and reissue. The extension refuses to silently overwrite a transmitted document — a corrected invoice is a new document with a documented relationship to the original, which is what keeps the audit trail defensible. Archiving stores the exact transmitted UBL byte-for-byte alongside the acknowledgement, so what you can produce in year seven is what actually left your tenant, not a regenerated approximation.
Everything is exposed for the systems around Business Central. API pages published under a dedicated API group expose the transmission log and rejection queue over OData v4 / REST API v2.0, so a Power Automate flow, a Dataverse-connected Power App or your finance data warehouse can read status without touching the AL layer. Permission sets separate the AP clerk who resubmits from the administrator who configures access-point credentials, and those credentials live in isolated storage rather than in a visible setup field. The extension targets current Business Central release waves and is built as a per-tenant extension for SaaS by default; an on-premises build is available where your deployment requires it.
This is build-to-order, and we are explicit about what that means. There is no instant download and this is not an existing AppSource listing. You request a quotation, we run a scoping call to establish your Business Central version and deployment type, your access-point provider, your Belgian VAT scenarios and the shape of your existing sales documents, and then we build the extension against that scope. Typical delivery is 2-4 weeks from confirmed scope. You receive the installable app plus the full AL source for your version, installation and configuration on your environment, UAT on a sandbox with a documented rollback plan, technical and end-user documentation, a training session for your finance team, and a post-go-live support window. Choice of access point stays yours — we integrate with the provider you have contracted, we do not resell one.
Accountable for compliance with the Belgian structured B2B invoicing mandate and unwilling to run a parallel portal beside Business Central. Needs invoices to leave the ERP already compliant, and needs one page that shows which ones did not arrive.
Posts and chases invoices daily. Needs a rejection to arrive as a clear instruction — fix this field and resubmit, or credit and reissue — rather than as a raw XML validation error. Should not have access to access-point credentials, and under this design does not.
Owns the tenant and the upgrade path. Needs an extension that subscribes to events instead of modifying base objects, that survives release-wave upgrades, and whose AL source they can read, extend and support after handover.
Must produce, years later, evidence of what was transmitted and when. Needs the archived UBL and the receiver acknowledgement to be the exact artefacts sent, retrievable without a developer and without reconstructing them from posted entries.
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| Belgian VAT category mapping | UNCL5305 categories mapped per VAT posting setup, including reverse charge, intra-community supply and exemption reason text | Achievable, but the mapping table and every exemption case is yours to research and build | Usually generic EU mapping; Belgian exemption narratives often need manual override | Standard PEPPOL export applies a basic category; Belgian-specific cases need an extension |
| Recipient participant validation | SMP/SML lookup with caching, validated at customer setup and again before posting | A lookup client must be written and cached, or clerks type identifiers unchecked | Commonly validated only at transmission, so the failure surfaces after posting | Service Participant is a stored field; no directory lookup is performed |
| Rejection handling | Dedicated queue mapping schematron and business rejections to a plain-language cause and a prescribed correction path | Whatever workflow you have time to build; frequently ends up as an email inbox | Status field plus raw error text; interpretation left to the clerk | Error surfaces on the electronic-document record with no correction workflow |
| Correction and credit workflow | Corrections create a new linked document; transmitted invoices are never mutated | Depends entirely on the discipline coded into it | Often permits resend of an edited document, weakening the audit chain | Standard credit memo process, unaware of Peppol transmission state |
| Archive and audit evidence | Byte-exact transmitted UBL plus receiver acknowledgement, retention-configurable, exportable in one action | Storage is straightforward; proving the archive matches what was sent is the hard part | Frequently archived in the vendor's cloud rather than in your tenant | Generated document is attached; acknowledgements are not retained systematically |
| Access point choice | Connector built against the provider you have contracted; no reselling, no lock-in | Free choice, but you build and maintain the connector yourself | Typically bundled with the vendor's own access point and its pricing | Connector configuration is required; the integration work is yours |
| Source code and ownership | Full AL source and git repository handed over; you can extend or support it independently | You own it entirely, and you own every future fix | Closed AppSource app; changes depend on the vendor's roadmap | Base application source is read-only; customisation requires an extension anyway |
| Cost and timeline shape | Fixed scoped build, typically 2-4 weeks from confirmed scope, plus an agreed support window | Open-ended internal effort competing with your other Business Central work | Fast to install, then a recurring per-company or per-document subscription indefinitely | No licence cost; the configuration and gap-closing effort is unpriced but real |
This is a build-to-order extension, not an existing AppSource download. Typical delivery is 2-4 weeks from confirmed scope. The clock starts once the scoping call has established your Business Central version and deployment type, your access-point provider, your Belgian VAT scenarios, and any customisation already present on your sales documents. Complex multi-entity or heavily customised environments can extend that, and we tell you before you commit rather than after.
Your quotation states a post-go-live support window covering defect fixes and configuration questions. Because you receive the full AL source and the git repository, your own team or partner can maintain the extension indefinitely. Beyond the included window, ongoing maintenance — recompilation and regression testing against new Business Central release waves, and updates to Peppol BIS specification versions or Belgian mandate rules — is available as a separately scoped support agreement.
Yes, you need a certified Peppol access point — that is how documents actually move on the network — and no, we do not resell one. You keep the commercial relationship with your provider. The extension's connector layer is built against the provider you have contracted, using their REST or AS4 interface. If you have not chosen one yet, we will discuss options on the scoping call and build against your decision.
No — it builds on it. We extend the standard PEPPOL mapping and electronic-document plumbing rather than reimplementing it, so your existing document flows, posting routines and report layouts continue to work. What we add is the Belgian layer the base product leaves to you: participant lookup and validation, Belgian VAT category and exemption mapping, asynchronous transmission with retries, a worked rejection and correction process, and a defensible archive.
It is written as a proper AL extension — table and page extensions, codeunits and event subscribers, with no modification to base application objects — which is the design that upgrades cleanly. We build against your current release wave and test on a sandbox before production install. Microsoft does occasionally change or deprecate events between waves, so we recommend a support arrangement that includes recompilation and regression testing at each major wave.
Yes. The transmission log and rejection queue are exposed as API pages under a dedicated API group over OData v4 / REST API v2.0, making them consumable by Power Automate flows, Power Apps, Dataverse-connected applications or your reporting warehouse — for example a flow that notifies the AR team in Teams when an invoice is rejected. No AL knowledge is needed to consume them.
The scope described here is outbound sales invoices and credit memos, which is what the Belgian B2B mandate makes urgent. Inbound receipt of purchase invoices over Peppol, with matching against purchase orders, is a natural extension and is regularly quoted alongside. Raise it on the scoping call and we will scope and price it explicitly rather than assume it.

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 Dynamics 365 Business Central AL extension that posts, validates and transmits Peppol BIS Billing invoices for Belgium's structured B2B e-invoicing mandate through your chosen access point. ECOSIRE builds, installs and supports it after you request a quotation.