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

# Kasa ve transfer entegrasyonu

> Kasa oluşturma, açılış, tahsilat/ödeme, kasalar arası transfer ve iptal akışı.

Her nakit kasası tek para biriminde çalışır. Kasa kartı oluşturmak sıfır bakiyeli hesap açar; açılış ve sonraki giriş/çıkışlar ayrı mali hareketlerdir. `muhasip:cash:read` ve `muhasip:cash:write` izinlerini hazırlayın.

## 1. Kasayı oluşturun

`POST /accounting/cash-accounts` gövdesi:

```json theme={null}
{ "name": "Merkez kasa", "code": "K-001", "currencyCode": "TRY" }
```

`name` zorunlu, `currencyCode` varsayılanı TRY’dır. `Idempotency-Key` gönderin; kimliği ve kasa kartının `version` değerini saklayın. Diğer para birimleri için ayrı kasa kullanın.

## 2. Gerekirse açılış kaydedin

Hiç hareketi bulunmayan aktif kasada `POST /accounting/cash-accounts/{id}/opening-balance` kullanılır:

```json theme={null}
{
  "direction": "inflow",
  "paymentDate": "2026-10-19",
  "amount": "1000.00"
}
```

`Idempotency-Key` yanında `If-Match` için kasa kartının güncel sürümünü gönderin. `inflow` kasayı artırır, `outflow` azaltır. Döviz kasasında `exchangeRate` zorunludur. Cari veya fatura oluşturulmaz.

Cevaptaki açılış hareketinin `id` ve `version` değerlerini ayrıca saklayın; bunlar kasa kartının kimlik/sürümüyle aynı kayıt değildir. Tamamlanmış tekrarın makbuzundaki kimliği kasa ekstresindeki hareketle eşleyebilirsiniz; ekstredeki `version` hareketin güncel sürümüdür.

Açılıştan başka hareket yoksa `POST .../{id}/opening-balance/cancel` açılışı kaldırır. Bu çağrının `If-Match` değeri **açılış hareketinin sürümüdür**. Sonraki hareketler varsa iptal reddedilir; açılış tutarı doğrudan düzenlenmez.

## 3. Tahsilat veya ödeme kaydedin

[Ödeme kaynağı](https://docs.muhasip.pro/rehberler/odeme-ve-mahsuplasma.md) ile `accountId` olarak kasayı kullanın. Ödeme para birimi kasa para birimiyle aynı olmalıdır. Tahsilat bakiyeyi artırır, verilen ödeme azaltır. Bu işlem için ayrıca `payments` izinleri gerekir.

Örneğin 1000 TRY açılış + 240 TRY tahsilat − 100 TRY verilen ödeme = 1140 TRY kasa bakiyesidir. Kasa kaydı bir banka/POS para transferi başlatmaz.

## 4. İki kasa arasında transfer yapın

`POST /accounting/cash-accounts/transfers` iki farklı aktif nakit kasası arasında çıkış/giriş kaydeder:

```json theme={null}
{
  "sourceAccountId": "507f1f77bcf86cd799439012",
  "destinationAccountId": "507f1f77bcf86cd799439013",
  "sourceAmount": "100.00",
  "destinationAmount": "100.00",
  "paymentDate": "2026-10-19",
  "description": "Kasalar arası aktarım"
}
```

Tek kalıcı `Idempotency-Key` gönderin. Döviz tarafında `sourceExchangeRate` veya `destinationExchangeRate` gerekir. Kaynak tutar × kaynak kur ile hedef tutar × hedef kur, 2 basamağa yuvarlandığında aynı TRY karşılığını vermelidir. Komisyon ve kur farkı kaydı oluşturulmaz.

Cevap `id`, `source` ve `destination` içerir. `id`, kaynak hareketin kimliğidir; `GET .../transfers/{id}` ile iki tarafı birlikte okuyun. Hedef hareketin kimliğini bu adreste kullanmayın.

İptalde `POST .../transfers/{id}/cancel`, yeni iş anahtarı ve `If-Match` için `source.version` kullanılır. İki hareketin silinmesi iki kasa etkisini geri alır. Kaynak veya hedefte beklenmeyen bağ varsa iptal reddedilir.

## 5. Sonucu ekstreyle doğrulayın

`GET /accounting/cash-accounts/{id}/balance` ve `GET .../{id}/statement` ile para etkisini kontrol edin. Ekstre `collection` giriş, `disbursement` çıkış gösterir; transferin iki tarafı kendi kasalarında görünür.

`TRANSFER_REVIEW_REQUIRED`, `reviewRequired:true`, bağlantı hatası veya `502/503` alırsanız yeni transfer oluşturmayın. Makbuzdaki kaynak/hedef kimliklerini ve iki kasanın ekstresini inceleyin. Birden fazla kayıt içeren işlemde kısmi sonuç olabilir.

## Kasa kartının yaşam döngüsü

Hareketi olan kasanın para birimi değiştirilemez. Arşiv için yerel para ve TRY bakiyeleri sıfır olmalıdır; geçmiş silinmez. Kalıcı silme yalnız hiçbir hareketi olmayan, varsayılan olmayan kasada mümkündür. Kart güncelleme/arşiv/silme/geri çıkarma işlemlerinde güncel kasa sürümünü `If-Match` ile gönderin.

[Kasa oluştur](https://docs.muhasip.pro/api-reference/kasa/accounting-cash-create.md) · [Açılış](https://docs.muhasip.pro/api-reference/kasa/accounting-cash-opening.md) · [Transfer](https://docs.muhasip.pro/api-reference/kasa/accounting-cash-transfer.md) · [Kasa ekstresi](https://docs.muhasip.pro/api-reference/kasa/accounting-cash-statement.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.