GH GambleHub

Provayder səviyyəsində kaskadlaşdırma

1) Cascading nədir və niyə iGaming-də

Cascading (provider cascading) - eyni ödəniş cəhdi və ya bütövlükdə trafik paylanması üçün bir neçə PSP/ekvayer arasında dinamik seçim və/və ya ardıcıl keçid. Məqsədlər:
  • AR ↑/DR ↓: «şıltaq» emitentlərin yan keçməsi, konkret BIN/geo/metodu üçün ən yaxşı PSP seçimi.
  • Qiymət ↓: IC + +/markup səbət hissələri aşağı, micro-ticket fix-fie minimuma endirmək.
  • Sabitlik: insidentlər, 3DS deqradasiyaları, ödəniş dəhlizlərinin düşməsi zamanı failover.
  • Komplayens: geosiyasət, sanksiyalar, yerli qadağalar və lisenziyalara riayət.

2) Kaskadlaşdırma nümunələri

1. Ardıcıl (sequential)

PSP_A → (soft-decline/texniki uğursuzluq) → PSP_B → PSP_C.
Retrajların «dar pəncərəsi» istifadə olunur ki, ikiqat/çox hold vasitələrin riskini yaratmasın.

2. Paralel (split-traffic/multi-arm)

Bir neçə PSP arasında axın paylanması (%/qaydalar), qaydaları öyrənmək və əlaqəli nasazlıqları azaltmaq.

3. Sticky BIN / Sticky GEO

Xüsusi BIN diapazonu/emitent/geo (TTL ilə caches həllər) üçün «ən yaxşı» PSP yadda saxlamaq.

4. Method-aware / Feature-aware

Kart, A2A, cüzdan, lokal metodlar üçün müxtəlif provayderlər; 3DS-rails, DCC/FX davranışının, tokenizasiyanın xüsusiyyətlərinin nəzərə alınması.

5. Limit-aware / SLA-aware

Provayderlərin limitlərinin, ehtiyatların, SLA hadisələrinin, cut-off və maliyyə gecikmələrinin uçotu.

3) Həlledici mühərrik (rules-engine): giriş siqnalları

Kart əlamətləri: BIN/IIN, brand, debit/credit, kommersiya/premium, country of issuer.
Geo və uyğunluq: oyunçu ölkəsi (IP/GPS/SIM/KYC), sanksiyalar, lisenziyalar.
Əməliyyat: məbləğ (minor units), valyuta, kanal (web/app), risk-skor.
Provayderlərin tarixi: son 15-60 dəqiqə ərzində BIN/geo/metodu ilə AR/DR, soft-decline payı, 3DS-pass-rate.
Dəyəri: IC + +/markup/fix, FX-spread, rolling reserve%.
Məhdudiyyətlər: rate-limit provayder, maintenance/insidentlər, gündəlik dövriyyə kapları.

Çıxış: marşrutların prioritet siyahısı '[(PSP, MID, require_3DS, retry_window_ms, max_attempts)]'.

4) Retray, idempotentlik və təhlükəsizlik

Idempotency-key cəhd (user_id+order_id+nonce), cascade bütün provayderlər üçün ümumi.
Retray yalnız soft-decline (network/3DS/timeout/insufficient funds), «sərt» kodları ilə heç vaxt (stolen, do not honor təkrar və s.).
Anti-duling: 'AUTHORIZED '/' CAPTURED' statusu kaskadı bağlayır; bütün digər qollar ləğv edilir.
Pəncərələr: 1-ci retray ≤ 2-5 saniyə, UX nəzərə alınmaqla ümumi büdcə ≤ 15-30 saniyə.
3DS siyasəti: Birinci 3DS olmadan düşsə, ikinci/üçüncü filialda step-up mümkündür.

5) 3DS, liability shift и AR

'frictionless '/' challenge' seçimi risk və PSP dəstəyindən (delegated auth, TRA, whitelisting) asılıdır.
«Sərt» geo/emitentlərdə - səbətin hissələrinə məcburi 3DS.
Liability shift provayderləri ilə izləyin: hara tez-tez əldə olunur - oraya riskli BIN-ləri daşımaq.

6) Dəyəri: IC++, blended, fix-fii və FX

Hər bir PSP üçün effective take-rate = interchange + scheme + markup + fixed + FX-slippage hesab edin.

Kaskadda marşrutun skorinqində qiymət funksiyasından istifadə edin:
  • `Score = w1AR_live + w2(−Cost_bps) + w3(SLA_health) + w4(FX_quality) +...`
  • Micro-ticket: fix çəkisi yuxarıda → aşağı fix ilə üstünlük provayderləri.
  • Ayrıca reserve% və funding T + N - cache flow təsir edir.

