Czarne listy i listy blokowe w logice płatności
TL; DR
Czarna lista/lista blokowa to możliwa do opanowania warstwa „twardych” i „miękkich” zakazów w rurociągu płatniczym. Jego wartością jest szybkie przycinanie oczywiście ryzykownych identyfikatorów (karty, IBAN, adresy kryptograficzne, urządzenia, IP itp.) do drogich kontroli i prób umorzenia. Kluczem do skuteczności jest jasny model danych (okres ważności, źródło, powód, jurysdykcja, poziom zaufania), odizolowany serwis z silnym pamięcią podręczną i audytem, spójna polityka TTL/amnestii oraz metryki nadblokowe.
1) Terminy i różnice
Czarna lista/Lista odmowy/Lista bloków - zestaw identyfikatorów, jeśli zbiega się z tym, z którym operacja jest twardo odrzucona (HARD BLOCK).
Stop-list (kontekst) - blokowanie w określonym kontekście (na przykład tylko dla wniosków, tylko w kraju X, tylko dla kwoty> € Y).
Lista obserwacyjna/Greylist - „obserwacja”: operacja nie zostaje natychmiast odrzucona, ale przełożona na STEP-UP (3DS/OTP/add. KYC) lub ręczny przegląd.
Permit-list/White-list - wyraźne uprawnienia, które przewyższają szare sygnały (na przykład VIP, potwierdzony rachunek bankowy).
Lista negatywna (wewnętrzna) - lista oparta na wewnętrznych incydentach (obciążeniach zwrotnych, nadużyciach premiowych, meczach sankcji, wielokrotności).
2) Co dokładnie „liść”: identyfikatory
Szczegóły płatności
Karta: token PAN/hash FPAN, BIN, emitent/kraj (dla geopolityki), termin, nazwa medialna (opcjonalnie, hash/fuzzy).
Bank: IBAN/BIC, konto/routing (ACH/SEPA), nazwa właściciela (znormalizowany hash).
E-portfel/fintech: portfel (PayPal/Skrill/Neteller itp.), UPI/PIX ID, Open-Banking płatnik PISP.
Krypta: adresy L1/L2, znaczniki (mikser/sankcje/wysokie ryzyko), łańcuch (ETH/BTC/TON itp.).
Komunikacja i zachowanie
E-mail/telefon (z normalizacją, ujmowaniem domen jednorazowych i numerami redystrybuowanymi).
Odcisk palca urządzenia/przeglądarki, klucz klienta, identyfikator mobilny.
Sieć: IP (ASN/proxy/VPN/data center) ,/24-podsieci, geo-lokalizacja.
Rachunek i kontrahent
اID/CustomerID, partner/partner, źródło promocyjne.
PSP/MID/Acquirer (dla blokad operacyjnych trasy).
Adres/pełna nazwa (normalizacja hash, fuzzy-matching by tokens).
3) Źródła uzupełniania wykazów
Wydarzenia wewnętrzne: obciążenia zwrotne, wpisy o oszustwach, nadużycia związane z bonusami (wielofunkcyjne, punktowanie „wzięły premię - wycofane bez obrotu”), mecze o sankcje, flagi o self-wykluczeniu/MLRO.
Źródła zewnętrzne: ujemne listy PSP/nabywców, bazy konsorcjum (wspólne informacje o nadużyciach finansowych), dostawcy etykiet kryptograficznych, bazy BIN, modele ryzyka.
Zasady i ręczne wpisy: decyzje dotyczące zgodności/biura ryzyka, „zamrożenie” w przypadku incydentu.
4) Model danych (minimum wystarczające)
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"
}
}
Wymagane pola to 'key', 'policy', 'reason _ code', 'source', 'created _ at', 'expiry _ at/ttl'.
Dobra praktyka: utrzymanie zakresu (działanie/jurysdykcja/produkt) i zaufania (polityka miękka).
5) Lista architektury usług
Dedykowana usługa listowa (prawdziwy status dla wszystkich mikroservices).
API:- "GET/v1/list/check? klucz =... & ctx =... "- kontrola synchroniczna (p99 <5-10 ms z Redis).
- „POST/v1/list/upsert” - masa/pojedynczy zapis z walidacją i audytem.
- „POST/v1/lista/luzem” - załadunek CSV/NDJSON z suchej jazdy.
- "POST/v1/list/review/: id' - markup/amnesty/extension.
- Przechowywanie: Redis (hot cache, TTL) + Postgres (historia/audyt) + DLQ/log bus (Kafka) do pozyskiwania i replikacji zdarzeń.
- Dostęp: napisz - ryzyko/zgodność/MLRO tylko za pośrednictwem RBAC + 4-eye control on sensitive keys (banking/crypto).
- Niezawodność: idempotent upsert, rekordy wersji, dokładnie raz w rurociągu zdarzeń, szyfrowanie KMS/HSM.
6) Gdzie wbudować kontrole
1. Rejestracja/powiązanie środków płatności - Wcześnie Odmowa dla „spalonych” szczegółów.
2. Depozyt (inicjacja) - szybkie Zaprzeczenie/Zatrzymaj przed 3DS/OTP, aby nie płacić za autoryzację za pomocą oczywiście złych kluczy.
3. Wypłata/płatność - oddzielne listy dotyczące szczegółów wypłaty (IBAN/adres kryptograficzny); często bardziej rygorystyczne niż przy wejściu.
4. Zmiana szczegółów - krok do góry + sprawdzenie; ochrona przed „zmianą liczenia przed wycofaniem”.
5. Operacje bonusowe - obserwuj/zatrzymuj się zgodnie z systemami nadużyć (wielofunkcyjne, łańcuchy urządzeń).
7) Polityka (HARD/SOFT) i TTL
HARD (zaprzeczenie/zatrzymanie) stosuje się, gdy: sankcje, potwierdzone oszustwa, powtarzające się obciążenia zwrotne, skradzione karty, muły.
SOFT (observe/step-up) w: słabych sygnałach (nowy IP/urządzenie, „zimny” e-mail-domena, wysoka prędkość), „wątpliwy” BIN/ASN.
- Obciążenie zwrotne: 180-540 dni (w zależności od schematów i ryzyka).
- Bonus: 90-365 dni (z wersją).
- Sankcje: w nieskończoność z okresową synchronizacją wykazów.
- Amnestia: po udanym CUS/historia „czysty” grać ≥ N dni i bez incydentów - automatyczne demotion obserwować lub wycofać.
8) Matryca decyzji
9) Pseudokoda weryfikacji 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) Integracja z silnikiem ryzyka i autobusem płatniczym
Silnik ryzyka najpierw odczytuje ListService, a następnie punktację/ML/zasady.
Zamówienie w rurociągu: „Pre-auth → ListService (hard/soft) → 3DS/OTP → Auth → Clearing”.
Routing: na poziomie PSP-routing, można „zero” kanałów/akwariów, jeśli 'MID '/' BIN' są zawarte na listach blokowych dostawców.
Wydarzenia: Każde rozwiązanie („DENY/STOP/OBSERVE/PERMIT”) trafia do Kafki w celu audytu i dalszego pociągu ML.
11) Operacje i procesy
Pobieranie zbiorcze: CSV/NDJSON z walidacją i symulacją (ile operacji będzie miało wpływ).
Przegląd: Dzienna próbka rozszerzenia/wycofania; SLA do rozpatrywania spraw.
Konflikty: Jeśli oba 'PERMIT' i 'DENY' stosują najbardziej restrykcyjną regułę z wyjątkiem wyraźnego nadpisania VIP.
Wersioning: każda edycja - nowa wersja rekordu; stary stan jest zatrzymany do śledztwa.
Incydenty: szablony reason_code, połączenie z biletami (Jira/Case-ID).
12) Wskaźniki jakości i cele
Wskaźnik trafienia (HR) = procent transakcji na dowolnej liście.
HHR = odsetek twardych hitów.
Rate overblock (OBR) = odsetek fałszywych blokad (późniejszy ważny płatnik).
CB- Uplift Z/Oszustw- Strata z implementacji.
Wskaźnik zatwierdzenia (AR) w odniesieniu do depozytów/wypłat.
Time-to-Wallet (TTW) wpływ środków miękkich (step-up) na szybkość płatności.
Czas do decyzji (p95/p99) dla kontroli online.
13) Prawo i prywatność
Podstawa przetwarzania: uzasadniony interes/obowiązek prawny (AML/sankcje/zapobieganie nadużyciom finansowym).
Minimalizacja: sklep hashes/tokens zamiast danych podstawowych (PAN/IBAN), sól, dostęp kontrolny.
Zatrzymanie: TTL + ogólne zasady zachowania (AML/rachunkowość/regulacje).
Prawa uczestników: proces dotyczący DSAR/usunięcia (z uwzględnieniem wyjątków dotyczących zgodności).
Transgraniczne: wyraźne granice replikacji między regionami/najemcami.
14) Częste błędy i sposób ich unikania
Overblock przez IP/ASN: centra danych/CGNAT → użyj kombinacji sygnałów (IP + urządzenie + zachowanie).
Trzymanie danych osobowych: normalizować e-mail/telefon, wziąć pod uwagę recykling numerów.
Recykling kart (ponowna emisja PAN): wiązanie tokenem PAN/tokenizacją krypto, a nie surowymi danymi.
Suma gospodarstw domowych IBAN: wykorzystaj zakres (tylko wypłaty) i obserwuj zamiast globalnego zaprzeczenia.
Adresy kryptograficzne: nie blokuj wszystkiego; rozważyć etykiety/kontekst (wymiany, portfele powiernicze).
15) Połączenie z nadużyciami bonusowymi i limitami
Wzory bonusowe: jeden portfel/adres → wiele kont, szybkie wyjście bez obrotu - w zatrzymaniu/zaprzeczeniu wypłat.
Limity i TtW: „obserwować” może wymagać zwiększenia obrotu/wydłużenia TtW przed przeglądem.
16) Przykłady kluczy (formy kanoniczne)
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) Listy kontrolne (lista kontrolna wdrażania)
1. Zdefiniuj zestaw zasad: zaprzecz/stop/observe/allow + reason_codes.
2. Schemat danych: klucze, zakres, ttl/wygaśnięcie, zaufanie, audyt.
3. Architektura: Redis + PG + Kafka, idempotencja, 4-eye control.
4. Integracja ze strumieniem: kontrola wstępna, krok w górę, hartowanie wypłat.
5. Mierniki/deska rozdzielcza: HR/HHR/OBR/AR/TTW, przekrojowa według jurysdykcji/kanału.
6. Procesy: Przegląd/Amnestia, Pliki do pobrania luzem, DSAR, Incydenty.
7. Szkolenie zespołowe: wsparcie/ryzyko/finansowanie, playbooks rozwiązywania konfliktów.
18) Mini playbooks
Wzrost CB na BIN X → tymczasowy przystanek (depozyt) na 'bin: X' + przekierowanie do innego nabywcy, przegląd po 48 godzinach.
Zmiana szczegółów przed wyświetleniem → stop (wycofanie) + KYC-step-up + weryfikacja odcisku palca.
Konsorcjum hit na portfelu → obserwować na depozytach, zatrzymać wypłaty przed przeglądem MLRO.
Informacje o sankcjach dla kraju Y → zaktualizować zakres kraju, włączyć odmowę wypłat, ponownie obliczyć listy.
19) Przykład interfejsu panelu administracyjnego (logika)
Wyszukiwanie klucza/maski, filtry: polityka, zakres, powód, źródło, wygaśnięcie <30d.
Кновка: Amnesty, Extend TTL, Lower to Observe, Convert to Deny, Add Allow.
Działania masowe z suchym biegiem: pokazać, ile operacji będzie podlegać nowym zasadom.
20) Podsumowanie
Listy blokowe są nie tylko „tabelą zakazów”, ale usługą na poziomie platformy: z jasnym modelem danych, mocnym buforem, słuchaniem, kompetentnym TTL i przejrzystymi procesami przeglądowymi. Po prawidłowej integracji z silnikiem ryzyka, będą one zawęzić lejek oszustwa bez niszczenia konwersji i przyspieszyć płatności, gdzie jest to bezpieczne.