Skip to content
Caso de estudoPreçosSegurançaComparativoBlog

Europe

Americas

Oceania

Automação13 min de leitura

API de verificação documental: guia de integração completo

Integre a verificação de documentos via API REST com OAuth 2.0, webhooks e SDKs.

Equipe CheckFile
Equipe CheckFile·
Illustration for API de verificação documental: guia de integração completo — Automação

Resumir este artigo com

Uma API de verificação documental é uma interface programática que permite aos desenvolvedores enviar documentos de identidade, notas fiscais, certificados ou comprovantes de endereço e receber resultados de verificação estruturados — controles de autenticidade, extração de dados, sinais de fraude — sem construir os modelos de IA subjacentes. A API da CheckFile processa um documento em 4,2 segundos em média, alcança 98,7% de precisão OCR em 24 idiomas e suporta mais de 3.200 tipos de documentos em 32 jurisdições, incluindo CPF, CNH, CNPJ e certidões brasileiras.

O Regulamento Europeu de IA (Regulamento (UE) 2024/1689, art. 6 e anexo III) classifica os sistemas de IA utilizados para verificação de documentos de identidade nos serviços financeiros como de alto risco. No Brasil, a Lei de IA (PL 2.338/2023), em tramitação, adota classificação similar. Qualquer API que você integre deve cumprir essas obrigações — caso contrário, herda a lacuna de conformidade.

Este guia abrange autenticação, endpoints principais, configuração de webhooks, gestão de erros, opções de SDK e preços. Destina-se a desenvolvedores backend, equipes DevOps e responsáveis técnicos que avaliam APIs de verificação documental para integração em produção.

Este artigo é fornecido apenas para fins informativos e não constitui aconselhamento jurídico, financeiro ou regulatório.

Autenticação e segurança

A API da CheckFile utiliza OAuth 2.0 client credentials para autenticação máquina a máquina, em conformidade com o RFC 6749, Seção 4.4. Você troca o client_id e client_secret por um token bearer de duração limitada (validade de 60 minutos), que é incluído no header Authorization de cada requisição subsequente.

Todo o tráfego da API é criptografado com TLS 1.3. Os documentos são criptografados em repouso com AES-256 e os dados pessoais são automaticamente removidos dos logs, em conformidade com o artigo 46 da LGPD sobre medidas de segurança técnicas adequadas (LGPD — Lei 13.709/2018).

# Obter token de acesso
curl -X POST https://api.checkfile.ai/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=SEU_ID&client_secret=SEU_SECRET"

# Resposta
{
  "access_token": "eyJhbGciOi...",
  "token_type": "Bearer",
  "expires_in": 3600
}

Funcionalidades de segurança principais:

  • Lista de IPs permitidos — restringir o acesso à API a IPs de servidor conhecidos
  • Limitação de taxa — configurável por plano (ver seção de preços)
  • Assinaturas de webhook — verificação HMAC-SHA256 em cada callback
  • Registro de auditoria — cada chamada à API é registrada com carimbo de data/hora, ID do cliente, tipo de documento e resultado

Scopes e permissões

Scope Permissão Caso de uso
documents:write Upload e envio de documentos Fluxo de verificação padrão
documents:read Obter resultados e status Integrações baseadas em polling
webhooks:manage Criar e configurar webhooks Arquiteturas orientadas a eventos
analytics:read Acessar métricas de utilização Dashboards de monitoramento
admin:manage Gerenciar chaves API e acessos da equipe DevOps e administração

Endpoints principais

A API segue convenções RESTful com payloads JSON. URL base: https://api.checkfile.ai/v1.

Envio de documento

POST /v1/documents/verify
Content-Type: multipart/form-data
Authorization: Bearer {token}

# Campos:
# file (obrigatório) — imagem ou PDF do documento (máx. 20 MB)
# document_type (opcional) — "passport", "id_card", "invoice", "proof_of_address"
# country (opcional) — código ISO 3166-1 alfa-2 (ex: "BR")
# webhook_url (opcional) — URL de callback para resultados assíncronos
# reference_id (opcional) — sua referência interna para correlação

Resposta (HTTP 202 Accepted):

{
  "document_id": "doc_8f3a2b1c",
  "status": "processing",
  "estimated_completion_seconds": 4,
  "created_at": "2026-03-24T10:15:00Z"
}

