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
}
NombreTipo de datoDescripción
error_codeText

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_messageTextMensaje descriptivo del error, con un máximo de 1000 caracteres.
statusNumberCó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 errorCasos de usoIntegración
already_processedAl momento de efectuar una cancelación y el paquete ya fue despachado y está en posesión el correo.Cancelación
agency_unavailableAl momento de efectuar una autorización con destino a una agencia, y esta misma esté inactiva o sea inválida.Autorización
invalid_accountAl 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.originAl 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.destinationAl 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_packageAl momento de una autorización y la información del paquete es inválida o restringida. Ej: inflamable, frágil, etc.Autorización
invalid_dimensionsAl 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.originAl 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.destinationAl 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.sellerAl 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.buyerAl 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