Pular para o conteúdo principal
GET
cURL

Suporte a KYC e KYB

Este endpoint funciona tanto para sessões de Verificação de Usuários (KYC) quanto de Verificação de empresas (KYB). A resposta sempre inclui um campo session_kind no nível superior:
  • "user": sessão de Verificação de Usuários (KYC). A resposta traz id_verifications, liveness_checks, face_matches, nfc_verifications, poa_verifications, database_validations.
  • "business": sessão de Verificação de Empresas (KYB). A resposta traz registry_checks, document_verifications, key_people_checks.
Os dois tipos compartilham aml_screenings, phone_verifications, email_verifications, questionnaire_responses, ip_analyses, document_ai_documents, bank_verifications, reviews, contact_details, além dos campos comuns de nível superior (session_id, session_number, session_url, status, workflow_id, vendor_data, metadata, callback, features, expected_details, created_at, expires_at). A Didit procura o session_id nos dois tipos de sessão (primeiro as sessões de Verificação de Usuários e depois as de Verificação de Empresas) e retorna o que corresponder. Os UUIDs são únicos por aplicação, então não há ambiguidade. Consulte a visão geral das sessões para ver a matriz completa de recursos específicos de cada tipo.

Exemplos

Resposta (truncada):

Como tratar a resposta no seu lado

Status, rastreamento da decisão e campos de revisão

Toda decisão explica como seu status foi definido.

Retenção de dados biométricos

biometric_retention está sempre presente. deletes_at é a data em que os dados biométricos ao vivo da sessão são excluídos, e jurisdictions lista os estados dos EUA cujas regras biométricas definem um prazo de exclusão para a pessoa (US quando o estado é desconhecido). deletes_at é null quando ainda não se aplica nenhuma data.

Verificação de localização

Quando o fluxo de verificação (workflow) tem uma etapa de Verificação de localização, a decisão traz dois arrays. geolocation_checks[] tem um item por etapa: a tentativa aceita, com o resultado, as coordenadas e sua precisão, as comparações com a localização do IP e com o endereço cadastrado, e os warnings da etapa. geolocation_attempts[] lista todas as tentativas de todas as etapas, da mais antiga para a mais recente, com o momento em que cada uma foi recebida. Fluxos sem essa etapa retornam ambos como null. Todos os campos e resultados estão no relatório de Verificação de localização.

Eventos de roteamento do fluxo

?include=events adiciona a linha do tempo de eventos da sessão. Além das mudanças de etapa e de status, um fluxo de verificação (workflow) que passa por nós de ramificação deixa um evento para cada decisão de roteamento. Assim, uma integração (ou a linha do tempo do Console) consegue explicar por que uma sessão terminou com determinado resultado sem precisar percorrer manualmente o grafo do fluxo: Os dois eventos trazem sent_at em milissegundos, como todos os outros eventos, e não têm component, feature_step nem step: eles vêm do mecanismo de fluxos, não do dispositivo do usuário. Uma ramificação “else” (uma ramificação sem condições) conta como ramificação correspondente; fallback só é true quando nada correspondeu. Nós com uma única aresta de saída não tomam nenhuma decisão e não deixam evento. O mesmo formato também informa workflow_terminal_node_id: o node_id do último nó de status do fluxo registrado que definiu um status de sessão, ou null se nenhum ID de nó desse tipo tiver sido registrado. Trata-se da procedência histórica do fluxo. Aprovações, recusas e reenvios manuais não o apagam; um nó de status posterior do fluxo o substitui. Por exemplo, se um fluxo envia uma sessão para um nó Em revisão e um revisor a aprova depois, o status atual é Approved, enquanto workflow_terminal_node_id continua identificando o nó Em revisão. Ele também pode continuar preenchido enquanto um reenvio estiver em andamento. Leia o status atual e as linhas do tempo de eventos e de activity_reviews para distinguir os resultados do fluxo de decisões manuais posteriores.

Envios anteriores (?include=resubmissions)

