Cancelación de envíos
Contenidos
En caso de tener que cancelar un envío, Mercado Libre hará una solicitud PUT a la URL de autorización:
PUT service_url/shipments/shipment_id/authorizationDependiendo de si la cancelación es satisfactoria o no, se espera que el servicio del correo 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:
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| status | String | Contiene los valores de status. CANCEL |
| tracking_number | String | Identificador del envío provisto por el carrier cuando fue autorizado. |
Formato Response
Dentro del body, devolverá todos los datos resultantes de la cancelación, listados a continuación:
| Nombre | Tipo de dato | Descripción | Tipo |
|---|---|---|---|
| status | String | estado del pedido de cancelación.
| Mandatorio. |
| status_message | String | Cualquier detalle relevante al estado. | Mandatorio en caso de fallo. |
| tracking_number | String | Identificador el envío. | Mandatorio. |
Status Codes
| Status | Status Message | Código HTTP | Descripción | Acción |
|---|---|---|---|---|
| CANCELLED | - | 200 | Cuando la cancelación fue procesada satisfactoriamente. | El envío ya fue cancelado y no se volverá a reintentar. |
| CANCELLED | BLOCKED | 200 | Para el escenario de bloqueo de paquetes en poder del carrier se espera que retorne "status": "CANCELLED" junto con el "status_message": "BLOCKED". | Bloquear la entrega y comenzar el flujo de devolución. |
| FAILED | - | 400 | Cuando la cancelación no pudo ser procesada por un error en el request. Se espera que se retorne “status”: “FAILED” junto con el “status_message” describiendo el motivo del error. | Dependiendo de la naturaleza del error, se intentarán corregir los datos, antes de volver a procesar la solicitud. Podrían existir reintentos periódicos. |
| 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. |
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 PUT 'https://hostname/shipments/{shipment_id}/authorization'
--header 'Authorization: Bearer + TOKEN'
--body 'Se mantiene lo descrito en cada integración'Ejemplos
Request:
{
"carrier_information": {
"account": "A432765637",
"contract": "000123ABC87",
"user": "",
"password": "pa$word",
"client_id": "432765637"
},
"status": "CANCEL",
"tracking_number": "1234NLUG123"
}Response:
Cancelled (200 OK)
{
"status":"CANCELLED",
"status_message":"",
"tracking_number": "1234NLUG123"
}Blocked (200 OK)
{
"status":"CANCELLED",
"status_message":"BLOCKED",
"tracking_number": "1234NLUG123"
}Failed (400 FAILED)
{
"status":"FAILED",
"status_message":"Invalid tracking number",
"tracking_number": "1234NLUG123"
}Error (500 ERROR)
{
"status":"ERROR",
"status_message":"Internal error occurred",
"tracking_number": "1234NLUG123"
}