> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orionpanel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Çekler ve Adisyonlar: ORIONPOS API Satış Kayıtları

> ORIONPOS API çek tiplerini, GlobalId ve BusinessDate gibi kritik alanları ve GetChecks ile GetCheckByCode uç noktalarının kullanımını öğrenin.

ORIONPOS API'de **çek**, bir şubede gerçekleşen her türlü mali işlemin kaydıdır. Standart satışlardan kasa harcamalarına, cari tahsilatlara kadar tüm işlemler çek olarak modellenir. Satış verilerini dış sistemlerinizle senkronize etmek için çek yapısını ve alanlarını iyi anlamanız gerekir.

## Çek Tipleri

ORIONPOS API üç farklı çek tipi sunar:

<AccordionGroup>
  <Accordion title="Adisyonlar (Satış)">
    Standart satış çekleridir. Masa, paket servis veya gel-al gibi tüm satış kanallarından oluşan çekleri kapsar.

    * Satılan ürünlerin (`Items`) ve varsa ilavelerin (`Condiments`) detaylı listesini içerir.
    * Bir çek; nakit, kredi kartı, yemek çeki gibi **bir veya birden fazla ödeme tipiyle** kapatılabilir.
    * `IsReturn: true` olan adisyonlar **iade** işlemini temsil eder; bu çeklerdeki tüm tutar ve miktar değerleri **negatif** gelir.
  </Accordion>

  <Accordion title="Tahsilatlar">
    Cari (veresiye) hesaplara ait borç ödeme kayıtlarıdır.

    * Müşterinin birikmiş borcunu kısmen veya tamamen ödediği işlemleri temsil eder.
    * `Items` alanı boş olabilir; asıl bilgi `Payments` alanında yer alır.
  </Accordion>

  <Accordion title="Harcamalar">
    Kasa üzerinden gerçekleşen para çıkışı kayıtlarıdır.

    * Örneğin temizlik malzemesi alımı veya kurye ödemesi gibi operasyonel giderleri kapsar.
    * Kasa bakiyesini etkiler ve muhasebe entegrasyonlarında ayrıştırılması gerekir.
  </Accordion>
</AccordionGroup>

## Önemli Çek Alanları

| Alan                    | Tür            | Açıklama                                                                |
| ----------------------- | -------------- | ----------------------------------------------------------------------- |
| `Id`                    | integer        | Şube bazında benzersiz çek kimliği                                      |
| `CheckNumber`           | integer        | Gün bazında benzersiz çek numarası                                      |
| `OfficialReceiptNumber` | string         | Resmi adisyon numarası                                                  |
| `BusinessDate`          | string         | Çalışma günü (`yyyy-MM-dd`). Tarih filtrelemeleri bu alana göre yapılır |
| `State`                 | string         | Çekin durumu: `"Closed"` veya `"Open"`                                  |
| `IsReturn`              | boolean        | `true` ise iade çekidir; tüm tutar ve miktar değerleri negatiftir       |
| `GlobalId`              | string         | `GetCheckByCode` uç noktasında kullanılan evrensel çek kimliği          |
| `OutletInfo`            | object         | Gelir merkezi bilgisi (Restoran, Kafe, Bar vb.)                         |
| `Info`                  | string         | Cari hesap çeklerinde müşterinin cari hesap adını taşır                 |
| `Invoice`               | object \| null | Fatura bilgisi; fatura kesilmemişse `null` gelir                        |
| `Fiscal`                | object \| null | Yazarkasa (EKÜ) bilgisi; bağlı yazarkasa yoksa `null` gelir             |
| `Address`               | object \| null | Paket servis veya cari müşteriye ait adres; yoksa `null` gelir          |
| `Items`                 | array          | Satılan ürünlerin listesi. Her ürün kendi `Condiments` dizisini içerir  |
| `Payments`              | array          | Ödeme yöntemleri ve tutarları                                           |

<Note>
  `Invoice`, `Fiscal` ve `Address` alanları koşullara bağlı olarak `null` döner. Bu alanları işlemeden önce null kontrolü yapın.
</Note>

### İndirim Alanı

<Note>
  `Items` içindeki indirim (`Discount`) nesnesinde yer alan `Type` alanı iki değer alabilir:

  * `"Discount"` — Standart indirim
  * `"TaxDiscount"` — Vergi bazlı indirim

  İndirim tipine göre muhasebe kaydı oluşturuyorsanız bu ayrımı mutlaka dikkate alın.
</Note>

## Çek Sorgulama Uç Noktaları

Satış verilerine erişmek için iki farklı uç nokta kullanabilirsiniz:

<CardGroup cols={2}>
  <Card title="GetChecks" icon="list">
    Belirli bir tarihe veya tarih aralığına ait tüm çekleri listeler. Toplu veri senkronizasyonu için idealdir. `branch`, `start_date` ve `end_date` parametreleri zorunludur.
  </Card>

  <Card title="GetCheckByCode" icon="receipt">
    `GlobalId` değeriyle tek bir çekin tüm detaylarını getirir. Belirli bir işlemi doğrulamak veya güncellemek için kullanın.
  </Card>
</CardGroup>

### GetChecks

Belirtilen tarih aralığındaki çekleri sorgular. Tarihler **`yyyy-MM-dd`** formatında gönderilmelidir. `branch`, `start_date` ve `end_date` zorunlu; `number` (çek numarası) ve `table_no` (masa numarası) opsiyonel parametrelerdir.

```bash theme={null}
curl -X POST "https://api.orionpanel.com/GetChecks" \
  -H "Token: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "branch": "SUBE01",
    "start_date": "2024-01-15",
    "end_date": "2024-01-15",
    "number": null,
    "table_no": null
  }'
```

### GetCheckByCode

Tek bir çekin tam detayını `GlobalId` ile getirir.

```bash theme={null}
curl -X POST "https://api.orionpanel.com/GetCheckByCode" \
  -H "Token: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "global_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }'
```
