Documentación Mercado Libre

Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.
circulos azuis em degrade

Documentación

Última actualización 18/06/2024

Envíos Flex

Importante:
Actualmente, esta modalidad de envío está disponible para vendedores de Argentina, Brasil, México, Chile, Colombia, Uruguay, Perú y Ecuador.

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:


Nota:
  • Es fundamental respetar el límite de 1000 rpm en todas las llamadas a los recursos de FLEX. Mantener este límite garantiza un uso eficiente y equitativo de los recursos disponibles.
  • La app de envíos flex de Mercado Libre es necesaria para escanear las entregas y hacer los recorridos de entregas. Sin embargo, no está disponible para integraciones, por lo que las empresas logísticas deberán adaptarse.

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:

  1. Inicie sesión en la cuenta en la que desea habilitar Envío Flex.
  2. Asegúrese de que la cuenta tenga publicaciones activas en ME2.
  3. Verifique que su cuenta tenga una reputación Amarilla o Verde.
  4. Asegúrese de tener una dirección de correo compatible con el área de cobertura de su país.
  5. Configure la dirección de envío de acuerdo con las áreas de cobertura en los países correspondientes.
  6. 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.


Nota:
Es recomendable crear un nuevo user test con la nueva configuración para probar este flujo actualizado.

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.
Nota:
  • Se crea una suscripción cuando un vendedor comienza a utilizar Envíos Flex en cualquier modalidad.
  • En el contexto de las suscripciones, cada una de ellas cuenta con un identificador único llamado "service_id". Este identificador es fundamental para poder acceder a la configuración de la suscripción y realizar cambios en ella. Para este caso, el que se utilizará será el service_id de la modalidad Flex.

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:

  curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/MLA/configuration/v3

    {
      "query": "{ configuration (user_id: 1438865529, service_id: 736230) { address { id address_line city { id name } zip_code } subscription { site_id user_id service_id status { id } 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 } } working_days zones { enabled id is_mandatory label neighborhoods price { cents currency_id decimal_separator fraction symbol } selected } availables { cutoff capacity_range { from to } ranges } disabled_features } }"
    }

Respuesta:

  {
    "configuration": {
        "address": {
            "address_line": "Testing Street 1450",
            "city": {
                "id": "TUxBQlNBQTM3Mzda",
                "name": "Saavedra"
            },
            "id": "1316123989",
            "zip_code": "1430"
        },
        "availables": {
            "capacity_range":  {
               "from": 1,
               "to": 50
            },
            "cutoff": [
                12,
                13,
                14,
                15,
                16,
                17,
                18
            ],
            "ranges": [
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21
            ]
        },
        "delivery_ranges": {
            "saturday": null,
            "sunday": null,
            "week": [
                {
                    "calculated_cutoff": 14,
                    "capacity": 30,
                    "et_hour": 14,
                    "from": 12,
                    "processing_time": 0,
                    "to": 21,
                    "type": "cpt"
                }
            ]
        },
        "delivery_window": "same_day",
        "disabled_features": [
            "CUTOFF_BY_ZONE",
            "CAPACITY_BY_DAY"
        ],
        "is_moderated": false,
        "subscription": {
            "creation_date": "2023-08-02T06:34:40Z",
            "service_id": 736230,
            "site_id": "MLA",
            "status": {
                "id": "in"
            },
            "training_times": null,
            "user_id": 1438865529
        },
        "working_days": [
            "week"
        ],
        "zones": [
            {
                "enabled": true,
                "id": "Almirante_Brown",
                "is_mandatory": false,
                "label": "Almirante Brown",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Avellaneda",
                "is_mandatory": false,
                "label": "Avellaneda",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Berazategui",
                "is_mandatory": false,
                "label": "Berazategui",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "CABA",
                "is_mandatory": false,
                "label": "CABA",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1114",
                    "symbol": "$"
                },
                "selected": true
            },
            {
                "enabled": true,
                "id": "Esteban_Echeverria",
                "is_mandatory": false,
                "label": "Esteban Echeverría",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Ezeiza",
                "is_mandatory": false,
                "label": "Ezeiza",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Florencio_Varela",
                "is_mandatory": false,
                "label": "Florencio Varela",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Hurlingham",
                "is_mandatory": false,
                "label": "Hurlingham",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Ituzaingo",
                "is_mandatory": false,
                "label": "Ituzaingó",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Jose_C_Paz",
                "is_mandatory": false,
                "label": "José C Paz",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Lanus",
                "is_mandatory": false,
                "label": "Lanús",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Lomas_de_Zamora",
                "is_mandatory": false,
                "label": "Lomas de Zamora",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Malvinas_Argentinas",
                "is_mandatory": false,
                "label": "Malvinas Argentinas",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "La_Matanza_1",
                "is_mandatory": false,
                "label": "La Matanza Norte",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "La_Matanza_2",
                "is_mandatory": false,
                "label": "La Matanza Sur",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Merlo",
                "is_mandatory": false,
                "label": "Merlo",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Moreno",
                "is_mandatory": false,
                "label": "Moreno",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Moron",
                "is_mandatory": false,
                "label": "Morón",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Quilmes",
                "is_mandatory": false,
                "label": "Quilmes",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "San_Fernando",
                "is_mandatory": false,
                "label": "San Fernando",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "San_Isidro",
                "is_mandatory": false,
                "label": "San Isidro",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "San_Martin",
                "is_mandatory": false,
                "label": "San Martín",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "San_Miguel",
                "is_mandatory": false,
                "label": "San Miguel",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Tigre",
                "is_mandatory": false,
                "label": "Tigre",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "2409",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Tres_De_Febrero",
                "is_mandatory": false,
                "label": "Tres de Febrero",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            },
            {
                "enabled": true,
                "id": "Vicente_Lopez",
                "is_mandatory": false,
                "label": "Vicente López",
                "neighborhoods": [],
                "price": {
                    "cents": "99",
                    "currency_id": "ARS",
                    "decimal_separator": ".",
                    "fraction": "1769",
                    "symbol": "$"
                },
                "selected": false
            }
        ]
    }
}

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, cortes y rangos disponibles para los diferentes días de la semana.
    • 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".
  • is_moderated: Indica si el servicio está moderado (true/false).
  • subscription: Información sobre la suscripción del usuario.
  • 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).

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.
Nota:
Este endpoint se utiliza para validar los atributos con sus valores posibles. Si se desea cambiar o modificar alguno de estos atributos, se recomienda utilizar los endpoints descritos en Configurar Plazo de Entrega y Límite de Envíos o Ampliar Área de Cobertura Flex.