Um reenvio leva o usuário de volta às etapas que você seleciona e mantém o que essas etapas retornaram antes. ?include=resubmissions adiciona um array resubmissions, do mais antigo para o mais recente, com uma entrada por requisição de reenvio. Cada entrada traz os resultados que essa requisição substituiu, para que você sempre possa ler o que o usuário enviou antes. Funciona para sessões de usuários (KYC) e de empresas (KYB), e você pode combiná-lo com eventos (?include=events,resubmissions). Sem o parâmetro, a resposta não muda. Os resultados atuais (id_verifications e os demais no nível superior) sempre descrevem o envio mais recente. As etapas que não foram devolvidas mantêm ali um único resultado.
Excluir uma sessão também exclui os resultados de todos os envios.

Métodos de Verificação de identidade

Cada item de id_verifications[] informa qual dos três métodos de Verificação de identidade o gerou, para que você possa distinguir a leitura de um documento de uma consulta a um registro ou de um login com carteira sem precisar deduzir isso pelos campos que estiverem preenchidos: Uma sessão por documento informa document e documentary e deixa os demais como null, então as integrações existentes não precisam de nenhuma alteração. Os tipos de cada campo estão em Modelos de dados.

Consentimento biométrico

As decisões de Verificação de usuários trazem um objeto biometric_consent: se a sessão exigiu consentimento biométrico explícito, o trigger que o exigiu, o status da resposta e suas evidências. Dois valores indicam que o consentimento não foi coletado: Quando a etapa aparece e o que cada valor significa estão em Consentimento biométrico; todos os campos estão em Modelos de dados.

Verificação bancária

A Verificação bancária ainda não está habilitada em produção. Enquanto isso não acontecer, um fluxo de produção não pode incluir a etapa e bank_verifications continua null.
Quando o fluxo tem uma etapa de Verificação bancária, a decisão traz bank_verifications[], para os dois tipos de sessão: um item por etapa, null até que uma etapa produza um item. Leia method, e não ownership.method, para distinguir o login no banco da consulta da conta: ownership.method é a comparação de nomes que gerou a pontuação. Todos os campos estão no schema BankVerificationResult da resposta deste endpoint.

Assinatura eletrônica

Quando o fluxo tem uma etapa de Assinatura eletrônica, a decisão traz signatures[], para os dois tipos de sessão. Há um item por signatário: um para uma Verificação de usuário e um por pessoa-chave que assina em uma Verificação de empresa. Fluxos sem a etapa não retornam a chave. Baixe os arquivos a partir dos caminhos usando sua chave de API. Consulte o relatório de Assinatura eletrônica para ver todos os campos.

Erros

Relacionados

Autorizações

x-api-key
string
header
obrigatório

Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.

Parâmetros de caminho

sessionId
string<uuid>
obrigatório

UUID da sessão de verificação cuja decisão você deseja obter. É o session_id retornado por POST /v3/session/. O mesmo caminho funciona para sessões de Verificação de usuários (KYC) e de Verificação de empresas (KYB): o servidor resolve o id entre os dois tipos de sessão.

Deve ser um UUID válido. A rota só corresponde a UUIDs bem formados, então um valor malformado é rejeitado pelo roteador de URLs antes que qualquer código da aplicação seja executado, e a resposta é uma página HTML 404 em vez do envelope JSON {"detail": ...} mostrado abaixo. Valide o formato do UUID no lado do cliente para distinguir um erro de entrada de um 404 real de sessão inexistente.

Exemplo:

"11111111-2222-3333-4444-555555555555"

Parâmetros de consulta

include
enum<string>

