1. Başlatma
Mutabakat genellikle gün sonunda planlı çalışır (banka raporlarının gelmesinden sonra, tipik olarak 02:00-04:00 arası). Manuel başlatma için:bank_transactions boş gönderilirse Payven sadece kendi DB tarafında self-reconciliation yapar (banka verisinden bağımsız bir doğrulama). Banka CSV/XLS dosyasını parse edip satırları doldurmak müşteri tarafının sorumluluğundadır — yol haritasında bu adım için Payven tarafında parser/import endpoint’i planlanıyor.
2. Karşılaştırma
Payven gün boyu kaydedilencompleted, refunded, voided hareketleri banka satırlarıyla eşleştirir. Eşleştirme anahtarları:
- Birincil:
provider_transaction_id↔bank_transaction_id - Yedek:
auth_code↔auth_code(aynı banka içinde) - Merchant scope’unda:
merchant_external_idile filtreleme
| Kategori | Tetikleyici |
|---|---|
matched | İki tarafta var, tutar + durum uyumlu |
amount_mismatch | Tutarlar uyuşmuyor (banka komisyonu kesmişse tipik) |
status_mismatch | Tutar aynı ama durum farklı (örn. Payven completed, banka voided) |
orphan_db | Sadece Payven’de var |
orphan_bank | Sadece bankada var |
3. İnceleme
Mutabakat detayını veya sadece tutarsızlıkları çekin:ReconciliationDetailDto listesi:
4. Tutarsızlıkları çözme
Tek satır
| Alan | Açıklama |
|---|---|
resolution_action | accept_bank (banka doğru, DB güncellenir), accept_db (DB doğru, banka satırı resolved işaretlenir), mark_matched (manuel eşleştirme — tutar/durum dokunulmaz), adjust_amount (manuel tutar override — adjusted_amount ile), force_status (manuel durum override — applied_status ile), ignore (göz ardı) |
adjusted_amount | accept_bank veya adjust_amount için revize tutar (Payven kaydı bu değere çekilir) |
applied_status | force_status için yeni durum (örn. canceled ↔ completed eşleşmemesi durumunda) |
remarks | Operatör notu — audit için kalıcı saklanır |
Toplu çözüm
5. Finalize
Tüm tutarsızlıklar çözüldükten sonra:overall_status: "completed"(veya bekleyen kalemlerignoredile kapatıldıysapartially_completed),finalized_atdoldurulur- İlgili işlemlerin
settlement_datealanı doldurulur — wirestatusenum’u değişmez,transaction.statuscompletedkalır; settlement durumu ayrıSettlementkaynağında izlenir - Operatör kullanıcı kimliği
finalized_byalanında saklanır
6. İptal
Henüz finalize edilmemiş bir mutabakatı iptal etmek için:cancelled yapar. İlgili işlemler etkilenmez.
Tipik süreler
| Aşama | Tipik süre |
|---|---|
| Başlatma → Karşılaştırma tamamlanma | 5-30 dk (işlem hacmine bağlı) |
Otomatik finalize (tüm satırlar matched) | Anlık |
| Manuel inceleme (tutarsızlıklar varsa) | Operatör süresine bağlı |
draft veya in_review statüsünde bekler.
Geriye dönük inceleme
Yol haritası
- Banka CSV import — Payven tarafında banka raporu dosyasını parse eden endpoint
- Otomatik scheduled reconciliation — günlük cron + slack/email bildirimi
- Reconciliation webhook event’leri —
reconciliation.discrepancy_detected,reconciliation.finalized(şu an public webhook event listesinde yok) - Connector-spesifik banka raporu API entegrasyonları — manuel CSV upload yerine otomatik fetch