Sube archivos individuales a un caso, consulta su OCR y reclasifícalos cuando lo necesites.
| Método | Ruta | Descripción |
|---|---|---|
POST | /v1/documents | Sube un documento a un caso |
GET | /v1/documents/{document_id} | Consulta metadata y OCR del documento |
GET | /v1/documents/{document_id}/extraction-data | Extracción avanzada (vigencia, códigos QR/barras, titular) |
DELETE | /v1/documents/{document_id} | Da de baja el documento (baja lógica) |
POST | /v1/documents/{document_id}/restore | Restaura un documento dado de baja |
PATCH | /v1/documents/{document_id}/ocr | Inyecta OCR de forma manual |
POST | /v1/documents/{document_id}/classify | Reclasifica el documento (manual o automático) |
POST | /v1/documents/{document_id}/process | Lanza OCR automático |
POST | /v1/documents/{document_id}/reclassify | Cambia el tipo y vuelve a procesar |
/v1/documents — Subir documento#Sube un archivo y lo asocia a un caso.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
case_id | UUID | Sí | Caso al que pertenece el documento |
mime_type | string | Sí | MIME del archivo (ver tabla de soportados) |
url | string | Condicional | URL pública del archivo. XOR con base64. |
base64 | string | Condicional | Contenido en base64. XOR con url. |
type | string | No | Tipo del documento (ver Tipos de documento). Si no lo envías, se intentará detectar automáticamente. |
parent_file_id | UUID | No | Documento padre dentro del mismo caso (p. ej. anexo de una factura). |
Límite de tamaño: 20 MB por archivo. Debes enviar uno y solo uno entre
urlybase64.
application/pdf · application/xml · image/jpeg · image/jpg · image/png · image/tiff · image/tif · image/x-tiff
curl -X POST https://api.nexcar.mx/v1/documents \
-H "x-api-key: tu_api_key" \
-H "Content-Type: application/json" \
-d '{
"case_id": "7040fd87-5f49-4187-b2a3-b4a19670825c",
"url": "https://tu-storage.example.com/repuve-consulta.pdf",
"mime_type": "application/pdf",
"type": "repuve"
}'
BASE64=$(base64 -i ./factura.pdf)
curl -X POST https://api.nexcar.mx/v1/documents \
-H "x-api-key: tu_api_key" \
-H "Content-Type: application/json" \
-d "{
\"case_id\": \"7040fd87-5f49-4187-b2a3-b4a19670825c\",
\"base64\": \"$BASE64\",
\"mime_type\": \"application/pdf\",
\"type\": \"factura\"
}"
201#{
"document_id": "abc123",
"url": "https://...nexcar.mx/storage/.../repuve-consulta.pdf"
}
| HTTP | Código | Causa |
|---|---|---|
400 | MISSING_PARAMETER | Falta case_id, mime_type o la fuente del archivo |
400 | VALIDATION_ERROR | UUID inválido, MIME no soportado, archivo > 20 MB, ambos url y base64 |
404 | RESOURCE_NOT_FOUND | El case_id o el parent_file_id no existe |
/v1/documents/{document_id}#Devuelve metadata, OCR y datos extraídos del documento.
curl https://api.nexcar.mx/v1/documents/abc123 \
-H "x-api-key: tu_api_key"
200#{
"case_id": "7040fd87-5f49-4187-b2a3-b4a19670825c",
"url": "https://...nexcar.mx/storage/.../factura.pdf",
"mime_type": "application/pdf",
"type": "factura",
"json_ocr": { "...": "..." },
"parsed_data": {
"vin": "3VWFE21C04M000001",
"rfc_emisor": "ABC010101AAA",
"monto_total": 285000.00,
"fecha_emision": "2024-08-15"
},
"validity": {
"document_validity": "vigente",
"codes": ["QR detectado"],
"userInfo": { "nombre": "JUAN PÉREZ GARCÍA" }
}
}
json_ocr y parsed_data son null mientras el OCR no haya terminado. Para no estar haciendo polling, configura un webhook.
/v1/documents/{document_id}/classify#Cambia o asigna el tipo del documento. Útil cuando subiste un archivo sin type y deseas clasificarlo manualmente, o cuando quieres forzar una nueva detección automática.
curl -X POST https://api.nexcar.mx/v1/documents/abc123/classify \
-H "x-api-key: tu_api_key" \
-H "Content-Type: application/json" \
-d '{ "type": "tenencia" }'
Si omites el cuerpo, ejecuta clasificación automática con base en el contenido.
/v1/documents/{document_id}/reclassify#Cambia el tipo del documento y relanza el OCR con la nueva clasificación. La respuesta es 202 Accepted con el job_id del nuevo procesamiento.
curl -X POST https://api.nexcar.mx/v1/documents/abc123/reclassify \
-H "x-api-key: tu_api_key" \
-H "Content-Type: application/json" \
-d '{ "type": "factura_xml" }'