Fiscal POS integration in Türkiye
Everything a POS team needs before writing the first line of code against a Turkish fiscal device.
Not legal or tax advice. KOD16 is a technical implementation partner. Legal and tax opinions come from our partner Turkish accountants (mali müşavir) and law firms.
Device families
| Family | What it is | Typical use |
|---|---|---|
| New-generation ÖKC | Fiscal register with secure element and permanent GİB connection via TSM | Retail counters, restaurants |
| EFT-POS ÖKC | New-generation ÖKC with built-in bank card terminal | Most counter sales today |
| Android / smart POS | EFT-POS ÖKC running Android; apps run on or talk to the device | Restaurants, table-side sales |
| Old generation | Pre-2013 devices without online reporting | Being phased out |
Three integration models
| Model | How it works | Watch out for |
|---|---|---|
| Local REST | POS sends JSON over the LAN (or localhost on Android POS) | IP changes, self-signed TLS, one request at a time |
| Serial / USB | Vendor library or GİB's public GMP-3 pairing protocol | Drivers, COM ports, OS support |
| Vendor cloud | App calls the vendor cloud, which pushes the job to the device | Internet at the counter, latency, device online status |
The sale flow
1 BASKET lines: name, qty, unit price incl. VAT, VAT rate/department
2 OPEN open sale on device — with an idempotency key
3 PAYMENT cash | bank card (EFT-POS) | meal card, linked as tender
4 FISCALISE device prints receipt (or information slip if an invoice is issued)
5 RESULT receipt no, Z no, date/time, totals per VAT rate, payment refs
6 PERSIST mark order as fiscalised
7 INVOICE optional e-Arşiv / e-Fatura, referenced to the slipIdempotency and failures
On a timeout, never resend blindly: query the device status with the same key. If the sale is fiscalised, store the result; if it is still open, resume or cancel it; otherwise retry with the same key. If the card was approved but the receipt failed, complete or void the sale with the vendor's recovery procedure — do not charge again.
End of day: X and Z reports
- X report: read-only, any time.
- Z report: closes the fiscal day, resets daily totals and is reported to GİB via TSM. Take it at least daily on days with sales.
- Before Z: no open sales, every order fiscalised, card batch settled. After Z: store Z number and totals and reconcile with your orders.
VAT departments
Each item maps to a department on the device, and each department to a VAT rate (20 %, 10 % or 1 % since 10 July 2023). A menu change that moves an item to the wrong department produces wrong VAT on every receipt — test it. Check amounts with the Turkish VAT calculator.
Test checklist
Frequently asked questions
Is my POS app certified by GİB?
No. GİB approves the fiscal devices and their vendors; your app integrates with a certified device.
Do restaurants need e-Adisyon?
Only taxpayers designated by GİB, with at least three months' notice. Everyone else closes table service with a fiscal receipt.
When is an invoice mandatory instead of a receipt?
For 2026, when the sale exceeds TRY 12,000 (VUK Art. 232, revalued yearly) or when the customer asks for one. The ÖKC then prints an information slip.
Official sources
- GİB — New-generation ÖKC portal
- Law No. 3100
- VUK General Communiqué No. 566
- 2026 invoice threshold, VUK 588 (TÜRMOB)
- VAT rates, Presidential Decision No. 7346
Links checked on 28 October 2026. Laws, rates and thresholds change; always confirm the current text.
Planning a launch in Türkiye or fixing a live integration? Send us your stack and timeline; the KOD16 team replies within one business day.
Request an assessmentinfo@kod16.com.tr