Skip to main content
Akıllı Yönlendirme, her ödeme isteğini gerçek zamanlı koşullara göre en uygun konnektöre (bankaya) yönlendiren motordur. Hangi bankaya gideceği:
  • BIN aralığı
  • Tutar
  • Taksit sayısı
  • Kart birliği (Visa/MC/Troy)
  • Kart tipi (kredi/banka)
  • 3DS durumu
  • Banka sağlık durumu (latency, hata oranı)
  • Komisyon oranları
  • Trafik dağıtım hedefi
gibi parametrelerin bileşik skoruna göre belirlenir.

Neden akıllı yönlendirme?

SorunÇözüm
”Bonus kartlarını Garanti’ye yönlendirmek daha düşük komisyonlu”BIN bazlı kural
”Akbank tarafında 5xx oranı yükseldi, geçici olarak başka bankaya yönlendir”Circuit breaker
”Yüksek tutar işlemleri büyük bankaya gitsin”Tutar bazlı kural
”9-12 taksitte sadece anlaşmamızın olduğu banka çalışsın”Taksit bazlı filtre
”Trafiği iki banka arasında %70-%30 dağıt”Ağırlık bazlı dağıtım

Yapı

Engine kuralları sırayla değerlendirir. Bir kural eşleşirse o konnektör seçilir; eşleşmeyen kural bir sonraki kurala düşer. Hiçbir kural eşleşmezse varsayılan kural devreye girer.

Yönlendirme adımları

  1. Kuralları sırayla değerlendir — istek koşullara karşı kontrol edilir.
  2. Skor hesapla — eşleşen her kural için bir bileşik skor üretilir (banka sağlığı, komisyon, ağırlık).
  3. En yüksek skorlu konnektörü seç.
  4. Smart Retry hazır olsun — birinci konnektör başarısız olursa fallback için sıralanmış alternatifler.

Kural yapısı

Bir kural şu bileşenlerden oluşur:
AlanAçıklama
nameAçıklayıcı isim
priorityDeğerlendirme sırası (düşük sayı = önce)
conditions[]Koşullar (AND/OR)
connectors[]Eşleşince hedeflenecek konnektörler (ağırlıklı)
enabledAktif mi?
Detay: Yönlendirme Kuralları.

Banka sağlığı

Engine, gerçek zamanlı banka sağlığını izler:
  • Son 5 dakikadaki başarı oranı
  • Ortalama yanıt süresi
  • 5xx hata yoğunluğu
Bir bankanın hata oranı eşiği (örn. %10) aşarsa circuit breaker devreye girer ve o banka geçici olarak yönlendirme havuzundan çıkarılır. Detay: Circuit Breaker.

Smart Retry

Yönlendirilen banka geçici hata verirse istek otomatik olarak alternatif konnektöre yönlendirilir — kullanıcı yeniden ödeme yapmaz. Detay: Smart Retry.

Kuralları yönetme

Kurallar konsoldan veya API üzerinden yönetilir. İki kural seti vardır:
  • /routing-rules — gelişmiş bileşik skor motoru (BIN + tutar + taksit + sağlık + ağırlık)
  • /simple-routing-rules — basit “şu koşulda şu konnektör” kuralları (yeni başlayanlar için)
GET    /api/v1/routing-rules                       # Liste (sayfalı)
GET    /api/v1/routing-rules/{id}                  # Tek kural detayı
POST   /api/v1/routing-rules                       # Yeni kural
PUT    /api/v1/routing-rules/{id}                  # Güncelleme
DELETE /api/v1/routing-rules/{id}                  # Silme
POST   /api/v1/routing-rules/bulk-delete           # Toplu silme
POST   /api/v1/routing-rules/{id}/activate
POST   /api/v1/routing-rules/{id}/deactivate
PATCH  /api/v1/routing-rules/{id}/score            # Skor güncelleme
simple-routing-rules aynı CRUD pattern’i + bulk-delete, activate, deactivate aksiyonları ile kullanılır.

Simülasyon

Bir işlemin hangi kurala düşeceğini önceden görmek için iki yol:
  • Konsoldaki Routing Simulator ekranı (görsel arayüz)
  • Public /resolve endpoint’i — bir koşul setine göre eşleşen kuralları döndürür:
curl -X POST https://vpos.payven.com.tr/api/v1/routing-rules/resolve \
  -H "Authorization: Bearer $PAYVEN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "card_bin":     "454671",
    "amount":       15000,
    "installment":  3,
    "card_brand":   "bonus",
    "card_type":    "credit",
    "currency":     "TRY"
  }'
Yanıt: skor sırasına göre eşleşen kuralların listesi. Production trafiğine etki etmez — yalnız okur.

Settings (varsayılan davranış)

GET /api/v1/routing-rules/settings
PUT /api/v1/routing-rules/settings
Hiçbir kural eşleşmediğinde devreye giren default davranışı (varsayılan konnektör, fallback davranışı) yapılandırır.