Lista separada por vírgula de seções extras do payload. Valores aceitos: events e resubmissions, isoladamente ou juntos (events,resubmissions). Quando include=events é enviado, a resposta também contém a linha do tempo de eventos da sessão (events, incluindo os eventos de roteamento WORKFLOW_BRANCH_EVALUATED / WORKFLOW_STATUS_NODE_REACHED descritos na página Retrieve Session), o registro completo de atividades (activity_reviews), as sinalizações da lista de bloqueio (blocklisted), um cost_breakdown por sessão, metadados do fluxo (workflow_type, workflow_version, workflow_version_id e workflow_terminal_node_id - o último nó de status do fluxo registrado que definiu um status da sessão, ou null se nenhum tiver sido registrado; é uma proveniência histórica que não é apagada por aprovações, recusas ou reenvios manuais e é substituída por um nó de status do fluxo posterior) e metadados da sessão (api_service — string ou null, definido apenas para sessões de API independente; session_type — API, HOSTED ou MIGRATED; has_device_nfc_support — booleano). Dois campos mudam em relação ao formato simples: o discriminador session_kind de nível superior é omitido (o formato com eventos só existe para sessões de usuário), e o array features passa de strings simples para objetos {feature, node_id} — nos quais o recurso de e-mail aparece como EMAIL em vez de EMAIL_VERIFICATION. Esse formato expandido é usado principalmente pelo Didit Console; a maioria das integrações de API deve omitir o parâmetro. Limitação de KYB: include=events só se aplica a sessões de usuário (KYC). Sessões de empresa (session_kind = "business") sempre retornam o formato padrão de decisão de empresa — events, activity_reviews, blocklisted, cost_breakdown e os metadados extras de workflow_*/sessão nunca são retornados para sessões de empresa, e o array features delas continua sendo um array de strings simples. Com include=resubmissions (tanto em sessões de usuário quanto de empresa), a resposta também contém resubmissions: uma entrada por solicitação de reenvio, da mais antiga para a mais recente, cada uma com number, created_at, previous_status, nodes, reasons, requested_by e results (o que as etapas reenviadas retornaram antes da solicitação, com as mesmas chaves e no mesmo formato dos resultados atuais). Cada item de cost_breakdown contém usage_type, price, details e created_at: uma etapa reenviada que é executada novamente é cobrada como um novo item.

Opções disponíveis:
events,
resubmissions,
events,resubmissions
Exemplo:

"events"

Resposta

Relatório de decisão completo. session_kind distingue as duas estruturas: sessões user contêm os arrays de recursos de KYC mostrados abaixo; sessões business contêm, em vez disso, registry_checks, document_verifications e key_people_checks junto com os arrays compartilhados. Os arrays de recursos são null até que o fluxo tenha executado o recurso correspondente; as URLs de mídia são links pré-assinados de curta duração.

session_id
string<uuid>

O identificador único da sessão.

session_kind
enum<string>

Discriminador que indica se esta é uma sessão de Verificação de usuários (KYC) ou de Verificação de empresas (KYB). Quando user, os arrays de recursos de KYC (id_verifications, nfc_verifications, liveness_checks, face_matches, poa_verifications, document_ai_documents, database_validations, ...) se aplicam e os arrays de empresa estão ausentes. Quando business, o payload traz registry_checks, document_verifications, key_people_checks, além dos arrays compartilhados (aml_screenings, phone_verifications, email_verifications, ip_analyses, questionnaire_responses). Omitido quando include=events é passado: o formato com eventos existe apenas para sessões de usuário, por isso o discriminador é removido dessa variante.

Opções disponíveis:
user,
business
shared_from_session
string<uuid> | null

Para uma sessão clonada com POST /v3/session/import-shared/: o session_id da sessão original na aplicação de origem. null para todas as outras sessões. Omitido quando include=events é enviado.

shared_from_session_number
integer | null

session_number da sessão de origem, quando esta sessão foi importada de outra aplicação da sua organização. null caso contrário.

session_number
integer | null

O número da sessão.

session_url
string<uri> | null

A URL da sessão.

status
enum<string>

Status geral do ciclo de vida da sessão — o resultado consolidado do fluxo. Os valores finais são Approved, Declined, In Review, Expired, Kyc Expired e Abandoned; Not Started, In Progress, Awaiting User e Resubmitted indicam que a sessão ainda está avançando pelo fluxo.

Opções disponíveis:
Not Started,
In Progress,
Awaiting User,
In Review,
Approved,
Declined,
Resubmitted,
Expired,
Kyc Expired,
Abandoned
status_override
object | null

Presente quando um revisor definiu o status manualmente. null quando o status é o automático. Use-o para distinguir uma aprovação manual de uma automática.

decision_trace
object

Como o status foi alcançado: quem o definiu e quais avisos o determinaram.

linked_records
object | null

Um resumo de outros registros vinculados à sessão. null quando não há nada a mostrar e para fluxos que declaram um padrão de garantia de idade.

workflow_id
string<uuid> | null

