Como funciona

Uma sessão no backend, uma linha no browser

O seu servidor cria a sessão com a chave secreta e recebe um id vs_. No browser, uma linha monta o widget. Nenhum segredo sai do servidor.
COMO FUNCIONA

Quatro lugares, um id seu do começo ao fim.

No painel: monte o flow, sem código

Marque os módulos do seu caso e o painel gera o flow_id. O mesmo widget se ajusta ao flow, sem você subir código de novo.

sem códigoGere um link de verificação no painel e mande por WhatsApp ou e-mail: a decisão chega do mesmo jeito, no painel e no seu webhook.

O passo a passo completo, do onboarding à primeira sessão, está na documentação.

demonstração
Seu flow
  • Documento (OCR)
  • Face Match
  • Liveness
200verification.completed
"status": "approved"

No seu servidor e no browser

Servidor: POST /v1/verification-sessions com a chave unifokal_live_ e o seu reference_id, e recebe o id vs_. Browser: a tag do widget leva só o vs_, sem chave secreta e sem dado pessoal na página.

1 · seu servidor (bash)
curl -sS -i -X POST https://api.unifokal.com/v1/verification-sessions \
  -H "Authorization: Bearer $UNIFOKAL_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "flow_id": "flow_01J8ZQ2R6K7T8V9W0X1Y2Z3A4B",
        "reference_id": "usr_8842"
      }'
a resposta (recorte)
HTTP/1.1 201 Created
{
  "id": "vs_01J8ZQ4S8M2N3P4Q5R6S7T8U9V",
  "status": "requires_input",
  "modules": ["cpf_ocr", "face", "liveness"],
  "expires_in": 900
}
2 · index.html
<div id="identidade"></div>
<script
  src="https://api.unifokal.com/dist/widget.global.js"
  data-session="vs_01J8ZQ4S8M2N3P4Q5R6S7T8U9V"
  data-container="#identidade"
  crossorigin="anonymous"
></script>

Quer ver a resposta antes de criar a conta?

Rode agora, sem conta

O que o seu usuário faz

  • Captura e análise do nosso lado: você recebe a decisão pronta, não a imagem.
  • Uma linha abre em qualquer tela, em português, inglês ou espanhol. No desktop sem câmera, a pessoa passa para o celular por QR.
  • A fricção se adapta: baixo risco avança só com a selfie, e o desafio da prova de vida sobe conforme o risco medido.
  • Quem erra vê o motivo e refaz só aquela etapa, com até 3 tentativas por módulo.
demonstração
Verifique sua identidade
  1. Documento
  2. Selfie
  3. Prova de vida
  4. Decisão
  5. Seu webhook
Aprovado
200verification.completed
"status": "approved"

No seu webhook e no painel

  1. 200verification.completed
    {
      "event": "verification.completed",
      "data": {
        "status": "approved",
        "score": 92,
        "reference_id": "usr_8842"
      }
    }
    No seu webhook

    O mesmo reference_id volta no verification.completed, assinado com HMAC-SHA256 para você conferir a origem.

    • usr_8842aprovada
    • usr_8843em revisão
    • usr_8844aprovada
    No painel

    E a mesma referência, usr_8842, aparece no registro do painel, com os módulos, o score e o motivo da decisão. A mídia sensível fica só do nosso lado.

Depois da captura, o flow ainda pode consultar o CPF que o documento entregou, sem passo novo para a pessoa: análise de crédito e background check.

O PAINEL

No painel, por dentro.

Telas reais do painel, capturadas no sandbox com dados de teste.

Verificações

Cada decisão com o score, o motivo e a frase que o titular leu.

Construtor de flow

Escolha os módulos, veja o widget montado e copie a linha.

Webhooks

Destinos assinados por ambiente, com evento de teste a um clique.

Visão geral

O dia de relance: aprovadas, recusadas e a fila de revisão.

Tela de verificações do painel: a lista com referência, score e status, e o detalhe de uma verificação aprovada aberto ao lado.
Construtor de flow do painel: o nome do flow, o país esperado, o webhook de destino, a prévia do widget e o trecho de código para colar.
Tela de webhooks do painel: os destinos cadastrados no sandbox, com a URL, o segredo mascarado e o botão de evento de teste.
Visão geral do painel: o total de verificações, o gráfico por dia e a última verificação com o resultado de cada módulo.
Comece agora
Comece pelo sandbox

Crie a conta, monte um flow e rode a verificação inteira no sandbox, sem consumir saldo. Quando estiver pronto, vire a chave para produção.

Próximo: o caminho do dado