> ## 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.

# ORIONPOS API: Şube Yapısı ve Şube Kodu Kullanımı

> ORIONPOS API şube yapısını öğrenin: şube kodunu nasıl alacağınızı, diğer isteklerde nasıl kullanacağınızı ve on-premise yapının etkilerini keşfedin.

ORIONPOS API'de her işlem bir şubeye bağlıdır. Şube, fiziksel veya mantıksal olarak ayrılmış bir satış noktasını temsil eder; satış verileri, ürün bilgileri ve cari hesaplar şube bazında tutulur. Bu nedenle API'ye yapacağınız hemen her istekte hangi şubeyle çalıştığınızı belirtmeniz gerekir.

## Şube Kodu Neden Gerekli?

ORIONPOS API, birden fazla şubeye sahip işletmelerle çalışabilecek şekilde tasarlanmıştır. Her şubenin kendi veri kümesi olduğundan, API hangi şubenin verilerine erişmek istediğinizi bilemez. Bu yüzden `branch` parametresi; çek sorgulama, ürün listeleme ve güncelleme gibi tüm uç noktalarda **zorunlu** olarak istenir.

Şube kodunu bir kez alıp uygulamanızda sakladığınızda, sonraki tüm isteklerde doğrudan kullanabilirsiniz.

## Şubeleri Listeleme: `GET /GetBranches`

Kullanılabilir şubeleri ve her şubeye ait kodu almak için `GET /GetBranches` uç noktasını çağırın. Bu istek yalnızca `Token` başlığını gerektirir.

**İstek Başlığı**

| Başlık  | Tür    | Açıklama                        |
| ------- | ------ | ------------------------------- |
| `Token` | string | API erişim token'ınız (zorunlu) |

**Örnek İstek**

```bash theme={null}
curl -X GET https://api.orionpanel.com/GetBranches \
  -H "Token: <token>"
```

**Yanıt Yapısı**

Yanıt olarak bir şube dizisi döner. Her şube nesnesinde yer alan `Code` alanı, diğer tüm uç noktalarda `branch` parametresi olarak kullanmanız gereken değerdir.

```json theme={null}
[
  {
    "Code": "SUBE01",
    "Name": "Merkez Şube",
    "Address": "Atatürk Cad. No:1, İstanbul"
  },
  {
    "Code": "SUBE02",
    "Name": "Kadıköy Şubesi",
    "Address": "Moda Cad. No:5, İstanbul"
  }
]
```

<Note>
  `Code` alanını güvenli bir şekilde saklayın. Sonraki tüm API isteklerinde `branch` parametresi olarak bu değeri kullanacaksınız.
</Note>

## On-Premise Yapı ve Yanıt Süreleri

ORIONPOS API, doğrudan ORIONPOS sistemleriyle iletişim kuran bir köprü görevindedir. ORIONPOS sistemleri **on-premise** (şube sunucusu üzerinde) çalıştığından, yanıt süreleri şubenin ağ durumundan doğrudan etkilenir.

<Warning>
  Şube sunucusu kapalıysa veya internet bağlantısı yavaşsa API istekleri zaman aşımına uğrayabilir ya da geç yanıt verebilir. Uygulamanızda uygun hata yönetimi ve yeniden deneme (retry) mekanizmalarını mutlaka oluşturun.
</Warning>

Önerilen yaklaşımlar:

* **Zaman aşımı süresi:** İstekleriniz için en az 30 saniyelik bir zaman aşımı değeri ayarlayın.
* **Yeniden deneme:** Geçici ağ hatalarında üstel geri çekilme (exponential backoff) ile yeniden deneyin.
* **Şube durumu takibi:** Yanıt vermeyen şubeleri tespit etmek için bir izleme mekanizması kurun.