Identificador estável do grupo de fluxos que gerou esta sessão. Os fluxos são versionados: este valor identifica o fluxo em si, não a versão específica.

features
string[]

Lista dos recursos de verificação configurados para esta sessão, como nomes de exibição: ID_VERIFICATION, NFC, LIVENESS, FACE_MATCH, POA, PHONE, EMAIL_VERIFICATION, AML, IP_ANALYSIS, DATABASE_VALIDATION, QUESTIONNAIRE, AGE_ESTIMATION, FACE_SEARCH, GEOLOCATION (verificação de localização) (as sessões de Verificação de empresas usam o conjunto de recursos de KYB: KYB_REGISTRY, KYB_DOCUMENTS, KYB_KEY_PEOPLE, AML, PHONE, EMAIL_VERIFICATION, IP_ANALYSIS, QUESTIONNAIRE). Com include=events, cada entrada se torna um objeto {feature, node_id} em vez de uma string simples, e o recurso de e-mail é renomeado: ele aparece como EMAIL no modo de eventos em vez do EMAIL_VERIFICATION usado aqui.

O recurso da sessão.

vendor_data
string | null

Os dados do fornecedor (vendor data) da sessão.

metadata
object | null

Os metadados da sessão.

expected_details
object | null

Dados esperados informados na criação da sessão, usados para validação cruzada com os dados extraídos (KYC) ou para pré-preencher a busca no registro de empresas (KYB). Retorna exatamente as chaves que foram informadas; null quando nenhuma foi informada. Sessões de KYC trazem os campos da pessoa; sessões de empresa (KYB) trazem company_name, registry_country e registration_number.

contact_details
object | null

Dados de contato informados na criação da sessão (usados para e-mails de notificação, verificação de telefone/e-mail pré-preenchida e idioma de comunicação). null quando não foi informado nem e-mail nem número de telefone.

callback
string<uri> | null

A URL de retorno da sessão.

id_verifications
object[] | null

Array de relatórios de verificação de identidade (OCR) produzidos pelas etapas de documento de identidade no grafo do fluxo. Sempre um array JSON: leia id_verifications[0] e itere se o seu fluxo puder executar mais de uma verificação de identidade (por exemplo, uma verificação principal mais uma verificação adicional). Fica null até que pelo menos uma etapa de identidade tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, os campos extraídos do documento, URLs das imagens, pontuações de qualidade, MRZ, análise do endereço, correspondências entre sessões e warnings[].

nfc_skip_reason
enum<string> | null

Motivo pelo qual a verificação do chip NFC não foi executada, preenchido sempre que o fluxo inclui uma etapa NFC. null enquanto o NFC estiver pendente ou quando o chip foi de fato lido. Valores: USER_SKIPPED - o usuário optou por pular a etapa em um dispositivo compatível com NFC (permitido por allow_nfc_skip); DOCUMENT_WITHOUT_CHIP - o documento não tem um chip NFC legível (não é um documento eletrônico ICAO 9303); CHIP_CERTIFICATE_UNAVAILABLE - o certificado de assinatura (CSCA) do país emissor que cobre o período de emissão do documento não está disponível, portanto a assinatura do chip não pode ser verificada; DEVICE_WITHOUT_NFC - o dispositivo informou que não tem leitor NFC; INTEGRATION_WITHOUT_NFC_ACCESS - a verificação foi executada sem um SDK nativo (por exemplo, em um navegador web), que não tem acesso ao leitor NFC do celular; MRZ_KEY_UNAVAILABLE - não foi possível derivar a chave de acesso ao chip a partir da MRZ do documento; JPKI_UNAVAILABLE - o documento é um My Number Card japonês, cujo chip é lido via JPKI, e o JPKI não estava disponível para esta verificação: ele não está habilitado ou o SDK nativo do aplicativo não consegue ler My Number Cards.

Opções disponíveis:
USER_SKIPPED,
DOCUMENT_WITHOUT_CHIP,
CHIP_CERTIFICATE_UNAVAILABLE,
DEVICE_WITHOUT_NFC,
INTEGRATION_WITHOUT_NFC_ACCESS,
MRZ_KEY_UNAVAILABLE,
JPKI_UNAVAILABLE
nfc_verifications
object[] | null

