Riduzione attrito KYC-UX
1) Principi KYC-UX
Risk-based by design: più basso è il rischio, meno attrito; L'escalation è solo via segnale.
Progressive disclosure: mostra esattamente ciò che serve (minimo campi/schermate).
One-tap re-entry - Salva il contesto, riassumiamo i controlli in sospeso.
Segnalazione multi-sorgente: documenti + liveness + segni comportamentali/di rete.
Separazione obiettivi: KYC (chi sei tu) ≠ SoF/SoW (da dove viene il denaro) ≠ AML/sanzioni (filtri aggiuntivi).
Esplainability: ragioni brevi, azioni comprensibili dell'utente, tempi prevedibili.
2) Livelli di rischio-base (matrice approssimativa)
3) Flow KYC di riferimento (mobile-first)
1. Il trigger di soglia (ad esempio, il primo output) → la schermata con una breve causa e un vantaggio: «Controlla l'identità per aprire le conclusioni e alzare i limiti».
2. Seleziona un documento (passaporto/ID/guida.) con un consiglio «che è meglio» per il Paese.
3. Ripresa: crap automatico, sfocatura dello sfondo, evidenziazione dei riflettori/contrasto, controllo della nitidezza.
4. OCR/MRZ/NFC: progresso immediato, non blocchiamo l'UI; NFC - Animato «portare il documento al telefono».
5. Liveness: 3-4 semplici azioni (rotazione testa/lampeggiante) o liveness passivo 2-3 fotogrammi.
6. Convalida automatica (sottofondo) + timer SLA visibile (ad esempio, «fino a 2 minuti»).
7. Risultato: + approvato limite/stato; è necessario completare esattamente un punto e degli esempi; - il rifiuto è un motivo comprensibile e il modo di ricorrere.
4) Passaggi-up morbidi (step-ups) e contesto
Geo-conflict (IP≠KYC) → una richiesta GPS/SIM o proof of address (L2).
High-risk BIN/emittente obbliga liveness durante il tentativo di deposito.
Velocity/multi-accunting → un nuovo selfie + SoF al lancio.
RER/sanzioni (fuzzy) → L3 con SoF/SoW e controllo manuale.
5) Micro-UX: come ridurre l'attrito
Fino al passo: «Cosa c'è da preparare? 2 minuti, passaporto/ID e buona luce».
Per catturare un documento: una maschera, un pezzo di riflesso, un francobollo verde «foto leggibile/angolo rigido».
OCR-preview locale - Evidenzia pochi campi per la verifica visiva.
Suggerimenti NFC - Informazioni sulla posizione del chip per un particolare paese/modulo.
Navigazione Liveness - Operazioni semplici senza testo - icone + breve frase.
Retry senza dolore: ripetere il passo senza perdere i progressi; Limite dei tentativi con timer.
"La foto è criptata. Nessun dato in EXIF/UI".
6) Localizzazione e disponibilità
Traduzione completa di istruzioni, esempi di documenti e formati validi.
Supporto per RTL, grandi caratteri, «aria-labels», tastiera di navigazione.
Valute per paese (formato indirizzo, maschera ID), per telefono E.164.
Esempi in lingua locale: «Esempio: U.S. Pushkin, D. 10, 5 quadri».
7) Privacy, conservazione e consenso
Accetti chiari: obiettivo (KYC/AML), periodo di conservazione, diritti di rimozione/appello.
Riduzione dei dati: memorizza token/hash dove possibile, nasconde PAN/EXIF.
Regola di rimozione/ritossicatore: L0-L1 più breve, L2-L3 più lungo per legge/licenza.
Audittrail: chi/quando ha guardato/deciso; fogli immutabili.
8) Ingegneria: eventi e modello di dati (minimo)
kyc.sessions (
kyc_id PK, user_id, level_target, started_at, status, provider, country, risk_score, conflict_flags, sla_eta_at
)
kyc.documents (
doc_id PK, kyc_id FK, type, side, ocr_json, mrz_ok, nfc_ok, quality_score, captured_at, storage_ref
)
kyc.liveness (
kyc_id FK, type, result, confidence, frames_ref, captured_at
)
kyc.sanctions_pep (
kyc_id FK, list, match_type, score, reviewed_by, reviewed_at, decision
)
kyc.proofs (
kyc_id FK, kind -- POA SOF SOW,
file_ref, parsed_json, status, requested_at, received_at, reviewer
)
kyc.decisions (
kyc_id FK, level_granted, result -- APPROVED MORE_INFO REJECTED,
reason_code, comment, decided_at
)
9) Regole in pseudo-DSL (esempio)
yaml policy: "kyc_v2_risk_based"
triggers:
- name: "first_withdrawal" -> target_level: L1
- name: "limit_5k_month" -> target_level: L2
- name: "sanctions_fuzzyhit" -> target_level: L3 escalations:
- if: geo_conflict_score >= 2 then step: "POA"
- if: issuer_risk in ["high","unknown"] and method == "CARD" then step: "liveness"
- if: velocity_deposits_24h > 3 then step: "liveness"
timeouts:
L1: "PT10M" # ожидание авто-проверки
L2: "PT30M"
L3: "P3D"
ux:
show_timer: true resume_link: true
10) Metriche e dashboard
Conversione/velocità
KYC Start → Auto-Pass → Manual Review → Approved
Median/95p time-to-KYC per livello e paese
Auto-pass% (OCR/MRZ/NFC/liveness) e percentuale manuale
Qualità/rischio
Mismatch rate (IP≠KYC/SIM) e percentuale di escalation
False Reject% (appello di reverse)
PEP/Sanctions hit rate e TAT per la soluzione
UX/errori
Abandonment на шагах (Doc Capture, Liveness, Upload, Review)
Retry-rate e cause (riflesso/poco nitido/NFC fail)
Mobile vs desktop: delta del successo e del tempo
11) Alerti e soglie
Abandonment spike al passo (altezza> X bps in un'ora)
OCR quality drop (quality _ score p50 Auto-pass collapse: calo> Y% d/d Manual backlog: TAT> SLA (zona rossa) Sancts provider down: timeout, cambio a bacap 12) Modelli SQL 12. 1. Vortice KYC 12. 2. Tempo prima della verifica automatica 12. 3. Qualità dei fotogrammi e cause dei retroscena 13) Segnali anti-frodo (senza «bastoni tra le ruote») Device-graph e selfie/documenti ripetuti hanno → una scala silenziosa su L2/L3. 14) Best practices (breve) 1. Il design per l'evento è KYC esattamente dove l'utente riceve valore (deposito/output/limite). 15) Assegno-foglio di implementazione KYC-UX a basso attrito è un'escalation di rischio-base, una tecnologia di cattura intelligente (OCR/NFC/liveness), istruzioni localizzate e una forte esperienza resume. Aggiungere tempi trasparenti, ridurre al minimo i dati e i prevedibili step - e contemporaneamente aumentare la conversione dei depositi e delle conclusioni, accelerare la conformità e ridurre i costi operativi dei controlli manuali.NFC fail surge per paese/modulo
sql
SELECT stage, COUNT() AS users
FROM (
SELECT user_id, 'start' AS stage FROM kyc.sessions WHERE started_at BETWEEN:from AND:to
UNION ALL
SELECT user_id, 'doc_captured' FROM kyc.documents WHERE captured_at BETWEEN:from AND:to
UNION ALL
SELECT user_id, 'liveness_done' FROM kyc.liveness WHERE captured_at BETWEEN:from AND:to
UNION ALL
SELECT user_id, 'approved' FROM kyc.decisions WHERE decided_at BETWEEN:from AND:to AND result='APPROVED'
) s
GROUP BY stage ORDER BY 1;sql
SELECT level_target,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (COALESCE(decided_at, now()) - started_at))) AS t_median_sec,
PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (COALESCE(decided_at, now()) - started_at))) AS t_p95_sec
FROM kyc.sessions
LEFT JOIN kyc.decisions USING (kyc_id)
WHERE started_at BETWEEN:from AND:to
GROUP BY 1;sql
SELECT reason_code, COUNT() AS cnt
FROM (
SELECT CASE
WHEN quality_score < 0.6 THEN 'low_quality'
WHEN mrz_ok = FALSE THEN 'mrz_fail'
WHEN nfc_ok = FALSE THEN 'nfc_fail'
ELSE 'other'
END AS reason_code
FROM kyc.documents
WHERE captured_at BETWEEN:from AND:to
AND doc_id IN (SELECT doc_id FROM kyc.documents GROUP BY doc_id HAVING COUNT() > 1)
) t
GROUP BY 1 ORDER BY cnt DESC;
Geo-velocity (cambio paese) → una nuova liveness senza nuovo OCR.
BIN-geo mismatch → liveness sul deposito, non rompere l'intero flow KYC.
VPN/Proxy/Tor richiede un segnale alternativo (GPS/SIM) fino al ban.
2. Auto-capcher + suggerimenti live; OCR/NFC e liveness passivo, se possibile.
3. Step-up solo per i segnali (geo/conflict/velocity/sanzioni) e le soglie di importo.
4. Forte esperienza resume: «Continua con lo stesso passo», collegamenti profondi nelle lettere/SMS.
5. Ci sono timer SLA e stati onesti ovunque.
6. Localizzazione/a11u: testi, esempi, formati, RTL.
7. Privacy: minimizzazione, crittografia, consenso comprensibile, policy retensive.
8. Telemetria e alert di qualità (brillantezza/sfocatura/NFC).
9. A/B test di copiatura/istruzioni/ordine dei passi con guasti.
10. Procedure di appello e controllo manuale con TAT nitido.
Curriculum