Documentación Mercado Libre
Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.Documentación
Envíos Flex
Envíos Flex es un servicio que permite a los vendedores realizar envíos por su cuenta, los 7 días de la semana. Integra envíos en el día o al día siguiente para mejorar los tiempos de entrega y aumentar la penetración en el mercado. Con Envíos Flex, los vendedores pueden tener mayor control y seguimiento sobre sus envíos, ofreciendo un servicio más rápido y eficiente a sus clientes.
Conoce más sobre:
- Cómo funciona Envíos Flex
- Tarifas de los Envíos Flex
- Consejos para gestionar adecuadamente mis Envíos Flex
- Cómo puedo gestionar mis domicilios para Envíos Flex
- Cómo ofrecer Envíos Flex y Full en la misma publicación
- Consejos para hacer entregas con Envíos Flex
- Cómo evito la suspensión de zonas para mis Envíos Flex
Vista del vendedor:
Áreas de cobertura por países
Para poder ofrecer Envíos Flex, la dirección de envío del vendedor debe estar habilitada para alguna de las áreas de cobertura según el país:
País | Cobertura |
---|---|
Argentina | AMBA (Área Metropolitana de Buenos Aires) Córdoba |
Brasil | São Paulo Río de Janeiro Brasilia Belo Horizonte Porto Alegre Salvador Bahía Curitiba |
México | CDMX (Zona Metropolitana del Valle de México) Mérida |
Chile | Santiago (Región Metropolitana) Valparaíso |
Colombia | Bogotá Medellín Cali |
Uruguay | Montevideo Canelones |
Perú | Lima (Área Metropolitana) |
Ecuador | Quito |
Configurar un usuario de test
Para configurar la funcionalidad de Envíos Flex para usuarios de prueba, tomar en cuenta:
- Inicie sesión en la cuenta en la que desea habilitar Envío Flex.
- Asegúrese de que la cuenta tenga publicaciones activas en ME2.
- Verifique que su cuenta tenga una reputación Amarilla o Verde.
- Asegúrese de tener una dirección de correo compatible con el área de cobertura de su país.
- Configure la dirección de envío de acuerdo con las áreas de cobertura en los países correspondientes.
- Active Envíos Flex a la cuenta.
Una vez que haya completado estos pasos, debería poder utilizar Envíos Flex como usuario de prueba.
Consultar suscripciones de un usuario
Este endpoint permite consultar las suscripciones que tiene un usuario.
- Si el usuario solo activó Flex, tendrá una única suscripción.
- Si el usuario también activó Turbo, tendrá dos suscripciones, dado que para activar a Turbo, el usuario debe estar debe tener activo Flex primero.
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/users/$USER_ID/subscriptions/v1
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/MLA/users/1438865529/subscriptions/v1
Respuesta:
[
{
"id": 111181,
"site_id": "MLA",
"user_id": 1438865529,
"mode": "FLEX",
"configuration_type": {
"coverage": "zone",
"delivery": "custom"
},
"service_id": 736230,
"status": {
"id": "in",
},
"creation_date": "2023-08-02T06:34:40Z"
},
{
"id": 111183,
"site_id": "MLA",
"user_id": 1438865529,
"mode": "TURBO",
"configuration_type": {
"coverage": "radius",
"delivery": "accurate"
},
"service_id": 738216,
"status": {
"id": "in",
},
"creation_date": "2023-08-02T06:35:30Z"
}
]
Parámetros de respuesta:
- id: ID único de la suscripción.
- site_id: Identificador del país.
- user_id: ID del usuario.
- mode: Tipo de suscripción ("FLEX" en este caso).
- configuration_type: Tipo de configuración de la suscripción ("FLEX" en este caso).
- configuration_type.coverage: Tipo de cobertura.
- configuration_type.delivery: Tipo de entrega.
- service_id: ID del servicio asociado a la suscripción.
- status: Estado de la suscripción.
- status.id: Tipos de estados de la suscripción:
- in: La suscripción está activa. En este estado el usuario puede cambiar su configuración y recibirá pedidos de envíos para el modo de suscripción.
- out: La suscripción no está activa. En este estado el usuario no puede cambiar la configuración.
- pending: La suscripción está pendiente de activación. En este estado el usuario puede cambiar su configuración aunque no va a recibir pedidos para realizar envíos.
- creation_date: Fecha de creación de la suscripción.
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
200 - OK | - | Se actualizó correctamente la configuración. | - |
400 - Bad Request | empty site id | El site_id está vacío | Validar el site_id. |
400 - Bad Request | invalid site_id | Site_id inválido | Validar si el site_id está habilitado para Envíos Flex. |
400 - Bad Request | can't access to resource | Site_id inválido | Validar si el site_id está habilitado para Envíos Flex. |
404 - Not Found | user not found | No existe el usuario | Validar el user_id. |
Consultar la configuración de la suscripción
Este endpoint permite consultar la configuración de las suscripciones que tiene un usuario, para este caso de Flex.
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/configuration/v3
Ejemplo:
{
"query": "{ configuration(user_id: 000000000, service_id: 0000000, flavour: \"gm\", original_configuration_required: false) { address { id address_line city { id name } zip_code } subscription { id site_id user_id flavour facility_id service_id status { id cause } creation_date training_times { original { value unit } remaining { value unit } activation_date } } delivery_window is_moderated delivery_ranges { week { capacity type processing_time from to et_hour calculated_cutoff } saturday { capacity type processing_time from to et_hour calculated_cutoff } sunday { capacity type processing_time from to et_hour calculated_cutoff } } holidays { description selected type date } working_days zones { id enabled is_mandatory label neighborhoods polygon { type geometry { type coordinates } properties { name } } price { cents currency_id decimal_separator fraction symbol } scope selected transit_time { offset value } calculated_cutoff { week saturday sunday } } origin_zone { enabled id is_mandatory label neighborhoods selected } disabled_features availables { cutoff capacity capacity_range { from to } transit_time ranges radius_range { from to } accurate_ranges { from to } } } }"
}
Respuesta:
{
"query": {
"address": {
"address_line": "Testing Address 3000",
"city": {
"id": "",
"name": "Barrio Mitre"
},
"id": "1369500000",
"zip_code": "1234"
},
"availables": {
"accurate_ranges": [],
"capacity": [
0,
10,
20,
30,
40,
60,
80,
100,
200,
300,
400,
500
],
"capacity_range": {
"from": 10,
"to": 5000
},
"cutoff": [
12,
13,
14,
15,
16,
17,
18
],
"radius_range": {
"from": 0,
"to": 0
},
"ranges": [
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21
],
"transit_time": []
},
"delivery_ranges": {
"saturday": null,
"sunday": null,
"week": [
{
"calculated_cutoff": 14,
"capacity": 30,
"et_hour": 14,
"from": 12,
"processing_time": 14,
"to": 21,
"type": "cpt"
}
]
},
"delivery_window": "next_day",
"disabled_features": [
"CUTOFF_BY_ZONE",
"CAPACITY_BY_DAY"
],
"holidays": [
{
"date": "2024-10-11",
"description": "Turístico",
"selected": false,
"type": "holiday"
},
{
"date": "2024-10-12",
"description": "Día del Respeto a la Diversidad Cultural",
"selected": false,
"type": "holiday"
},
{
"date": "2024-11-20",
"description": "Día de la Soberanía Nacional",
"selected": false,
"type": "holiday"
}
],
"is_moderated": true,
"origin_zone": {
"enabled": true,
"id": "CABA",
"is_mandatory": false,
"label": "CABA",
"neighborhoods": [],
"selected": false
},
"subscription": {
"creation_date": "2024-04-01T21:25:51Z",
"facility_id": "ARP17509449051",
"flavour": "gm",
"id": 144554,
"service_id": 931818,
"site_id": "MLA",
"status": {
"cause": "full",
"id": "in"
},
"training_times": null,
"user_id": 1750944905
},
"working_days": [
"week"
],
"zones": [
{
"calculated_cutoff": {
"saturday": null,
"sunday": null,
"week": 14
},
"enabled": true,
"id": "AR-B-BERISSO",
"is_mandatory": false,
"label": "Berisso",
"neighborhoods": [],
"polygon": {
"geometry": {
"coordinates": [
[
[
-57.754044,
-34.907747
],
[
-57.785072,
-34.888363
],
[
-57.80345,
-34.87287
],
[
-57.815767,
-34.865179
],
[
-57.832729,
-34.855506
],
[
-57.848407,
-34.846839
],
[
-57.864118,
-34.836794
],
[
-57.874909,
-34.826711
],
[
-57.882795,
-34.825486
],
[
-57.900879,
-34.863917
],
[
-57.901044,
-34.864304
],
[
-57.901297,
-34.864762
],
[
-57.901578,
-34.865325
],
[
-57.901871,
-34.865789
],
[
-57.901997,
-34.866
],
[
-57.902125,
-34.866197
],
[
-57.902252,
-34.866398
],
[
-57.902394,
-34.866632
],
[
-57.902652,
-34.866991
],
[
-57.90296,
-34.867443
],
[
-57.903223,
-34.867775
],
[
-57.903556,
-34.868223
],
[
-57.90386,
-34.868563
],
[
-57.904418,
-34.86921
],
[
-57.90499,
-34.869798
],
[
-57.905174,
-34.869981
],
[
-57.905485,
-34.8703
],
[
-57.905891,
-34.870662
],
[
-57.906301,
-34.871038
],
[
-57.906725,
-34.871387
],
[
-57.935007,
-34.896572
],
[
-57.934357,
-34.897006
],
[
-57.929486,
-34.900825
],
[
-57.929332,
-34.900945
],
[
-57.909298,
-34.916662
],
[
-57.902809,
-34.921738
],
[
-57.898758,
-34.924925
],
[
-57.886347,
-34.930087
],
[
-57.881011,
-34.931322
],
[
-57.862931,
-34.935499
],
[
-57.852915,
-34.940019
],
[
-57.839692,
-34.949173
],
[
-57.811459,
-34.956898
],
[
-57.800217,
-34.959776
],
[
-57.776832,
-34.954277
],
[
-57.772719,
-34.956606
],
[
-57.755699,
-34.970623
],
[
-57.708221,
-34.928622
],
[
-57.718027,
-34.925654
],
[
-57.734101,
-34.91873
],
[
-57.754044,
-34.907747
]
]
],
"type": "Polygon"
},
"properties": {
"name": null
},
"type": "Feature"
},
"price": {
"cents": "99",
"currency_id": "ARS",
"decimal_separator": ".",
"fraction": "8506",
"symbol": "$"
},
"scope": "LocalLejano",
"selected": false,
"transit_time": {
"offset": 0,
"value": 0
}
}
]
}
}
Parámetros de respuesta:
- address: Información sobre la dirección del usuario.
- availables: Contiene información sobre la capacidad, cortes y rangos disponibles para el servicio.
- availables.capacity_range: Rango de valores para capacidad.
- availables.cutoff: Detalle de los cortes disponibles.
- availables.ranges: Detalle de los rangos disponibles.
- delivery_ranges: Información sobre la capacidad y rangos disponibles para los diferentes días de la semana. La información de horario de corte solo tiene sentido cuando el vendedor no tenga configuración de hora de corte por zona. Se desaconseja su uso y se aconseja obtener el horario de corte a nivel de cada zona.
- delivery_ranges.saturday: Rangos de entrega y capacidad para los sábados.
- delivery_ranges.sunday: Rangos de entrega y capacidad para los domingos.
- delivery_ranges.week: Rangos de entrega y capacidad para los días de la semana.
- delivery_window: El tipo de servicio para la entrega. Los valores posibles son "same_day" (envíos en el día) o "next_day" (envíos al día siguiente).
- disabled_features: Características deshabilitadas para el servicio, incluyendo "CUTOFF_BY_ZONE" y "CAPACITY_BY_DAY".
- El tag CUTOFF_BY_ZONE significa que el seller no puede gestionar horario de corte por zona
- El tag CAPACITY_BY_DAY significa que el seller no puede configurar una capacidad máxima diária
- is_moderated: Indica si el servicio está moderado (true/false).
- subscription: Información sobre la suscripción del usuario.
- Holidays: Días festivos de acuerdo con la dirección del vendedor.
- working_days: Días laborables disponibles.
- zones: Información sobre las zonas disponibles para el servicio.
- zones.selected: Indica si la zona está seleccionada (true | false).
- zones.calculated_cutoff: Indica el horario de corte para saturday, sunday y week.
- zones.polygon.geometry.coordinates: Coordenadas geométricas para formar un polígono en el mapa.
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
200 - OK | - | Se actualizó correctamente la configuración. | - |
400 - Bad Request | empty site id | El site_id está vacío. | Validar el site_id. |
400 - Bad Request | invalid site_id | Site_id inválido. | Validar si el site_id está habilitado para Envíos Flex. |
400 - Bad Request | can't access to resource | Site_id inválido. | Validar si el site_id está habilitado para Envíos Flex. |
400 - Bad Request | invalid JSON body | El JSON es inválido. | Validar el esquema de query establecida. |
400 - Bad Request | failed to create schema in graphql operation | GraphQL inválida para el esquema definido. | Validar el esquema de query establecida. |
400 - Bad Request | invalid query | GraphQL inválida para el esquema definido. | Validar el esquema de query establecida. |
404 - Not Found | subscriptions not found | No existe suscripción a Envíos Flex para la combinación de user_id y service_id enviada. | Validar el user_id y service_id en el endpoint. |
404 - Not Found | user not found | No existe el usuario. | Validar el user_id. |
Configurar plazo de entrega y límite de envíos
Utiliza el siguiente recurso para configurar la ventana de entrega, rangos de horário de entrega, horários de corte (global - para todas las zonas) y límite de envío en toda la cuenta del vendedor.
Llamada:
curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/users/$USER_ID/services/$SERVICE_ID/configuration/delivery/custom/v3
Ejemplo:
curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/MLA/users/123456789/services/111111/configuration/delivery/custom/v3
{
"delivery_window": "same_day",
"delivery_ranges": {
"week": [
{
"from": 12,
"to": 21,
"capacity": 44,
"cutoff": 16
}
],
"saturday": [
{
"from": 12,
"to": 21,
"capacity": 33,
"cutoff": 14
}
],
"sunday": [
{
"from": 12,
"to": 21,
"capacity": 33,
"cutoff": 14
}
]
}
}
Consideraciones:
El delivery_window siempre es requerido al cambiar cualquier configuración.
Los Rangos Horarios de Entrega para días de semana, sábado y domingo indican desde qué hora (from) y hasta qué hora (to) se realizan los envíos. Estos valores deben enviarse en:
- delivery_ranges.week.from y delivery_ranges.week.to
- delivery_ranges.saturday.from y delivery_ranges.saturday.to (si se trabaja los sábados)
- delivery_ranges.sunday.from y delivery_ranges.sunday.to (si se trabaja los domingos)
El from y el to siempre son requeridos al cambiar cualquier configuración.
El valor de Capacidad (límite de envíos) debe enviarse en:
- delivery_ranges.week.capacity
- delivery_ranges.saturday.capacity (si se trabaja los sábados)
- delivery_ranges.sunday.capacity (si se trabaja los domingos)
Actualmente, la API solo soporta el mismo valor para los 3 casos.
El valor de Cutoff General debe enviarse en:
- delivery_ranges.week.cutoff
- delivery_ranges.saturday.cutoff (si se trabaja los sábados)
- delivery_ranges.sunday.cutoff (si se trabaja los domingos)
El cutoff siempre es requerido al cambiar cualquier configuración.
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
200 - OK | - | Se actualizó correctamente la configuración. | - |
400 - Bad Request | invalid user_id | User_id inválido. | Validar el user_id (debe ser un número entero). |
400 - Bad Request | invalid service_id | Service_id inválido. | Validar el service_id (debe ser un número entero). |
400 - Bad Request | invalid JSON body | El JSON es inválido. | Validar el esquema de query establecida. |
403 - Forbidden | can't update delivery custom | No se puede realizar la actualización de configuración debido a que el usuario está moderado o intervenido. | No permitir cambiar configuraciones de usuarios moderados o intervenidos. |
404 - Not Found | can't update delivery custom | No se puede realizar la actualización de configuración debido a que no existe suscripción a Envíos Flex para la combinación de user_id y service_id enviada. | Validar el user_id y service_id en el endpoint. |
Ampliar área de cobertura Flex y horário de corte por zona
Este endpoint permite editar las áreas de coberturas para Envíos Flex.
Editar solamente zonas de cobertura
Llamada:
curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/users/$USER_ID/services/$SERVICE_ID/configuration/coverage/zone/v3
Ejemplo:
curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/MLA/users/123456789/services/111111/configuration/coverage/zone/v3
{
"zones": [
{
"id": "Almirante_Brown"
},
{
"id": "Avellaneda"
},
{
"id": "CABA"
}
]
}
Editar zonas de cobertura con horário de corte
curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/MLA/users/123456789/services/111111/configuration/coverage/zone/v3
{
"zones": [
{
"id": "Almirante_Brown",
"cutoff": {
"week": 14,
"saturday": 14,
"sunday": 14
},
{
"id": "Avellaneda",
"cutoff": {
"week": 13,
"saturday": 13,
"sunday": 13
},
{
"id": "CABA" ,
"cutoff": {
"week": 12,
"saturday": 12,
"sunday": 12
}
]
}
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
200 - OK | - | Se actualizó correctamente la configuración. | - |
400 - Bad Request | invalid user_id | User_id inválido. | Validar el user_id (debe ser un número entero). |
400 - Bad Request | invalid service_id | Service_id inválido. | Validar el service_id (debe ser un número entero). |
400 - Bad Request | invalid JSON body | El JSON es inválido. | Validar el esquema de query establecida. |
403 - Forbidden | can't update coverage zone | No se puede realizar la actualización de configuración debido a que el usuario está moderado o intervenido. | No permitir cambiar configuraciones de usuarios moderados o intervenidos. |
404 - Not Found | can't update coverage zone | No se puede realizar la actualización de configuración debido a que no existe suscripción a Envíos Flex para la combinación de user_id y service_id enviada. | Validar el user_id y service_id en el endpoint. |
Consultar estado del ítem
Antes de activar flex a un ítem, es necesario realizar una validación para asegurarse de que el ítem se encuentre en el estado 'active'. Esto se puede verificar mediante el endpoint para obtener un ítem y luego consultar el atributo 'status'.
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID?attributes=id,status,id,status,shipping.mode,,shipping.logistic_type,shipping.tags,shipping.free_shipping
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLB4879366528?attributes=id,status,id,status,shipping.mode,,shipping.logistic_type,shipping.tags,shipping.free_shipping
Respuesta:
{
"status": "active",
"id": "MLB4879366528",
"shipping": {
"tags": [
"self_service_in",
"mandatory_free_shipping"
],
"free_shipping": true,
"logistic_type": "drop_off",
"mode": "me2"
}
}
Parámetros de respuesta:
- id: ID de la publicación
- status: Status de la publicación
- shipping.mode: Mode de envío de la publicación.
- shipping.logistic_type: Tipo logístico de la publicación
- shipping.tags: Tags de shipping, incluyendo la activación de Flex.
- self_service_in: Item con Flex activado
- self_service_out: Item no tiene Flex activado
- self_service_available: Item es permitido enviar por Flex.
Consultar si la categoría permite Flex
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/categories/MLB438794/shipping_preferences
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/categories/MLB438794/shipping_preferences
Respuesta:
{
...
"logistics": [
...
{
"types": [
"drop_off",
"xd_drop_off",
"self_service",
"cross_docking",
"fulfillment"
],
"mode": "me2"
}
],
...
"category_id": "MLB438794"
}
Nota: Para saber que la categoría permite Flex, debe estar presente la opción self_service, dentro del array logistics.
Consultar Flex en el ítem
Este endpoint te permite consultar si el ítem actualmente se está ofreciendo con Envíos Flex o no.
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403
Respuesta:
Status: 204 No Content
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
204 - No Content | - | Ítem habilitado para Envíos Flex. | - |
403 - Forbidden | item down | Ítem no ofrece Envíos Flex. | Validar las modalidades de envío del ítem. |
404 - Not Found | item not found | El país está deshabilitado para Envíos Flex. | Validar los países con Envíos Flex. |
Activar Flex en el ítem
Este endpoint permite activar la opción de Envíos Flex al ítem.
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID
Ejemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403
Respuesta:
Status: 204 No Content
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
204 - No Content | - | Ítem habilitado para Envíos Flex. | - |
400 - Bad request | item is already in flex | Ítem ya tiene Flex activado | Validar que el item tiene Flex previo a la petición |
403 - Forbidden | item down | Ítem no ofrece Envíos Flex. | Validar las modalidades de envío del ítem. |
404 - Not Found | item not found | El país está deshabilitado para Envíos Flex. | Validar los países con Envíos Flex. |
Desactivar Flex en el ítem
Este endpoint permite desactivar la opción de Envíos Flex al ítem.
Llamada:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID
Ejemplo:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403
Respuesta:
Status: 204 No Content
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
204 - No Content | - | Ítem desactivado para envíos Flex. | - |
403 - Forbidden | item down | Ítem no ofrece Envíos Flex. | Validar las modalidades de envío del ítem. |
404 - Not Found | item not found | El país está deshabilitado para Envíos Flex. | Validar los países con Envíos Flex. |
Identificar órdenes Flex
Este endpoint determina si un envío se manejará mediante el servicio Flex, permitiendo concluir la transacción de manera efectiva.
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/$SHIPMENT_ID
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/42469883906
Respuesta:
"tags": [
"self_service"
]
Identificar el código del transportista
Este endpoint facilita la identificación del transportista asignado a un envío, lo que resulta útil para registrar cambios de transportista durante el proceso de entrega.
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/flex/sites/$SITE_ID/shipments/$SHIPMENT_ID/assignment/v1
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/flex/sites/MLA/shipments/40070866801/assignment/v1
Respuesta:
{
"driver_id": 1234
}
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
200 - OK | - | Transportista asignado. | - |
404 - Not Found | shipment_id not found | No posee transportista asignado o no se encuentra la ruta abierta (envío pendiente de ser entregado). No existe (shipment inexistente). | Validar el estado del envío o shipment_id . |
Estados y subestados Flex
Este endpoint permite conocer los estados y subestados del flujo de envíos Flex.
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/$SHIPMENT_ID
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/43319685225
Respuesta:
{
...
"comments": null,
"substatus": "receiver_absent",
"date_created": "2024-04-23T10:48:51.245-04:00",
"date_first_printed": "2024-04-23T13:14:16.093-04:00",
...
"status": "shipped",
}
Parámetros de respuesta:
- status: El estado general del paquete. Los valores posibles son:
- delivered: paquetes entregados.
- ready_to_ship: paquetes listos para despachar.
- cancelled: paquetes cancelados.
- not_delivered: paquetes rechazados o que no será posible entregarlos. Dentro de este status tenemos los siguientes substatus posibles:
- Rechazado por el comprador.
- refused_delivery: El comprador ha rechazado la entrega.
- Rechazado por el comprador.
- shipped: paquetes que están en camino al comprador.
- Salida a ruta: El pedido está en camino.
- out_for_delivery: El paquete está en camino para ser entregado.
- soon_deliver: El conductor ha notificado al comprador que su paquete es el próximo en la ruta de entrega.
- Domicilio incorrecto o incompleto.
- bad_address: El conductor ha registrado que la dirección proporcionada es incorrecta.
- No hay nadie en el domicilio.
- receiver_absent: El conductor ha marcado que el comprador estaba ausente en el momento de la entrega.
- El comprador decide reprogramar la compra desde su aplicación.
- buyer_rescheduled: El comprador ha solicitado reprogramar la entrega.
- El conductor marcó como entregado lejos de la dirección del comprador.
- delivery_blocked: El conductor ha indicado que el paquete se entregó, pero lejos de la dirección del comprador. Se solicita al comprador que confirme si recibió el envío.
- El vendedor marca como entregado el envío desde su aplicación.
- waiting_for_confirmation: El paquete ha sido marcado como entregado por el vendedor después de la fecha prometida. Se solicita al comprador que confirme si recibió el envío.
- Salida a ruta: El pedido está en camino.
Convivencia Full y Flex
Para gestionar stock de Flex cuando el vendedor tiene Fulfillment activo en su publicación, disponibilizamos la funcionalidad de stock distribuído.
Consulte la documentación para entender el funcionamiento: Convivencia Full y Flex
Items no enviables por ME2 (Items en ME1, custom o not_specified)
Productos en categorías que no son enviados por Mercado Envíos (ME2) en otras modalidades logísticas (drop_off, crossdocking, fulfillment) por sus particularidades, ahora pueden ser enviados por Envíos Flex específicamente.
Son productos considerados no enviables los que poseen la siguiente característica:
- Inflamable: Productos con riesgo de inflamación.
- Pack 4 Neumáticos: Paquetes que contienen cuatro neumáticos.
- No Maquinable: Ítems que no pueden ser procesados por máquinas.
- Hazmat: Materiales peligrosos.
Para activar el Flex en el producto del vendedor, valide que la categoría ahora permite la opción self_service (Flex), como ya se realiza para los demás envíos.
Categoría ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/categories/MLA45502/shipping_preferences
Respuesta:
{
...
"logistics": [
...
{
"types": [
"self_service"
],
"mode": "me2"
}
],
...
"category_id": "MLA45502"
}
Después de esto, para activar el Flex no es necesario modificar el shipping.mode del ítem, sino que solo ejecutar el optin de Flex conforme a la instrucción de Activar Flex.
Vista del vendedor:
Próximo: Envios Turbo