ID Verification (Frente/Verso do documento)
ID Verification
ID Verification (Frente/Verso do documento)
Verificar documento de identidade (frente e opcional verso), extrair MRZ e dados, obter Aprovado ou Recusado em uma única chamada. Consulte o esquema do.
POST
ID Verification (Frente/Verso do documento)
Documentation Index
Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
Use this file to discover all available pages before exploring further.
Resumo
ID Verification é um serviço de verificação da Gu1 que valida um documento de identidade enviando a imagem da frente (obrigatória) e opcionalmente a imagem do verso (para documentos de duas faces como RG). A API retorna Aprovado ou Recusado, dados extraídos (nome, número do documento, data de nascimento, endereço, MRZ, etc.) e avisos opcionais. Não há sessão hospedada: você envia as imagens e recebe o resultado em uma chamada.Quando usar cada um
- KYC por sessão (
POST /api/kyc/validations): Fluxo completo com URL hospedada, selfie ao vivo, liveness e captura de documento. Ideal para onboarding e fluxos regulados. - Face Match (
POST /api/kyc/face-match): Comparar duas imagens (foto do documento + selfie) para verificar se são a mesma pessoa; retorna correspondência + pontuação. - ID Verification (
POST /api/kyc/id-verification): Enviar frente (e opcional verso) do documento; obter validação do documento, dados extraídos (MRZ, nome, endereço, etc.) e Aprovado/Recusado. Ideal quando você já tem as imagens do documento e só precisa de extração + validação.
Pré-requisitos
Antes de usar o ID Verification:- Integração ID Verification ativada: Sua organização deve ter a integração KYC ID Verification ativada (por exemplo no Marketplace / Integrações).
- Credenciais configuradas: A API key da integração ID Verification deve estar configurada nas configurações KYC da organização (definido pelo administrador da Gu1). Apenas a API key é necessária (sem webhook secret para este endpoint).
ID Verification é um serviço da Gu1. Toda a verificação é feita na infraestrutura da Gu1.
Solicitação
Endpoint
Content-Type
Apenasmultipart/form-data é aceito. Você pode enviar as imagens de duas formas (ou misturar):
- Como arquivos: anexar imagens nos campos do form
documentFronte (opcional)documentBack. - Como base64: enviar os mesmos nomes de campo com a imagem em base64 (com ou sem prefixo
data:image/...;base64,).
Headers
Content-Type manualmente ao usar FormData; o cliente define com o boundary correto.
Se sua conta usa escopo por organização, inclua:
Campos do form
Imagem da frente do documento. Enviar como arquivo (recomendado) ou como string (base64, com ou sem prefixo
data:image/...;base64,). Formatos: JPEG, PNG, WebP, TIFF, PDF. Máx. 5MB.Imagem do verso (opcional; obrigatória para documentos de duas faces como RG). Igual a
documentFront: arquivo ou base64.UUID opcional da entidade pessoa a associar a esta verificação. Usado para auditoria e para listar verificações por entidade.
Referência opcional (por exemplo seu ID de usuário) para rastreamento. Armazenada no registro de auditoria.
Com
true, após approved do documento executa chequeo RENAPER de dados (DNI + gênero + trâmite do OCR vs renaper/data). Requer credenciais RENAPER. Query prevalece sobre o body.Igual ao query param
doubleCheckRenaper.Se realizar liveness do documento (detectar tela/cópia). Padrão
false. Enviar como string "true" ou "false" no form.Idade mínima (1–120); abaixo disso é recusado. Opcional. Enviar como string no form.
"NO_ACTION" ou "DECLINE" quando a data de validade não é detectada. Opcional."NO_ACTION" ou "DECLINE" quando o MRZ é inválido. Opcional."NO_ACTION" ou "DECLINE" quando os dados visuais não batem com o MRZ. Opcional.Resposta
Resposta de sucesso (200 OK)
| Campo | Tipo | Descrição |
|---|---|---|
status | string | "approved" | "declined". |
verificationId | string (opcional) | ID do registro de auditoria em id_verification_verifications (suporte e listagem). |
requestId | string (opcional) | ID interno da solicitação (suporte). |
extractedData | object (opcional) | OCR e metadados de verificação do serviço ID Verification da Gu1, normalizados e persistidos na auditoria. Ver campos de extractedData abaixo. |
warnings | string[] (opcional) | Array de códigos de risco da verificação (ex.: DOCUMENT_EXPIRED, POSSIBLE_DUPLICATED_USER). Usar para exibição ou i18n. Veja Códigos de risco em avisos para todos os valores. |
debugProviderResponse | object (opcional) | Apenas não produção (API Gu1 com NODE_ENV=development). Resposta completa de verificação sanitizada para depuração (sem imagens/base64). Não usar em integrações de produção. |
doubleCheckRenaper | boolean (opcional) | true se dupla verificação RENAPER foi solicitada. |
responseDoubleChecks | object (opcional) | Com doubleCheckRenaper=true: renaper com resultado dados/trâmite. Ver KYC validations RENAPER. |
status vira "declined" e códigos RENAPER entram em warnings.
Campos de extractedData
Os seguintes campos são devolvidos emextractedData e gravados em id_verification_verifications.extracted_data (listar/obter auditoria). Campos vazios são omitidos.
Identidade e documento (comuns):
| Campo | Tipo | Descrição |
|---|---|---|
providerStatus | string | Detalhe do estado da verificação do documento (ex.: Approved, Declined). O status de nível superior é approved / declined. |
fullName, firstName, lastName | string | Nome via OCR. |
firstSurname, secondSurname | string | Quando vêm em campos complementares (ex.: alguns documentos LATAM). |
documentNumber, personalNumber | string | Número do documento e número pessoal/nacional se aplicável. |
documentType | string | ex.: Driver's License, BI. |
taxNumber | string | ID fiscal se aplicável (ex.: CPF em extração complementar). |
dateOfBirth, age | string / number | Data de nascimento e idade calculada. |
expirationDate, dateOfIssue, firstIssueDate | string | Datas do documento (ISO YYYY-MM-DD quando aplicável). |
nationality, gender | string | País e género quando o OCR devolve. |
placeOfBirth, maritalStatus | string | Local de nascimento e estado civil se aplicável. |
address, formattedAddress | string | Morada quando presente. |
issuingState, issuingStateName | string | Jurisdição emissora (ex.: BRA, Brazil). |
| Campo | Tipo | Descrição |
|---|---|---|
extraFields | object | Chaves do documento não promovidas a campos de primeiro nível (ex.: categoria da carta, códigos regionais). Ponto de extensão para campos futuros do OCR. |
warningMeta | object | Metadados de avisos: duplicatedSessionId, duplicatedSessionNumber, duplicatedApiService com POSSIBLE_DUPLICATED_USER. |
frontImageQualityScore, backImageQualityScore | object | Pontuações de qualidade OCR quando existem. |
mrz | object | Campos MRZ parseados se não vazios. |
parsedAddress | object | Morada estruturada quando a verificação a devolve. |
barcodes | array | Leituras de códigos de barras se aplicável. |
Campos promovidos vs. extensão
- Identificadores frequentes (
taxNumber,firstSurname,secondSurname,firstIssueDate, etc.) são elevados ao mesmo nível quefullNameemextractedDataquando o OCR os devolve. - Outras chaves do documento ficam em
extractedData.extraFields(mesmo objeto no POST e na listagem/detalhe de auditoria).
Não incluído nas respostas API nem no JSON de auditoria
- URLs temporárias de imagens do fluxo de verificação — usar imagens armazenadas (
document-front-image/document-back-image) do que enviou à Gu1. - Corpo bruto completo da verificação (não exposto em APIs de produção).
Exemplo de solicitação
Respostas de erro
Códigos de erro comuns:| Código | HTTP | Significado |
|---|---|---|
NOT_CONFIGURED | 403 | Credenciais do ID Verification (API key) não configuradas na organização. |
NOT_ENABLED | 403 | Integração ID Verification não ativada para esta organização. |
INVALID_REQUEST | 400 | Content-Type não é multipart/form-data, ou frente do documento faltando/inválida (sem arquivo nem base64, ou formato/tamanho). |
FORBIDDEN | 403 | Não foi possível concluir a verificação (ex.: créditos). |
VERIFICATION_FAILED | 500 | Não foi possível concluir a verificação; tentar novamente ou outro documento. |
Auditoria e listagem de verificações
Cada solicitação de ID Verification (sucesso ou falha) é armazenada emid_verification_verifications para auditoria e conformidade. A resposta inclui verificationId (ID do registro de auditoria) quando a persistência tem sucesso. Todos os endpoints abaixo são da API Gu1.
Obter uma verificação
id — UUID da verificação (o verificationId da resposta do POST ou da listagem).
Resposta (200): Mesmo formato de um item da listagem: id, organizationId, entityId, status, requestId, vendorData, errorMessage, warnings, extractedData, createdAt, documentFrontStoragePath, documentBackStoragePath, storageProvider, etc.404 se não existir ou não pertencer à sua organização.
Listar registros de auditoria
| Parâmetro | Tipo | Descrição |
|---|---|---|
entityId | string (UUID) | Opcional. Filtrar por entidade pessoa. |
withoutEntity | boolean | Se true, retorna apenas verificações sem entidade associada (ex.: aba «ID Verification sem entidade» no KYC). |
status | string | Opcional. Filtrar por status (approved, declined, failed). |
limit | number | Máximo de itens (padrão 50, máx. 100). |
offset | number | Deslocamento da paginação. |
{ "verifications": [ ... ], "pagination": { "limit", "offset", "total" } }. Cada verificação inclui id, entityId, status, requestId, extractedData, warnings, errorMessage, createdAt e caminhos de armazenamento quando as imagens foram salvas.
Obter imagens do documento armazenadas
Se a verificação tiver imagens salvas (documentFrontStoragePath / documentBackStoragePath), você pode obtê-las com:
id — UUID da verificação. Resposta: bytes da imagem (ex.: Content-Type: image/jpeg). 404 se a verificação não existir ou esse lado não foi armazenado.
Convivência com outros fluxos KYC
- Fluxo por sessão cria um registro em
kyc_validationse usa uma URL hospedada; a decisão armazenada pode incluir documento, liveness e face match da sessão ao vivo. - Face Match compara foto do documento + selfie e retorna correspondência + pontuação; auditoria em
face_match_verifications. - ID Verification valida o documento (frente/verso), extrai dados e retorna Aprovado/Recusado; auditoria em
id_verification_verifications. Não cria registro emkyc_validations. Use quando precisar apenas de validação e extração do documento sem sessão hospedada.
Próximos passos
Face Match (Documento + Selfie)
Comparar documento e selfie
Criar validação KYC
Verificação por sessão com URL hospedada