Array de relatórios de NFC / ePassport produzidos pelas etapas de NFC no grafo do fluxo. É sempre um array JSON, nunca um objeto nfc único: leia nfc_verifications[0] e itere se o seu fluxo puder executar NFC mais de uma vez. Fica null até que pelo menos uma etapa de NFC tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, chip_protocol, chip_data, authenticity (integridade de SOD + DG), certificate_summary e warnings[]. Um My Number Card do Japão é lido por meio de JPKI em vez de ICAO 9303: o item correspondente tem chip_protocol: "jpki", traz suas evidências em jpki e deixa os campos ICAO como null. Quando a etapa de NFC foi ignorada antes mesmo de poder ser oferecida (documento sem chip, certificado ausente, nenhuma capacidade de NFC informada, chave MRZ ilegível, JPKI indisponível para um My Number Card), este campo permanece null e nfc_skip_reason explica o motivo; um pulo na própria etapa (o usuário tocou em pular ou o leitor se mostrou indisponível no momento da leitura) ainda gera um relatório com is_nfc_skipped: true.

liveness_checks
object[] | null

Array de relatórios de prova de vida produzidos pelas etapas de prova de vida no grafo do fluxo. Sempre um array JSON, nunca um objeto liveness único. Fica null até que pelo menos uma etapa de prova de vida tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, method, score, reference_image, video_url, age_estimation opcional, matches[] entre sessões e warnings[].

face_matches
object[] | null

Array de relatórios de correspondência facial produzidos pelas etapas de correspondência facial no grafo do fluxo. Sempre um array JSON, nunca um objeto face_match único. Fica null até que pelo menos uma etapa de correspondência facial tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, a score de similaridade, source_image, target_image e warnings[].

phone_verifications
object[] | null

Array de relatórios de verificação de telefone: sempre um array JSON, nunca um objeto phone único. Fica null até que pelo menos uma etapa de telefone tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, o número de telefone e os metadados do país, lifecycle[], matches[] e warnings[].

email_verifications
object[] | null

Array de relatórios de verificação de e-mail: sempre um array JSON, nunca um objeto email único. Fica null até que pelo menos uma etapa de e-mail tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, o endereço de e-mail, dados de vazamentos, lifecycle[], matches[] e warnings[].

poa_verifications
object[] | null

Array de relatórios de Comprovante de endereço (POA): sempre um array JSON, nunca um objeto poa único. Fica null até que pelo menos uma etapa de POA tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, a URL do arquivo do documento, o emissor, as datas, o endereço analisado e warnings[].

document_ai_documents
object[] | null

Relatórios de Document AI agrupados por nó do fluxo — sempre um array JSON, nunca um objeto único. null até que pelo menos uma etapa de Document AI tenha produzido dados. Presente apenas quando session_kind = user. Cada item é um grupo de nó com um status agregado, o node_id, um array items[] com os resultados por documento (dados extraídos indexados pela chave de campo configurada) e warnings.

questionnaire_responses
object[] | null

Array de relatórios de respostas de questionário: sempre um array JSON, nunca um objeto questionnaire único. Fica null até que pelo menos uma etapa de questionário tenha produzido dados. Cada item é o relatório completo, incluindo node_id, os metadados do questionário, as seções com elementos de formulário e as respostas do usuário.

bank_verifications
object[] | null

Resultados da Verificação bancária, um item por etapa de Verificação bancária, para Verificação de usuários e Verificação de empresas. null até que uma etapa produza um. O method de cada item indica como a conta foi verificada: open_banking (login no banco) ou account_lookup (consulta da conta), ou um fallback por statement ou microdeposits, e none quando a pessoa continuou sem banco antes que qualquer tentativa fosse avaliada (continued_without_bank). Consulte Métodos de verificação bancária. A Verificação bancária ainda não está habilitada em produção, então este campo permanece null nas sessões de produção até que esteja.

signatures
object[]

Resultados de assinatura eletrônica, um item por signatário e etapa de assinatura, para Verificação de usuários e Verificação de empresas. Presente somente quando o fluxo tem uma etapa de Assinatura eletrônica; é um array vazio até que um signatário chegue a ela. Consulte o relatório de assinatura eletrônica.

