Nexcar

Documentos

Sube archivos individuales a un caso, consulta su OCR y reclasifícalos cuando lo necesites.

Endpoints#

MétodoRutaDescripción
POST/v1/documentsSube un documento a un caso
GET/v1/documents/{document_id}Consulta metadata y OCR del documento
GET/v1/documents/{document_id}/extraction-dataExtracció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}/restoreRestaura un documento dado de baja
PATCH/v1/documents/{document_id}/ocrInyecta OCR de forma manual
POST/v1/documents/{document_id}/classifyReclasifica el documento (manual o automático)
POST/v1/documents/{document_id}/processLanza OCR automático
POST/v1/documents/{document_id}/reclassifyCambia el tipo y vuelve a procesar

POST /v1/documents — Subir documento#

Sube un archivo y lo asocia a un caso.

Cuerpo#

CampoTipoRequeridoDescripción
case_idUUIDCaso al que pertenece el documento
mime_typestringMIME del archivo (ver tabla de soportados)
urlstringCondicionalURL pública del archivo. XOR con base64.
base64stringCondicionalContenido en base64. XOR con url.
typestringNoTipo del documento (ver Tipos de documento). Si no lo envías, se intentará detectar automáticamente.
parent_file_idUUIDNoDocumento 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 url y base64.

MIME types soportados#

application/pdf · application/xml · image/jpeg · image/jpg · image/png · image/tiff · image/tif · image/x-tiff

Ejemplo con curl (URL)#

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"
  }'

Ejemplo con curl (base64)#

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\"
  }"

Respuesta 201#

{
  "document_id": "abc123",
  "url": "https://...nexcar.mx/storage/.../repuve-consulta.pdf"
}

Errores#

HTTPCódigoCausa
400MISSING_PARAMETERFalta case_id, mime_type o la fuente del archivo
400VALIDATION_ERRORUUID inválido, MIME no soportado, archivo > 20 MB, ambos url y base64
404RESOURCE_NOT_FOUNDEl case_id o el parent_file_id no existe

GET /v1/documents/{document_id}#

Devuelve metadata, OCR y datos extraídos del documento.

Ejemplo con curl#

curl https://api.nexcar.mx/v1/documents/abc123 \
  -H "x-api-key: tu_api_key"

Respuesta 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.

POST /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.

POST /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" }'