Configurar Plazo de Entrega y Límite de Envíos

A través de este endpoint, es posible configurar diferentes aspectos para Envíos Flex como:

  • Ventana de Entrega
  • Rangos de Horario de Entrega
  • Horario de Corte
  • Límite de envíos

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/1438865529/services/736230/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

Este endpoint permite agregar más áreas de coberturas para Envíos Flex.


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/1438865529/services/736230/configuration/coverage/zone/v3

    {
      "zones": [
        {
          "id": "Almirante_Brown"
        },
        {
          "id": "Avellaneda"
        },
        {
          "id": "CABA" 
        }
      ]
    }

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.
Nota:
Para agregar o eliminar zonas Flex, es necesario utilizar el método PUT y enviar el listado de zonas correspondiente.

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 item y luego consultar el atributo 'status'.


Llamada:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN'
    https://api.mercadolibre.com/items?ids=$ITEM_ID&attributes=status

Ejemplo:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN'
    https://api.mercadolibre.com/items?ids=MLA1136716168&attributes=status

Respuesta:

   [
    ...
        "status": "active",
    ...
        ]
Nota:
  • Este proceso de validación es esencial para garantizar que "flex" se active correctamente cuando el ítem esté en el estado adecuado.
  • Para mayor referencia revisar Publicar productos y Búsqueda de ítems.

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.

Nota:
  • El endpoint items ofrece información relevante sobre el ítem, como:
  • El atributo tags que brinda detalles adicionales sobre si el ítem tiene activo Envíos Flex (self_service_in) o no (self_service_out).

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. -
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 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.

Nota:
  • Recuerda que la activación o desactivación de un ítem en Flex debe ser realizada exclusivamente por el vendedor. Para gestionar estos cambios, el vendedor debe usar los anteriores endpoints o cancelar su suscripción a la logística Flex.
  • Es importante evitar procesos automáticos de activación, ya que pueden interferir con el flujo operativo. La selección de los ítems a activar en Flex debe ser una decisión deliberada del vendedor, garantizando así que los procesos se mantengan controlados y eficientes.

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.

Nota:

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.
    • 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.

Convivencia Custom / Not_Specified - Flex

Con este desarrollo, los dominios que no utilizan Mercado Envíos 2 (ME2) tienen la opción de optar por una logística particular, como Flex, sin que esta elección sea obligatoria.