Quando document_type é omitido, a API utiliza seu motor de classificação IA — que alcança 96,1% de precisão no nosso benchmark de mais de 3.200 tipos de documentos — para detectar o tipo automaticamente. Isso inclui documentos brasileiros como CPF, CNH, CNPJ, certidões de nascimento/casamento e comprovantes de endereço.

Obtenção de resultados

GET /v1/documents/{document_id}
Authorization: Bearer {token}

Resposta (HTTP 200):

{
  "document_id": "doc_8f3a2b1c",
  "status": "completed",
  "document_type": "cnh",
  "country": "BR",
  "verification": {
    "authentic": true,
    "confidence": 0.97,
    "fraud_signals": [],
    "checks": {
      "mrz_valid": true,
      "photo_tamper": false,
      "expiry_valid": true,
      "data_consistency": true
    }
  },
  "extracted_data": {
    "full_name": "Maria Silva Santos",
    "date_of_birth": "1990-05-12",
    "document_number": "12345678901",
    "expiry_date": "2031-05-11",
    "cpf": "123.456.789-01"
  },
  "processing_time_ms": 3840,
  "created_at": "2026-03-24T10:15:00Z",
  "completed_at": "2026-03-24T10:15:03.840Z"
}

O objeto extracted_data alcança 94,3% de precisão na extração de campos no nosso benchmark interno, cobrindo campos estruturados de todos os tipos de documentos suportados.

Verificação em lote

Para integrações de alto volume, o endpoint batch aceita até 50 documentos por requisição:

POST /v1/documents/verify/batch
Content-Type: multipart/form-data
Authorization: Bearer {token}

# files[] — array de arquivos de documentos
# options — objeto JSON com configurações compartilhadas

As requisições batch retornam um batch_id e entregam resultados via webhook à medida que cada documento é processado.

Configuração de webhooks

As arquiteturas orientadas a eventos evitam a sobrecarga do polling. Registre um endpoint webhook para receber notificações em tempo real quando as verificações forem concluídas.

POST /v1/webhooks
Authorization: Bearer {token}
Content-Type: application/json

{
  "url": "https://sua-app.com.br/webhooks/checkfile",
  "events": ["document.completed", "document.failed", "document.review_required"],
  "secret": "whsec_sua_chave_secreta"
}

Cada entrega de webhook inclui um header X-CheckFile-Signature com um hash HMAC-SHA256 do payload. Verifique-o antes de processar:

import hmac
import hashlib

def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(), payload, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Política de retry do webhook: 3 tentativas com backoff exponencial (5s, 30s, 300s). Após 3 falhas, o webhook é desativado e sua equipe recebe um alerta por email.

Evento Gatilho Payload inclui
document.completed Verificação concluída com sucesso Objeto de resultado completo
document.failed Erro de processamento (arquivo corrompido, formato não suportado) Código e mensagem de erro
document.review_required Resultado com baixa confiança sinalizado para revisão humana Resultado parcial + pontuação de confiança
batch.completed Todos os documentos do lote processados Resumo com status individuais

Comece agora

Descubra as nossas ofertas adaptadas ao seu volume e fale com um especialista.

Ver preços

SDKs e opções de integração

A API REST funciona a partir de qualquer linguagem, mas os SDKs oficiais reduzem o tempo de integração de dias para horas.

SDKs disponíveis

Linguagem Pacote Instalação
Python checkfile-sdk pip install checkfile-sdk
Node.js @checkfile/sdk npm install @checkfile/sdk
Java com.checkfile:sdk Maven Central
Go github.com/checkfile/sdk-go go get

Exemplo de integração em Python

from checkfile import CheckFileClient

client = CheckFileClient(
    client_id="SEU_CLIENT_ID",
    client_secret="SEU_CLIENT_SECRET"
)

# Verificação síncrona
result = client.documents.verify(
    file=open("cnh.pdf", "rb"),
    document_type="id_card",
    country="BR"
)

print(f"Autêntico: {result.verification.authentic}")
print(f"Nome: {result.extracted_data.full_name}")
print(f"Tempo de processamento: {result.processing_time_ms}ms")

Exemplo de integração em Node.js

import { CheckFileClient } from '@checkfile/sdk';
import { readFileSync } from 'fs';

const client = new CheckFileClient({
  clientId: process.env.CHECKFILE_CLIENT_ID,
  clientSecret: process.env.CHECKFILE_CLIENT_SECRET,
});

const result = await client.documents.verify({
  file: readFileSync('cnh.pdf'),
  documentType: 'id_card',
  country: 'BR',
});

