Pular para o conteúdo principal

API — Documentos

Para quem é esta página

Engenheiros back-end e front-end. Para fluxo UX de upload, veja Fluxo do Cidadão.

Upload de Documento

POST /api/v1/documentos/upload
Content-Type: multipart/form-data
Authorization: Bearer {JWT}

Fields:
processo_id: UUID
tipo_documento: matricula_imovel | ccir | planta_georeferenciada | ...
arquivo: File (max 50MB)

Response 202 (aceito para processamento assíncrono):

{
"data": {
"id": "uuid",
"status": "aguardando",
"hash_sha256": "abc123..."
}
}
202 Accepted, não 201 Created

O upload retorna 202 porque o processamento (OCR, validação) é assíncrono. O documento existe no storage, mas ainda não foi validado.

Tipos de Documento Aceitos

TipoDescrição
matricula_imovelCertidão de matrícula — obrigatório
ccirCertificado de Cadastro de Imóvel Rural — obrigatório
planta_georeferenciadaPlanta com coordenadas georreferenciadas
memorial_descritivoMemorial descritivo do levantamento
car_anteriorNúmero de CAR anterior (para retificações)
declaracao_areaDeclaração de área assinada
outrosQualquer outro documento relevante

Consultar Status

GET /api/v1/documentos/{id}/status
→ { "status": "valido" | "invalido" | "aguardando" | "processando" }

GET /api/v1/documentos/{id}/dados-extraidos
→ { "numero_matricula": "...", "area_ha": 150.0, "proprietario_nome": "..." }

Formatos e Limites

ParâmetroValor
Tamanho máximo50MB por arquivo
Tipos aceitosapplication/pdf, image/jpeg, image/png, image/tiff
Hash de integridadeSHA-256 calculado no servidor
DeduplicaçãoHash duplicado retorna CAR-007
Qualidade da imagem

OCR requer boa qualidade. Documentos fotografados com baixa iluminação ou desfocados terão confiança abaixo de 70% e o sistema solicitará reenvio com instruções.