Notificaciones de eventos y novedades
Contenido
En caso de tener que comunicar novedades específicas a los carriers, Mercado Libre hará una solicitud de POST a la URL para recibir novedades informada por cada carrier, en el formato:
POST /shipments/{shipmentId}/notificationSi la novedad se reciben 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á a 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.Además se incluirá, opcionalmente, el bloque de carrier_information como en el resto de las integraciones de la plataforma:
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| type | String | Tipo de notificación |
| date | Date | Fecha de la novedad, con formato: 2019-04-10T06:50:17.000-03:00. |
| agency.id | String | Agencia de coleta. |
Tipos de novedades
| Novedades | Descripción |
|---|---|
| ready_for_pickup | Se envía esta novedad después que imprime la etiqueta. |
| fulfillment | Se envía esta novedad cuando se envía una notificación de autorización o para enviar las notificaciones de datos fiscal es cargados y el shipment está en nuestro propio hub (LogisticType.FULFILLMENT). |
| dropped_off | Se envía esta novedad cuando el envío se deja en una de nuestra sucursales de drop off. |
| cancelled | Se envía esta novedad cuando se cancela una compra y el envío debe volver al vendedor. |
| picked_up | Se envía esta novedad cuando el carrier que hace la colecta ya tiene el envío y está en camino del nuestro hub. |
| tax_generated | Se envía cuando se genera el CTE guarda chuva asociado al envío. |
| in_hub | Se envía esta novedad cuando el envío se recibe en algún warehouse operacional de Mercado Libre. |
| ready_for_routing | Se envía cuando un envío está listo para ser incluído en el ruteo del carrier, porque será incluído en su próximo retiro de envíos en la operación. |
| rejected_in_hub | Se envía esta novedad cuando el envío es rechazado en el hub de Mercado Libre |
| picked_up_for_return | Se envía esta novedad cuando el envío llega al warehouse operacional de devoluciones |
Formato Response
Dentro del body, devolverá todos los datos resultantes de recibir la notificación, listados a continuación:
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| status_message | String | Cualquier detalle relevante al estado.Mandatorio en caso de fallo. |
HTTP Status Codes
| Status | Código HTTP | Descripción | Acción |
|---|---|---|---|
| OK | 200 | Cuando la notificación fue procesada satisfactoriamente | No se volverá a reintentar. |
| FAILED | 400 | Cuando la notificación no pudo ser procesada por un error en el request.Se espera que se retorne un “status_message” describiendo el motivo del error. | Dependiendo de la naturaleza del error, se intentarán corregirlos datos, antes de volver a procesar la solicitud. Podrían existir reintentos periódicos con nuevos datos. |
| ERROR | 500 | Cualquier error del lado del servidor. En este caso, status y status_message son opcionales. | Se volverá a intentar indefinidamente hasta obtener una respuesta satisfactoria de acuerdo al esquema de reintento definido. |
Ejemplos
Request:
{
"carrier_information": {
"contract": "",
"account": "",
"user": "",
"password": "",
"client_id": ""
},
"type":"dropped_off",
"date":"2019-04-10T06:50:17.000-03:00",
"agency": {
"id": "DO9"
}
}Response:
Success (200 OK)
En este caso, el body será null.
{}Failed (400 FAILED)
{
"status_message": "Invalid tracking number"
}Error (500 ERROR)
{
"status_message": "Internal error occurred"
}