console.log(`Autêntico: ${result.verification.authentic}`);
console.log(`Confiança: ${result.verification.confidence}`);

Os SDKs gerenciam a renovação de tokens, os retries com backoff exponencial e a verificação de assinaturas de webhook automaticamente. Nossa análise mostra que as integrações baseadas em SDK reduzem o tempo mediano de colocação em produção de 8 dias (REST direto) para 2 dias.

Gestão de erros e limites de taxa

A API utiliza códigos HTTP padrão com corpos de erro estruturados:

{
  "error": {
    "code": "DOCUMENT_UNREADABLE",
    "message": "O arquivo enviado não pôde ser analisado. Certifique-se de que DPI >= 300.",
    "details": { "min_dpi": 300, "detected_dpi": 72 },
    "request_id": "req_9f2c4d1e"
  }
}

Códigos de erro comuns

Status HTTP Código de erro Resolução
400 INVALID_FILE_FORMAT Utilizar PDF, JPEG, PNG ou TIFF
400 DOCUMENT_UNREADABLE Aumentar a resolução de digitalização para 300+ DPI
401 TOKEN_EXPIRED Renovar o token OAuth
413 FILE_TOO_LARGE Reduzir o arquivo abaixo de 20 MB
429 RATE_LIMIT_EXCEEDED Aguardar a duração do header Retry-After
503 SERVICE_DEGRADED Tentar novamente com backoff exponencial

Limites de taxa por plano

Plano Requisições/minuto Burst Uploads simultâneos
Starter 60 10 5
Business 500 50 25
Enterprise 2.000+ 200 100

Os headers de limite de taxa (X-RateLimit-Remaining, X-RateLimit-Reset) são incluídos em cada resposta. Construa sua lógica de retry com base nesses headers em vez de codificar delays fixos.

Conformidade e tratamento de dados

A verificação documental envolve dados pessoais em múltiplas jurisdições. A API é concebida com a conformidade como requisito de primeira ordem.

A LGPD (Lei 13.709/2018, art. 46) exige que os agentes de tratamento adotem medidas de segurança, técnicas e administrativas aptas a proteger os dados pessoais. O artigo 26 exige que o compartilhamento de dados pelo poder público atenda a finalidades específicas de políticas públicas. A CheckFile atua como operador de dados, com um contrato de tratamento de dados (DPA) incluído em todos os planos Business e Enterprise.

Em conformidade com as exigências do Banco Central do Brasil (Bacen) e da CVM (Comissão de Valores Mobiliários) para entidades sujeitas à Lei 9.613/1998 de prevenção à lavagem de dinheiro, a API fornece:

  • Retenção: os documentos são eliminados após processamento, salvo solicitação explícita de armazenamento (configurável de 0 a 365 dias)
  • Residência de dados: processamento na UE por padrão; regiões US e LATAM disponíveis nos planos Enterprise
  • Trilha de auditoria: cada chamada à API gera um registro imutável com hash do documento, carimbo de data/hora, resultado e ID do cliente
  • Certificação SOC 2 Type II cobrindo a infraestrutura da API
  • Conformidade PCI DSS para o tratamento de documentos financeiros

Para integrações sujeitas às exigências de terceirização do Bacen (Resolução CMN 4.893/2021), a CheckFile fornece a documentação de garantias de terceiros exigida, resultados de testes de continuidade de negócio e condições de estratégia de saída.

Estrutura de preços

A CheckFile utiliza um modelo de preço por documento com descontos por volume. Todos os planos incluem acesso completo à API, webhooks e registros de auditoria.

Plano Preço mensal Verificações incluídas Verificação adicional Suporte
Starter Gratuito 100 -- Comunidade
Business A partir de R$ 1.499/mês 2.000 R$ 0,60 Email prioritário (< 4h)
Enterprise Personalizado Volume personalizado Negociado CSM dedicado + SLA

Consulte a página de preços para detalhes sobre faixas de volume, descontos anuais e condições SLA Enterprise.

Nossa análise de plataforma mostra que as organizações que migram da verificação manual de documentos para a verificação via API reduzem o custo por processo em 67% e o tempo de processamento em 83%. O período médio de retorno do investimento para clientes Business é inferior a 3 meses ao processar mais de 500 documentos por mês.

