Pular para o conteúdo principal

Classificar documento automaticamente

Envia a imagem de um documento sem declarar o template. A OCR identifica o tipo e o lado do documento, confere se ele está na lista allowed_templates e, em seguida, aplica as mesmas validações e a mesma extração do envio com template.

Use quando o usuário pode enviar mais de um tipo de documento — por exemplo, CNH ou RG — e você não quer pedir que ele escolha antes da captura.

Endpoint​

ENDPOINT
/image
MÉTODO
POST
STATUS
200

É o mesmo endpoint do envio com template. O que muda o comportamento é o corpo: envie allowed_templates no lugar de template. Os dois campos são mutuamente exclusivos — enviar ambos, ou nenhum, retorna 400.

Autenticação​

Envie a chave de API no header Authorization. Ver Autenticação.

Corpo da requisição​

CampoTipoObrigatórioDescriçãoTamanho
document_b64stringSimArquivo do documento em base64. JPEG ou PDF de uma única página.3 MB (JPEG), 30 MB (PDF)
allowed_templatesstring[]SimTipos de documento que você aceita receber. Valores na tabela Templates permitidos.—
{
"document_b64": "YOUR_BASE64_DOCUMENT",
"allowed_templates": ["cnh", "rg"]
}
import requests

response = requests.post(
"https://api.caas.qitech.app/ocr/image",
headers={"Authorization": "YOUR_API_KEY"},
json={
"document_b64": "YOUR_BASE64_DOCUMENT",
"allowed_templates": ["cnh", "rg"],
},
)
print(response.status_code, response.json())

Templates permitidos​

Informe o documento inteiro (cnh) para aceitar qualquer um dos lados, ou um lado específico (cnh_front) para aceitar só aquele lado.

ValorAceita
cnhCNH física, frente (cnh_front) ou verso (cnh_back).
cnh_front, cnh_backSó o lado indicado da CNH física.
cnh_digitalPDF da CNH digital.
rgRG ou CIN física, frente (rg_front) ou verso (rg_back).
rg_front, rg_backSó o lado indicado do RG ou da CIN física.
cin_digitalPDF da CIN digital.
rg_digitalPDF do RG digital.
national_migration_registryCRNM, frente ou verso.
national_migration_registry_front, national_migration_registry_backSó o lado indicado da CRNM.
national_registry_of_foreignersRNE, frente ou verso.
national_registry_of_foreigners_front, national_registry_of_foreigners_backSó o lado indicado do RNE.

Resposta​

CampoTipoDescrição
ocr_keyuuidChave da imagem. Use-a para referenciar o documento nos demais produtos QI Tech.
templatestringTemplate identificado, sempre com o lado quando o documento tem dois: cnh_front, rg_back, cnh_digital...
is_inferred_templatebooleantrue quando o template foi identificado pela classificação automática.
allowed_templatesstring[]A lista enviada na requisição.
created_atstringData e hora do processamento, em ISO 8601 (UTC).
{
"ocr_key": "f1c0d2e1-f950-4360-896d-36588e443fc9",
"template": "cnh_front",
"is_inferred_template": true,
"allowed_templates": ["cnh", "rg"],
"created_at": "2026-10-16T13:45:12Z"
}

Recupere a imagem depois pelo ocr_key, como descrito em Enviando um documento.

Aviso importante

Não use dados reais de pessoas físicas ou jurídicas no ambiente de sandbox.

Erros​

Documento reprovado​

Quando a imagem é processada mas reprovada, a resposta é 400 e traz o ocr_key da tentativa. title indica a categoria e reason, o motivo:

{
"title": "invalid",
"description": "The uploaded image cannot be successfully processed.",
"reason": "document_not_allowed",
"ocr_key": "f1c0d2e1-f950-4360-896d-36588e443fc9"
}
StatustitlereasonQuando acontece
400invalidtemplate_not_classifiedA OCR não reconheceu o documento.
400invaliddocument_not_allowedO documento foi reconhecido, mas não está em allowed_templates.
400invalidmultiple_documents_foundHá mais de um documento na imagem.
400invalidinvalid_documentA imagem não foi aceita como um documento válido do tipo identificado.
400invalidmissing_document_sectionParte do documento está fora da imagem ou encoberta.
400invalidmissing_dataCampos obrigatórios do documento não puderam ser lidos.
400invalidqr_code_not_foundPDF digital (CNH, RG ou CIN) sem QR code.
400invalidnot_digitally_signedPDF digital (CNH, RG ou CIN) sem a assinatura digital do emissor.
400bad_qualityblurred_documentImagem desfocada ou de baixa qualidade. Só para JPEG.
400bad_qualitydocument_position_invalidO documento encosta na borda da imagem. Só para JPEG.
400bad_qualityglare_on_documentReflexo que encobre ou distorce informações do documento.
400bad_qualitycolor_irregularityDistribuição de cor irregular no documento.
400bad_qualityface_not_foundNenhum rosto detectado na foto do documento.
400bad_qualityface_out_of_boundsO rosto está parcialmente fora da imagem.
400bad_qualityface_brightness_problemO rosto está escuro demais.
400bad_qualityface_too_closeO rosto ocupa uma área grande demais da imagem.
400bad_qualityface_too_distantO rosto ocupa uma área pequena demais da imagem.

A validação de rosto (face_*) só é aplicada aos lados com foto: frente da CNH, frente do RG ou da CIN, frente da CRNM e verso do RNE.

Requisição recusada​

Estes erros acontecem antes do processamento e não geram ocr_key:

StatustitlereasonQuando acontece
400Invalid JSON—O corpo da requisição não é um JSON válido.
400Request data failed validation—Corpo fora do contrato: campo obrigatório ausente, campo desconhecido, valor fora da lista, ou template enviado junto com allowed_templates.
400Invalid base64invalid_base64document_b64 não é base64 válido, ou o arquivo não é JPEG nem PDF.
400File is too bigmax_file_size_exceededJPEG acima de 3 MB ou PDF acima de 30 MB.
400Document is too bigmax_pages_exceededPDF com mais de uma página.
401Authorization header not found—Header Authorization ausente.
401Deactivated ApiKey—Chave de API desativada.
403Invalid ApiKey—Chave de API inexistente.
500Internal Server Error—Falha interna. Tente novamente mais tarde.

Os status HTTP genéricos estão em Status HTTP.