# Mimari ve İş Akışları

Bu bölümde aktarılan iş akışları ve hazır sepetler hem kablolu hem de kablosuz entegrasyon için geçerlidir.

Bu kısımda bahsedilecek bilgi fişlerine ilişkin detaylara, Gelir İdaresi Başkanlığı tarafından yayım olan bilgi fişleri ile ilgili detaylara Gelir İdaresi Başkanlığı tarafından yayınlanan [Bilgi Fişleri Kılavuzu](https://ynokc.gib.gov.tr/UploadedFiles/Files/Bilgi_Fisi_Teknik_Kilavuzu_24072020.pdf)'ndan erişebilirsiniz.

## Genel mimari

<figure><img src="/files/0K2PR4vzsx7ZBiwekri7" alt=""><figcaption></figcaption></figure>

### Fiş Oluşturulması

İlgili yıl için belirtilen Fatura Düzenleme Sınırı(2026 için 12.000 TL) altındaki işlemler için YN ÖKC üzerinden fiş düzenlenerek mali ve ödeme akışları tamamlanabilir.

Temel bir fiş oluşturmak için sepette ürünleri iletmeniz yeterli olacaktır.

```json
{
  "basketID": "15ced0b1-99f5-4e42-b0ca-bc781c778d69",
  "items": [
    {
      "name": "GIDA",
      "price": 500,
      "sectionNo": 1,
      "taxPercent": 1000,
      "quantity": 1000
    },
  ]
}
```

### Fatura Oluşturulması

Satış miktarının ilgili yıl için belirtilen Fatura Düzenleme Sınırı'nın üstinde olması ya da gerekli başka durumlarda mali belge olarak fatura oluşturulmalıdır.

#### YN ÖKC Dışında Bir Sistemden Düzenlenen Faturanın Ödemesinin Alınması

YN ÖKC haricinde bir sistem üzerinden oluşturulan faturaların ödemesinin YN ÖKC üzerinden alınması için YN ÖKC üzerinde bilgi fişi oluşturulmalıdır. Bu durumda vergisel hususlar faturanın aslı ile çözülür, YN ÖKC üzerinden oluşturulan bilgi fişi vergi matrahına dahil olmaz.

**E-Arşiv Bilgi Fişi**

E-Arşiv fatura satış yapan işyerinin e-fatura mükellefi olması ancak alıcının e-fatura mükellefi olmadığı durumlarda oluşturulur. YN ÖKC harici bir sistemden E-Arşiv Fatura düzenlendiği durumda ödeme YN ÖKC üzerinden ***E-Arşiv Bilgi Fişi*** oluşturularak alınmalıdır.

E-Arşiv Bilgi Fişi oluşturmak için sepette

* "documentType": 9007 olarak
* irsaliye yerine geçip geçmeyeceğini "isWayBill" olarak
* "customerInfo" objesi içinde "taxID" hanesinde müşterinin TCKN'sini
* "infoReceiptInfo" objesi içinde "serialNo" olarak bilgi fişinin seri numarasını

göndermelisiniz.

Sepette kısım satışı varsa fiş irsaliye yerine geçemez.

```json
{
  "basketID": "35bc5937-f8ef-4c21-8e44-b59d02c25a79",
  "documentType": 9007,
  "isWayBill": false,
  "customerInfo": {
    "taxID": "11111111111"
  },
  "infoReceiptInfo": {
    "serialNo": "TKN2024000000002"
  },
  "items": [
    {
      "name": "İLAÇ",
      "price": 5500,
      "quantity": 1000,
      "sectionNo": 1,
      "taxPercent": 1000
    }
  ],
  "paymentItems": [
    {
      "amount": 5500,
      "type": 2
    }
  ]
}
```

**E-Fatura Bilgi Fişi**

E-Fatura satış yapan işyerinin ve alıcının e-fatura mükellefi olması durumlarında oluşturulur. Harici bir sistemden E-Fatura düzenlendiği durumda ödeme YN ÖKC üzerinden ***E-Fatura Bilgi Fişi*** oluşturularak alınmalıdır.

E-Fatura Bilgi Fişi oluşturmak için sepette

* "documentType": 9006 olarak
* irsaliye yerine geçip geçmeyeceğini "isWayBill" olarak
* "customerInfo" objesi içinde "taxID" hanesinde müşterinin TCKN'sini
* "infoReceiptInfo" objesi içinde "serialNo" olarak bilgi fişinin seri numarasını

göndermelisiniz.

Sepette kısım satışı varsa fiş irsaliye yerine geçemez.

```json
{
  "basketID": "35bc5937-f8ef-4c21-8e44-b59d02c25a79",
  "documentType": 9006,
  "isWayBill":false,
  "customerInfo": {
    "taxID": "11111111111"
  },
  "infoReceiptInfo": {
    "serialNo": "TKN2024000000001"
  },
    "items": [
    {
      "name": "YİYECEK",
      "price": 58300,
      "quantity": 1000,
      "sectionNo": 1,
      "taxPercent": 1000
    }
  ],
    "paymentItems": [
    {
      "amount": 58300,
      "type": 11
    }
  ]
}
```

**Fatura Bilgi Fişi**

Matbu faturalar satış yapan işyerinin e-fatura mükellefi olmaması durumunda oluşturulur. Matbu fatura düzenlendiği durumda ödeme YN ÖKC üzerinden ***Fatura Bilgi Fişi*** oluşturularak alınmalıdır.

Fatura Bilgi Fişi oluşturmak için sepette

* "documentType": 9005 olarak
* "customerInfo" objesi içinde "taxID" hanesinde müşterinin TCKN'sini
* "infoReceiptInfo" objesi içinde "serialNo" olarak faturanın seri/sıra numarasını

göndermelisiniz.

```json
{
  "basketID": "35bc5937-f8ef-4c21-8e44-b59d02c25a79",
  "documentType": 9005,
  "customerInfo": {
    "taxID": "11111111111"
  },
  "infoReceiptInfo": {
    "serialNo": "ABC123"
  },
    "items": [
    {
      "name": "YİYECEK",
      "price": 58300,
      "quantity": 1000,
      "sectionNo": 1,
      "taxPercent": 1000
    }
  ],
    "paymentItems": [
    {
      "amount": 58300,
      "type": 11
    }
  ]
}
```

#### \[NEXT] YN ÖKC Üzerinde E-Belge Oluşturulması

Bu yöntem ile E-Belge ÖKC üzerinden oluşturulabilmektedir. Ödeme ve mali belgenin oluşturuluma sorumluluğu ÖKC'de olup belge bütünleşik olarak oluşturulmaktadır. Entegre olduğunuz ÖKC'nin E-Belge entegrasyonuna uyum durumunu getFiscalParameters fonksiyonu cevabında kontrol edebilirsiniz.\
\
GetFiscalParametres örnek cevabı:

```json
{
  "businessMode": 0,
  "paymentAppInfo": [
    12,
    15,
    67
  ],
  "pluCount": 0,
  "receiptLimit": 1200000,
  "eDocumentStatus":1,
  "integratorID":1,
  "sectionCount": 2,
  "sections": [
    {
      "name": "TEMEL GIDA",
      "sectionNo": 1,
      "status": 1,
      "taxPercent": 1000,
      "type": 0
    },
    {
      "name": "TEMİZLİK",
      "sectionNo": 2,
      "status": 1,
      "taxPercent": 2000,
      "type": 0
    }
  ]
}
```

"eDocumentStatus" değeri Aktif (1) ise ÖKC üzerinden e-belge oluşturabilirsiniz.\
ÖKC'nin bağlı olduğu E-Belge entegratörü bilgisini ise "integratorID" parametresinden erişebilirsiniz.

**1. Belge Bilgilerinin ÖKC Üzerinde Belirlenmesi**

E-Belge akışları ÖKCde aktif ise ilgili yıl için geçerli Fatura Düzenleme Sınırı(2026 için 12.000 TL) üzerinde e-belge düzenlenecektir. E-Belge(E-Fatura, E-Arşiv Fatura) türü ÖKC üzerinde yapılan müşterinin mükellefiyet türü sorgulaması sonrasında belirlenecektir.

**2. Belge Bilgilerinin Otomasyon Tarafından Belirlenmesi**

E-Belge bilgileri otomasyon sistemi tarafından da iletilebilir. Ancak E-Belge(E-Fatura, E-Arşiv Fatura) türü ÖKC üzerinde yapılan müşterinin mükellefiyet türü sorgulaması sonrasında belirlenecektir.

```json
{
  "basketID": "168a343e-3dfb-40fb-8246-c0c3b55c62dc",
  "customerInfo": {
    "taxID": "11111111111",
    "name": "Ahmet Yılmaz",
    "email": "test@example.com",
    "buildingName": "ARI 8 Teknokent",
    "buildingNumber": "5",
    "cityName": "İstanbul",
    "citySubdivisonName": "Sarıyer",
    "country": "Türkiye",
    "region": "Ayazapa Mh.",
    "room": "4",
    "street": "Prof. B. Karafakıoglu Cd.",
    "taxScheme": "Sarıyer VD",
    "telephone": "05555555555"
  },
  "items": [
    {
      "name": "Galaxy S25 12/256 Gb Akıllı Telefon Gümüş",
      "price": 5100000,
      "quantity": 1000,
      "sectionNo": 2,
      "taxPercent": 2000
    }
  ],
  "payments": [
    {
      "amount": 5100000,
      "description": "Kredi Kartı",
      "type": 3
    }
  ]
}
```

**İstek Cevabı**

<pre class="language-json"><code class="lang-json"><strong>{
</strong>  "basketID": "9e38cc35-08fa-4170-9e4d-92a0c7c7cd07",
  "customerInfo": {
    "alias": "urn:mail:defaultpk@koc.com.tr",
    "cityName": "İstanbul",
    "citySubdivisonName": "Üsküdar",
    "country": "Türkiye",
    "name": "KOÇ HOLDİNG A.Ş.",
    "taxID": "5700020575",
    "taxScheme": "Büyük Mükellefler V.D."
  },
  "documentType": 1,
  "InstanceIdentifier": "5935731a-57f9-42d6-8e1f-cc2a3a67676b",
  "invoiceID": "GIB2026000000001",
  "message": "OK",
  "paymentCount": 1,
  "paymentItems": [
    {
      "amount": 1500000,
      "currencyAmount": 1500000,
      "description": "Nakit",
      "type": 1
    }
  ],
  "receiptNo": 5,
  "status": 0,
  "UUID": "ef7e548d-13ab-4376-bbaa-62accb8b5a8a",
  "zNo": 355
}
</code></pre>

### Avans Bilgi Fişi- Fiş/Fatura Oluşturulmadan Önce Ödemenin Alınması

Fiş/faturanın mal tesliminde oluşturulması esastır. Ancak depozito, kaparo ve çeyiz satın alma gibi bazı durumlarda ödemenin bir kısmının mal teslimi(fiş/fatura oluşturulması)nden önce yapılması gerekebilir . Mali regülasyonlar gereği mal teslimi/fatura oluşturmadan önce alınan ödemeler ***Avans Bilgi Fişi*** oluşturularak alınmalıdır.

Avans Bilgi Fişi oluşturmak için sepette

* "documentType":9000 olarak
* "customerInfo" objesi içinde "taxID" hanesinde müşterinin TCKN'sini ve "name" hanesinde müşteri adı soyadını
* "taxFreeAmount" hanesinde tutarı

göndermelisiniz.

```json
{
  "basketID": "1c386acc-2f1e-49ae-8531-4ed56f6b0030",
  "documentType": 9000,
  "isVoid": false,
  "customerInfo": {
    "name": "AD SOYAD",
    "taxID": "11111111111"
  },
  "taxFreeAmount": 10000
}
```

### Cari Tahsilat Bilgi Fişi - Fiş/Fatura Oluşturulduktan Sonra Ödemenin Alınması

Fiş/faturanın mal tesliminde oluşturulması esastır. Beyaz eşya taksiti ödeme gibi ödemenin bir kısmının mal teslimi(fiş/fatura oluşturulması)nden sonra yapıldığı durumlarda ödeme ***Cari Tahsilat Bilgi Fişi*** oluşturularak alınmalıdır. Bu durumda, sonradan ödenecek tutar fiş/fatura bilgi fişi üzerinde Açık Hesap ödeme türü ile gösterilmelidir.\
\
Açık hesap ödeme türüne sahip bir fiş oluşturmak için aşağıdak sepet gönderilebilir.

```json
{
  "basketID": "93ced0be-99f5-4e42-b0ca-bc781c778d69",
  "createInvoice": false,
  "documentType": 0,
  "isVoid": false,
  "items": [
    {
      "name": "Su",
      "pluNo": 0,
      "price": 500,
      "sectionNo": 1,
      "quantity": 1000
    }
  ],
  "paymentItems": [
    {
      "amount": 500,
      "type": 17
    }
  ]
}
```

Cari Tahsilat Bilgi Fişi oluşturmak için sepette

* "documentType": 9002
* "customerInfo" objesi içinde müşterinin ismi ve TCKN'si "name" ve "taxID"
* Açık hesap içeren satışın hangi tarihte yapıldığını ve o tarihteki satışın belge numarasını(Fiş No-Z No/Fatura Seri-Sıra No) "infoReceiptInfo" objesi içinde "documentDate" ve "documentNo"
* Cari tahsilatın tutarını da "taxFreeAmount"

olarak göndermelisiniz.

```json
{
  "basketID": "35bc5937-f8ef-4c21-8e44-b59d02c25a79",
  "documentType": 9002,
  "customerInfo": {
    "name": "AD SOYAD",
    "taxID": "11111111111"
  },
  "infoReceiptInfo": {
    "documentDate": "01-02-2025",
    "documentNo": "GIB2025000000001"
  },
  "taxFreeAmount": 10000,
    "paymentItems": [
    {
      "amount": 10000,
      "type": 1
    }
  ]
}
```

### \[NEW] E-SMM Akışları

{% hint style="info" %}
ÖKC üzerinden E-SMM/E-SMM Bilgi Fişi düzenlenebilmesi için öncelikle Token Çözüm Merkezi ile iletişime geçilerek cihaz E-SMM moduna alınmalıdır.
{% endhint %}

#### 1. E-SMM Bilgi Fişi Akışı

E-SMM'nin harici bir sistemden düzenlendiği ve düzenlenen E-SMM için ödemenin ÖKC üzerinden alındığı durumlarda E-SMM Bilgi Fişi düzenlenir. Aşağıdaki örnek isteği ÖKC cihazına ileterek E-SMM Bilgi Fişi düzenleyebilirsiniz.

```json
{
  "infoReceiptInfo": {
    "documentNo": "GIB2026000000001",
    "documentDate": "2026-04-24"
  },
  "customerInfo": {
    "taxID": "11111111111",
    "customerName": "Ahmet Yılmaz",
    "street": "Prof. B. Karafakıoglu Cd.",
    "buildingName": "ARI 8 Teknokent",
    "region": "Ayazaga",
    "citySubdivisonName": "Sarıyer",
    "cityName": "İstanbul",
    "postalZone": "34065",
    "country": "Türkiye"
  },
  "stopaj": {
    "percent": 1000
  },
  "withholding": {
    "percent": 2000
  },
  "items": [
    {
      "name": "Diş Çekim Hizmeti",
      "price": 500000,
      "quantity": 1000,
      "vatRate": 2000
    }
  ]
}
```

#### 2.\[NEXT] E-SMM Akışı

ÖKC üzerinden E-SMM Belgesi düzenlenmesi ile ilgili çalışmalarımız devam etmekte.

### \[NEXT] Gönüllü Bahşiş

Kredi kartı/Debit kart ile yapılan ödemelerde, işyerinin bahşiş için uygun sektör (NACE) koduna sahip olması ve ödeme yapılan bankanın gönüllü bahşiş akışlarını desteklemesi durumunda kredi kartı ile gönüllü bahşiş alınabilir.\
\
"paymentItems" içerisinde "tipAmount" olarak ilgili ödeme için alınan gönüllü bahşiş miktarı, ana obje içerisinde "tip" alanı içerisinde de alınan toplam bahşiş miktarına erişilebilir.\
\
Gönüllü bahşiş içeren cevap örneği:

```json
{
  "basketID": "9e38cc35-08fa-4170-9e4d-92a0c7c7cd07",
  "message": "OK",
  "paymentCount": 3,
  "paymentItems": [
    {
      "amount": 150000,
      "description": "Kredi Kartı",
      "operatorID": 67,
      "type": 3,
      "tipAmount": 30000
    },
    {
      "amount": 150000,
      "description": "Kredi Kartı",
      "operatorID": 10,
      "type": 3
    },
    {
      "amount": 150000,
      "description": "Kredi Kartı",
      "operatorID": 10,
      "type": 3,
      "tipAmount": 15000
    }
  ],
  "tip": {
    "amount": 450000,
    "quantity": 2
  },
  "receiptNo": 5,
  "status": 0,
  "zNo": 355
}
```

### \[NEW] Döviz Pos ile Ödeme Alınması

Döviz Pos özelliği döviz ile ödeme alma yetkisi bulunan işyerleri tarafından kullanılabilir. DCC'den farkı ise tutarının üye işyerinin hesabına döviz olarak yatırılmasıdır.

{% hint style="info" %}
ÖKC'de döviz kullanımını aktifleştirmek için Ayarlar -> Döviz -> Döviz kullanımını aktifleştir seçilmeli ve kaydet tuşuna basılmalıdır.
{% endhint %}

#### Yöntem 1: Dövizin ÖKC üzerinden seçilmesi

Bu linkteki videoda gösterilen akış uygulanır. [https://www.tokeninc.com/yardim-merkezi/urun-kullanimi-beko-x30tr/doviz-ile-satis/](https://eur05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.tokeninc.com%2Fyardim-merkezi%2Furun-kullanimi-beko-x30tr%2Fdoviz-ile-satis%2F\&data=05%7C02%7Cdenizhan.dalgic%40tokeninc.com%7Ce180219d76d9450ef7c808ddbde24bab%7C131b5f8436134fdeb8481b02bbab200a%7C0%7C0%7C638875501820858452%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C\&sdata=ZuESlogw3Y2L0dbEwF9YufdCZdsFxJsubL3FrPn3F84%3D\&reserved=0)

1. Döviz kullanımı aktifleştirilmiş cihaza ödeme içermeyen sepet gönderilir.
2. ÖKC'de ödeme adımına geçildiği ekranda döviz tuşuna basılarak istenen döviz türü seçilir.
3. Nakit veya kredi kartı kullanarak ödeme alınır.
4. Fiş, döviz ödemesine uygun bir şekilde çıkar.

Döviz kuru otomatik olarak gelmektedir. ÖKC'de döviz seçildiğinde yalnıza nakit veya kredi kartı ödemesi yapılmasına izin verilir. Kredi kartlı işlem için işyerinin döviz ile satış yapma izni olmalı ve bankasından Döviz Pos özelliğini aktif etmelidir.

{% hint style="success" %}
ÖKC'deki döviz kuru TCMB alış kurudur.
{% endhint %}

#### Yöntem 2: Sepetin doğrudan döviz olarak gönderilmesi

Entegrasyon üzerinden Token ÖKC aracılığıyla döviz ile satış yapacak sepeti oluşturmak için bu adımları izleyebilirsiniz:

1. **Cihaza günlük inen TCMB kurlarını getFiscalInfo ile almalısınız**.
2. Sepet JSON'ında `"currencyId": 1` şeklinde döviz tipini belirtmelisiniz.
3. Ek olarak, bu kurlar kullanılarak sepet oluşturulur.
   1. Nakit döviz ödemesi için paymentItems içindeki ödeme tipi şöyle gönderilmelidir:
      1. type = 5 (PAYMENT\_CURRENCY)
      2. currencyId = döviz tipi
   2. Kredi kartıyla döviz ödemesi için paymentItems içindeki
      1. type = 3 (PAYMENT\_CREDITCARD)
      2. currencyId = döviz tipi
4. Ödeme alınır.

Bu adımlara göre oluşturulmuş döviz ödemesi alınan örnek bir sepet:

```json
{
  "basketID": "15ced0b1-99f5-4e42-b0ca-bc781c778d69",
  "currencyId": 1,
  "items": [
    {
      "name": "GIDA",
      "price": 500,
      "sectionNo": 1,
      "taxPercent": 1000,
      "quantity": 1000
    }
  ],
  "paymentItems": [
    {
      "type": 5, // Döviz nakit
      "currencyId": 1, // ABD Doları
      "amount": 500 // 5 dolar
    }
  ]
}

```

{% hint style="info" %}
Nakit ve kredi kartı dışındaki ödeme tipleri döviz ile kullanılamaz.

Kredi kartıyla döviz ödemesi alınabilmesi için işyerinin döviz ile satış yapma izni olmalı ve bankasından Döviz Pos özelliğini aktif etmelidir.
{% endhint %}

#### 300TR'de döviz ile nasıl ödeme alabilirim?

300TR'de entegrasyon üzerinden döviz ile ödeme **desteklenmemektedir**.

#### Desteklenen Döviz Tipleri

| Döviz            | currencyId |
| ---------------- | ---------- |
| ABD Doları       | 1          |
| Euro             | 2          |
| İngiliz Sterlini | 3          |
| Rus Rublesi      | 4          |
| Japon Yeni       | 5          |

### Eczane Akışları

Eczanelerde tahsil edilen muayene katkı payları eczanelere özel olarak düzenlenen fiş formatında matrah dışı tutar olarak tahsil edilir. Bu özel fiş formatında alınan ödemeler Z raporunda ayrı olarak gösterilir ve KDV matrahına dahil edilmez.

#### Katkı payı(Matrahsız Tutar) nasıl tahsil ederim?

Katkı payı tahsil etmek için sepette

* "documentType": 9008 olarak
* Matrah dışı olmasını istediğini tutarı "taxFreeAmount" hanesinde
* "customerInfo" objesi içinde "taxID" hanesinde müşterinin TCKN'sini

göndermelisiniz.

```json
{
  "documentType": 9008,
  "taxFreeAmount": 5000,
  "customerInfo": {
    "taxID": "11111111111"
  },
  "paymentItems": [
    {
      "amount": 5000,
      "description": "Nakit",
      "type": 1
    }
  ]
}
```

#### Katkı Payı ve Ürün Satış nasıl gönderebilirim?

Hem katkı payı hem de ürünler için tek fiş oluşturulabilir.

Hem katkı payı hem de ürün satışı için sepette

* "documentType": 9008 olarak
* Katkı payı tutarını "taxFreeAmount" olarak
* "customerInfo" objesi içinde "taxID" hanesinde müşterinin TCKN'sini
* Ürünü "items" arrayi içinde

göndermelisiniz.

```json
{
  "basketID": "a123ca24-ca2c-401c-8134-f0de2ec25c25",
  "documentType": 9008,
  "customerInfo": {
    "taxID": "11111111111"
  },
  "items": [
    {
      "name": "İLAÇ",
      "price": 1000,
      "quantity": 1000,
      "sectionNo": 1,
      "taxPercent": 1000
    }
  ],
  "taxFreeAmount": 5000,
  "paymentItems": [
    {
      "amount": 6000,
      "description": "Cash",
      "type": 1
    }
  ]
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.tokeninc.com/token-developer-portal-1/x-platform/baslangic/mimari-ve-is-akislari.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
