A build-to-order AL extension that issues e-Fatura and e-Arşiv documents straight from Dynamics 365 Business Central, routing each customer to the correct GİB scenario. The UBL-TR payload, the human-readable copy and the audit trail all stay attached to one posted invoice. 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 e-Fatura and e-Arşiv documents straight from Dynamics 365 Business
Central, routing each customer to the correct GİB scenario. The UBL-TR payload, the human-readable copy and the audit trail all stay attached to one posted invoice.
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 Türkiye rarely fail at accounting — they fail at the handoff. Business Central posts a sales invoice cleanly, and then someone re-keys it into a portal or an integrator's web screen, checks by hand whether the buyer is registered on the GİB e-Fatura user list, picks a scenario, and hopes the tax lines survive the trip. Out of the box, Business Central has no concept of an e-Fatura scenario, no Vergi Kimlik No / TCKN validation on the customer card, no UBL-TR envelope, and no place to store the GİB reference, the ETTN, or a rejection reason against the posted document. The localization gap is not the invoice — it is everything that has to happen in the ninety seconds after posting.
What we build is a per-tenant AL extension (or an AppSource-shaped app where you prefer that packaging) that closes that gap inside Business Central. A table extension on Customer carries the tax identifier, the GİB alias (PK/GB labels), the registered-user flag and the last user-list check timestamp; a page extension surfaces them on the Customer Card with validation that rejects a 10-digit VKN in a TCKN field before anyone posts anything. On posting we subscribe to OnAfterPostSalesDoc in Codeunit 80 Sales-Post, resolve the scenario — e-Fatura for a registered buyer, e-Arşiv for everyone else, including the retail and internet-sales variants — and write an outbound document record. A dedicated codeunit builds the UBL-TR payload from Business Central master data: tax identifiers, VAT Posting Setup mapped to Turkish tax type codes, withholding and exemption codes where the setup calls for them, line-level discounts, and currency handling for foreign-currency invoices. The same posting run produces the human-readable copy from a report object, so the machine format and the printed PDF can never drift apart.
Transmission runs through your chosen GİB-authorized integrator (Özel Entegratör). We implement the connector against their API, keep credentials in Isolated Storage rather than a setup field anyone can read, and drive submission and status polling from Job Queue entries so nothing depends on a user having the client open. Every state change — queued, sent, accepted, rejected, cancelled — lands on the outbound record with the integrator's response and the GİB identifiers, visible from the posted invoice through a factbox and a Document Status page. Rejections are the part most implementations skip: you get a correction workflow that reads the rejection reason, blocks silent re-sends of the same document, and drives the corrective flow the scenario requires, so nobody fixes a rejected invoice in a spreadsheet.
Archiving and evidence are first-class. The transmitted payload, the signed response and the rendered copy are retained against the document with an append-only status history, so an audit question is answered from Business Central rather than from an integrator's portal export. We ship dedicated permission sets — an accountant who issues invoices does not need the setup rights that hold integrator credentials — and expose document state through API pages (REST API v2.0 / OData v4) so a Power Automate flow, a Dataverse-connected app or a Power BI compliance dashboard can read status without anyone building a second integration.
Delivery is build-to-order: this is not an AppSource download you install today. You request a quotation, we run a scoping call on your Business Central version and topology (SaaS online or on-premises), your integrator, your VAT and withholding setup and your document layouts. We then build against your environment, deploy to a sandbox for UAT with your own customers and tax codes, and go live with a rollback plan. Typical delivery is two to four weeks from confirmed scope, and the source code, the git repository and the technical documentation are handed over so the extension remains yours to maintain or extend.
Runs Business Central and is accountable for GİB compliance. Needs invoices to leave the ERP already correct — right scenario, right tax treatment, right copy — instead of discovering problems in a monthly reconciliation against the integrator portal.
Issues dozens of invoices a day across registered and non-registered buyers. Wants the scenario decided automatically at posting, clear per-document status, and a defined path for a rejected invoice that does not involve re-keying anything into a web portal.
Owns the tenant and its extensions. Wants a per-tenant AL extension built on event subscribers rather than base-app modification, credentials out of readable setup fields, Job Queue-driven processing, and source plus git repository handed over so the business is not locked to one supplier.
Consolidates a Türkiye entity alongside others. Needs compliance state readable through API pages into Power BI or a Dataverse app, and an audit trail that answers a tax question from Business Central rather than from a third party's export.
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| Fit to your tax setup and document layouts | Built against your actual `VAT Posting Setup`, withholding codes and report layouts during the engagement | Fits exactly — if your developer already knows both UBL-TR and Business Central posting internals | Generic mapping that fits common cases; edge cases become support tickets or unsupported | No Turkish e-invoicing concepts exist to configure |
| Scenario handling (e-Fatura vs e-Arşiv) | Resolved automatically at posting from the registered-user flag, including retail and internet-sales variants | Whatever scope you specify and budget for | Usually covered, though variant coverage differs sharply between vendors | Chosen manually by a person outside the system |
| Integrator choice | Connector written behind an interface against the Özel Entegratör you already contract with | Free choice, but the connector is yours to build and maintain | Often bundled with the vendor's own integrator or a short approved list | Not applicable — there is no transmission layer |
| Source code and ownership | Full AL source plus git repository with history handed over at delivery | You own it outright | Closed extension; you hold a licence, not the code | Base application only |
| Upgrade path across release waves | Extension model with event subscribers; retested per wave, rebuild quoted only when genuinely needed | Depends entirely on how disciplined the original build was | Vendor controls the timing; you wait for their release | Upgrades cleanly, because there is nothing to upgrade |
| Time to production | Typically two to four weeks from confirmed scope, including sandbox UAT | Months, plus hiring or freeing an AL developer who knows the localization | Installs in days, then weeks of configuration and gap workarounds | Immediate, but the compliance work stays manual |
| Cost shape | One-off build cost, code handed over, later changes quoted per change | Developer time plus indefinite maintenance ownership | Recurring per-tenant or per-document subscription | No software cost; ongoing manual effort and rekeying risk |
| Audit trail and archiving | Payload, signed response and rendered copy retained on the document with append-only status history | As designed — commonly the first thing cut under deadline | Present, but frequently queryable only inside the vendor's own pages | Posted invoice only; no transmission evidence |
No — this is build-to-order, not an existing AppSource download. After you request a quotation we run a scoping call on your Business Central version, deployment type, integrator and tax setup, and typical delivery is two to four weeks from confirmed scope. That window covers the build against your environment, UAT on your sandbox with your own customers and tax codes, and production deployment with a rollback plan.
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments within the delivered scope. Because you receive the source code and the git repository, your team or another partner can maintain the extension independently. Work beyond that window — a new Business Central release wave, a change in GİB requirements, a switch of integrator, or new scenarios — is quoted as a separate change, and we will tell you honestly whether a given release wave needs a rebuild or only a retest.
Yes. We do not resell integrator services or tie you to one provider — we implement the connector codeunit against the API of the Özel Entegratör you already contract with. If you have not selected one yet we can scope against the candidates you are evaluating, and the connector sits behind an interface so replacing the provider later is a contained change rather than a rebuild.
Both. The extension targets current Business Central release waves, with SaaS online as the default. On-premises deployments are supported and scoped explicitly, because outbound connectivity, certificate handling and Job Queue configuration differ — we confirm your topology during the scoping call before quoting.
No base application source is modified. The extension uses table and page extensions plus event subscribers — including `OnAfterPostSalesDoc` in `Codeunit 80 Sales-Post` — within an assigned object ID range. During scoping we review your existing extensions for overlapping subscribers or field collisions on `Customer` and the sales documents, and the technical documentation records the full object map so future work stays predictable.
As a workflow, not an error message. The integrator's rejection reason is written to the outbound document record, the document is blocked from being re-sent unchanged, and the user is guided into the corrective flow the scenario requires. The full status history stays attached to the posted invoice, so an auditor can see what was sent, when it was rejected, why, and what replaced it.
Yes. Document status is exposed through API pages on REST API v2.0 / OData v4, so a Power Automate flow, a Dataverse-connected app or a Power BI dashboard reads submission and acceptance state directly. That avoids building a second integration against the integrator's API just to produce a compliance report.

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 e-Fatura and e-Arşiv documents straight from Dynamics 365 Business Central, routing each customer to the correct GİB scenario. The UBL-TR payload, the human-readable copy and the audit trail all stay attached to one posted invoice.