aml_screenings
object[] | null

Array de relatórios de análise AML: sempre um array JSON, nunca um objeto aml único. É null até que pelo menos uma etapa de AML tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, total_hits, entity_type, hits[], score, screened_data, is_ongoing_monitoring_enabled e warnings[].

ip_analyses
object[] | null

Array de relatórios de Análise de dispositivo e IP: sempre um array JSON, nunca um objeto ip_analysis único. Fica null até que pelo menos uma etapa de análise de IP tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, dados de IP e geolocalização, a impressão digital do dispositivo e warnings[]. Entradas com (node_id, ip_address, device_fingerprint) duplicados são desduplicadas no servidor.

geolocation_checks
object[] | null

Array de resultados de verificação de localização, um por etapa de verificação de localização: a tentativa aceita dessa etapa. Fica null até que uma etapa de verificação de localização tenha produzido dados. As tentativas anteriores da mesma etapa estão em geolocation_attempts.

geolocation_attempts
object[] | null

Todas as tentativas de todas as etapas de verificação de localização desta sessão, da mais antiga para a mais recente. Tentativas substituídas por um reenvio ficam de fora. Um fluxo que oculta geolocation_checks por meio dos seus atributos de resposta também oculta esta lista.

database_validations
object[] | null

Array de relatórios de Validação de banco de dados — sempre um array JSON, nunca um objeto database_validation singular. null até que pelo menos uma etapa de validação de banco de dados tenha produzido dados. Cada item é o relatório completo, incluindo node_id, o status no nível do recurso, screened_data, as validations[] por serviço (cada uma com o source_data do respectivo registro) e warnings[]. Os campos screened_data e source_data variam por país:

ARG (Argentina): screened_data: {document_number, selfie, gender, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type, face_match_score, sit_1_since, banks, last_position, highest_position, rejected_checks}. Usa a validação biométrica de correspondência facial do RENAPER. O gênero é inferido automaticamente a partir da análise facial ou do primeiro nome quando não consta no documento (por exemplo, carteiras de motorista)

BOL (Bolívia): screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender}

BRA (Brasil): screened_data: {tax_number, first_name, last_name, date_of_birth}. source_data sempre inclui {identification_number, first_name, last_name, date_of_birth, lgpd_minor, minor_under_18, minor_under_16} para correspondências de CPF bem-sucedidas. Consultas bem-sucedidas de adultos definem essas flags como false. O serviço Consulta CPF da Receita Federal pode retornar HTTP 422 (menor de 18 anos) ou 451 (menor de 16 anos) com dados retidos pela LGPD; nesses casos, source_data define as flags de menoridade como true conforme o caso, inclui o status HTTP retornado pela fonte e a validação no nível do campo é no_match. Consulte a seção Brasil da referência de códigos de resultado da Validação de banco de dados para ver a lista completa de códigos.

CHL (Chile): screened_data: {personal_number, first_name, last_name, date_of_birth}. source_data: {identification_number, first_name, last_name, date_of_birth, gender}

COL (Colômbia): screened_data: {document_number, document_type, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, document_type}

CRI (Costa Rica): screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

DOM (República Dominicana): screened_data: {personal_number}. source_data: {identification_number} (retorna apenas válido/inválido)

ECU (Equador): screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, street, formatted_address, gender, nationality, education, marital_status, spouse, mother_name, father_name, profession}

ESP (Espanha): screened_data: {personal_number, document_type, expiration_date, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, document_type, expiration_date}

GTM (Guatemala): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

HND (Honduras): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

MEX (México): screened_data: {personal_number (CURP), first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender, nationality, curp_status, state_of_birth, doc_probatorio, registration_year, registration_state, registration_municipality, num_acta, crip, issuing_state_code, foreign_registry_number, folio_carta, folio_certificado}. Usa o registro civil do RENAPO. Um serviço separado de verificação de validade do INE também está disponível para MEX como validação individual adicional.

PAN (Panamá): screened_data: {personal_number, selfie}. source_data: {identification_number}. Usa a validação biométrica do SIB

PER (Peru): screened_data: {personal_number (DNI), first_name, last_name}. source_data: {identification_number, first_name, last_name, paternal_name, maternal_name, verification_number, verification_letter}

