Saltar al contenido principal

Manejo de Errores

Todas las responses de error de DVS comparten un envoltorio JSON común:

{
"error_code": "071-403-document-type-not-allowed",
"message": "Provider does not have access to the requested document_type/country/agreement combination",
"additional_information": {
"document_type": "OPME",
"country_code": "BR",
"agreement_code": "BRADESCO_xxx"
}
}

Formato del error_code

071-<HTTP_STATUS>-<sufijo-opcional>

  • 071 es el prefijo de DVS.
  • <HTTP_STATUS> es el HTTP status code (por ejemplo, 403, 422).
  • <sufijo-opcional> desambigua múltiples causas del mismo status.

Errores comunes

Statuserror_codeCausaAcción
401071-401Bearer token faltante o inválidoRefrescar token. Reintentar una vez.
403071-403Token válido pero sin la autoridad requeridaRevisar el scope al solicitar el token.
403071-403-document-type-not-allowedProvider no autorizado para esa combinación (doc_type, country, agreement)Usar GET /v1/document-types para descubrir qué está permitido. Contactar a OSIGU si se necesita más acceso.
403071-403-tenant-mismatchIntentando leer un recurso de otro tenantNo hacer eso.
409071-409-idempotency-mismatchMisma Idempotency-Key usada con un body distintoUsar una key nueva.
413071-413-file-too-largeArchivo inline excede 3MB (sync) / 6MB (async)Usar la variante con S3 URL o URL externa.
422071-422El body falló la validationInspeccionar additional_information. Corregir y reenviar.
422071-422-agreement-requiredValidation request con múltiples opciones de agreementReenviar con agreement_code explícito.
422071-422-ssrf-blockedURL externa apunta a una IP privada / host bloqueadoUsar una URL HTTPS pública.
422071-422-unknown-document-typedocument_type no está en el catálogoUsar GET /v1/document-types para ver los slugs válidos.
429071-429Cuota diaria excedidaEsperar hasta medianoche UTC. additional_information.retry_after_seconds indica la espera exacta.
502071-502-classifier-upstreamEl motor de classification upstream falló tras los retries de DVSEsperar y reenviar con Idempotency-Key nueva.
502071-502-extraction-failedEl Document Processor falló tras los retriesIgual — esperar y reenviar.
504071-504-sync-timeoutLa classification sync excedió el presupuesto de tiempoEl recurso aún se está procesando. Hacer polling de GET /classification-requests/{id} con el id retornado.

Estrategia de retry

No reintentar 4xx (excepto 429)

Los errores 4xx indican un problema del cliente. Reintentar sin cambios producirá el mismo error. Corregir primero el request.

Reintentar 5xx con backoff exponencial

Usar 3 intentos: inmediato, +30s, +120s. Usar una Idempotency-Key nueva por seguridad.

En 429, respetar retry_after_seconds

El error incluye additional_information.retry_after_seconds. No reintentar antes de ese tiempo.

En 504, cambiar a polling

El recurso aún se está procesando. Obtener el classification_request_id del body del error y hacer polling de GET /classification-requests/{id} cada pocos segundos.

Fallas de red

Si el request nunca llega a DVS (timeout, reseteo de conexión), DVS pudo o no haberlo procesado. Usar Idempotency-Key en cada request para que los retries no dupliquen el trabajo.

Ver Idempotency para el patrón completo.