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 20/06/2024

Envíos Colecta y Places

Importante:
Actualmente, estas modalidades de envío están disponibles para vendedores de Argentina, Brasil, México, Chile, Colombia, Uruguay.

Colecta (cross_docking):

  • Proceso: Un carrier recoge los productos del domicilio del vendedor y los lleva a un HUB (almacén).
  • Entrega: Desde el HUB, se elige el carrier más conveniente para la entrega al comprador.
  • Ruta: Vendedor → Colecta → HUB → Carrier → Comprador.

Cross Docking con Drop Off (XD_drop_off):

  • Proceso: El vendedor deja los productos en un punto de recolección designado (places). Places o puntos de despacho son tiendas comerciales que también llevan el logo de Mercado Libre, Pickit o HOP en la puerta.
  • Recolección y Entrega: Una colecta los transporta desde el Place al HUB para su entrega final.
  • Ruta: Vendedor → Place → Colecta → HUB → Carrier → Comprador.

Drop_off:

  • Proceso: El vendedor lleva los productos directamente a la oficina de correos o punto de entrega asignado. Los paquetes siguen el flujo propio del correo hasta que se entregan al comprador.
  • Recolección y Entrega: Se selecciona al carrier para su entrega final.
  • Ruta: Vendedor → Carrier → Comprador.

Activar Colecta o Places

En Mercado Libre, evaluamos semanalmente el rendimiento en la entrega de productos de los vendedores de Colectas y Places. Esta evaluación puede influir en la activación de estos servicios según el desempeño.

Puntos clave de la activación:

  • Revisión y Configuración de Domicilios: asegura que las direcciones para envíos, despachos y devoluciones estén siempre actualizadas y configuradas correctamente para evitar problemas.
  • Activación de Notificaciones: mantén tus notificaciones activas, esto te permitirá recibir alertas inmediatas sobre cualquier cambio en los servicios de Colecta o Places.

El monitoreo constante de tu desempeño y la correcta configuración de tus direcciones son esenciales para asegurar una operación fluida y sin interrupciones en la logística de tus productos.


Nota:
  • Para ubicar las configuraciones de Colecta y Places, se debe acceder a la página de Mercado Libre del usuario> Configuración> Preferencias de venta.
  • Perú solo cuenta con el tipo de logística de drop off activo.

Configurar un usuario de test

Para configurar la modalidad de envío colecta para usuarios de prueba, sigue estos pasos:

  1. Iniciar sesión en la página de Developers de Mercado Libre.
  2. Seleccionar la categoría a consultar, en este caso: "Configuraciones de test".
  3. Desplegar la sección de "Configuración" y elija "Colecta".
  4. Completar la información requerida sobre el usuario de prueba.
  5. Enviar solicitud de activación de Colecta para su cuenta de usuario de prueba.

País Enlace
Argentina Solicitud para activar Colecta a cuenta test
Brasil Solicitud para activar Colecta a cuenta test
México Solicitud para activar Colecta a cuenta test
Chile Solicitud para activar Colecta a cuenta test
Colombia Solicitud para activar Colecta a cuenta test
Uruguay Solicitud para activar Colecta a cuenta test
Perú Solicitud para activar Colecta a cuenta test

Capacidad de envíos

La gestión de capacidad de envíos es una herramienta que permite a los vendedores configurar la cantidad máxima de envíos que pueden despachar en un día sin sufrir demoras. Esto les brinda la flexibilidad de organizarse y evitar retrasos, ya sea frente a cambios planificados en su volumen de ventas o situaciones inesperadas.


Conoce más sobre:


Vista del vendedor:



Consultar la capacidad de envíos

Este endpoint permite obtener la configuración actual de la capacidad de envío de un usuario.


Llamada:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$USER_ID/capacity_middleend/$LOGISTIC_TYPE

Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/419059119/capacity_middleend/cross_docking

Respuesta con intervención delay:

{
    "capacities":[
        {
          "day": "monday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": false
          },
          "next_capacity": {
           "value": 110,
           "maximum": false
          },
          "can_add_capacity": false,
          "can_subtract_capacity": true,
          "intervention" : "delay",
       },
       {
          "day": "tuesday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": false
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "wednesday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 140,
           "maximum": false
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "thursday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": false
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "friday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 110,
           "maximum": false 
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
       {
          "day": "saturday",
          "capacity_min":20,
          "capacity_max": 140,
          "capacity": {
           "value": 120,
           "maximum": true
          },
          "next_capacity": null,
          "can_add_capacity": true,
          "can_subtract_capacity": false,
          "intervention" : "delay",
       },
     ]
 }

Respuesta con intervención early:


    {
       "capacities":[
           {
             "day": "monday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": false
             },
             "next_capacity": {
              "value": 110,
              "maximum": false
             },
             "can_add_capacity": false,
             "can_subtract_capacity": true,
             "intervention" : "early",
          },
          {
             "day": "tuesday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": false
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "wednesday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 140,
              "maximum": false
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "thursday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": false
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "friday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 110,
              "maximum": false 
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
          {
             "day": "saturday",
             "capacity_min":20,
             "capacity_max": null,
             "capacity": {
              "value": 120,
              "maximum": true
             },
             "next_capacity": null,
             "can_add_capacity": true,
             "can_subtract_capacity": false,
             "intervention" : "early",
          },
        ]
    }
    

