Última actualización 12/05/2023

Mercado Envíos Flex

Importante:
Actualmente la funcionalidad está disponible para vendedores de Argentina, Brasil, México, Chile, Colombia y Uruguay.

Este recurso te permite realizar la configuración de envíos en la modalidad Mercado Envíos Flex, como el plazo de entrega, el límite de envíos por días y áreas de cobertura a través de la integración.
Mercado Envíos Flex es una herramienta que facilita y potencia tu servicio de entregas en el día o al día siguiente. Los vendedores pueden hacer un seguimiento de los envíos y verán cómo se agiliza la rutina por completo.

Para su activación es necesario que el vendedor tenga la dirección de envío dentro de las localidades con cobertura Flex y con la reputación por encima de la amarilla, con esta activación se puede hacer de dos maneras: a través del Centro de Vendedores donde la activación ocurre para la cuenta, es decir, los ítems elegibles para Flex se actualizarán automáticamente o directamente en la edición del ítem, la opción de ofrecer Flex ya aparecerá, en este caso la activación ocurre sólo para el ítem. Tras la primera activación en la plataforma, las demás pueden realizarse directamente a través de su integración.

Nota:
Todos los recursos de FLEX tienen un rate límite de 1000 rpm. Es importante mantener las llamadas dentro de ese límite.

Configurar un usuario test

