KYC-UX: redução do atrito
1) Princípios KYC-UX
Risk-based by design: quanto menor o risco, menor o atrito; Escalar apenas por sinais.
Progressive disclosure: Mostramos exatamente o que você precisa agora (o mínimo de campos/telas).
One-tap re-entry: salvar o contexto, resumindo verificações não concluídas.
Múltipla fonte de sinais: documentos + liveness + sinais comportamentais/de rede.
Separação de metas: KYC (quem você é) ≠ SoF/SoW (de onde o dinheiro é) ≠ AML/sanções (filtros adicionais).
Explorabilidade: razões curtas, acções compreensíveis do usuário, prazos previsíveis.
2) Níveis básicos de risco (matriz modelo)
3) Flow KYC de referência (mobile-first)
1. O desencadeador de limiar (por exemplo, a primeira conclusão) → a tela com uma breve razão e benefício: «Verifique a identidade para abrir conclusões e elevar os limites».
2. Selecionar documento (passaporte/ID/condução) com um conselho sobre o que é melhor para o país.
3. Filmagem: Craque automático, desfocamento de fundo, realce de brilho/contraste, controle de nitidez.
4. OCR/MRZ/NFC: Progresso instantâneo, não bloqueamos a UI; NFC - Animada «apresente o documento ao telefone».
5. Liveness: 3-4 ações simples (girar a cabeça/piscar) ou liveness passivo 2-3 quadros.
6. Validação automática (fundo) + temporizador SLA visível (por exemplo, «até 2 minutos»).
7. Resultado: + aprovado limite/status; é preciso complementar → exatamente um item e exemplos; - rejeição → razão compreensível e o caminho para o recurso.
4) «Macios» passo-up (step-ups) e contexto
Geo-conflict (IP≠KYC) → consulta GPS/SIM ou proof of address (L2).
High-risk BIN/emissor → liveness forçado na tentativa de depósito.
Velocity/multiplacaunting → novamente selfie + SoF ao sair.
RR/sanções (fuzzy) → L3 com SoF/SoW e verificação manual.
5) Micro-UX: como reduzir a fricção
Até o passo «O que cozinhar? £2 minutos, passaporte/ID e boa iluminação».
A captura de um documento, uma máscara, um detalhe de blitzes, selos de cheque verde «foto lido/ângulo raso».
OCR-preview local: realce alguns campos de verificação visual.
Dicas NFC: informações sobre a localização do chip para um país/formulário específico.
Navegação Liveness: tarefas simples sem texto - ícones + frase curta.
Retry sem dor: repetir o passo sem perder o progresso; limite de tentativas com temporizador.
"A foto está encriptada. Sem dados em EXIF/logs UI".
6) Localização e disponibilidade
Tradução completa de instruções, exemplos de documentos e formatos válidos.
Suporte a SE, fontes grandes, 'aria-labels', navegação por teclado.
Validações por país (formato de endereço, máscaras de ID), para telefones E.164.
Exemplos em língua local: «Rua Pushkin, D10, 5 quadrados».
7) Privacidade, armazenamento e consentimento
Consentimentos claros: alvo (KYC/AML), prazo de armazenamento, direito de remoção/recurso.
Minimizar dados: armazenar o token/hachi onde possível, esconder o PAN/EXIF.
Política de remoção/retenção: L0-L1 mais curto, L2-L3 mais longo sob a lei/licença.
Audit-trail: quem/quando viu/decidiu; logs imutáveis.
8) Engenharia: eventos e modelo de dados (mínimo)
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) Políticas em pseudo-DSL (exemplo)
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) Métricas e dashboards
Conversão/velocidade
KYC Start → Auto-Pass → Manual Review → Approved
Median/95p time-to-KYC por nível e país
Auto-pass% (OCR/MRZ/NFC/liveness) e proporção manual
Qualidade/risco
Mismatch rate (IP≠KYC/SIM) e proporção de escalações
Falso Rejt% (apelações → reversão)
PEP/Sanções hit rate e TAT para solução
OX/erros
Abandonment на шагах (Doc Capture, Liveness, Upload, Review)
Retry-rate e causas (blick/nulidade/NFC fail)
Mobile vs Desktop: delta sucesso e tempo
11) Alertas e liminares
Abandonment spike em um passo (altura> X bps em uma hora)
OCR quality drop (quality _ score p50 Auto-pass collapse: queda> Y% d/d Manual backlog: TAT> SLA (zona vermelha) Sanches provider down: timeouts, mudar para bacap 12) Modelos SQL 12. 1. Vórtice KYC 12. 2. Tempo até a verificação automática 12. 3. Qualidade dos quadros e causas dos retais 13) Sinais anti-frod (sem «paus nas rodas») Device-graph e selfies/documentos repetidos → escalação silenciosa em L2/L3. 14) Best pratices (curta) 1. Design para evento: KYC exatamente onde o usuário recebe valor (depósito/saída/limite). 15) Folha de cheque de implementação KYC-UX de baixa fricção é uma escalada de risco-base, tecnologia de captura «inteligente» (OCR/NFC/liveness), instruções localizadas e forte experiência resume. Adicione prazos transparentes, minimização de dados e etapas previsíveis - e você ao mesmo tempo aumenta a conversão de depósitos/conclusões, acelera a conformidade e reduz os custos operacionais de verificação manual.NFC fail surface por país/formulário
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 (mudança de país) → outra liveness sem novo OCR.
BIN-geo mismatch → liveness no depósito, em vez de quebrar todo o flow KYC.
VPN/Proxy/Tor → um pedido suave de sinal alternativo (GPS/SIM) até ban.
2. Auto-capcher + dicas ao vivo; OCR/NFC e liveness passivo sempre que possível.
3. Step-up apenas por sinais (geo/conflict/velocity/sanções) e liminares de quantia.
4. Experiência resume forte: «Continuar com o mesmo passo», links profundos em cartas/SMS.
5. Todos os times da SLA e estatais honestas.
6. Localização/a11u: textos, exemplos, formatos, SE.
7. Privacidade: minimização, encriptação, consentimentos compreensíveis, políticas de retenção.
8. Telemetria e alertas de qualidade (blitzes/desligamento/NFC).
9. A/B testes de copiar/instruções/ordem de passos com guichês de falha.
10. Processos de apelação e verificação manual com TAT claro.
Currículos