Skip to main content
Este guia cobre o caminho mais comum para quem integra onboarding real: cadastro do cliente, upload de documento, verificação de bureau e consulta do resultado final. Se você só precisa de uma verificação pontual sem manter um cadastro permanente, veja o Quick Start (POST /bureau/runs direto).

Visão geral


Passo 1 — Criar o cliente e disparar o bureau

Envie run_bureau: true para dispensar uma segunda chamada — o bureau roda imediatamente após o cadastro. Veja Campo run_bureau para o comportamento completo, incluindo resolução de template padrão.
Guarde customer_id (para os próximos passos) e run_id (para correlacionar com o evento de webhook no Passo 3).
Use Idempotency-Key nesta chamada — retry de rede sem a chave pode disparar um segundo bureau run para o mesmo cliente, cobrado em dobro. Veja Idempotência.

Passo 2 — Anexar o documento

Com o customer_id do passo anterior, envie o documento via multipart/form-data:
Este passo é independente do bureau — pode rodar em paralelo ao Passo 1, não precisa esperar o run.completed. Detalhes completos (catálogo de type, limite de 4MB, reenvio) em Anexar documento.

Passo 3 — Receber o resultado via webhook

Quando o bureau concluir, seu endpoint de webhook recebe run.completed. O data.id é o mesmo run_id retornado no Passo 1 — use-o para correlacionar o evento com o cliente.
Sempre verifique o header kycert-signature antes de processar — qualquer servidor pode fazer POST para o seu endpoint. Veja Segurança de Webhooks.
Payload completo, todos os eventos disponíveis e política de retry em Visão geral de webhooks.

Passo 4 — Consultar o cliente

Com o run concluído, GET /customers/:id já reflete a decisão. O status do cliente não é um mapeamento fixo do decision/risk_band do run — é decidido pela política de decisão automática do tenant (Configurações → Decisão KYC), configurável por faixa de risco. No exemplo abaixo, o tenant tem essa política configurada para aprovar automaticamente risco baixo — por isso o cliente sai como aprovado. Sem essa política configurada, o cliente permanece em_analise independente do resultado do run. Veja Status de bureau run vs status de cliente para a regra completa.
documents[].status fica pendente até revisão manual no dashboard — anexar o documento não depende do resultado do bureau nem é aprovado automaticamente. Detalhes completos em Buscar cliente.

Próximos passos

  • Segurança de Webhooks — verificação de assinatura HMAC-SHA256 com exemplos em 3 linguagens
  • Idempotência — retries seguros em qualquer chamada de escrita
  • Sandbox — chaves sk_test_... e livemode: false
  • Tratamento de erros — catálogo completo de códigos, incluindo os de createCustomer e uploadCustomerDocument