Para configurar la funcionalidad para los usuarios de prueba, debe estar logueado en la cuenta que desea poner Envio Flex, y la cuenta debe tener:

  • ME2 en sus publicaciones;
  • Reputación Amarilla o Verde;
  • Dirección de correo compatible con el área de cobertura de su país;
  • Estar configurado con la dirección de envío de acuerdo con las áreas de cobertura en los países:
    • Chile: debes configurar una ciudad, por ejemplo: Lo Barnechea.
    • Argentina: debes configurar para una dirección de Ciudad Autónoma de Buenos Aires (CABA) o Córdoba.
    • Colombia: debes configurar en las seguintes ciudades:
      Bogota
      Medellín
      Bello
      Copacabana
      Itagüí
      La Estrella
      Sabaneta
      Enviado
      Rionegro
      Guarne

    • Brasil: debes configurar para una dirección con cobertura Flex, conforme algunos ejemplos de CEPs:
      São Paulo
      Central: 01401000
      Oeste: 05002070
      Este: 03424010
      Norte: 02308000
      Sur1: 04342011
      Sur2: 04866100

    • Uruguay: debe estar configurado para Montevideo o Canelones.
    • Péru: debe estar configurado para Lima.

    Una vez garantizadas todas estas condiciones, es necesario acceder a la página de Mercado Envios Flex y realizar la activación.


    Al realizar esta activación, todos los anuncios comenzarán a ofrecer Flex, y para cambiar esta configuración, debe acceder a la página de Mercado Libre del usuario> "Configuración"> "Preferencias de venta" y editar.



    Consultar la configuración del vendedor

    Antes de consultar las configuraciones de FLEX en una cuenta, identifique sé el vendedor tiene ese tipo de envío (self_service) activo usando el recurso /users/$CUST_ID/shipping_preferences. Después, puedes verificar las configuraciones que el vendedor habilito en la cuenta.

    Llamada:

    curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' - H 'Accept-version: v2' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/configuration
    Nota:
    La versión del recurso debe ser enviada por header (-H) y para la información service_type debe ser informado el valor "lightweight.

    Ejemplo:

    curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' - H 'Accept-version: v2' https://api.mercadolibre.com/shipping/flex/sites/MLA/configuration
    
    {
      "query": "{ configuration(user_id: 427427465, service_type: \"lightweight\"){ adoption{ service_id status {id cause date} creation_date last_update penalty_status recover_date delivery_window } address{ id address_line zip_code city{ id name } } capacity{ availables selected current_count } cutoff{ availables{ value unit } selected{ week saturday sunday } } working_days training_time{ offset{ value unit } activation_date } zones{ id label price{ cents currency_id decimal_separator fraction symbol } is_mandatory selected neighborhoods } }}"
    }
    

    Respuesta:

    {
        "configuration": {
            "address": {
                "address_line": "Avenida Brigadeiro Luís Antônio - de 2253 a 3139 - lado ímpar 50",
                "city": {
                    "id": "BR-SP-44",
                    "name": "São Paulo"
                },
                "id": 1091302682,
                "zip_code": "01401000"
            },
            "adoption": {
                "creation_date": "2020-03-10T15:43:36-03:00",
                "delivery_window": "same_day",
                "last_update": "2020-03-11T09:43:38-03:00",
                "penalty_status": "",
                "recover_date": "0001-01-01T00:00:00Z",
                "service_id": 214241,
                "status": "in"
            },
            "capacity": {
                "availables": [
                    0,
                    10,
                    20,
                    30,
                    40,
                    60,
                    80,
                    100
                ],
                "current_count": 0,
                "selected": 100
            },
            "cutoff": {
                "availables": [
                    {
                        "unit": "HOUR",
                        "value": 12
                    },
                    {
                        "unit": "HOUR",
                        "value": 13
                    },
                    {
                        "unit": "HOUR",
                        "value": 14
                    },
                    {
                        "unit": "HOUR",
                        "value": 15
                    },
                    {
                        "unit": "HOUR",
                        "value": 16
                    },
                    {
                        "unit": "HOUR",
                        "value": 17
                    },
                    {
                        "unit": "HOUR",
                        "value": 18
                    }
                ],
                "selected": {
                    "unit": "HOUR",
                    "value": 18
                }
            },
            "selected": {
                    “week”: 17,
                    “saturday”: 13,
                    “sunday”: 12
                }
            },
            "training_time": {
                "activation_date": "2020-03-10T00:00:00.000Z",
                "unit": "DAY",
                "value": 7
            },
            "working_days": [
               "week",
               "saturday"
           ],
            "zones": [
                {
                    "id": "BR-SP-Centro",
                    "is_mandatory": false,
                    "label": "Centro",
                    "polygon": {
                        "properties": {
                            "name": "Centro"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "8",
                        "symbol": "R$"
                    },
                    "selected": true
                },
                {
                    "id": "BR-SP-Leste-1",
                    "is_mandatory": false,
                    "label": "Leste 1",
                    "polygon": {
                        "properties": {
                            "name": "Leste 1"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "13",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Leste-2",
                    "is_mandatory": false,
                    "label": "Leste 2",
                    "polygon": {
                        "properties": {
                            "name": "Leste 2"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "15",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Leste-3",
                    "is_mandatory": false,
                    "label": "Leste 3",
                    "polygon": {
                        "properties": {
                            "name": "Leste 3"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "15",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Leste-4",
                    "is_mandatory": false,
                    "label": "Leste 4",
                    "polygon": {
                        "properties": {
                            "name": "Leste 4"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "15",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Leste-5",
                    "is_mandatory": false,
                    "label": "Leste 5",
                    "polygon": {
                        "properties": {
                            "name": "Leste 5"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "15",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Norte-1",
                    "is_mandatory": false,
                    "label": "Norte 1",
                    "polygon": {
                        "properties": {
                            "name": "Norte 1"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "13",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Norte-2",
                    "is_mandatory": false,
                    "label": "Norte 2",
                    "polygon": {
                        "properties": {
                            "name": "Norte 2"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "13",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Norte-3",
                    "is_mandatory": false,
                    "label": "Norte 3",
                    "polygon": {
                        "properties": {
                            "name": "Norte 3"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "15",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Oeste-1",
                    "is_mandatory": false,
                    "label": "Oeste 1",
                    "polygon": {
                        "properties": {
                            "name": "Oeste 1"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "13",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Oeste-2",
                    "is_mandatory": false,
                    "label": "Oeste 2",
                    "polygon": {
                        "properties": {
                            "name": "Oeste 2"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "15",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Oeste-3",
                    "is_mandatory": false,
                    "label": "Oeste 3",
                    "polygon": {
                        "properties": {
                            "name": "Oeste 3"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "13",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Sul-1",
                    "is_mandatory": false,
                    "label": "Sul 1",
                    "polygon": {
                        "properties": {
                            "name": "Sul 1"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "13",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Sul-2",
                    "is_mandatory": false,
                    "label": "Sul 2",
                    "polygon": {
                        "properties": {
                            "name": "Sul 2"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "13",
                        "symbol": "R$"
                    },
                    "selected": false
                },
                {
                    "id": "BR-SP-Sul-3",
                    "is_mandatory": false,
                    "label": "Sul 3",
                    "polygon": {
                        "properties": {
                            "name": "Sul 3"
                        }
                    },
                    "price": {
                        "cents": "90",
                        "currency_id": "BRL",
                        "decimal_separator": ".",
                        "fraction": "15",
                        "symbol": "R$"
                    },
                    "selected": false
                }
            ]
        }
    }

    También puedes consultar las ubicaciones de coordenadas del mapa a través de un json. En este caso, la query podría ser ejecutada de la siguiente manera:

    zones{ id label polygon{ type geometry{ type coordinates } properties{ name } }

    Respuesta:

    {
                    "id": "BR-SP-Sul-1",
                    "is_mandatory": false,
                    "label": "Sul 1",
                    "polygon": {
                        "geometry": {
                            "coordinates": [
                                [
                                    [
                                        -46.687368,
                                        -23.6263235
                                    ],
                                ]
    …………..

    Determinar el plazo de entrega y límite de envíos

    Este recurso permite configurar hasta qué hora puede ofrecer envíos en el mismo día. También puedes ofrecer solo envíos en el siguiente día. Después el horario configurado solo podrás ofrecer en el día hábil.

    Configura la cantidad de envíos con Mercado Envíos Flex que el vendedor podrá ofrecer por día en sus publicaciones. Al alcanzar el límite, los envíos rápidos no serán visibles en sus publicaciones.


    Parámetros esperados

    delivery_window (required): establece si el usuario eligió hacer entregas en el día (consideramos días hábiles) o no, puede ser uno de los siguientes:

    • same_day: el usuario elige hacer entregas en el día.
    • next_day: el usuario elige hacer entregas al día siguiente.

    cutoff: indica el horario límite para recibir pedidos a ser enviados en el mismo día. Si el usuario eligió “next_day” en delivery_window, el cutoff no puede estar vacío. Posibles valores: 12 / 13 / 14 / 15 / 16 / 17 / 18. También puedes configurar entregas los fines de semana habilitando los sábados y domingos.

    capacity: capacidad máxima por día seleccionada por el vendedor, puede estar vacío ya que no hay necesidad de actualización. Posibles valores: 10 / 20 / 30 / 40 / 60 / 80 / 100 / 0 (indica que es "más de 100").

    Llamada:

    curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' -H 'Accept-version: v2' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/users/$USER_ID/adoption

    Ejemplo:

    curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' - H 'Accept-version: 2' https://api.mercadolibre.com/shipping/flex/sites/MLA/users/427427465/adoption
    
    [
    {
    "service_id": 171791,
    "delivery_window": "next_day",
       "settings": [
           {
               "cutoff": {
                   "week": {
                       "value": 15
                   },
                   "saturday": {
                       "value": 13,
                       "enabled": true
                   },
                   "sunday": {
                       "value": 12,
                       "enabled": false
                   }
               },
               "capacity": 100
           }
       ]
    }
    ]
    

    Respuesta:

    
    [
       {
           "user_id": 427427465,
           "service_id": 171791,
           "service_type": "lightweight",
           "status": {
               "version": 1,
               "id": "out",
               "cause": "full",
               "date": "2020-08-25T17:59:29.276-03:00"
           },
           "penalty_status": "",
           "delivery_window": "next_day",
           "settings": [
               {
                   "zones": [
                       ""
                   ],
                   "monday": {
                       "cutoff": 15,
                       "capacity": 100,
                       "enabled": true
                   },
                   "tuesday": {
                       "cutoff": 15,
                       "capacity": 100,
                       "enabled": true
                   },
                   "wednesday": {
                       "cutoff": 15,
                       "capacity": 100,
                       "enabled": true
                   },
                   "thursday": {
                       "cutoff": 15,
                       "capacity": 100,
                       "enabled": true
                   },
                   "friday": {
                       "cutoff": 15,
                       "capacity": 100,
                       "enabled": true
                   },
                   "saturday": {
                       "cutoff": 13,
                       "capacity": 100,
                       "enabled": true
                   },
                   "sunday": {
                       "cutoff": 12,
                       "capacity": 100,
                       "enabled": false
                   }
               }
           ],
           "training_time": {
               "offset": {
                   "value": 0,
                   "unit": "DAY"
               },
               "activation_date": "2019-07-15T00:00:00.000Z"
           },
           "creation_date": "2019-07-15T11:40:47-03:00",
           "last_update": "2021-03-04T17:26:33-03:00",
           "recover_date": null,
           "site_id": "MLA",
           "is_test": true
       }
    ]
    

    Ampliar su área de cobertura

    Este endpoint te permite configurar las regiones donde el vendedor quiera entregar con Mercado Envíos Flex.

    Aquí es necesario enviar las zonas que deseas agregar y también las que ya estaban, de lo contrario serán eliminadas.
    A través de la consulta de la configuración del vendedor es posible obtener las zonas liberadas por Mercado Libre para ser elegidas por el vendedor.

    Llamada:

    curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' -H 'Accept-version: v1' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/coverages/users/$USER_ID/services/types/$SERVICE_TYPE/zones
    Nota:
    La versión del recurso debe ser enviada por header (-H) y para la información service_type debe ser informado el valor "lightweight.

    Ejemplo:

    curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' -H 'Accept-version: v1' https://api.mercadolibre.com/shipping/flex/sites/MLB/coverages/users/534720659/services/types/lightweight/zones
    
    ["BR-SP-Sul-2"]

    Respuesta:

    [
        {
            "service_id": 214241,
            "zones": [
                "BR-SP-Sul-2"
            ]
        }
    ]

    Consultar Flex en el ítem

    Este endpoint te permite consultar si el ítem está habilitado para Mercado 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
    Nota:
    La versión del recurso debe ser enviada por header (-H).

    Ejemplo:

    curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403

    Respuesta:

    Status: 204 No Content

    Posibles respuestas:

    204 - No Content: el ítem ofrece Flex.
    403 - Forbidden: el site está deshabilitado para Flex.
    404 - Not Found: el ítem no ofrece Flex o no existe.
    message: item down: el ítem no ofrece Flex.
    message: item not found: el ítem no fue encontrado.
    También es posible verificar si el ítem está activado con Flex o no a través del recurso /items, en los tags:
    self_service_out: ítem no activo
    self_service_in: ítem activo


    Activar Flex en el ítem

    Este endpoint permite activar la opción de Flex en el í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

    Posibles respuestas:

    204 - No Content: el ítem fue actualizado correctamente para ofrecer Flex.
    400 - Bad Request: item is already in Flex.
    403 - Forbidden: el site está deshabilitado para Flex.
    404 - Not Found: el ítem no existe.


    Desactivar Flex en el ítem

    Este endpoint permite desactivar la opción de Flex en el í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

    Posibles respuestas:

    204 - No Content: el ítem fue actualizado correctamente para dejar de ofrecer Flex.
    400 - Bad Request: item is not in flex.
    403 - Forbidden: el site está deshabilitado para Flex.
    404 - Not Found: el ítem no existe.


    Identificar el código del transportista

    Para los envíos con Flex, es posible identificar quien escanea el pedido en la dirección del vendedor a través del código y estar informado en caso de que ocurra un cambio de transportista en el transcurso del envío. En caso de cambiar de transportista se notificará con un evento.


    Llamada:

    curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 'Accept-version: v1' https://api.mercadolibre.com/ultron/public/sites/$SITE_ID/shipments/$SHIPMENT_ID/assignment

    Ejemplo:

    curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 'Accept-version: v1' https://api.mercadolibre.com/ultron/public/sites/MLB/shipments/40070866801/assignment

    Respuesta:

    {
        “driver_id”: 1234
    }
    
    200 - OK

    Conoce más sobre Mercado Envíos Flex.