7) Hadisələr, cut-off və marşrutlaşdırma

Health-fid: PSP/dəhliz statusları (auth API, 3DS ACS, payout rails).
Auto-failover: astanadan aşağı AR/sağlamlıq düşdükdə ani reroute.
Cut-off-aware: montaj bağlanmadan əvvəl narahat T + N ilə PSP partial-capture çəkinin.
Throttling: Provayderin limitini «yandırmamaq» üçün trafiki yayın.

8) Minimum data modeli

sql
-- Providers and MIDs
CREATE TABLE ref. providers (
provider TEXT PRIMARY KEY, model TEXT, pricing_model TEXT, fx_policy TEXT, reserve_pct NUMERIC, meta JSONB
);
CREATE TABLE ref. mids (
mid TEXT PRIMARY KEY, provider TEXT REFERENCES ref. providers, country TEXT, method TEXT, descriptor TEXT, meta JSONB
);

-- Cascade Rules/Profiles
CREATE TABLE ref. cascade_profiles (
profile_id BIGSERIAL PRIMARY KEY, name TEXT, version TEXT, enabled BOOLEAN, meta JSONB
);
CREATE TABLE ref. cascade_rules (
rule_id BIGSERIAL PRIMARY KEY, profile_id BIGINT REFERENCES ref. cascade_profiles,
geo TEXT, bin_from TEXT, bin_to TEXT, method TEXT,
provider TEXT, mid TEXT, require_3ds BOOLEAN, priority INT,
retry_on_soft JSONB, max_attempts INT, ttl_seconds INT, enabled BOOLEAN, meta JSONB
);

-- Online Provider Performance Metrics (Sliding Window)
CREATE TABLE live. provider_stats_15m (
provider TEXT, method TEXT, geo TEXT, bin6 TEXT,
approvals INT, declines INT, soft_declines INT, three_ds_pass INT,
avg_latency_ms INT, updated_at TIMESTAMP
);

-- Transactions with idempotency and selected route
CREATE TABLE payments. auth_attempts (
attempt_id BIGSERIAL PRIMARY KEY, idempotency_key TEXT, step INT,
provider TEXT, mid TEXT, require_3ds BOOLEAN, status TEXT, decline_code TEXT,
amount_minor BIGINT, currency TEXT, bin TEXT, geo TEXT,
started_at TIMESTAMP, finished_at TIMESTAMP, meta JSONB
);

9) SQL analiz şablonları

9. 1. Provayderlərin onlayn reytinqi (AR və soft-decline share)

sql
SELECT provider, method, geo,
SUM(approvals) AS appr,
SUM(declines) AS decl,
ROUND(100. 0 SUM(approvals) / NULLIF(SUM(approvals+declines),0), 2) AS ar_pct,
ROUND(100. 0 SUM(soft_declines) / NULLIF(SUM(declines),0), 2) AS soft_share_pct
FROM live. provider_stats_15m
WHERE updated_at > now() - INTERVAL '20 minutes'
GROUP BY 1,2,3
ORDER BY ar_pct DESC, soft_share_pct DESC;

9. 2. Sifarişlərdə kaskad effekti (step-conversion)

sql
WITH s AS (
SELECT idempotency_key,
MAX(step) AS steps,
BOOL_OR(status='APPROVED') AS approved
FROM payments. auth_attempts
WHERE started_at BETWEEN:from AND:to
GROUP BY 1
)
SELECT steps,
COUNT() AS orders,
100. 0 SUM(approved::int) / NULLIF(COUNT(),0) AS conv_pct
FROM s
GROUP BY 1
ORDER BY 1;

9. 3. Sticky BIN: ən yaxşı BIN6 provayderi

sql
SELECT bin6,
provider,
ROUND(100. 0 SUM(approved)::NUMERIC / NULLIF(COUNT(),0), 2) AS ar_pct
FROM (
SELECT LEFT(bin,6) AS bin6, provider, (status='APPROVED') AS approved
FROM payments. auth_attempts
WHERE started_at BETWEEN:from AND:to
) t
GROUP BY 1,2
QUALIFY ROW_NUMBER() OVER (PARTITION BY bin6 ORDER BY ar_pct DESC) = 1;

9. 4. Provayder qiyməti (all-in take-rate)

