Ana içeriğe atla
Bu akış e-belgesiz alış ve satış kaydı oluşturur. Kaydetme cari bakiyesine etki eder; e-belge gönderimi ve tahsilat ayrı işlemlerdir. muhasip:transactions:read ve muhasip:transactions:write izinlerini hazırlayın.

1. Cariyi ve satırları hazırlayın

Mevcut cariyi bulun veya oluşturun. Her satırda ad, pozitif miktar ve KDV hariç birim fiyat gönderin. Birim kataloğu GET /accounting/options ile okunur; varsayılan C62 adettir.
direction=sale satış, purchase alış içindir. Ürün/depo vermeden serbest kalem kullanılabilir; bu işlem ürün kartı oluşturmaz. productId ve warehouseId birlikte verilirse bu satırın stok hareketi de kaydedilir. Yalnız ürün kimliği vermek stok hareketi oluşturmaz. Referanslar aynı firmaya ait, geçerli ve yeni işlem için aktif olmalıdır; bu API bağımsız ürün/depo yönetimi sunmaz.

2. Önce hesaplayın

Aynı gövdeyi POST /accounting/invoices/calculate çağrısına gönderin. Bu çağrı transactions:read izni kullanır, Idempotency-Key gerektirmez ve kayıt oluşturmaz. Cevapta id=null bulunur. Örnekte satır matrahı 200, KDV 40, ödenecek tutar 240 TRY’dır. Satır ve belge indirimi ile KDV tevkifatının sırası veri kurallarında açıklanır. Cevaptaki satır discountAmount alanı, belge indiriminin o satıra dağıtılan payını da içerir.

3. Belgeyi kaydedin

Hesaplamada kabul edilen gövdeyi POST /accounting/invoices ile yeni, kalıcı Idempotency-Key kullanarak gönderin. Sunucu tutarları yeniden hesaplar. İstemciden totals, isClosed, firma veya kullanıcı alanı kabul edilmez. Başarılı sonuç 201 ve belge ayrıntısıdır. Belge kimliği, version ve işlem kimliğini saklayın. Bu aşamada 240 TRY cari alacağı oluşur; kasa hareketi veya tahsilat oluşmaz. Sıfır tutarlı belge kapalı sayılır.

4. Kısmi veya tam ödeme kaydedin

POST /accounting/payments ile aynı cariye 100 TRY tahsilat oluşturup belgeye allocations içinde 100 TRY ayırın. Ödeme rehberindeki firma, yön, para birimi, kur ve açık tutar kontrolleri uygulanır. Belge ayrıntısını yeniden okuyun:
Bu bir alan kesitidir. *BaseAmount alanları TRY’dır; totals.payableAmount belge para birimindedir. Kalan 140 TRY ayrıca ödendiğinde açık tutar 0, isClosed=true olur. Başka ödeme eklemek belge sürümünü değiştirebilir; düzeltme öncesi ayrıntıyı tekrar okuyun.

5. Düzeltin veya iptal edin

PUT /accounting/invoices/{id} tam belge gövdesi, yeni Idempotency-Key ve güncel If-Match gerektirir. Gönderilmeyen isteğe bağlı alanlar varsayılanlarına döner. Belgeye herhangi bir ödeme bağı varsa 409 INVOICE_HAS_PAYMENTS döner; önce yalnız ilgili ödemenin mahsuplaşmasını kaldırın veya ödemeyi iptal edin. POST .../{id}/cancel de ödeme bağı olmayan belgeyi kabul eder. Başarılı iptal cari ve stok etkisini kaldırır; ayrıntı artık 404 döner. İptal makbuzunu saklayın. Bu uç e-belge, teklif, fiş veya başka uygulama kaydını iptal etmez. Ödeme iptali belgenin kendisini silmez. 240 TRY belgeden 100 TRY tahsilat iptal edildiğinde, başka ödeme yoksa açık tutar tekrar 240 TRY olur. Başka ödeme varsa yalnız kalan ödemeler hesaba katılır. Hesaplama · Belge oluşturma · Belge iptali