A build-to-order AL extension that stamps CFDI 4.0 invoices through your PAC directly from Dynamics 365 Business Central, with cancellation flows, rejection handling 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 stamps CFDI 4.0 invoices through your PAC directly from Dynamics 365 Business
Central, with cancellation flows, rejection handling 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.
Invoicing in Mexico is not a printing problem, it is a validation problem. Every sales invoice, credit memo and payment has to be built as a CFDI 4.0 XML, signed with your CSD certificate, stamped by an authorised PAC and accepted by the SAT before it is legally a document at all. Dynamics 365 Business Central gives you a solid posting engine, dimensions and clean customer and item master data — but out of the box it has no concept of a UUID, a RegimenFiscal, a UsoCFDI, a ClaveProdServ, a payment complement, or a cancellation that has to be requested, acknowledged and sometimes rejected by the buyer. Teams end up posting in Business Central and then re-keying the same invoice into a PAC portal or a spreadsheet bridge, which is where mismatched totals, wrong tax codes and untraceable cancellations start.
We build a Business Central AL extension that closes that gap inside the system where the invoice is already posted. Table extensions carry the Mexican fiscal fields on Customer, Item, company setup and the posted sales documents — RFC, tax regime, postal code of issue, UsoCFDI, ClaveProdServ, ClaveUnidad, payment method and payment form. Page extensions surface them next to the fields your finance team already uses, so the data lives on master records rather than being typed per invoice. A codeunit layer composes the CFDI 4.0 XML from the posted document, applies your tax mapping (IVA at the applicable rate, IVA retenido, ISR retenido, exempt and zero-rated lines) and calls your PAC's web service to stamp it. Event subscribers on the standard posting codeunits pick the document up automatically, and a job queue entry retries anything that failed transiently instead of leaving it stranded.
Stamping is only half the lifecycle, so the extension models the rest of it. The stamped UUID, the SAT seal, the certificate number and the timestamp are written back to the posted document, and both artefacts come from that one posting: the signed XML for the SAT and a human-readable PDF with the QR and the digital-stamp block for the customer. Cancellations follow the current SAT flow — a cancellation reason and, where required, the substituting UUID — with the request, the acknowledgement and the buyer's acceptance or rejection recorded as state on the document rather than as a note in a comment line. When a PAC rejects a stamp, the error code and message land on a correction worklist so an accountant can fix the RFC, the regime or the product key and resubmit, with every attempt kept in an audit log. XML, PDF and response payloads are archived against the document so a SAT audit can be answered from Business Central instead of from someone's mailbox.
Everything is packaged as a proper AL app with its own permission sets, so the accountant who stamps, the clerk who corrects rejections and the controller who cancels can be separated. We target current Business Central release waves and can deliver as a per-tenant extension or, where you want it in your own AppSource pipeline, as an app built to those requirements. On SaaS the PAC is called over outbound HTTP with credentials held in isolated storage; on-premises we work with your proxy and certificate handling. API pages exposed over REST API v2.0 / OData v4 let a Power Automate flow, a Dataverse-connected app or a customer portal read stamp status and pull the signed XML without anyone touching the database.
This is build-to-order, and we are explicit about that: there is no instant download. You request a quotation, we run a scoping call to pin down your PAC, your Business Central version and deployment, your tax and product-key mapping, and which document types are in scope. We then build the extension against your setup, install it on a sandbox for UAT with your own certificates and your PAC's test environment, and go live with you. Typical delivery is two to four weeks from confirmed scope. You receive the AL source, the git repository, documentation and a post-go-live support window — the extension is yours, not a licence you rent.
Owns the monthly close and is accountable to the SAT. Needs every posted invoice to carry a valid UUID, every cancellation to be traceable, and needs to answer an audit from Business Central rather than from a PAC portal and a folder of emails.
Issues invoices and payment complements daily. Needs stamping to happen as part of posting, a clear worklist when the PAC rejects something, and the ability to correct an RFC or product key and resubmit without raising a ticket with IT.
Runs Business Central and is wary of unsupported customisation. Wants a proper AL extension with permission sets, source code in a repository they own, predictable behaviour across release waves, and no direct database access from outside the system.
Runs Mexico as one entity among several. Wants Mexican compliance handled inside the same Business Central tenant and reporting stack as the rest of the group, without a separate local system to reconcile every month.
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| Fit to your tax and product-key mapping | Mapped to your actual VAT posting setup and item catalogue during the build | Exactly what you specify, if your team knows the CFDI 4.0 schema well | Generic mapping table you configure yourself, within vendor-defined limits | No CFDI concepts at all — no ClaveProdServ, no UsoCFDI, no tax stamp |
| PAC integration | Client built for your specific PAC, test and production endpoints, error codes handled | Yours to build and maintain, including every PAC error-code path | Usually a fixed list of supported PACs; switching may not be an option | None — stamping happens outside Business Central entirely |
| Source code ownership | Full AL source and git repository handed over; no licence key | Yours, at whatever quality your team or contractor delivered | Compiled app under a per-user or per-tenant subscription | Not applicable |
| Time to a working system | Two to four weeks from confirmed scope, including UAT on your sandbox | Months, plus the CFDI 4.0 learning curve carried by your team | Fast to install, then weeks of configuration and gap-filling | Immediate, but you still invoice Mexico manually somewhere else |
| Cancellation and rejection handling | Reason codes, substituting UUID, buyer acceptance state, correction worklist | Frequently deferred to phase two and never actually built | Varies widely; stamping is often strong while cancellation stays thin | Not modelled — cancellations live in the PAC portal |
| Audit trail and archiving | Request and response payloads, XML and PDF archived against each document | Depends entirely on how much your original spec asked for | Generally present, but stored in the vendor's own structure and format | Standard document history only; no fiscal artefacts to archive |
| Extensibility to Power Platform | API pages over REST API v2.0 / OData v4 for Power Automate and Dataverse | Only if you scoped and built the API pages yourself | Sometimes exposed, sometimes only through the vendor's own portal | Standard BC APIs exist, but carry no CFDI fields to expose |
| Cost shape | One-time build cost, then optional scoped changes for regulatory updates | Open-ended build cost plus a permanent internal maintenance load | Recurring per-user or per-tenant fee for as long as you invoice | No software cost, paid instead in manual effort and audit risk |
This is a build-to-order extension, so there is nothing to download today. Typical delivery is two to four weeks from confirmed scope — that clock starts once we have agreed your PAC, your Business Central version and deployment type, the document types in scope, and the tax and product-key mapping. Complex scenarios (several legal entities, a PAC with a non-standard API, heavy existing customisation in the tenant) can extend that, and we tell you before you commit, not after.
We build against the PAC you already contract with. Most PACs expose a SOAP or REST stamping service with separate test and production endpoints; we implement the client, the authentication and the error-code handling for yours specifically during the build. If you have not chosen a PAC yet we can walk through the options on the scoping call, but the stamping contract stays between you and the PAC — we do not resell stamping credits.
Yes, and we ask which at scoping because it changes the build. On SaaS the extension is AL-only, calls the PAC over outbound HTTP and holds credentials in isolated storage. On-premises we additionally work with your proxy configuration and certificate store. We target current supported release waves; if you are on an older version we will tell you up front what that constrains.
Every engagement includes a post-go-live support window for defects and configuration adjustments. Beyond that you own the source and the git repository, so you can maintain it in-house or retain us. When the SAT changes the CFDI specification, a PAC changes its API, or a Business Central release wave affects an integration point, that is a scoped change request we quote separately — we do not pretend regulatory change is free, and we do not lock you into a subscription to receive it.
A cancellation is initiated from the posted document with a SAT cancellation reason and, where the reason requires it, the UUID of the substituting document. The extension sends the request to the PAC and records the acknowledgement, then the buyer's acceptance or rejection, as state on the document. Stamping rejections are a different path: the PAC or SAT error code and message land on a correction worklist, an accountant fixes the offending field — usually an RFC, a tax regime or a product key — and resubmits, with every attempt written to the audit log.
It is a standard AL extension built from table extensions, page extensions and event subscribers — no base-application modification and no C/AL leftovers. That is the supported extensibility model and it is what makes upgrades predictable. We still validate against each release wave you move to; a subscriber whose underlying event Microsoft deprecates is a real if occasional event, and that is a scoped update rather than a rebuild.
You own it. We hand over the full AL source and the private git repository with commit history at the end of the engagement. There is no per-user licence, no runtime key and no phone-home. If you later want it published to AppSource under your own publisher account, we build to those requirements when that is agreed at scoping.

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 stamps CFDI 4.0 invoices through your PAC directly from Dynamics 365 Business Central, with cancellation flows, rejection handling and a compliant archive. ECOSIRE scopes, builds, installs and supports it — it is not an AppSource download.