Rutarea plăților și failover
Rutarea plăților și failover
1) De ce aveți nevoie de ea
Conversie: selectarea corectă a canalului/PSP de către BIN/bank/geo/risk crește Rata Auth cu 5-15 p.p.
Cost: selecția dinamică prin „succes × comision” reduce rata efectivă cu 10-30 bps.
Reziliență: izolarea de căderile PSP/3DS/bank; continuarea acceptării și plăților în cazul unor eșecuri parțiale.
Conformitate/RG: implementarea flexibilă a limitelor, a geo-restricțiilor, a autoexcluderilor și a normelor de sancționare direct în rutare.
2) Arhitectura țintă (straturi)
1. Checkout Layer - localizarea valutelor/metodelor, descoperirea APM, 3DS UX.
2. Payment Orchestrator (Rule Engine) - rutare, retry inteligent, idempotency, circuit-breaker.
3. Risc/Motor KYT - dispozitiv/comportament, sancțiuni/PEP, viteză, limite RG, politica 3DS.
4. Compliance Hub - KYC, furnizori de sancțiuni, accesibilitate/limite, audituri.
5. Portofel și Ledgers - registre de bani și jocuri, datorii bonus, multicurrency.
6. Reconciliere și raportare - T + 0/T + 1 reconcilieri, coduri de motive, registre fiscale.
7. Observabilitate și securitate - metrici/busteni/urme, alerte, RBAC, segmentare PCI.
8. Date/ML - scoring de risc, predicție de conversie de către bănci/metode.
3) Modelul de date și idempotența
Intentia de plata (PI): obiect uniform pentru depunere/plata cu campuri: suma, valuta, metoda, geo, BIN, , , , stare.
Idempotență: fiecare hop (PSP-A → PSP-B) se efectuează cu un singur idempotency_key; call retry nu schimbă statutul registrului.
Route Journal: Un jurnal de rute și răspunsuri (id-ul PSP, codul motivului, latența, fluxul 3DS, taxa), necesare pentru A/B și formarea modelului.
4) Algoritm de rutare (referință)
4. 1 Achiziționarea
1. Pre-scor: OUG, BIN/IIN, banca emitentă, dispozitiv, verificare, rata de risc, starea RG.
2. Filtre de conformitate: sancțiuni/PEP, geo-blocuri, vârstă/autoexcludere.
3. Reguli de cost/succes: scor = w1· AuthRate + w2· (Taxa de −) + w3· Sancţiuni pentru − sănătăţii.
4. Politica 3DS: TRA/whitelisting/step-up prin risc, provocare la alegere vs frictionless.
5. Selectarea traseului: → PSP-A (privind eșecurile/erorile) → metoda alternativă PSP-B → (APM/open banking).
6. Smart Retry: schimbarea modului 3DS, MID, mcc/rezervă, timpul înapoi de codurile motiv (05/51/62 ≠ 91/96).
7. Post-procesare: Intrarea Route Journal, actualizarea soldului.
4. 2 Plăți
1. Prioritizare: viteza (instant/near-instant) ↔ costul ↔ disponibilitatea.
2. KYT/AML/RG: viteză, modele libere, limite, sursa de fonduri, liste de excepție.
3. Rutare: card-to-card OCT/RTP/Plăți mai rapide/SEPA Instant/Pix/UPI.
4. Failover: plăți în coadă atunci când banca/PSP nu este disponibil, cozi de scurgere periodice.
5. Confirmare: carti web semnate care compenseaza tranzactiile pentru discrepante.
5) modele Failover
5. 1 Întrerupător de circuit
Local (pe PSP): declanșat de error_rate↑, latency↑, spike în declinuri (specifice emitentului).
Global (per metodă): în caz de eșec în industrie (ex. ACS/3DS la o bancă mare).
State: Închis → Deschis → Semi-deschis; termenele și pragurile sunt definite de segmentele GEO/BIN.
5. 2 Active-Active vs Active-Pasive
Active-Active: PSP paralel/metode; Regula/costul de echilibrare cel mai bun RTO/RPO.
Active-Pasive: economii la taxe/sprijin, dar RTO mai lungi; potrivit pentru GEO secundar/metode.
5. 3 Moduri de degradare
Dezactivarea metodelor cu risc ridicat, transferul unei părți a traficului către sistemul bancar deschis/APM.
Forțat 3DS provocare-toate pentru „ardere” BIN/bănci.
Limită temporară a cantităților/frecvenței (RG + risc).
6) Lucrul cu 3DS/SCA (dinamic)
Fără frecare în mod implicit pentru controale cu risc scăzut/mici, provocare pentru risc ridicat.
Excepții PSD2: LVA, MOTO, MIT - în orchestrator, nu în aplicație.
Rezervă: dacă ACS se degradează, ridicați rata de provocare sau transferați temporar traficul către o metodă alternativă (open banking).
KPI: rata de provocare, cota fără frecare, aprobările post-3DS.
7) Integrarea cu antifraudă/KYT/RG
Înainte de rutare - scoring (dispozitiv, comportament, proxy/VPN, risc BIN, istoric).
În rutare, 3DS/channel/PSP selecție prin risk_score.
Înainte de plată - KYT/velocity/anti-arb (win→withdraw rapid, mai multe carduri, dispozitive conexe).
Limitele RG și auto-excluderea sunt reguli de oprire „hard” la nivel de orchestrator.
8) Observabilitate și date
Valori în timp real: auth_rate, mix de decline_reason, latență p95, sănătate PSP, succes 3DS, timp de plată, adâncime de coadă.
Alerte: praguri de către bănci/metode, lipire pe paginile de stare externe.
A/B & Lerning: actualizarea greutăților de rutare bazate pe conversie/cost; grupuri de control fără retribuții pentru calibrare.
9) KPI-uri și obiective
Rata Auth (carduri): EU 85-92%, US 80-88%, LATAM 70-85% (fără orchestrație - marginea de jos).
p95 latență auth API: <3 c; cârlige web: <60 c.
Cota de plăți instantanee: ≥ 70% din controalele „ușoare”.
Eficiența rutării (costul ÷ de conversie): + 5-10% la valoarea de bază pentru trimestrul după acordare.
Circuit-break RTO: <2 min pentru comutare; RPO: 0 (idempotență).
Rata de încărcare: <0. 5% în funcție de număr (depinde de produs/OUG).
10) Playbook-uri incidente (foaie de ieftin)
10. 1 Masa scade prin emiterea băncii
1. Confirmați vârful de BIN/emitent.
2. Întrerupătorul local deschis → redistribui la alt-PSP/metodă.
3. Creșterea ratei de provocare pentru BIN-urile afectate, permite încercarea din nou inteligentă.
4. Comunicarea cu canalele de stare; RCA cu coduri de motive.
10. 2 3DS/ACS picătură
1. Detectarea de timpi de creștere/” declin moale”
2. Transferul unei părți a traficului către sistemul bancar deschis/APM; activa „provocare-toate” în cazul în care ACS este în viață.
3. Reducerea controlului riscului (limitele cantităților/vitezei), consolidarea monitorizării.
10. 3 Instabilitate PSP
1. Alerta de sănătate → întrerupător deschis a funcționat.
2. Transfer în standby PSP/MID; interzicerea metodelor „grele” cu latență ridicată.
3. Recuperare prin semi-deschis cu canari (1-5% din trafic), apoi gradare.
10. 4 Întârzieri de plată
1. Transferați la plăți în coadă cu priorități (VIP, limita sumei).
2. Mutarea părții la șine alternative (RTP/FPS/SEPA Instant/Pix).
3. Notificări transparente către jucători; escaladări manuale> X ore.
11) SLA și ancore de contract (ceea ce trebuie de la PSP)
Disponibilitate: ≥ 99. 95% admitere; p95 latență <3 c; cârlige <60 c.
Incidente: TTA ≤ 15 min, rezervă MID/APM, RCA ≤ 5 zile.
Date: coduri de motive brute, detalii bancare, returnări de jetoane ≤ 10 zile de la ieșire.
Finanțe: rezerve limitate/holdback, senzații transparente (inclusiv jetoane 3DS/network), plafonarea primelor FX.
Securitate: PCI-AOC, semnături de carti web, rotație cheie, SOC 2/ISO 27001 (preferat).
12) Modele regionale
CE/UK: PSD2/SCA; carduri + open banking (SEPA Instant/FPS). Orchestrație 3DS puternică, TRA și whitelisting.
SUA: carduri + ACH; prioritatea plăților instantanee (push-to-card, RTP). Circuitele Chargeback sunt obligatorii.
LATHAM: Pix (BR), SPEI (MX), PSE (CO); APM-grele; se concentreze pe riscul de dispozitiv și documentul KYC.
Turcia/CA: transferuri/portofele locale; sancțiune îmbunătățită/circuit AML, limite de cantități/viteză.
Asia/India: UPI/e-wallets; reguli stricte de viteză; rutarea către băncile emitente.
13) Liste de verificare a implementării
Arhitectură/Date
- Intenția de plată + idempotența tuturor hameiului.
- Route Journal, coduri de motive brute, cărți web semnate.
- Separarea de bani/registre de joc; compensarea tranzacțiilor.
Rutare/Reguli
- Regula-motor de OUG/BIN/emitent/risc/cost.
- Încercați din nou inteligent cu timpul liber și schimbarea 3DS/MID.
- Întrerupătoare de circuite locale și globale; canare-întoarcere.
Risc/conformitate
- Risc/integrare KYT/RG înainte și după rutare.
- Sancțiuni/PEP, vârstă/auto-excludere - cum ar fi filtrele „hard”.
- Limitele vitezei/sumei; jurnal de decizie.
Observabilitate/SLA
- Tablouri de bord de la Auth Rate, latență, mix declin, timp de plată.
- Alerte după praguri; runbooks la incidente.
- SLAs în contract, QBRs și sancțiuni pentru încălcări.
14) Strategie pseudo cod (pentru echipa)
on PaymentRequest(PI):
ensureIdempotency(PI.key)
risk = RiskEngine.score(PI)
if not ComplianceHub.pass(PI, risk): reject()
candidates = RouteCatalog.filter(PI.geo, PI.method, PI.bin, risk)
for route in rankBy(Score(AuthRate, Fee, Health, Risk), candidates):
res = PSP.call(route, PI, policy=ThreeDS.select(risk))
log(RouteJournal, route, res)
if res.approved: return approve(PI)
if isRetryable(res.reason): continue with SmartRetryAdjustments()
return decline(PI)
15) Economie și optimizare A/B
rata Считайте efectivă = (Taxe + 3DS + FX + cost de încărcare − reduceri interbancare )/Volum aprobat.
A/B: minim 10k tranzactii/sucursala, 2-4 saptamani; înregistrarea prin bănci/metode.
Optimizați ponderile AuthRate vs Fee după OUG/sezonalitate; controlează „înclinarea” în șine scumpe, dar de conversie.
16) Ce este important să ne amintim
Orchestrator + reguli + date - inima stabilității și conversiei plăților.
Intenția de plată elimină debitarea dublă și simplifică failover-ul.
Întreruptoarele și retururile canare asigură stabilizarea rapidă fără „leagăne”.
SLA-urile contractuale PSP și datele transparente nu sunt o opțiune, ci o cerință.
Șinele regionale (open banking, RTP, Pix/UPI) sunt adesea mai bune decât cardurile de viteză/cost - luați în considerare în rutare.