Limiti Velocity e anti-abuse
1) Cos'è velocity e perché è necessario
I limiti Velocity sono limiti di frequenza e quantità di operazioni per le finestre di tempo specificate. Obiettivo:- ridurre il frodo e l'utilizzo di bonus/promo,
- proteggere le infrastrutture di pagamento dalle tempeste dei retrai,
- mantenere la conversione sana, trasformando i tentativi discutibili in challenge (3DS/SCA) anziché «rigido rifiuto» laddove possibile.
I controlli Velocity completano lo snap, AVS/CVV, 3DS2/SCA e smart-routing.
2) Quali entità limitare (scopes)
Progettare limiti su più livelli contemporaneamente:- Entità di pagamento: «card _ token» (vault/network), «bin», «issuer», «psp _ route».
- Utente: «account _ id», «kyc _ level», «email/phone».
- Tecnica: 'device _ id' (fingerprint/SDK), 'ip', 'asn', 'sessione _ id'.
- Contesto aziendale: «bonus _ id», «campaign _ id», «country», «mcc 7995» sottotipo (deposito/ritiro).
- Finanziari: 'amount _ bucket' (micro/medio/grande), 'currency', 'payment _ method'.
3) Finestre e contatori
Fissed window (T = 15m/1h/24h) è semplice ma sensibile ai limiti.
Sliding window - Per essere precisi, conta l'intervallo «scorrevole».
Leaky bucket/Token bucket - Alleggeriscono i picchi, determinano la larghezza di banda sostenibile.
Combinati: burst (picco corto) + sustained (flusso lungo).
- «device _ id»: 3 tentativi di autorizzazione in 15 minuti, 10 in 24 ore.
- «card _ token»: ≤ 2 decline consecutive senza 3DS; Terzo: 3DS obbligatorio.
- «ip»: ≤ 5 unici «card _ token» in un'ora (altrimenti, cappa/blocco).
- «account _ id»: ≤ 2 depositi cancellati consecutivi; Poi c'è il cooldown 1 ora.
4) Algoritmi di restrizione (breve)
Token Bucket (autorizza bursts):- Inizializza «capacity» e «refill _ rate».
- Prima di ogni tentativo, «estrarre» 1 token; se non ci sono token - challenge/decline.
- La coda scorre a velocità costante; gli eventi in arrivo sovrastano - throttle.
- 1 ° ripetizione: 2-5 minuti, 2: 10-20 minuti, 3: 1-2 ore di stop, o tradotto in un metodo alternativo.
5) Criteri decisionali (decisioning)
Classificare gli esiti dei controlli velocity:- Allow è a basso rischio, entro le soglie.
- Challenge ha superato la soglia «morbida» 3DS/SCA/KBA (domande).
- Throttle limita temporaneamente (cooldown) con UX trasparente.
- Decline: violazioni gravi (abbondanza di carte, bot pool, bonus abuse).
- Rerute: cambio di metodo PSP (ad esempio A2A) al picco «91/96» dell'emittente.
Mini matrice di esempi
«device _ id» tentare di 3 per 15 minuti e «cvv = N» Decline + Capja.
«card _ token» 2 soft-decline consecutivi → 3DS-challenge (obbligatorio).
"ip" 5 unici "account _ id" per 30 min "Throttle 30 min + controllo KYC.
«account _ id» deposito-ritiro-deposito per 10 min (giostra) di Challenge o limite di importo.
6) Velocity per depositi, retrai e conclusioni
Depositi:- Protezione delle micro-transazioni (molte transazioni di piccole dimensioni): limite per quantità e totale per T
- Con la sequenza «05 »/« 14 »/« 54» - arresta il «sovraccarico» degli oggetti, lo trasferisca in 3DS.
- Esplode le code CIT e MIT. Usa le finestre morbide T + 1/T + 24h per il MIT.
- Soft-decline'SCA richired ', immediatamente 3DS, non provi.
- Limiti separati per importo/frequenza: ad esempio, 2 output/24h e N per importo/settimana.
- Scala KYC: più alta è la prova, più alta sono i limiti.
- Oggetto «circling»: deposito rapido e output immediato - manual review/hold.
7) Anti-abuse promo e bonus
Per-campaign caps: 'bonus _ id' X di attivazioni sù device _ id '/' ip '/' payment _ fingerprint '.
«Forchette» (separazione di denaro tra account) è il grafico delle mappe condivise/IP/dispositivi.
Cool-off windows: dopo il deposito bonus - Divieto di uscita istantanea, regole trasparenti nel ToS.
Sanzioni di livello, da blocchi temporanei a «per sempre», con un registro delle cause.
8) Architettura: dove vivere le regole velocity
Real-time gateway (nell'orchestratore): soluzione per 50-100 ms.
Archivio contatori: in-memory (Redis/KeyDB) + DWH a lungo termine.
Finestre/unità unificate (15m/1h/24h/7d).
Rule engine + ML striping: regole «safety-net» sopra il modello.
Le bandiere config sono «includere 3DS», «più severo nella regione X», «pausa PSP-A».
Idempotenza: protezione da duplicati per ripetute/timeout.
9) Pseudo-codice regole (sketch)
pseudo on payment_attempt(ctx):
s = features(ctx) // device/ip/account/bin/score/avs/cvv/history if counter(device, 15m) >= 3 and cvv_fail(device, 15m) >= 2:
return DECLINE(reason="velocity_device_cvv")
if soft_declines(card_token, 1h) >= 2:
return CHALLENGE_3DS()
if uniq_accounts(ip, 30m) >= 5:
return THROTTLE(ttl=30m)
if score > T2 and velocity(account, 1h) > Vmax:
return DECLINE(reason="high_risk_burst")
return ALLOW
10) pattern UX (senza interruzione della conversione)
Messaggi chiari: "Troppi tentativi in poco tempo. Prova tra 15 minuti o conferma in banca".
Il pulsante Ripeti più tardi con il timer.
Le alternative sono A2A/portafogli locali per il trottling.
Auto-3DS senza reintrodurre i dettagli di SCA-soft.
La goccia è solo puntuale (IP/ASN/bot), non a tutti.
11) Complaence e privacy
GDPR/PII: memorizza gli identificatori minimi (hash dispositivi, token card, last4), i criteri trasparenti.
PCI DSS: niente PAN/CVV nei fogli; eventi velocity senza dati sensibili.
PSD2/SCA - Trasferisci i superamenti in challenge, se necessario, invece dei guasti totali.
12) Metriche, alert, SLO
KPI:- Approval Rate (generale e quando si attivano le regole).
- False Positive Rate delle regole velocity (percentuale di blocchi onesti per la successiva legittimazione).
- Numero di «tempeste» dei retrai e tempi medi di recupero.
- Percentuale di traduzioni da decline → challenge con successo.
- Marceback rate nei segmenti in cui i limiti sono stati attivati (in attesa di ↓).
- Spike '05/14/54' + aumento tentativi> X in 15 minuti nel cluster BIN/ASN.
- Picchiò 91/96 "per elevare la soglia T1 + routing in PSP-B.
- Regole FP-rate> target (ad esempio 1. 5 x mediana settimanale).
- Soluzione velocity da 100 ms p95.
- Percentuale di pagamenti completi trasferiti in 3DS anziché rifiutare il target.
13) Anti-pattern
Limite universale «totale» per tutti i mercati e i tipi di clienti.
Blocca per AVS = U/S/G nei paesi in cui AVS non funziona regolarmente.
Non separare CIT/MIT - Rompe abbonamenti/ripetizioni.
Ritroso senza jitter e idempotenza - prese e tempeste.
Nascondi le cause del rifiuto - aumenta lo zappone e la tossicità.
14) Assegno foglio di implementazione
- Mappa delle entità (scopes) e delle finestre (15m/1h/24h/7d).
- Selezione di algoritmi: sliding + token bucket per bursts.
- Normalizzazione dei retrai: backoff + jitter, separati per CIT/MIT.
- Integrazione con 3DS/SCA: auto-challenge con superamenti lievi.
- Limiti separati per le conclusioni e i bonus; il grafico per la verifica dei collegamenti.
- Osservabilità: dashboard KPI/alert/controllo delle regole.
- Modelli di messaggio UX e metodi alternativi.
- Criteri PCI/GDPR: token, occultamento, minimizzazione PII.
- Test A/B delle soglie di mercato/BIN/ASN e dei profili dei clienti.
- Playbook di incidenti: degrado emittente/PSP, picco di bot.
15) Riepilogo
I limiti di velocity efficaci sono finestre e contatori su più livelli per entità diverse, algoritmi di antialiasing (token/leaky bucket), retrai intelligenti e un collegamento stretto con 3DS/SCA e screening. Questo tracciato riduce il frodo e l'abuse, non soffoca la conversione, e aiuta a mantenere la monetizzazione stabile con la volatilità delle emittenti e del traffico.