Cuando se activa un dominio sin ME2, los ítems de ese dominio pueden habilitar la opción de logística "self-service" bajo el modelo ME2 como una alternativa opcional. Esto permite a los vendedores activar Flex para esos ítems si así lo desean.

Para permitir esta coexistencia de ME2 y No ME2, se han realizado ajustes permitiendo ahora la venta de los siguientes productos bajo la logística Flex:

  • 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.

Estas modificaciones aseguran una mayor flexibilidad y opciones logísticas para los vendedores en Mercado Libre.


Vista del vendedor:


Listado de nuevos dominios:

A continuación, la lista de dominios activos por cada país, actualmente:

País Dominio Fecha de Activación
MLA MLA-PAINTBALL_CO2_TANKS 03/06/2024
MLA MLA-AUTOMOTIVE_BED_COVERS 03/06/2024
MLA MLA-AIR_CONDITIONER_CONTROL_BOARDS 03/06/2024
MLA MLA-STORAGE_DRAWERS 03/06/2024
MLA MLA-FIREWOOD_HEATERS 03/06/2024
MLA MLA-RUBBER_FLOORS 03/06/2024
MLA MLA-REFRIGERATOR_AND_FREEZER_COMPRESSORS 03/06/2024
MLA MLA-BARBELL_WEIGHT_KITS 03/06/2024
MLA MLA-BUTANE_GAS_CARTRIDGES 03/06/2024
MLA MLA-VEHICLE_SKIRTS 03/06/2024
MLA MLA-CERAMIC_BIDETS 03/06/2024
MLA MLA-FILING_CABINETS 03/06/2024
MLA MLA-PAINT_THINNERS_AND_SOLVENTS 03/06/2024
MLA MLA-SPRAY_PAINTS 03/06/2024
MLA MLA-STATIONARY_ENGINES 03/06/2024
MLA MLA-SNOWBOARDS 03/06/2024
MLA MLA-SHOWER_DOORS_AND_BOXES 03/06/2024
MLA MLA-SKIN_REPELLENTS 03/06/2024
MLA MLA-DOOR_AND_WINDOW_AWNINGS_AND_EAVES 03/06/2024
MLA MLA-CONCRETE_VIBRATORS 03/06/2024
MLB MLB-CONCRETE_MIXER_TRUCKS 30/05/2024
MLB MLB-SOFAS_FUTONS_AND_ARMCHAIRS 30/05/2024
MLB MLB-AUTOMOTIVE_WHEELS 30/05/2024
MLB MLB-STYLING_AND_BARBER_CHAIRS 30/05/2024
MLB MLB-VEHICLE_BATTERIES 30/05/2024
MLB MLB-AUTOMOTIVE_TIRES 30/05/2024
MLB MLB-BEDS 30/05/2024
MLB MLB-INDUSTRIAL_COOKING_OVENS 30/05/2024
MLB MLB-BATHTUBS 30/05/2024
MLB MLB-BACKWASH_UNITS 30/05/2024
MLB MLB-HAND_AND_PLATFORM_TRUCKS 30/05/2024
MLB MLB-PACKAGING_ROLLS 30/05/2024
MLB MLB-MATTRESSES 30/05/2024
MLB MLB-HEADBOARDS 30/05/2024
MLB MLB-EXHIBITOR_REFRIGERATORS 30/05/2024
MLB MLB-BOX_SPRING_BASES 30/05/2024
MLB MLB-VEHICLE_BED_COVERS 30/05/2024
MLB MLB-RANGES 30/05/2024
MLB MLB-KITCHEN_CABINETS 30/05/2024
MLB MLB-TV_STORAGE_UNITS 30/05/2024
MLB MLB-HARD_AND_SOFT_CHEESES 30/05/2024
MLB MLB-VEHICLE_DASHBOARDS 30/05/2024
MLB MLB-AQUARIUM_KITS 30/05/2024
MLB MLB-WELDING_MACHINES 30/05/2024
MLB MLB-OPERATING_SYSTEMS 30/05/2024
MLB MLB-VEHICLE_CAPS 30/05/2024
MLB MLB-PIANOS 30/05/2024
MLB MLB-MULTIGAME_TABLES 30/05/2024
MLB MLB-AUTOMOTIVE_BED_COVERS 30/05/2024
Importante:
  • La activación de esta funcionalidad se dará de manera progresiva y puede aplicarse de manera diferenciada por dominio y por país.
  • Los vendedores serán informados a través de “Notificaciones”, permitiéndoles decidir si desean optar por el servicio Flex para los ítems que tenga en dichos dominios.