Parámetros de respuesta:

  • day: Representa el día de la semana al que se refiere la capacidad. Los valores posibles son monday, tuesday, wednesday, thursday, friday, y saturday.
  • capacity_min: Es el valor mínimo de capacidad permitido para ese día.
  • capacity_max: Es el valor máximo de capacidad permitido para ese día.
  • capacity.value: Es el valor de la capacidad actual para el día y semana en la que se encuentra el usuario.
  • capacity.maximum: Indica si el usuario tiene seleccionado la capacidad infinita (false) / máxima (true). En caso de no tener next_capacity se devuelve un null para este campo.
  • next_capacity.value: Es el valor de la capacidad configurada aplicable para la siguiente semana.
  • next_capacity.maximum: Indica si el usuario tiene seleccionado la capacidad infinita (false) / máxima (true) para la siguiente semana.
  • can_add_capacity: Indica si es posible agregar capacidad adicional para ese día. Los posibles valores son true o false.
  • can_subtract_capacity: Indica si es posible restar capacidad para ese día. Los posibles valores son true o false.
  • intervention: Describe el tipo de intervención en el que pueda incurrir el usuario:
    • delay: intervención por demoras.
    • early: intervención por entregas tempranas.
    • null: no tiene intervención.

Consideraciones:

  • Si no se configura la capacidad de despacho, el sistema no impondrá restricciones. Sin embargo, se recomienda a los vendedores que utilicen esta función para optimizar sus entregas y mejorar la experiencia del cliente.
  • Cuando un vendedor no cumple con su objetivo de capacidad de envíos, entra en un estado de intervención por delay. Durante este período, hay restricciones en la capacidad de modificar o actualizar la capacidad de envíos. Esto se hace para garantizar que los vendedores se comprometan a mejorar su rendimiento. Una vez que se cumplan los requisitos durante el período de intervención, se levantarán las restricciones y podrás volver a ajustar tu capacidad de envíos.
  • Cuando un vendedor puede despachar más de su capacidad, entra en un estado de intervención por early. Durante este período, no hay restricciones en la capacidad de modificar o actualizar la capacidad de envíos. Lo que se busca es que el vendedor pueda maximizar su inyección y configurar una capacidad más exacta.
  • Para una experiencia óptima, te recomendamos habilitar las Novedades de vendedores, ya que es aquí donde se notificará cualquier actualización o cambio relevante en este proceso.

Actualizar la capacidad de envíos

Este endpoint permite modificar o actualizar la configuración de la capacidad de envío de un usuario.


Llamada:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$USER_ID/capacity_middleend/$LOGISTIC_TYPE

Ejemplo:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/419059119/capacity_middleend/cross_docking

    {
       "capacities": [
          {  
             "day": "monday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "tuesday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "wednesday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "tuesday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },
          {  
             "day": "friday",
             "capacity": {
              "value": 120,
              "maximum": true
             },
          },
          {  
             "day": "saturday",
             "capacity": {
              "value": 120,
              "maximum": false
             },
          },          
       ]
    }

Códigos de estado de respuesta:

Código Mensaje Descripción Recomendación
200 - OK - Se obtuvo correctamente la configuración actual. -
400 - Bad Request there was an error parsing the request body Error en los parámetros del request body. Validar el request body.
404 - Not Found not valid logistic type No existe el usuario o no tiene la logística de cross_docking. Validar el user_id y los tipos de logística del usuario.

Tiempo de preparación de envíos

El tiempo de preparación de envíos es el tiempo para gestionar o despachar un pedido una vez procesado.

Importante:
El Tiempo de Preparación de Envíos se refiere al intervalo necesario para gestionar y despachar un pedido una vez que este ha sido procesado. Es importante no confundir este concepto con el Manufacturing Time, que denota el período requerido para fabricar o preparar el producto en sí.

Conoce más sobre:


Consultar el tiempo de preparación

Este endpoint permite obtener el tiempo de preparación para el envío.


Llamada:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version: v3' https://api.mercadolibre.com/shipping/users/$USER_ID/processing_time_middleend/$LOGISTIC_TYPE

Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version: v3' https://api.mercadolibre.com/shipping/users/123456789/processing_time_middleend/cross_docking

Respuesta:

