Liste negre și liste de blocuri în logica de plată
TL; DR
O listă neagră/listă de blocuri este un strat ușor de gestionat de interdicții "hard" și "soft' într-o conductă de plată. Valoarea sa este tăierea rapidă a identificatorilor evident riscanți (carduri, IBAN, adrese cripto, dispozitive, IP etc.) la verificări costisitoare și încercări de anulare. Cheia eficienței este un model clar de date (perioada de valabilitate, sursa, motivul, jurisdicția, nivelul de încredere), un serviciu izolat cu o memorie cache și un audit puternic, politici TTL/amnistie consecvente și valori hit-rate ↔ overblock.
1) Termeni și diferențe
Lista neagră/Deny-list/Block list - un set de identificatori, dacă a coincis cu care operațiunea este greu respinsă (HARD BLOCK).
Stop-list (context) - blocarea într-un context specific (de exemplu, numai pentru concluzii, numai în țara X, numai pentru suma> € Y).
Watchlist/Greylist - „observație”: operațiunea nu este respinsă imediat, ci tradusă în STEP-UP (3DS/OTP/add. KYC) sau Manual Review.
Allow-list/White-list - permisiune explicită care depășește semnalele gri (de exemplu, VIP, cont bancar confirmat).
Lista negativă (internă) - o listă bazată pe incidente interne (chargeback-uri, abuz bonus, meciuri de sancțiuni, contabilitate multiplă).
2) Ce anume „frunză”: identificatori
Detalii de plată
Card: PAN token/FPAN hash, BIN, emitent/țară (pentru geo-politici), termen, nume media (opțional, hash/fuzzy).
Banca: IBAN/BIC, cont/rutare (ACH/SEPA), numele proprietarului (hash normalizat).
E-portofel/fintech: portofel (PayPal/Skrill/Neteller, etc.), UPI/PIX ID, Open-Banking plătitor PISP.
Cripto: adrese L1/L2, etichete (mixer/sancțiuni/risc ridicat), lanț (ETH/BTC/TON etc.).
Comunicare și comportament
E-mail/telefon (cu normalizare, contabilizarea domeniilor „o singură dată” și numere redistribuite).
Amprentă dispozitiv/browser, cheie client, ID-ul mobil.
Rețea: IP (ASN/proxy/VPN/data center) ,/24-subrețele, geo-locație.
Contul și contrapartida
UserID/CustomerID, partener/afiliat, sursă promoțională.
PSP/MID/Acquirer (pentru blocarea operațională a rutei).
Adresă/nume complet (normalizare hash, potrivire fuzzy după jetoane).
3) Surse de realimentare a listelor
Evenimente interne: chargebacks, alerte de fraudă, abuz de bonus (multi-cont, scor „a luat un bonus - sa retras fără cifra de afaceri”), meciuri de sancțiuni, auto-excludere/pavilioane MLRO.
Surse externe: liste negative de PSP/achizitori, baze de consorțiu (intel de fraudă partajată), furnizori de etichete cripto, baze BIN, modele de risc.
Reguli și intrare manuală: decizii de conformitate/birou de risc, „îngheț” pentru un incident.
4) Modelul de date (minim suficient)
json
{
"key": "card:pan_token:9c4f...e1",
"scope": {
"action": ["deposit","withdrawal","payout"],
"jurisdiction": ["EEA","CA-ON"],
"product": ["casino","sports"]
},
"policy": "deny stop observe allow",
"reason_code": "CHARGEBACK BONUS_ABUSE SANCTION_MATCH MFA_BYPASS KYC_FAIL CONSORTIUM_HIT",
"source": "risk_engine psp_x mlro consortium",
"confidence": 0. 92,
"created_at": "2025-10-01T12:30:00Z",
"expiry_at": "2026-01-01T00:00:00Z",
"ttl_days": 90,
"review_after": "2025-12-01T00:00:00Z",
"metadata": {
"case_id": "INC-2025-10344",
"notes": "2 CB in 45 days; bonus cycling through 3 wallets,"
"hash_algorithm": "sha256+salt",
"tenant": "brand_A"
}
}
Câmpurile obligatorii sunt "cheie", "politică", "motiv _ cod", "sursă", "creat _ la", "expirare _ la/ttl'.
Bune practici: menținerea domeniului de aplicare (acțiune/jurisdicție/produs) și a încrederii (pentru politici soft).
5) Arhitectura serviciilor de listă
ListService dedicat (status adevărat pentru toate microserviciile).
API:- 'GET/v1/list/check? key =... & ctx =... "- verificare sincronă (p99 <5-10 ms de la Redis).
- „POST/v1/list/upsert” - masă/înregistrare unică cu validare și audit.
- „POST/v1/list/bulk” - încărcare CSV/NDJSON de la dry-run.
- 'POST/v1/list/review/: id' - marcaj/amnistie/extensie.
- Stocare: Redis (hot cache, TTL) + Postgres (istoric/audit) + DLQ/log bus (Kafka) pentru eveniment-aprovizionare și replicare.
- Accesări: scriere - risc/conformitate/MLRO numai prin RBAC + control cu 4 ochi pe chei sensibile (bancare/cripto).
- Fiabilitate: upsert idempotent, înregistrări versioning, exact o dată în conducta de evenimente, criptare KMS/HSM.
6) În cazul în care pentru a încorpora controale
1. Înregistrarea/conectarea mijloacelor de plată - Deny anticipat pentru detalii „arse”.
2. Depozit (iniţiere) - rapid Deny/Stop înainte de 3DS/OTP, astfel încât să nu plătească pentru autorizarea cu cheile evident rău.
3. Retragere/plată - liste separate pentru detalii de plată (adresa IBAN/cripto); adesea mai stricte decât la intrare.
4. Modificarea detaliilor - step-up + check; protecție împotriva „schimbării numărului înainte de retragere”.
5. Operațiuni bonus - observați/opriți conform schemelor de abuz (multi-cont, lanțuri de dispozitive).
7) Politici (HARD/SOFT) și TTL
HARD (negare/oprire) se aplică atunci când: sancțiuni, fraudă confirmată, chargebacks repetate, carduri furate, catâri.
SOFT (observe/step-up) la: semnale slabe (IP/dispozitiv nou, domeniu de e-mail „rece”, de mare viteză), „dubioase” BIN/ASN.
- Chargeback: 180-540 zile (în funcție de regimuri și risc).
- Bonus bonus: 90-365 zile (cu revizie).
- Sancțiuni: pe termen nelimitat cu sincronizarea periodică a listelor.
- Amnesty: după un succes CUS/istorie de joc „pur” ≥ N zile și fără incidente - demoție automată pentru a observa sau retragere.
8) Matricea decizională
9) Pseudocodul de verificare online
python def is_blocked(keys: list[str], ctx: dict) -> Decision:
keys: ["card:pan_token:..", "ip:..", "device:..", "iban:.."]
ctx: {"action":"withdrawal","jurisdiction":"EEA","product":"casino","amount":1000}
hits = list_service. batch_check(keys, ctx) # из Redis + fallback PG if any(h. policy in ["deny","stop"] for h in hits if h. in_scope(ctx)):
return Decision(block=True, reason=top_reason(hits))
if any(h. policy == "observe" for h in hits if h. in_scope(ctx)):
return Decision(block=False, step_up="3DS_or_KYC", reason="OBS_HIT")
return Decision(block=False)
10) Integrarea cu motorul de risc și autobuzul de plată
Motorul de risc citește mai întâi ListService, apoi scoring/ML/reguli.
Ordine în conductă: „Pre-auth ListService (hard/soft) Auth Clearing”.
Rutare: la nivel de rutare PSP, puteți "zero" canale/aquiers dacă "MID'/" BIN" sunt incluse în listele de bloc ale furnizorilor.
Evenimente: Fiecare soluție („DENY/STOP/OBSERVE/ALLOW”) merge la Kafka pentru a audita și a antrena în continuare ML.
11) Operațiuni și procese
Descărcări în masă: CSV/NDJSON cu validare și simulare (câte operațiuni vor fi afectate).
Recenzie: Proba zilnică de extensie/retragere; SLA pentru procesarea cazurilor.
Conflicte: Dacă atât 'ALLOW' cât și 'DENY' se aplică regula cea mai restrictivă, cu excepția suprascrierii VIP explicite.
Versioning: orice editare - versiune nouă a înregistrării; vechiul stat este păstrat pentru investigații.
Incidente: șabloane reason_code, conexiune cu bilete (Jira/Case-ID).
12) Măsurători și obiective ale calității
Rata de succes (HR) = Procentul tranzacțiilor din orice listă.
Rata Hard-Hit (HHR) = proporția de hard-locked.
Rata Overblock (OBR) = proporția de încuietori false (plătitorul ulterior valabil).
CB- Uplift↓/Fraud - Loss↓ după implementare.
Rata de aprobare (AR) la depuneri/retrageri.
Time-to-Wallet (TTW) impactul măsurilor soft-measures (pas-up) asupra vitezei plăților.
Timp până la decizie (p95/p99) pentru verificări online.
13) Juridic și de confidențialitate
Baza prelucrării: interes legitim/obligație legală (AML/sancțiuni/prevenirea fraudei).
Minimizare: stocați hashes/jetoane în loc de date primare (PAN/IBAN), sare, control acces.
Retenție: TTL + politici generale de retenție (LMA/contabilitate/reglementare).
Drepturile subiecților: proces pentru DSAR/ștergere (luând în considerare excepțiile de conformitate).
Transfrontalier: limite clare de replicare între regiuni/chiriași.
14) Greșeli frecvente și cum să le evitați
Overblock by IP/ASN: centrele de date/CGNAT → utiliza o combinație de semnale (IP + dispozitiv + comportament).
Lipirea datelor cu caracter personal: normalizați e-mailul/telefonul, luați în considerare reciclarea numerelor.
Reciclarea cardurilor (re-emisie PAN): legați prin token PAN/tokenizare cripto, nu date brute.
IBAN total de uz casnic: utilizați domeniul de aplicare (numai plăți) și observați în loc de negare globală.
Adrese cripto: nu blocați totul; luați în considerare etichetele/contextul (schimburi, portofele custodiale).
15) Conexiunea cu abuzul de bonus și limitele
Modele bonus: un portofel/adresă → multe conturi, ieșire rapidă fără cifră de afaceri - în stop/nega pe plăți.
Limite și TtW: „a respecta” poate necesita creșterea cifrei de afaceri/TtW alungit înainte de revizuire.
16) Exemple de chei (forme canonice)
card:pan_token:<sha256>
iban:<sha256>
wallet:skrill:<normalized_id_hash>
upi:<vpa_hash>
pix:<pix_key_hash>
crypto:eth:<address_lower>
email:<local+domain_hash>
phone:+<E164_hash>
device:<fp_hash>
ip:<ipv4/6 or /24>
asn:<asn_id>
affiliate:<id>
psp:mid:<id>
17) Liste de verificare (lista de verificare a implementării)
1. Definiți setul de politici: negați/opriți/observați/permiteți + reason_codes.
2. Schema de date: chei, domeniu de aplicare, ttl/expirare, încredere, audit.
3. Arhitectură: Redis + PG + Kafka, idempotență, control cu 4 ochi.
4. Integrarea în flux: pre-auth check, step-up, payout-întărire.
5. Metrică/tablou de bord: HR/HHR/OBR/AR/TTW, secțiune transversală pe jurisdicție/canal.
6. Procese: Revizuire/Amnesty, Descărcări în vrac, DSAR, Incidente.
7. Instruirea echipei: suport/risc/finanțe, playbook-uri de soluționare a conflictelor.
18) Mini cărți de redare
CB val pe BIN X → oprire temporară (depozit) pe 'bin: X' + redirecționa către un alt achizitor, revizuire după 48 de ore.
Modificarea detaliilor înainte de a afișa → oprire (retragere) + KYC-step-up + verificarea amprentei digitale.
Consorțiu lovit pe portofel → observa pe depozite, opri pe plăți înainte de revizuire MLRO.
Sancțiuni știri pentru țara Y → actualiza țara-domeniul de aplicare, permite negarea plăților, recalcula listele.
19) Exemplu de interfață panou de administrare (logică)
Căutare cheie/mască, filtre: politică, domeniu de aplicare, motiv, sursă, expirare <30d.
Кнопки: Amnesty, Extinde TTL, Inferior pentru a observa, Conversia pentru a nega, Adăugați permite.
Acțiuni în vrac cu rulare uscată: arată câte operațiuni vor intra sub incidența noilor reguli.
20) Rezumat
Listele de blocuri nu sunt doar un „tabel de interdicții”, ci un serviciu la nivel de platformă: cu un model clar de date, memorie cache puternică, ascultare, TTL competent și procese clare de revizuire. Atunci când sunt integrate în mod corespunzător cu motorul de risc, acestea vor restrânge pâlnia de fraudă fără a distruge conversia și vor accelera plățile în cazul în care este sigur să se facă acest lucru.