Ana içeriğe atla
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:
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:
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ğı 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:
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 · Açılış · Transfer · Kasa ekstresi