{
    "monday": {
       "modified_by_meli": false,
       "visible": true,
       "enabled": true,
       "current_processing_time": null
       "available_options": [
          {
            "processing_time": "00:30",
            "selected": false,
            "highlight_level": "low",
            "disabled": false
          },
          ...
          ...
          ...
          {
            "processing_time": "07:00",
            "selected": true,
            "highlight_level": "high",
            "disabled": false
          }
       ]
    }

Parámetros de respuesta:

  • modified_by_meli: en caso de que venga true indica que Mercado Libre es el responsable de modificar su processing time.
  • visible: indica si el día debe ser mostrado en el front.
  • enabled: Indica si la fila está habilitada para editar.
  • current_processing_time: indica el valor del processing time que se encontraba seleccionado antes del cambio. Si es distinto de null se mostrará el mensaje de que entrará en vigencia para la próxima semana. Si no, se mostrará el día normalmente.
  • available_options.processing_time: indica el tiempo de procesamiento posible a seleccionar en formato HH:MM. Por ejemplo, “00:30” (30 minutos).
  • available_options.selected: valor actual elegido por el usuario, o el default si es que nunca lo configuró antes.
  • available_options.highlight_level: las opciones son:
    • low: menos tiempo de preparación que el default.
    • default: tiempo de preparación default.
    • high: más tiempo de preparación que el default.

Actualizar el tiempo de preparación

Este endpoint permite actualizar el tiempo de preparación del envío.


Llamada:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version:v3' -d
    https://api.mercadolibre.com/shipping/users/$USER_ID/processing_time_middleend/$LOGISTIC_TYPE

Ejemplo:

curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' 'X-Version:v3' -d
    https://api.mercadolibre.com/users/419059119/processing_time_middleend/cross_docking
    {
        "processing_times": {
            "monday": {
                "processing_time": "01:00"
            },
            "tuesday": {
                "processing_time": "01:00"
            },
            "wednesday": {
                "processing_time": "01:00"
            },
            "thursday": {
                "processing_time": "01:30"
            },
            "friday": {
                "processing_time": "00:30"
            },
            "saturday": {
                "processing_time": "01:00"
            }
        }
    }

Respuesta:

{
    "message": "The seller processing times were successfully saved"
}

Consideraciones

  • Enviar en el formato “01:00”, “00:30” como viene en el GET.
  • En caso de enviarse el campo processing_times vacío, la integración tomará los valores default dependiendo la logística “01:00” cross_docking y “01:30” xd_drop_off.
  • En caso de enviarse un día bloqueado, es decir, un día que esté en enabled false, la integración ignora este valor y deja el valor que tiene seleccionado antes del cambio.
  • La actualización del processing_time del día vigente solo va tener impacto en la próxima semana.

Códigos de estado de respuesta:

Código Mensaje Descripción Recomendación
200 - OK - Se obtuvo correctamente la configuración actual. -
400 - Bad Request there was an error parsing the request body Error en los parámetros del request body. Validar el request body.
404 - Not Found not valid logistic type No existe el usuario o no tiene la logística de cross_docking. Validar el user_id y los tipos de logística del usuario.

Horarios de despacho

Los horarios de despacho ayudan a los vendedores a programar sus envíos y evitar retrasos, protegiendo su reputación. Para acceder a esta información, es necesario conocer los tipos de logística habilitados en su cuenta.


Llamada:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$USER_ID/shipping/schedule/$LOGISTIC_TYPE

Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/9984538542/shipping/schedule/cross_docking

Respuesta:

{
    "seller_id": "84538542",
    "schedule": {
        "monday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "tuesday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "wednesday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "thursday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17501840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "User de prueba"
                    },
                    "sla": ""
                }
            ]
        },
        "friday": {
            "work": true,
            "detail": [
                {
                    "from": "13:00",
                    "to": "15:00",
                    "cutoff": "12:00",
                    "carrier": {
                        "id": "17578840",
                        "name": "Iflow"
                    },
                    "vehicle": {
                        "id": "12345",
                        "license_plate": "AZ541VW",
                        "vehicle_type": "Camioneta",
                        "only_for_today": false,
                        "new_driver": false
                    },
                    "driver": {
                        "id": "12345",
                        "name": "Test User"
                    },
                    "sla": ""
                }
            ]
        },
        "saturday": {
            "work": false,
            "detail": null
        },
        "sunday": {
            "work": false,
            "detail": null
        }
    }
 }

Parámetros de respuesta:

  • seller_id: id del vendedor.
  • work: indica si el vendedor trabaja ese día. Aplica a todas las logísticas. No tiene en cuenta los feriados.
  • from: es el horario de inicio de la ventana de recolección. Para xd_drop_off es el horario máximo de despacho.
  • to: es el horario de fin de ventana de recolección.
  • cutoff: horario de corte.
  • carrier.id: id del carrier.
  • carrier.name: nombre del carrier.
  • vehicle: es la descripción del vehículo.
  • vehicle.id: id del vehículo.
  • vehicle.license_plate: es la patente del vehículo.
  • vehicle.only_for_today: indica si la colecta es solo por el día de hoy.
  • vehicle.new_driver: indica si hubo un cambio en el conductor que pasará.
  • driver.id: id del conductor de la colecta.
  • driver.name: es el nombre del conductor de la colecta.

Códigos de estado de respuesta:

Código Mensaje Descripción Recomendación
200 - OK - Se obtuvo correctamente la configuración actual. -
400 - Bad Request there was an error parsing the request body Error en los parámetros del request body. Validar el request body.
404 - Not Found not valid logistic type No existe el usuario o no tiene la logística de cross_docking. Validar el user_id y los tipos de logística del usuario.