Back to Blog
Corporate Solutions

E-Invoice (e-Fatura) Integration in Turkey: Methods and Costs (2026)

How e-invoice integration actually works in Turkey: the difference between the GİB portal, a private integrator and direct integration, what each costs in 2026, how to connect your own software, and the mistakes that derail these projects.

E-FaturaEntegrasyonKurumsal ÇözümlerERP

In Turkey, e-invoice integration is done in one of three ways: the GİB e-Fatura portal (free, manual, fine for low volume), a private integrator (the common route — a subscription or per-document fee that gives you an API), or direct integration (requires approval from the tax administration and only makes sense at very high volume). If you want your own bookkeeping, ERP or e-commerce software to issue invoices automatically, in practice you use a private integrator’s API: the integrator side starts at a few hundred dollars a year, and the development work on your own software takes 2-6 weeks depending on scope. Below we cover the three methods, the real cost lines, the technical flow and the mistakes these projects usually run into.

What e-invoice integration is, and who has to comply

An e-Fatura is the electronic document that replaces a paper invoice when the buyer is also registered in the e-invoice system. If the buyer is not registered, the same sale is issued as an e-Arşiv invoice instead. These are technically different scenarios, and your software has to tell them apart before every single invoice. “Integration” means those documents are produced and transmitted automatically from wherever the sale happens — your e-commerce site, ERP, order management or custom software — instead of being typed into a portal by hand. Whether you are in scope is set by the tax administration based on gross sales thresholds and sector; companies that pass the threshold must switch at the start of the seventh month of the following year, and businesses selling online fall in scope at a much lower threshold. The figures are revised annually, so confirm the current circular with your accountant before you plan.

The three methods, and which one fits you

Only two things drive this choice: how many invoices you issue per month, and where the invoice is born. If volume is low and sales are already recorded by hand, the portal is enough; if the invoice originates inside a piece of software, you need an integrator API:

  • The GİB e-Fatura portal — Free. You type invoices into the tax administration’s own interface or upload them in bulk with an Excel template. Reasonable up to a few dozen invoices a month, but it talks to none of your systems, so the operation stays manual and staff time quietly becomes the real cost as volume grows.
  • A private integrator — An intermediary licensed by the tax administration (Nilvera, İzibiz, Uyumsoft, Paraşüt, e-Logo, Mikro, Sovos and others). It handles sealing, enveloping, transmission, response tracking and the ten-year archive, and gives you a REST API plus an admin panel in return. For the vast majority of companies, this is the right answer.
  • Direct integration — You connect your own systems to the tax administration with no intermediary. That means infrastructure that runs 24/7, passing the official technical tests, and owning the whole process in-house. It only lowers total cost for large organisations with very high invoice volume and their own IT team.

A practical rule: under about 50 invoices a month issued by hand, use the portal; if invoices originate inside software (e-commerce, ERP, field sales), use an integrator API; if you issue tens of thousands a month and run your own systems team, consider direct integration. If the general mechanics of connecting systems are new to you, our guide to what API integration is is a good starting point.

What e-invoice integration costs

The total lands in two places: the recurring fee you pay the integrator, and the development work inside your own software. Typical market ranges look like this (they vary by provider and package — always ask for the renewal price too):

  • GİB portal: $0. The invisible cost is the time of whoever types the invoices in — 100 invoices a month is roughly half a working day, every month.
  • Integrator subscription: around $60-450 a year. e-Fatura, e-Arşiv, e-waybill, e-ledger and e-receipt modules are usually priced separately; only enable the ones you will actually use.
  • Per-document credits: roughly $0.02-0.09 per document, cheaper in bulk. Credits can expire, so estimate your annual volume honestly rather than pre-buying double.
  • Financial seal (companies) or qualified e-signature (sole traders): about $45-90 through the state certification authority, valid for three years. The application and delivery alone can take 1-3 weeks — start the project with this step.
  • Development on your side: 2-4 weeks for an e-commerce site or simple bookkeeping; 6-12 weeks for a multi-company ERP with returns, cancellations and e-waybills. This is a one-off project cost and the largest line in the total.
  • Maintenance: integrator API versions and official schema updates change several times a year. Companies without a maintenance budget end up paying emergency rates when invoicing stops after a regulatory change.
The line that blows the budget is almost never the integrator fee — it is the quality of your own data. If customer tax numbers are missing, if product units (piece, kg, pack) are not standardised, or if VAT rates are stored as free text, documents get rejected on submission. On real projects the entire first week goes to data cleanup, essentially every time. Plan for it.

