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

# Muhasebesel işlem kuralları

> Belge yaşam döngüsü, para birimi, vergi, ödeme ve kayıt ilişkileri.

## Kayıt ve tutar ilişkileri

Banka hareketi onayı ödeme kaydı, fatura aktarımı muhasebe kaydı, pazaryeri aktarımı ise fatura ve gerekirse cari, ürün veya depo kayıtları oluşturabilir. İşlem sonucundaki kimlikleri kendi iş referansınızla birlikte saklayın ve ilgili kayıtlarla doğrulayın.

| Kavram | Entegrasyon kuralı |
| - | - |
| Tutar | Ucun `amount`, `payableAmount` ve vergi alanlarının brüt/net anlamını ayrı saklayın |
| Miktar/birim fiyat | Toplamla aynı hassasiyette olduğunu varsaymayın; pazaryeri birim fiyatı altı, vergi ve toplamları iki ondalık kullanır |
| Para birimi/kur | Para birimini ve kullanılan kuru tutarla birlikte koruyun; TRY dışı GİB faturasında pozitif kur gerekir |
| Vergi | Net, iskonto, KDV, diğer vergi ve tevkifatı ayrı tutun; bütün toplamların sunucuda yeniden hesaplandığını varsaymayın |
| Yön | Bankada incoming ve faturada out ilişkisini kontrol edin; bütün kaynaklara ortak bir borç/alacak eşlemesi dayatmayın |
| Kimlik | `_id`, `UUID`/ETTN, `orderId`, `paymentId` ve `operationId` farklıdır; iş referansınızla ilişkilerini saklayın |
| Zaman | Belge tarihi, kayıt tarihi ve ödeme tarihini ayırın; saatlerde açık saat dilimi kullanın |

JSON sayı alanlarında `1234.56` kullanın; `1.234,56` gibi görüntü metni göndermeyin. Kur ve yuvarlama işlemleri kaynağa özeldir. İstek değerleriyle oluşan mali kaydın değerlerini mutabakat için birlikte saklayın.

## Fatura: taslak, gönderim, aktarım ve iptal

1. [Fatura bağlantısını](/rehberler/kaynaklar/fatura) ve kredi durumunu okuyun. Bağlantı durumu anahtar içermez.
2. `POST /apps/invoice/api`, `type=invoiceInfo` ile mükellef/seri/şablon seçeneklerini alın; bu varyant read izniyle çalışır.
3. `type=view` için kalıcı bir `Idempotency-Key` belirleyin. Bu çağrı sağlayıcıda **taslak oluşturur**; UUID’yi ve işlem makbuzunu saklayın.
4. `type=invoiceapproval` ile 1–100 benzersiz UUID seçimini gönderin. Gönderim kabulünden sonra aktarım işareti yazılır; belirsiz sonuçta yeni gönderim başlatılmaz.
5. `GET /apps/invoice/check/{UUID}` belgeyi Muhasip muhasebesine aktarır; GET olmasına rağmen write izni gerekir. UUID hedef koruması aynı belgenin ikinci kaydını önler.
6. `GET /apps/invoice/sync` Idempotency-Key ile eşitleme başlatır; önce bütün sayfalardan UUID’ler toplanır, her belge tekil aktarımın kullandığı korumadan geçirilir. Alt işlemler `operationIds` ile izlenir.

Taslak silme (`type=invoicecancel`) ile düzenlenmiş belge iptali (`DELETE /apps/invoice/cancel/{UUID}`) farklıdır. Belge iptali, kabul sonrasında Muhasip’teki bağlı muhasebe, ödeme ve stok kayıtlarını günceller. Banka hareketine bağlı veya birden çok faturaya mahsup edilmiş ödeme varsa iptal başlatılmadan `409` döner. Kayıtların güncellenme durumu belirsizse işlem inceleme gerektirir; tekrar iptal etmeyin.

## Banka: yenileme ve ödeme onayı

[Banka liste/detayından](/rehberler/kaynaklar/banka) firma hesabı ve hareket kimliğini alın. `GET /apps/bank/check/{id}` verileri yeniler; sorgu devam ediyorsa `409`, hizmet başarısızsa `502` döner. Ek query alanı kabul edilmez. Başarı cevabı yalnız mali hareket alanlarını içerir.

Hareket onayı `contact` veya `invoice` türündedir. Cari türünde mevcut firma carisi seçilebilir veya yeni cari adıyla kayıt oluşturulabilir. Fatura türünde cari, para birimi ve yön fatura/hareket arasında eşleşmelidir. API yalnız açık ve önceden ödeme almamış faturanın **tam tutarını** mahsup eder; kısmi/önceki ödemeli faturalar `422` ile reddedilir.

