A build-to-order Dynamics 365 Business Central extension that fiscalises invoices and credit notes against Tanzania Revenue Authority EFD/VFD requirements directly from the documents your team already posts. ECOSIRE scopes, builds, installs and supports it — and hands over the AL source code. 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 extension that fiscalises invoices and credit notes against
Tanzania Revenue Authority EFD/VFD requirements directly from the documents your team already posts.
ECOSIRE scopes, builds, installs and supports it — and hands over the AL source code.
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.
Tanzania's Revenue Authority requires that a sale be fiscalised — passed through an EFD or virtual fiscal device, assigned a receipt number and verification code, and reproduced in a customer-readable form — before it is a valid tax document. Dynamics 365 Business Central posts a clean sales invoice, applies your VAT posting setup and files it in the posted document archive, and then stops. There is no fiscal device client in the base application, no TRA tax-code concept alongside your VAT posting groups, and no notion of a document being posted-but-not-yet-accepted. Finance teams close that gap by hand: post in Business Central, re-key into a standalone fiscal device or supplier portal, and reconcile two sets of numbers at month end. Every re-key is a mismatch risk, and every mismatch is an audit exposure.\n\nECOSIRE builds a Business Central AL extension that closes the loop inside the system where the invoice already lives. A codeunit-based VFD client handles authentication, request signing and HTTPS transport to the fiscal device or gateway your business uses. Table extensions on the sales header and posted sales invoice carry the fiscalisation state — pending, submitted, accepted, rejected — plus the returned receipt number, verification code and timestamp. Page extensions surface that state where your AR clerk is already working, with a fiscal factbox and a resubmit action rather than a separate screen. Event subscribers on the posting codeunits enqueue the document, and a job queue entry drains the queue asynchronously so a slow or unavailable device never blocks a posting run.\n\nTax mapping is derived from your existing master data rather than duplicated. We extend VAT Posting Setup, Item and Item Category with TRA tax-code fields, validate the mapping at posting time, and fail loudly with a clear message when a line has no mapped code — because a silent default is how the wrong rate reaches the authority. One posting produces both outputs the requirement asks for: the machine payload sent to the device, and the human-readable fiscal receipt, rendered as a Business Central report layout carrying the receipt number and verification QR so the customer copy and the fiscal record can never diverge.\n\nRejections are treated as a workflow, not a log line. A rejected submission lands in a fiscalisation error queue with the device's own reason code, the exact payload sent and a correction action that routes to a credit note or a corrected resubmission depending on whether the document was already accepted. Every attempt — accepted or not — is written to an immutable fiscal record table that no user role can edit, giving your auditors a defensible trail from the posted entry back to the TRA response. Where you need the data outside Business Central, we expose it through API pages on REST API v2.0 / OData v4 so Power BI, Power Automate or a Dataverse-connected app can read fiscalisation status without a database extract.\n\nThis is build-to-order, not an AppSource download. We start with a short scoping call to confirm your Business Central version and deployment model, which fiscal device or gateway you are contracted with, how your invoicing, POS and credit-note flows actually run, and which permission sets and approval steps must be respected. From confirmed scope, typical delivery is two to four weeks: we build against your version, install and configure on your sandbox, run UAT with your own documents, then publish to production with a rollback plan. You receive the AL source and the git repository, so the extension stays yours to maintain, extend or hand to another partner.
Signs off the VAT return and carries the exposure when a posted invoice has no fiscal receipt behind it. Needs fiscalisation status visible per document, a reconciliation view between Business Central posted totals and accepted TRA submissions, and an audit trail they can hand to an inspector without assembling it by hand.
Runs daily invoicing and is the person who currently re-keys documents into a standalone fiscal device. Needs fiscalisation to happen inside the invoice they already posted, a clear pending-versus-rejected state, and a resubmit action they can use themselves without raising a ticket to IT.
Owns the tenant and the upgrade path. Needs an extension that uses event subscribers rather than base-object modification, ships with proper permission sets and job queue configuration, is compiled against the current release wave, and comes with source in a git repository so the business is not locked to a single supplier.
Runs one Business Central tenant across several jurisdictions and does not want a bolt-on portal per country. Needs the Tanzanian entity compliant inside the same system and chart of accounts, with fiscalisation data readable through APIs into group Power BI reporting.
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| TRA fiscalisation coverage | VFD/EFD fiscalisation built for your invoice flow, including credit notes and Z-report reconciliation | Whatever your in-house AL developer has time to finish before the audit deadline | Generic African-tax framework with Tanzania as one configuration profile | No fiscalisation of any kind; VAT posting groups only |
| How it reaches the fiscal device | Codeunit-based VFD client over HTTPS with signing, retries and job queue dispatch | Usually a first pass with synchronous calls and no retry design | Vendor middleware you must also license and host | Nothing; invoices post and stop |
| Tax mapping | Table-extension mapping from VAT Posting Setup and Item to TRA tax codes, validated on posting | Often hard-coded constants that break at the next rate change | Fixed mapping table you adapt your chart of accounts to | BC VAT setup with no TRA code concept |
| Rejection handling | Fiscalisation status per document, an error queue, and a guided correction-and-resubmit workflow | Typically a log field and a developer running code manually | Error list, with correction left to the user | Not applicable |
| Audit archiving | Immutable fiscal record per posted document with receipt number, verification code and payload retained | Depends on what was scoped; usually thinner than auditors want | Archive inside the vendor's own portal, not in BC | Standard posted document archive with no fiscal evidence |
| Deployment model | AL extension for BC SaaS online or on-premises, delivered as source you own | Whatever your team builds; ownership is clear but timeline is not | AppSource binary; source not provided | Base application only |
| Fit to your process | Scoped to your invoicing, POS and credit-note reality before a line is written | Fully bespoke, but you carry all analysis and rework risk | You change your process to match the app | N/A |
| Ongoing changes | Post-go-live support window plus a quoted change path for TRA spec and release-wave updates | Depends on developer availability and staff turnover | Vendor release cadence you cannot influence | Microsoft ships no TRA functionality to update |
This is build-to-order. Typical delivery is two to four weeks from confirmed scope — meaning after the scoping call, once your Business Central version, deployment model, fiscal device or gateway, and document flows are agreed in writing. Scope is confirmed, then the clock starts. If your fiscal device supplier is slow to issue test credentials, that dependency is called out up front rather than absorbed silently into the timeline.
No. There is nothing to download today. ECOSIRE builds the extension for your environment after you request a quotation, then installs, configures and supports it. You get the AL source code and the git repository at handover, which an AppSource binary would not give you.
Yes. We build to current release waves and target your deployment model explicitly. For SaaS we deliver a per-tenant extension published through the admin centre, using only cloud-permitted patterns — HttpClient from a codeunit, no external DLLs, no file-system dependencies. For on-premises we deliver the same extension compiled against your version, and can accommodate on-prem-only integration paths where your fiscal device is on the local network.
Every build includes a post-go-live support window for defect fixes and configuration adjustments arising from your first live fiscalisation cycles — the exact length is set in your quotation. Beyond that, TRA specification changes and Business Central release-wave upgrades are handled as quoted change requests against your repository. Because you hold the source, you are never locked into us to make a change.
We integrate against the device or gateway your business is already contracted with in Tanzania. The VFD client is built as a codeunit behind an interface, so the transport and payload specifics of your provider are implemented in one place rather than scattered through posting logic. Bring your provider's integration specification and test credentials to the scoping call and we confirm feasibility before quoting.
No. Posting completes normally; fiscalisation is enqueued by an event subscriber and processed by a job queue entry on its own schedule. If the device is unreachable, the document sits in the queue with a pending status and retries, rather than failing the post. Your AR team sees the pending state on the document itself and in the fiscalisation error queue.
An immutable fiscal record for every posted document — receipt number, verification code, timestamp, the payload sent and the response received — held in a dedicated table that no user role can edit, with the exact payload retained for each attempt. That record is exportable and is included in the compliance evidence pack we hand over at go-live, alongside a sample fiscalised invoice and credit note.

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 extension that fiscalises invoices and credit notes against Tanzania Revenue Authority EFD/VFD requirements directly from the documents your team already posts. ECOSIRE scopes, builds, installs and supports it — and hands over the AL source code.