Connecting your own software: the technical flow

Integrator APIs differ in the details, but the flow is the same nearly everywhere: check whether the buyer is registered, pick the scenario, build the document in the UBL-TR format, send it, then track its status. The critical part is not treating submission as a synchronous call — the response can come back minutes later, so queueing and retry logic belong in the design from day one.

// 1) Is the buyer registered for e-invoice? This decides the scenario.
//    The registry changes daily: if you cache it, refresh once a day.
const { isEInvoiceUser } = await integrator.checkTaxpayer(customer.taxNumber);

const documentType = isEInvoiceUser ? 'EINVOICE' : 'EARCHIVE';

// 2) Build the document (UBL-TR fields are produced integrator-side).
const document = {
  documentType,
  profile: isEInvoiceUser ? 'TICARIFATURA' : 'EARSIVFATURA',
  invoiceNumber: null, // the integrator assigns it — never generate your own
  issueDate: order.paidAt,
  customer: {
    taxNumber: customer.taxNumber, // 10-digit company or 11-digit personal ID
    name: customer.legalName,
    taxOffice: customer.taxOffice,
    address: customer.billingAddress,
  },
  lines: order.items.map((item) => ({
    name: item.title,
    quantity: item.quantity,
    unitCode: item.unitCode, // 'C62' (piece), 'KGM' (kg) — never free text
    unitPrice: item.netPrice,
    vatRate: item.vatRate, // 0 | 1 | 10 | 20
  })),
};

// 3) Send it — without an idempotency key, a retry issues a duplicate.
const { uuid } = await integrator.send(document, {
  idempotencyKey: `order-${order.id}`,
});

// 4) Track status via webhook; never block on a synchronous wait.
//    The response comes back as 'SUCCEED' | 'REJECTED' | 'WAITING'.
await invoiceRepository.save({ orderId: order.id, uuid, status: 'WAITING' });

The flow is identical wherever the invoice is born: an e-commerce platform, a field sales app or an internal admin panel. If invoicing already runs through an ERP, the integration belongs on the ERP side — we covered the question of which data lives where in our guide to what an ERP is. For solutions that bring invoicing, stock and orders into a single flow, see our article on internal automation software.

The six mistakes we see most often

  • Skipping the registry check: issuing an e-Arşiv invoice to a buyer who is registered for e-Fatura makes the document invalid. Check before every invoice; do not cache the registry for weeks.
  • Leaving returns and cancellations for later: an e-Arşiv invoice must be cancelled through the official cancellation portal within eight days of issue; with e-Fatura, the buyer can reject within eight days in the commercial scenario, while the basic scenario requires a return invoice. If the software does not model this, accounting absorbs the work manually.
  • No idempotency: an automatic retry after a network error issues two invoices for one order. Generate a per-order key for every document.
  • Skipping the sandbox: every integrator has a test environment. Returns, partial returns, mixed VAT rates, foreign customers and discounts should all run end to end before go-live.
  • Leaving the archive entirely to the integrator: the legal retention period is ten years, and access can become a problem when the contract ends. Keep your own copy of every document.
  • No plan for outages: if the integrator or the tax administration stops responding and there is no queue, your order flow stops with it. Invoicing must be asynchronous so it never blocks a sale.

How long does the project take?

For a typical e-commerce or bookkeeping integration the calendar runs like this: financial seal application and integrator contract, 1-3 weeks (in parallel); data cleanup and field mapping, 1 week; API development and sandbox scenarios, 1-2 weeks; go-live plus a week of monitoring, 1 week. Three to six weeks in total is realistic. What stretches the timeline is almost never the software — it is third-party approvals: the seal delivery, opening the integrator account and the registrations on the tax administration side. Put the seal application on day one of the plan.

Conclusion

The right question in e-invoice integration is not “which integrator” but “where is the invoice born”. If invoices are issued by hand, the free portal is genuinely enough; if they originate inside software, connecting to an integrator API permanently lowers both your error rate and your staffing cost. Most of the budget sits in your own development and data cleanup rather than the subscription — projects that accept this upfront finish in 3-6 weeks, and the ones that postpone it run for months. If you want your existing system connected to e-invoicing, take a look at our custom software service; if you are planning something organisation-wide, see our corporate solutions page, or send us your current setup and monthly invoice volume and get a free quote.

Let's Build Your Project

Get a free consultation for your website, mobile app, or corporate software project.

Get a Free QuoteExplore our Corporate Solutions service