Saltar al contenido principal

Diccionario de errores

ERPly Pro retorna errores en formato RFC 9457 — Problem Details for HTTP APIs. Cada respuesta de error incluye un campo type que apunta a una entrada de este diccionario:

{
"type": "https://errors.api.erply.pro/dgii-17-totales-inconsistentes",
"title": "Totales no coinciden con los detalles",
"status": 422,
"detail": "DGII código 17: Totales no coinciden con los detalles",
"correlationId": "1-65fa7c3a-6f9c2d8e0a1b2c3d4e5f6789",
"dgii": { "code": "17", "trackId": "20260501-DGII-9988" }
}

Categorías

CategoríaDescripciónEjemplos
AutenticaciónToken inválido o ausenteunauthorised
ValidaciónEl payload no cumple el contrato APImalformed-json, validation-error
e-CF / DGIIDGII rechazó el comprobanteCódigos 1106
FirmaXAdES-BES inválido o certificado caducadoCódigos 3035
DisponibilidadDGII inalcanzable / mantenimientodgii-unavailable, 70, 71
ConfiguraciónTenant sin RNC o PFXtenant-config-missing

Errores de la plataforma (Platform API error codes)

Los siguientes códigos están registrados de forma centralizada en lambdas/shared/error_codes.py y se emiten mediante la función error_response() de lambdas/shared/problem_response.py. Todos siguen el esquema RFC 9457 con el campo type apuntando a https://errors.api.erply.pro/<slug>.

Autenticación y autorización

SlugHTTPTítuloDescripción
unauthorised401UnauthorisedToken ausente, expirado o firma inválida.
forbidden403ForbiddenEl llamante no tiene permisos para esta operación.
approval-required403Approval requiredSe requiere token de aprobación maker-checker.
invalid-approval-token403Invalid approval tokenEl token de aprobación es inválido o ha expirado.

Validación de entrada

SlugHTTPTítuloDescripción
malformed-json400Malformed JSONEl body de la solicitud no es JSON válido.
missing-field400Required field missingUn campo obligatorio de la solicitud no fue proporcionado.
validation-error400Validation errorUno o más campos fallaron la validación de esquema.
unknown-action400Unknown actionEl valor del campo action no es reconocido.
unknown-operation400Unknown operationEl valor del campo operation no es reconocido.
unsupported-ecf-type422Unsupported e-CF typeEl tipo de e-CF está fuera del catálogo soportado.
mathematical-discrepancy422Mathematical discrepancyTotales o ITBIS no coinciden con los detalles de líneas.

DGII y servicios externos

SlugHTTPTítuloDescripción
dgii-unavailable503DGII service temporarily unavailableDGII no responde; reintente con back-off exponencial.
dgii-rejected422DGII rejected the documentDGII rechazó el comprobante (ver dgii.code en la respuesta).

Proveedor externo / AI

SlugHTTPTítuloDescripción
provider-not-configured503AI provider not configuredLa API key del proveedor no está provisionada en Secrets Manager.
upstream-error502Upstream provider errorEl proveedor externo retornó una respuesta de error.
network-error502Network errorError de red transitorio alcanzando al proveedor.

Configuración de tenant

SlugHTTPTítuloDescripción
tenant-config-missing503Tenant configuration missingEl tenant no tiene RNC, PFX o passphrase configurados.
tenant-resolver-not-configured500Tenant resolver not configuredError interno de configuración — resolver de tenant ausente.

Errores internos

SlugHTTPTítuloDescripción
internal-error500Internal server errorError inesperado; contacte soporte con el correlationId.

Errores emitidos por el API

Los siguientes errores los origina ERPly Pro antes de hablar con DGII:

Códigos DGII

Los códigos numéricos los emite la DGII y los enriquecemos con dgii.code/dgii.trackId en el Problem. Consulta cada código directamente:

Datos canónicos

El catálogo completo está disponible como JSON en /dgii-errors.json — útil para automatizar reglas de remediación en clientes propios.