API
Importação de Documentos
Guia completo de integração para envio de documentos via API
POST
Importação de Documentos
Visão Geral
A API de Importação de Documentos do Fleximage permite que sistemas externos enviem lotes de documentos para processamento automático de análise, classificação, validação documental e biometria.Fluxo Simples
Apenas 2 etapas: Autenticação + Importação
Processamento Automático
OCR, classificação e validação sem intervenção manual
Resultado via Webhook
Receba os resultados automaticamente em sua URL
Multi-documento
Envie múltiplos documentos em um único lote
Fluxo de Integração
1. Autenticação OAuth 2.0
Credenciais de Acesso
Você receberá as credenciais de acesso por email. Exemplo de ambiente de desenvolvimento:| Parâmetro | Valor |
|---|---|
| CLIENT_ID | teste-api |
| CLIENT_SECRET | pwR8GPipQvifGhSIH7cH07OOCXd2C8Hg |
Endpoint de Autenticação
Resposta de Sucesso
Token JWT para autenticação nas APIs. Use no header
Authorization: Bearer <token>Sempre
"Bearer"Tempo de validade em segundos (padrão: 3600 = 1 hora)
Escopos concedidos ao token
O token expira em 1 hora (3600 segundos). Quando expirar, execute a autenticação novamente para obter um novo token.
2. Importação de Documentos
Use o playground “Try It” à direita para testar a API diretamente na documentação! →
Authentication
Bearer token obtido via OAuth 2.0Formato:
Bearer {access_token}Exemplo: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...Request Body
Arquivo JSON contendo metadados do lote e dos documentos.Tipo: JSON fileEstrutura detalhada: Ver seção 3 abaixoContent-Type:
application/jsonArray de arquivos (PDF, PNG, JPG, JPEG) dos documentos a serem processados.Formatos aceitos: PDF, PNG, JPG, JPEGTamanho máximo: 5MB por arquivoValidação: Nomes devem corresponder aos especificados no campo
fileName do JSONResponse
Identificador único do lote criado no sistema. Use este ID para rastrear o processamento.Exemplo:
46973. Estrutura do JSON (jsonData)
Template Completo
Campos do Lote
Determina o fluxo de processamento aplicado ao lote:
| Valor | Descrição |
|---|---|
poc_onboarding | Fluxo padrão com intervenção manual (análise humana) |
poc_auto_face | Processamento 100% automático com validação biométrica facial |
poc_auto | Processamento 100% automático sem validação biométrica |
Identificador externo do lote para rastreamento no seu sistema.Exemplo:
"LOTE-2026-001", "PF-12345-20260414"Código da origem do lote. Geralmente
"1" (consulte com o time de integração).Lista de chaves lógicas do lote. 3 chaves obrigatórias:
webhook_uri (obrigatório)
webhook_uri (obrigatório)
URL de callback para receber o resultado da análise após o processamento.Formato: URL completa (https://)Exemplo:
"https://seu-sistema.com/api/webhook/flexdoc"cpf (obrigatório)
cpf (obrigatório)
CPF do titular do documento (somente números, sem formatação).Formato: 11 dígitosExemplo:
"12345678900"origin_system (obrigatório)
origin_system (obrigatório)
Nome do cliente, sistema ou projeto de origem. Utilizado para agrupamento e controle de registros.Exemplo:
"portal_cliente", "app_mobile", "trustic_web"Campos dos Documentos
Lista de documentos a serem importados. Cada documento possui:
fileName (obrigatório)
fileName (obrigatório)
Nome do arquivo que deve corresponder exatamente ao arquivo enviado no campo
files.Case-sensitive: "RG.pdf" ≠ "rg.pdf"Exemplo: "rg_completo.pdf", "selfie_cliente.png"contentType (obrigatório)
contentType (obrigatório)
Formato do arquivo. Valores aceitos:
"pdf"- Documentos PDF"jpg"ou"jpeg"- Imagens JPEG"png"- Imagens PNG
typeAlias (opcional)
typeAlias (opcional)
Tipo do documento. Se omitido, classificação automática via deep learning é aplicada.
| Valor | Descrição |
|---|---|
nao_identificado | Documento não identificado → classificação automática |
selfie | Fotografia de rosto (obrigatório para validação biométrica) |
rg | RG |
cnh | CNH (carteira de motorista) |
keys (opcional)
keys (opcional)
Lista de chaves associadas ao documento específico (ex.: CPF do titular).Estrutura:
4. Exemplo Completo de Requisição
5. Resposta da Importação
Sucesso (200 OK ou 201 Created)
Identificador único do lote processado. Armazene este ID para rastreamento e consultas futuras.
Lote criado com sucesso! O processamento iniciou automaticamente. Aguarde o webhook com o resultado completo da análise.
Códigos de Status HTTP
Sucesso (2xx)
Sucesso (2xx)
| Código | Status | Descrição |
|---|---|---|
200 | OK | Operação realizada com sucesso |
201 | Created | Lote criado com sucesso |
204 | No Content | Nenhum registro encontrado |
Erro do Cliente (4xx)
Erro do Cliente (4xx)
| Código | Status | Descrição |
|---|---|---|
400 | Bad Request | Erro na requisição. Verifique os parâmetros enviados |
401 | Unauthorized | Token inválido ou expirado. Solicite um novo token |
403 | Forbidden | Acesso negado. Verifique as permissões da credencial |
404 | Not Found | Serviço não encontrado. Verifique a URL |
413 | Payload Too Large | Arquivo muito grande (máx 10MB) |
Erro do Servidor (5xx)
Erro do Servidor (5xx)
| Código | Status | Descrição |
|---|---|---|
500 | Internal Server Error | Erro interno no servidor. Entre em contato com o suporte |
503 | Service Unavailable | Serviço indisponível temporariamente |
6. Webhook - Retorno da Validação
Após o processamento, o sistema envia automaticamente um POST para a URL configurada emwebhook_uri com o resultado completo da análise.
Estrutura do Response (ResponseDto)
Campos Principais
Informações de Processamento
Informações de Processamento
Resultado da Análise
Resultado da Análise
Código do resultado da validação:
| Código | Status | Significado |
|---|---|---|
0 | Aprovado | Documento validado com sucesso |
1 | Pendente | Análise inconclusiva, rejeições por qualidade de imagem |
2 | Rejeitado | Documento rejeitado por inconsistências (penalidades) abaixo do mínimo permitido |
Indica se a análise foi inconclusiva
Índices de Confiança
Índices de Confiança
Índice percentual de autenticidade do documento (0-100)
- 90-100: Excelente
- 70-89: Bom
- 50-69: Regular
- 0-49: Baixo
Índice percentual de correspondência facial (0-100)
- 95-100: Match muito alto
- 85-94: Match alto
- 70-84: Match moderado
- 0-69: Match baixo (rejeitar)
Disponível apenas quando
workflowAlias = "poc_auto_face" e selfie foi enviada.Dados do Titular
Dados do Titular
Penalidades (PenalidadeDto)
Array de objetos contendo irregularidades encontradas durante a análise formalística.Lista de penalidades detectadas (vazio se aprovado sem ressalvas)Estrutura:Campos:
data(string): Data e hora da detecçãovalor(string): Valor associado (quando aplicável)descricao(string): Descrição detalhada da penalidaderegra(string): Código da regra que gerou a penalidaderulesType(integer): Tipo da regra1= Automática (crítico - divergências com bases oficiais)2= Manual3= Híbrido (alerta - características suspeitas)
Códigos de Penalidade Comuns
Códigos de Penalidade Comuns
RG (Registro Geral)
OCR (Validação de Dados)
CNH (Carteira Nacional de Habilitação)
| Código | Descrição |
|---|---|
rg_05 | Existe letra “E” entre a Filiação |
rg_11 | Assinatura do Diretor divergente |
rg_17 | Doc Origem alinhado incorretamente com 3ª letra do Titular |
rg_37 | Formato do RG divergente |
rg_40 | Nome da Mãe antes do Nome do Pai |
| Código | Descrição |
|---|---|
ocr_02 | Nome obtido no documento divergente do nome na RF (Receita Federal) |
ocr_03 | Data de Nascimento divergente da RF |
ocr_13 | Primeiro nome do titular divergente da RF |
| Código | Descrição |
|---|---|
cnh_08 | Campo Data Emissão Divergente no Datavalid |
cnh_15 | CNH vencida |
cnh_22 | Número de registro divergente |
Códigos de Rejeição (CodigoRejeicaoDto)
Array de objetos contendo motivos de rejeição automática por problemas de qualidade.Lista de códigos de rejeição (vazio se qualidade OK)Estrutura:Campos:
tipo(string): Tipo do documento rejeitadocodigo(string): Código do erromotivo(string): Descrição do motivodocId(integer): ID do documento rejeitado
Códigos de Rejeição Comuns
Códigos de Rejeição Comuns
| Código | Descrição |
|---|---|
doc001 | Documento ilegível (baixa qualidade, desfocado) |
doc002 | Documento incompleto (faltando frente ou verso) |
doc003 | Documento danificado (rasgado, manchado) |
doc004 | Documento expirado |
doc005 | Arquivo corrompido ou inválido |
Documentos Analisados (DocumentoDto)
Lista de documentos analisados com dados extraídos via OCREstrutura:Campos:
docName(string): Nome descritivo do documentodocId(integer): Identificador único do documentodocType(string): Tipo técnico do documentotype(string): Categoria do documento (rg,cnh,cpf, etc)keys(array): Campos extraídos pelo OCR
Campos Extraídos (KeyDto)
CNH - Carteira Nacional de Habilitação
CNH - Carteira Nacional de Habilitação
| keyAlias | keyName | Descrição |
|---|---|---|
nome | Nome | Nome completo do titular |
cpf | CPF | Número do CPF |
doc_identidade_numero | Número RG | Número do RG |
doc_identidade_orgao | Órgão Expedidor RG | Órgão emissor do RG |
doc_identidade_uf | UF Órgão Expedidor RG | UF do órgão emissor |
data_nascimento | Data Nascimento | Data de nascimento (DD/MM/YYYY) |
filiacao_pai | Filiação Pai | Nome do pai |
filiacao_mae | Filiação Mãe | Nome da mãe |
num_registro | Número Registro | Número de registro da CNH |
data_validade | Data Validade | Data de validade da CNH |
data_habilitacao | Data Habilitação | Data da primeira habilitação |
data_emissao | Data Emissão | Data de emissão da CNH |
orgao_emissor | Órgão Emissor | Órgão emissor (DETRAN) |
detran_uf | Detran UF | UF do DETRAN |
security_code_1 | Número Segurança | Código de segurança 1 |
security_code_2 | Renach | Código Renach |
num_espelho | Número Espelho | Número espelho da CNH |
RG - Registro Geral
RG - Registro Geral
| keyAlias | keyName | Descrição |
|---|---|---|
nome | Nome | Nome completo do titular |
cpf | CPF | Número do CPF |
doc_identidade_numero | Número Documento | Número do RG |
doc_identidade_orgao | Órgão Expedidor | Órgão emissor |
doc_identidade_uf | UF Órgão Expedidor | UF do órgão emissor |
data_nascimento | Data Nascimento | Data de nascimento |
data_expedicao | Data Expedição | Data de expedição |
filiacao_pai | Filiação Pai | Nome do pai |
filiacao_mae | Filiação Mãe | Nome da mãe |
naturalidade_cidade | Naturalidade Cidade | Cidade de nascimento |
naturalidade_uf | Naturalidade UF | UF de nascimento |
7. Fluxo de Interpretação do Webhook
2. Analisar codigoRejeicao
Se não vazio, contém motivos de rejeição automática (documento ilegível, incompleto ou danificado).
8. Boas Práticas
Segurança
Segurança
- Nunca exponha
client_secretem repositórios públicos - Use variáveis de ambiente para armazenar credenciais
- Implemente autenticação no webhook (token, Basic Auth)
- Use HTTPS em produção
- Rotacione secrets periodicamente (a cada 90 dias)
- Valide a origem das requisições do webhook (whitelist de IPs)
Performance
Performance
- Limite lotes a 10-20 documentos por requisição para melhor performance
- Otimize imagens antes do envio (resolução 300 DPI recomendada)
- Use compressão de PDFs quando possível
- Para grandes volumes, processe em lotes paralelos (máx 5 simultâneos)
- Monitore o tamanho total do request (limite: 50MB recomendado)
- Cache tokens válidos (expire em 55 minutos para margem de segurança)
Qualidade de Imagem
Qualidade de Imagem
- Resolução mínima: 300 DPI
- Formato preferencial: PDF para documentos, PNG para selfies
- Iluminação: Boa iluminação natural ou artificial uniforme
- Foco: Imagens nítidas, sem desfoque
- Enquadramento: Documento completo, sem cortes
- Sem reflexos: Evite flash direto em documentos plastificados
- Merge RG: Combine frente e verso em um único PDF
Rastreabilidade
Rastreabilidade
- Sempre preencha
batchExternalIdcom identificador único - Use padrão consistente:
{origem}-{cliente}-{timestamp} - Exemplo:
"PORTAL-12345-20260414103015" - Armazene
batchIdretornado para consultas futuras - Mantenha log de todas as importações (request + response)
- Implemente monitoramento de webhooks (alertas se não receber em X minutos)
Tratamento de Erros
Tratamento de Erros
- Implemente retry com backoff exponencial para erros 5xx
- 1ª tentativa: aguardar 1s
- 2ª tentativa: aguardar 2s
- 3ª tentativa: aguardar 4s
- Máximo de 3 tentativas
- Para erro 400, não reprocesse - corrija os dados
- Para erro 401, renove o token e tente novamente
- Monitore logs para identificar padrões de falha
- Configure alertas para taxa de erro > 5%
- Mantenha auditoria de tentativas de importação
Webhook - Implementação
Webhook - Implementação
- Responda rapidamente: Retorne HTTP 200 em < 3 segundos
- Processe assincronamente: Salve dados e processe em background
- Implemente idempotência: Webhook pode ser reenviado
- Valide assinatura: Se configurado, valide header de autenticação
- Log completo: Registre payload recebido para debugging
- Retry do webhook: Sistema tenta reenviar 3x em caso de falha
9. Ambientes
- Desenvolvimento (DEV)
- Produção (PROD)
Importação de Documentos