Skip to main content
Os endpoints de KYC são chamados pelo seu backend com credenciais de parceiro (Bearer API key ou HMAC), nunca com um JWT de usuário final. Há dois modos: consulta de documento (100% via API, usando apenas o número do documento, sem imagens) e sessões completas de onboarding (a API retorna uma webViewUrl que seu app abre em um webview para o provedor capturar documento, selfie e liveness).
O KYC roda sobre um provedor configurado (BigDataCorp está ativo; ZKPassport é o alvo futuro). Se nenhum provedor estiver configurado na instância, as chamadas retornam 503 no momento da chamada.
Gate de acesso: o gate de KYC é binário. Apenas kycStatus === APPROVED libera as operações de pagamento (cash-out, cash-in). Não há níveis de KYC nem limites por nível. O gate é aplicado nas rotas de pagamento, não nas próprias rotas de KYC.
Todos os endpoints de KYC ficam sob /api/v1/users/kyc.

Consulta e verificação de documento

POST /api/v1/users/kyc/lookup retorna os dados cadastrais de um documento; POST /api/v1/users/kyc/verify retorna uma checagem de validade. Ambos recebem o mesmo corpo.
string
obrigatório
Credenciais do parceiro: Bearer sk_live_... ou o cabeçalho HMAC.
string
obrigatório
Um de CPF, CNPJ, RG, PASSPORT, SSN, DNI, CURP, RUT, CC, NIT, OTHER.
string
obrigatório
O número do documento (mínimo 3 caracteres).
string
obrigatório
Código de país ISO 3166-1 alpha-2, por exemplo BR ou US.
Um documento não encontrado retorna 404. Uma falha no provedor retorna 502.

Sessões de onboarding

Iniciar uma sessão de pessoa física (PF)

POST /api/v1/users/kyc/sessions/natural-person
string
obrigatório
O id do usuário no seu sistema (1 a 128 caracteres).
string
obrigatório
CPF (11 a 14 caracteres).
string
obrigatório
Nome legal completo.
string
obrigatório
Data de nascimento.
string
obrigatório
Nome da mãe.
string
obrigatório
E-mail de contato.
boolean
obrigatório
Se a pessoa é politicamente exposta (PEP).
string
padrão:"BR"
Código de país ISO 3166-1 alpha-2.
object
Endereço opcional (postalCode, street, number, neighborhood, city, state).
string
Telefone opcional.

Iniciar uma sessão de pessoa jurídica (PJ)

POST /api/v1/users/kyc/sessions/legal-person
string
obrigatório
O id da empresa no seu sistema.
string
obrigatório
CNPJ (14 a 18 caracteres).
string
obrigatório
Razão social.
string
obrigatório
Nome fantasia.
string
obrigatório
Um de MEI, EI, EIRELI, LTDA, SA, SLU.
string
obrigatório
Telefone de contato.
string
obrigatório
E-mail comercial.
object
obrigatório
O endereço da empresa (postalCode, street, number, neighborhood, city, state).
array
obrigatório
Um ou mais sócios, cada um com ownerType (PARTNER, LEGAL_REPRESENTATIVE ou BOTH), documentNumber, fullName, birthDate, motherName, phoneNumber, email e address.

Gerenciar sessões

lista
Lista as sessões do parceiro. Query: limit (1 a 200), status, externalUserId.
consulta
Obtém uma sessão pelo id.
atualização
Força uma atualização de status junto ao provedor.
reabertura
Obtém uma webViewUrl de documentoscopia fresca, reabrindo a sessão se ela expirou.
status
A última sessão de um dos seus usuários. Retorna hasSession: false quando não há nenhuma.

Status da sessão

Uma sessão passa por estes status (também entregues como webhooks KYC_*):
Seja notificado das mudanças de status pelos webhooks KYC_*, ou faça polling em GET /api/v1/users/kyc/sessions/:sessionId. O payload da sessão nunca expõe o hash cru do documento nem a resposta crua do provedor.