Yönlendirme ve komisyon
Bir ödemenin hangi POS hesabından, hangi sırayla denenmesi gerektiğini kural motoru belirler. Kurallar ve komisyon tabloları panelden yönetilir.
Nasıl karar verilir?
- Kart BIN tablosundan çözülür: çıkaran banka, marka, kart türü (kredi/borç/ön ödemeli), yerli/yabancı.
- İşlemi yapabilecek aday hesaplar belirlenir: yetenek (3D, ön provizyon…), para birimi, 3D politikası, tutar limitleri ve komisyon tablosu uygun olmalı.
- Kurallar öncelik sırasıyla denenir; koşulları ödemeye uyan ilk kural seçilir. Uyan kural yoksa varsayılan sıralama kullanılır.
- Kuralın adımları aday listesini üretir; teknik hata olursa sıradaki adaya geçilir (failover).
Kural koşulları
Boş bırakılan koşul "fark etmez" demektir.
| Koşul | Değerler |
|---|---|
issuers | Kartı çıkaran banka anahtarları: garanti, isbank, akbank, yapikredi … |
cardTypes | credit, debit, prepaid |
origins | domestic, foreign |
brands | visa, mastercard, troy, amex … |
currencies | TRY, USD, EUR, GBP |
minAmount / maxAmount | Kuruş cinsinden tutar aralığı |
minInstallment / maxInstallment | Taksit aralığı |
Adımlar
| Adım | Davranış |
|---|---|
issuer_bank | Kartı çıkaran bankanın kendi POS hesabı (varsa). Komisyon çoğu zaman en düşük olan seçenektir. |
account | Belirli bir hesap (accountId). |
priority | Hesapların öncelik sırası (isteğe bağlı accountIds ile daraltılır). |
lowest_cost | Ödemenin taksit/kart türü için tablodaki en düşük komisyonlu hesap. |
weighted | Hesap ağırlıklarına göre olasılıksal dağıtım (yük dengeleme). |
{
"name": "Yerli kredi kartları",
"priority": 20,
"active": true,
"conditions": { "origins": ["domestic"], "cardTypes": ["credit"] },
"steps": [ { "type": "issuer_bank" }, { "type": "lowest_cost" } ],
"failover": { "enabled": true, "maxAttempts": 3 }
}Failover kuralları
Failover, para kaybı ve çifte çekim riskini önlemek için yalnızca güvenli durumlarda yapılır:
| Durum | Sonraki adaya geçilir mi? |
|---|---|
| Banka reddi (yetersiz bakiye, kart kısıtı…) | Hayır |
| Yapılandırma hatası (yanlış kimlik bilgisi) | Evet |
| Bağlantı kurulamadı — istek bankaya hiç ulaşmadı | Evet |
| 3D başlatılamadı (henüz para hareketi yok) | Evet |
| İstek bankaya gitmiş olabilir ama yanıt gelmedi (zaman aşımı) | Hayır — önce bankada sorgulanır; bulunursa onaylanır, bulunamazsa reddedilir, belirsizse mutabakata bırakılır. |
Komisyon tabloları
Her POS hesabının kendi tablosu vardır: kart türü × yerli/yabancı × taksit (1–12) için yüzde oranı. Boş hücre "bu kombinasyon kapalı" demektir; motor o hesabı o ödeme için aday saymaz ve ödeme sayfası o taksiti sunmaz.
Tahsil edilen ödemede uygulanan oran, komisyon tutarı ve net tutar ödeme nesnesinde (commission) tutulur; raporlar bu değerlerden üretilir.
Simülasyon
Panel → Yönlendirme → Simülasyon: bir BIN, tutar ve taksit girin; hangi kuralın uyduğunu, hangi hesapların neden elendiğini ve nihai sırayı görün. Ödeme yapmaz.