PRY (Paraguai): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

SLV (El Salvador): screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

URY (Uruguai): screened_data: {personal_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

VEN (Venezuela): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, gender, date_of_birth, document_type}

database_validation_not_performed_reason
object | null

Motivo pelo qual uma validação de banco de dados configurada não produziu resultado, no formato {code, message} mais campos de contexto. Presente apenas quando database_validations é null em um fluxo que tem a etapa, para que você possa distinguir "o registro confirmou" de "nada foi executado". null nos demais casos.

reviews
object[]
assignee
object | null

O revisor do Console a quem a sessão está atribuída, ou null quando ninguém a detém.

waiting_since
string<date-time> | null

Quando a sessão começou a aguardar revisão. null, a menos que a sessão esteja In Review e sua aplicação defina um prazo de revisão.

sla_due_at
string<date-time> | null

Quando a revisão vence. null, a menos que a sessão esteja In Review e sua aplicação defina um prazo de revisão.

created_at
string<date-time>

Data e hora em que a sessão foi criada (ISO 8601, UTC).

expires_at
string<date-time> | null

Data e hora em que está prevista a expiração desta sessão. Definido em sessões de Verificação de usuários (KYC) quando uma expiração foi configurada no momento da criação (ou quando o status Approved aciona o cálculo de expiração do KYC). null para sessões sem expiração configurada e para tipos que não usam expiração (por exemplo, sessões de Verificação de empresas (KYB) que nunca receberam um expires_at).

registry_checks
object[] | null

Verificações no registro de empresas. Presente apenas quando session_kind = business. Cada item contém o payload completo do registro de empresas.

key_people_checks
object[] | null

Verificações agregadas das pessoas-chave. Presente apenas quando session_kind = business. Cada item usa o formato de dois grupos (registry, submitted, ubo_kyc_summary).

document_verifications
object[] | null

Verificações de documentos agrupadas por nó do fluxo. Presente apenas quando session_kind = business.

environment
enum<string>

Se a sessão foi criada por uma aplicação de produção (live) ou por uma aplicação de sandbox (sandbox). Sessões de sandbox são gratuitas, totalmente simuladas e nunca consomem créditos.

Opções disponíveis:
live,
sandbox
sandbox_scenario
string | null

O cenário de sandbox com o qual a sessão foi criada. null para sessões de produção e para sessões de sandbox criadas sem cenário.

resubmissions
object[]

Retornado apenas com include=resubmissions, para sessões de usuários e de empresas. Uma entrada por requisição de reenvio, da mais antiga para a mais recente. Cada entrada traz os resultados que as etapas reenviadas retornaram antes da requisição, para que os envios anteriores continuem legíveis. Excluir a sessão exclui todos os envios.

Se a sessão exigiu consentimento biométrico explícito antes de uma captura facial, o motivo e a evidência da resposta. Somente para sessões de Verificação de usuários (KYC); o mesmo objeto está na decision dos webhooks de sessão. null quando a sessão nunca foi avaliada, por exemplo, um fluxo de verificação (workflow) sem captura facial. Campos sem valor registrado são null. Um SDK nativo anterior à versão 4.10.0, ou um que não informa sua versão, não consegue exibir a etapa de consentimento: suas capturas faciais funcionam como antes, e uma sessão que exigiu consentimento passa a informar status: "pending" com reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK". Consulte Consentimento biométrico.

investigator
object | null

A revisão mais recente do item no Investigator, ou null quando ele nunca teve uma. Incluída na decisão da sessão V3 e da sessão de empresa (e, portanto, nos webhooks status.updated).

biometric_retention
object

Quando os dados biométricos ao vivo desta sessão são excluídos.

fraud_check
object | null

O resultado de uma chamada à Fraud Check API. null para todas as outras sessões.

full_session_video
string<uri> | null

URL temporária da gravação da sessão completa. Retornada somente quando sua organização grava vídeo da sessão completa.

full_session_video_recorded_at
string<date-time> | null

Quando a gravação da sessão completa foi feita. Retornado apenas quando sua organização grava vídeo da sessão completa.

Última modificação em 1 de novembro de 2026