Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.payven.com.tr/llms.txt

Use this file to discover all available pages before exploring further.

Yönlendirme kuralları koşul-aksiyon çiftleridir. Bir kural birden fazla koşul içerebilir (AND/OR).

Kural oluşturma

curl -X POST https://vpos.payven.com.tr/api/v1/routing-rules \
  -H "X-API-Key: $KEY" -H "X-API-Secret: $SECRET" -H "X-Merchant-Id: $MERCHANT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Bonus kartlar Garantiye",
    "priority": 10,
    "enabled": true,
    "conditions": {
      "operator": "AND",
      "rules": [
        { "field": "card.program", "operator": "equals", "value": "Bonus" },
        { "field": "amount", "operator": "lte", "value": 200000 }
      ]
    },
    "connectors": [
      { "configurationId": "cfg_garanti_001", "weight": 100 }
    ]
  }'

Koşul alanları

AlanTipAçıklama
card.schemeenumVisa, Mastercard, Troy, Amex
card.typeenumCredit, Debit, Prepaid
card.programstringBonus, Maximum, Axess, World, Paraf, CardFinans, …
card.bankCodestringBanka kodu (GARANTI, AKBANK, …)
card.binNumberstringİlk 6 hane (regex destekli)
card.countrystringTR, US, …
amountintTutar (kuruş)
currencyenumTRY, USD, EUR, GBP
installmentintTaksit sayısı
use3Dbool3DS kullanılıyor mu
merchantIduuidMerchant filtresi
merchantCategorystringMerchant’ın MCC kategorisi

Operatörler

OperatörAçıklama
equalsEşit
notEqualsEşit değil
gt, gteBüyük / büyük eşit
lt, lteKüçük / küçük eşit
inListede mi
notInListede değil mi
betweenAralık
regexRegex eşleşmesi (BIN için)

Bileşik koşullar

AND ve OR ile koşulları gruplayabilirsiniz:
{
  "operator": "AND",
  "rules": [
    {
      "operator": "OR",
      "rules": [
        { "field": "card.program", "operator": "equals", "value": "Bonus" },
        { "field": "card.program", "operator": "equals", "value": "Maximum" }
      ]
    },
    { "field": "amount", "operator": "between", "value": [10000, 500000] }
  ]
}

Ağırlıklı dağıtım

Bir kural birden fazla konnektör hedefleyebilir:
{
  "connectors": [
    { "configurationId": "cfg_akbank_001", "weight": 70 },
    { "configurationId": "cfg_isbank_001", "weight": 30 }
  ]
}
Trafik 70/30 dağıtılır. Bir konnektör down olursa ağırlığı geçici olarak diğerlerine devreder.

Fallback (Smart Retry için)

{
  "connectors": [
    { "configurationId": "cfg_garanti_001", "weight": 100 }
  ],
  "fallbacks": [
    { "configurationId": "cfg_akbank_001", "priority": 1 },
    { "configurationId": "cfg_isbank_001", "priority": 2 }
  ]
}
Birinci konnektör başarısız olursa sırayla fallback’ler denenir.

Aktif/pasif yönetimi

# Pasife al
PATCH /api/v1/routing-rules/{id}/deactivate

# Aktif et
PATCH /api/v1/routing-rules/{id}/activate
Pasif kurallar değerlendirme sırasından çıkarılır.

Hata yanıtları

codeAnlam
ROUTING_INVALID_CONDITIONKoşul alanı veya operatör tanınmadı
ROUTING_CONNECTOR_NOT_FOUNDHedef configurationId bulunamadı
ROUTING_WEIGHT_SUM_INVALIDAğırlıkların toplamı 0’dan büyük olmalı