Notificaciones de eventos y novedades (HU)

Contenido

Introducción

Al momento de comunicar novedades específicas a los carriers sobre HU, Mercadolibre hará una solicitud de ​POST ​a la URL para enviar novedades, en el formato:

      POST /handling_units/{handling_unit_id}/notifications

Si la novedad se recibe de manera exitosa, se espera que el servicio del carrier devuelva un resultado de acuerdo a lo detallado en la sección “Status Codes”. En caso de error, se volverá intentar la comunicación acorde al esquema de reintento definido en la integración.

Formato Request

Dentro del body se enviará un objeto JSON con los campos listados a continuación. Cabe destacar que se pueden agregar más campos en el futuro, por lo que al interpretar esta información se debe preparar el código para descartar campos adicionales que no necesiten ser interpretados.

NombreTipo de datoDescripción
typeStringTipo de notificación
dateDateFecha de la novedad,
formato RFC3339:
2002-10-02T10:00:00-05:00.

Formato Request OAuth

Para el mecanismo de autenticación a través de la generación de un token con OAuth, se debe agregar el siguiente encabezado a la petición:

--request POST 'https://hostname/handling_units/{handling_unit_id}/notifications'
--header 'Authorization: Bearer + TOKEN'
--body 'Se mantiene lo descrito en cada integración'

Tipos de novedades

NovedadesDescripción
finishedEl HU fue cerrado
addedEl HU se agrega a un dispatch
removedEl HU se saca de un dispatch
dispatchedEl HU fue despachado y está en dominio del carrier
prepared_for_dispatchEl HU esta listo para despachar (opcional)

Formato Response

Dentro del body, devolverá todos los datos resultantes de recibir la notificación, listados a continuación:

NombreTipo de datoDescripción
statusStringStatus code de respuesta.
messageStringCualquier detalle relevante alestado. Mandatorio en caso de fallo.
causeArray[String]Listado de las causas del error en forma de array(optativo)

Status codes

Status codeSignificado
"accepted"La notificación fue aceptada correctamente
"ignored"La notificación fue ignorada (Este caso se utiliza cuando el carrier no implementa nada para hacer uso de la novedad, o simplemente la ignora. En este caso, TMS no reintentara notificar al carrier)
"error"Ocurrió un error al procesar la notificación, server side. (En este caso,TMS reintentara enviar la notificación 2 veces cada 100 ms desde la última notificación)
"bad_request"La notificación no pudo ser procesada por un error en el request departe de TMS. (TMS no reintentara la notificación, sólo guardará un log de registro del intento fallido)

HTTP Status Codes

StatusCódigo HTTPDescripciónAcción
OK200Cuando la notificación fue procesada satisfactoriamenteNo se volverá a reintentar.
FAILED400Cuando la notificación no pudo ser procesada por un error en el request.Se espera que se retorne un “message” describiendo el motivo del error.No se volverá a reintentar.
ERROR500Cualquier error dellado del servidor. En este caso, cause es opcional.Se intentará hacer la notificación 2 veces más cada 100 ms.

Ejemplos

Request:

{
    "type": "finished",
    "date": "2002-10-02T10:00:00-05:00"
}

Response:

Success (200 OK)

En este caso, el mensaje es opcional.

{
    "status": "accepted"
}

Failed (400 FAILED)

{
  "status": "bad_request",
  "message": "Invalid HU",
  "cause":["The HU id is not valid"]
}

Error (500 ERROR)

{
  "status": "error",
  "message": "Internal error occurred",
  "cause":["internal server error"]
}