TRY için kur 1’dir. Döviz hareketinde saklanmış pozitif kur ve faturayla uyum gerekir; kanıtsız kur=1, eksik kur veya kur farkı gerektiren durum API’de işlenmez. IBAN ve varsa vergi bilgisi yalnız çözülen firma carisine yazılır. Onay ödeme kaydı oluşturur; not/durum güncellemesi aynı işlem değildir.

Banka fatura otomasyonu tek desteklenen invoice aksiyonu ve TRY hesaplarıyla sınırlıdır. Aktif tanımın hesap, seri/şablon, alıcı adresi ve yüzde100 dağılan satır oranları tamam olmalıdır. GET run write ve Idempotency-Key ister. Bütün satırlar kesin başarılıysa veya işlenecek hareket yoksa başarı kaydedilir. Başarısız satır/belirsizlik `502 review_required` olur; log ayrıntısını ve faturaları kontrol etmeden yeniden çalıştırmayın. Tanımdaki saat otomatik çalışma garantisi değildir.

## POS: başvuru, bağlantı, tahsilat ve iptal

[POS hesabının](/rehberler/kaynaklar/pos) aktif/onaylı olması gerekir. `isDefault=true` varsayılan, `false` ek hesapları listeler. Taksit/komisyon seçeneklerini hesaptan okuyun; her POS’ta aynı seçenekleri varsaymayın.

`POST /apps/pos/link` Idempotency-Key ile tahsilat bağlantısı **kaydı** oluşturur. `orderId` ve `paymentId` döner; karttan çekim yapılmaz ve URL dönmez. Tahsilat sonucu işlem detayından okunur. Tahsilat sonucunu işlem listesinden veya ayrıntısından takip edin.

Başvuru `PUT /apps/pos` ile, Idempotency-Key ve altı gerekli yetkili/hesap alanıyla yürür. Sağlayıcının başvuruyu kabulü nihai POS onayı değildir. `status=false` ile kapatmada başvuru/anahtar gerekmez. Ek hesap silme arşivler; varsayılan hesabı arşivlemek yerine pasifleştirin.

Tahsilat iptali yalnız aynı gün onaylanmış başarılı ve henüz iade edilmemiş kayıtta mümkündür. Sağlayıcı iptalinden sonra yerel iade kaydı güncellenir. Onaysız bağlantıyı DELETE ile silmek, gerçekleşmiş tahsilatı iade etmek değildir.

## e-Arşiv: GİB taslağı, SMS ve imza

[e-Arşiv bağlantısı](/rehberler/kaynaklar/e-arsiv) firma GİB hesabıyla kurulur; token dönmez. `send` taslak oluşturur, imzalamaz; Idempotency-Key zorunludur. Sağlayıcı kesin ETTN sunamazsa inceleme sonucu gelir ve UUID uydurulmaz. query ile gerçek belgeyi doğrulayın.

`verifyPhoneNumber` ayrı anahtarla SMS ister ve oid verir. `sign` belge ETTN’si, oid ve 4–8 rakamlı kod kullanır; yalnız GİB sonuc=1 kesin başarıdır. Aynı oid farklı kodla tekrar kullanılamaz; kesin yanlış kod reddinde yeni SMS challenge/oid gerekir. HTML/download signed boolean alanını açıkça ister; belge dosya çıktıları bu akışın parçasıdır.

İptal öncesi belge hesap ve belge tarihi listesinde doğrulanır. Sağlayıcı iptali ve listeden kalkış kanıtlanmadan yerel e-belge ilişkisi temizlenmez.

## Belirsiz sonuç ve işlem kilitleri

Aynı firmada devam eden mali işlemler birbiriyle çakışırsa `409` dönebilir. Okuma istekleri kullanılabilir. Sonuç belirsizse yeni mali işlem başlatmadan mevcut işlemi ve ilişkili kayıtları inceleyin.

Bağlantı kopması veya zaman aşımı, mali etkinin hiç oluşmadığını kanıtlamaz. İş referansını, hedefleri ve `operationId` değerini istekten önce/sonra saklayın. [İşlem durumunu](/rehberler/islem-takibi) okuyun; `reviewRequired:true` veya `retryable:false` ise otomatik tekrar yapmayın. `failed_before_dispatch` ve `retryable:true` dış etki başlamadan kontrollü tekrar olanağıdır.


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