sql
SELECT provider,
SUM(amount_reporting) AS volume_rep,
SUM(interchange_amt + scheme_amt + markup_amt + auth_amt + refund_amt + cb_amt + gateway_amt + fx_spread_amt) AS fees_rep,
100. 0 SUM(interchange_amt + scheme_amt + markup_amt + auth_amt + refund_amt + cb_amt + gateway_amt + fx_spread_amt)
/ NULLIF(SUM(amount_reporting),0) AS take_rate_pct
FROM finance. settlement_fees
JOIN dw. transactions_flat USING (provider)
WHERE period_start_at >=:from AND period_end_at <:to
GROUP BY 1
ORDER BY take_rate_pct;

10) KPI və daşbordlar

AR/DR provayderləri və BIN/geo/metodu (onlayn pəncərələr 15/60 dəq və day-to-date).
Step-conversion: 1-ci, 2-ci, 3-cü filialda təsdiqlərin payı.
Take-Rate% və FX-slippage/MID provayderi ilə.
3DS pass-rate və liability shift payı.
Health/SLA: latency, timeouts, error rate, insidentlər.
Reserve & Funding: provayderlər üçün reserve% və T + N hit-rate.

11) Alertlər və eşiklər

Routing Degradation: Seçilmiş provayderdə AR düşməsi> 10-30 dəqiqə ərzində Y bps.
Soft-decline surge: artım payı soft-decline → əlavə şaxə cascade imkan verir.
3DS Anomaly: xüsusi emitent/BIN klasterində 3DS pass-rate> X% düşməsi.
Take-Rate Spike: qiymət artımı all-in> bps həddi.
Health Down: SLA breach (latency/error) — авто-failover.
Policy Drift: idempotency_key/bez kaskad profili olmadan cəhd - P1.

12) AB testləri və təlim qaydaları

Multi-arm bandit və ya yeni marşrutlar sabit split-trafik.
Explore/Exploit: trafik bir hissəsi sticky BIN «təlim» saxlamaq.
Qiymətləndirmə üfüqləri: hadisələr üçün onlayn (15/60 dəq) və dəyəri üçün həftə/ay.
Guardrails: təcrübə dayandırmaq üçün minimum AR/max take-rate.

13) Komplayens və «ekstremal» hallar

Sanksiyalara/lisenziyalara/geobloklara hörmət edin: bəzi provayderlər ayrı-ayrı ölkələrə/metodlara xidmət göstərə bilmirlər.
Same-method/Return-to-source: kaskad geri qaytarma siyasətini pozmamalıdır.
Tokenization/PCI: PSP (network tokens/vault) arasında vahid token sxemi.
Chargebacks: debatlar üçün capture hansı filialdan keçdiyini qeyd edin.

14) Best practices (qısa)

1. Retraite yalnız soft-decline, vahid idempotency_key ilə.
2. AR/3DS/soft-decline və sağlamlıq provayderlərinin canlı telemetriyasını saxlayın.
3. Marşrutun qiymət funksiyasını (AR vs Cost vs SLA vs FX) qurun.
4. Sticky BIN və AB testlərindən istifadə edin; kaskad profilləri versiyası.
5. Cut-off-aware olun: günün sonunda partial-capture verməyin.
6. playbooks failover var: PSP/ACS/ödəniş dəhlizi düşməsi.
7. Məlumat və məsuliyyəti bölüşün: kim PAN saxlayır, kim mübahisə edir.
8. Provayderlərdə reserve-ledger edin: buraxılışlar və silinmələr.

15) Giriş çek siyahısı

  • ISP kart/MID, qiymət (IC + +/blended), FX siyasətləri, ehtiyatlar, T + N.
  • Rules-engine: profillər, qaydalar, yumşaq kodlar, 3DS siyasəti, limitlər.
  • Router: idempotentlik, retrailer, taymauts, sticky BIN cache.
  • Telemetri: canlı-metrik AR/DR/3DS/latency/health; alertlər.
  • Hadisə-menecment və failover-playbook.
  • fees/FX/reserve üçün ETL; vitrinlər take-rate və step-conversion.
  • AB test prosedurları və guardrails.
  • Sənədləşmə: uyğunluq məhdudiyyətləri, same-method qaytarılması, məsuliyyət.

Xülasə

Provayder səviyyəsində kaskadlaşdırma «başqa bir PSP-ni sınamaq» deyil, intizam: canlı metriklər, ağıllı rules-engine, ciddi idempotentlik, düzgün 3DS taktikası, dəyər uçotu/FX/ehtiyatlar və hazır failover ssenariləri. Belə bir memarlıq AR artırır, bütün-in take-rate azaldır və ödəniş dövrəsini uğursuzluqlara və tənzimləmə məhdudiyyətlərinə davamlı edir.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.