Processo manual Automatizado via API Economia
12 min/documento 4,2 segundos 99,4% de redução de tempo
R$ 24/documento (mão de obra) R$ 0,60-0,75/documento 67-97% de redução de custos
89% de precisão (erro humano) 98,7% de precisão OCR Menos reverificações
Apenas horário comercial 99,94% de disponibilidade, 24/7 Sem restrições horárias

Padrões de arquitetura de integração

Padrão 1: síncrono (simples)

Para integrações de baixo volume (< 60 requisições/min), enviar e consultar:

Cliente -> POST /v1/documents/verify -> 202 Accepted
Cliente -> GET /v1/documents/{id} (polling a cada 2s) -> 200 com resultados

Adequado para fluxos de onboarding onde o usuário aguarda a verificação.

Padrão 2: assíncrono com webhooks (recomendado)

Para cargas de trabalho em produção, enviar e receber resultados via webhook:

Cliente -> POST /v1/documents/verify (com webhook_url) -> 202 Accepted
CheckFile -> POST webhook_url (payload assinado) -> Seu handler processa o resultado

Desacopla o envio do processamento. Escala linearmente com o volume.

Padrão 3: pipeline em lote

Para processamento de back-office (revisões KYC noturnas, verificações de conformidade em massa):

Cliente -> POST /v1/documents/verify/batch (até 50 arquivos) -> batch_id
CheckFile -> POST webhook_url por documento à medida que é concluído
CheckFile -> POST webhook_url com resumo batch.completed

Nossa plataforma processa mais de 180.000 documentos por mês utilizando esses padrões. O padrão assíncrono com webhooks cobre 94% das integrações em produção.

Primeiros passos

A integração segue quatro etapas:

  1. Criar uma conta em checkfile.ai e gerar credenciais API a partir do painel
  2. Testar em sandbox — o ambiente sandbox replica a produção com documentos sintéticos (sem cobrança)
  3. Integrar utilizando o SDK ou chamadas REST diretas, começando pelo padrão síncrono
  4. Ir para produção — trocar para credenciais de produção e configurar webhooks

A documentação da API inclui um playground interativo para testar endpoints, e a página de preços detalha as opções de plano para o seu volume previsto.

Para equipes que constroem fluxos automatizados de verificação documental, a API se integra diretamente com os padrões descritos no nosso guia de configuração de workflows. Se você está avaliando soluções de verificação de forma mais abrangente, nosso guia de automatização da verificação cobre todo o panorama das abordagens de verificação documental.

Perguntas frequentes

Que tipos de documentos a API suporta?

A API da CheckFile suporta mais de 3.200 tipos de documentos em 32 jurisdições: passaportes, CNH (Carteira Nacional de Habilitação), RG, CPF, CNPJ, notas fiscais eletrônicas (NF-e), extratos bancários, comprovantes de endereço, certidões da Junta Comercial e declarações de Imposto de Renda. O motor de classificação IA identifica automaticamente o tipo de documento com 96,1% de precisão quando o parâmetro document_type é omitido.

Quanto tempo leva a verificação?

O tempo médio de processamento é de 4,2 segundos por documento. A latência P95 é inferior a 12 segundos para tipos de documentos padrão. Os envios em lote processam documentos em paralelo — um lote de 50 documentos é tipicamente concluído em 30 a 60 segundos, dependendo da complexidade do documento.

A API está em conformidade com a LGPD?

Sim. A CheckFile atua como operador nos termos do artigo 5º, VII da LGPD com DPA assinado, infraestrutura de processamento na UE, retenção de dados configurável (0 a 365 dias) e remoção automática de dados pessoais dos logs. As certificações SOC 2 Type II e ISO 27001 cobrem a infraestrutura da API. A API também atende aos requisitos do Bacen para terceirização de serviços de tecnologia.

Posso testar a API antes de contratar um plano pago?

O plano Starter inclui 100 verificações gratuitas por mês, e o ambiente sandbox permite testes ilimitados com documentos sintéticos sem custos. Não é necessário cartão de crédito para começar.

O que acontece se a API não conseguir verificar um documento?

Os documentos que ficam abaixo do limiar de confiança são sinalizados com o status review_required e encaminhados para sua fila de revisão humana via webhook. A resposta inclui o resultado parcial com a pontuação de confiança, os dados extraídos e os sinais de fraude específicos que acionaram a sinalização. Isso garante que nenhum documento fique sem processamento.

Mantenha-se informado

Receba as nossas análises de conformidade e guias práticos diretamente no seu email.

Comece agora

Descubra as nossas ofertas adaptadas ao seu volume e fale com um especialista.