Estándar de errores
Contenidos
Introducción
Con el fin de mejorar la gestión de los errores provenientes de los web service de las transportistas, y poder accionar de diferentes maneras en base a un determinado error esperado, se presenta la necesidad de implementar un estándar para códigos de errores.
Formato Response
Se deberá implementar la siguiente estructura ante un fallo de la aplicación.
{
"error_code": "{error acronimo}",
"status_message":"{mensaje descriptivo}",
"status": 400
}| Nombre | Tipo de dato | Descripción |
|---|---|---|
| error_code | Text | Un acrónimo o código, alfanumérico, que identifique al error, en formato snake_case. Ej: agency_unavailable => para un error de agencia inactiva Aclaración: Campo obligatorio solo para los casos de usos definidos. |
| status_message | Text | Mensaje descriptivo del error, con un máximo de 1000 caracteres. |
| status | Number | Código HTTP del status error (4xx - 5xx). |
Definición de códigos
Dado un conjunto de casos de usos que son necesarios tener identificados para poder accionar, y poder tomar decisiones que nos ayuden a atacar esa problemática, se presentan un listado de códigos de errores que serán mandatorios implementar si se cumple dado caso de uso.
Estos errores siempre van a ser identificados con un Status Code 400, para cualquier problema que no esté incluido dentro de estos casos de usos, el campo "error_code" permanecerá vacío, tomando únicamente como referencia de lo ocurrido el campo "status_code" y "status_message".
| Código de error | Casos de uso | Integración |
|---|---|---|
| already_processed | Al momento de efectuar una cancelación y el paquete ya fue despachado y está en posesión el correo. | Cancelación |
| agency_unavailable | Al momento de efectuar una autorización con destino a una agencia, y esta misma esté inactiva o sea inválida. | Autorización |
| invalid_account | Al momento de efectuar una autorización o cancelación, y al menos uno de los campos user, password, contract o account, es invalido. | Autorización Cancelación |
| invalid_address.origin | Al momento de efectuar una autorización y dentro de la información que respecta a la dirección (nodo address) de origen (con excepción de los códigos postales), contienen información inválida de cualquiera de los campos que lo componen. | Autorización |
| invalid_address.destination | Al momento de efectuar una autorización y dentro de la información que respecta a la dirección (nodo address) de destino (con excepción de los códigos postales), contienen información inválida de cualquiera de los campos que lo componen. | Autorización |
| invalid_package | Al momento de una autorización y la información del paquete es inválida o restringida. Ej: inflamable, frágil, etc. | Autorización |
| invalid_dimensions | Al momento de una autorización y la información de las dimensiones es inválida o supera márgenes establecidos. | Autorización |
| out_of_range_coverage.origin | Al momento de una autorización y el código postal del origen no se encuentran dentro del rango de cobertura que acepta dicho correo. | Autorización |
| out_of_range_coverage.destination | Al momento de una autorización y el código postal del destino no se encuentran dentro del rango de cobertura que acepta dicho correo. | Autorización |
| invalid_user_information.seller | Al momento de una autorización y la información del vendedor contiene información inválida de cualquiera de los campos que la componen. | Autorización |
| invalid_user_information.buyer | Al momento de una autorización y la información del comprador contiene información inválida de cualquiera de los campos que la componen. | Autorización |