Documentação do Mercado Livre

Confira todas as informações necessárias sobre as APIs Mercado Livre.
circulos azuis em degrade

Documentação do

Última atualização em 20/06/2024

Envios Coletas e Places

Importante:
Atualmente, essas modalidades de envio estão disponíveis para vendedores da Argentina, Brasil, México, Chile, Colômbia, Uruguai.

Coleta (cross_docking):

  • Processo: Um carrier recolhe os produtos do domicílio do vendedor e os leva a um HUB (armazém).
  • Entrega: Do HUB, escolhe-se o carrier mais conveniente para a entrega ao comprador.
  • Rota: Vendedor → Coleta → HUB → Carrier → Comprador.

Cross Docking com Drop Off (XD_drop_off):

  • Processo: O vendedor deixa os produtos em um ponto de recolhimento designado (places). Places ou pontos de despacho são lojas comerciais que também possuem o logo do Mercado Livre, Pickit ou HOP na porta.
  • Recolhimento e Entrega: Uma coleta transporta os produtos do Place até o HUB para sua entrega final.
  • Rota: Vendedor → Place → Coleta → HUB → Carrier → Comprador.

Drop_off:

  • Processo: O vendedor leva os produtos diretamente ao correio ou ponto de entrega designado. Os pacotes seguem o fluxo normal do correio até serem entregues ao comprador.
  • Recolhimento e Entrega: O carrier é selecionado para a entrega final.
  • Rota: Vendedor → Carrier → Comprador.

Ativar Coleta ou Places

No Mercado Livre, avaliamos semanalmente o desempenho na entrega de produtos dos vendedores de Coletas e Places. Esta avaliação pode influenciar na ativação desses serviços conforme o desempenho.

Pontos chave da ativação:

  • Revisão e Configuração de Endereços: garanta que os endereços para envios, despachos e devoluções estejam sempre atualizados e configurados corretamente para evitar problemas.
  • Ativação de Notificações: mantenha suas notificações ativas, isso permitirá que você receba alertas imediatos sobre qualquer mudança nos serviços de Coleta ou Places.

O monitoramento constante do seu desempenho e a configuração correta dos seus endereços são essenciais para garantir uma operação fluida e sem interrupções na logística dos seus produtos.


Nota:
  • Para localizar as configurações de Colecta e Places, acesse a página do Mercado Livre do usuário> Configuração> Preferências de venda.
  • O Peru tem apenas o tipo de logística de drop off ativo.

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

Capacidade de envios

A gestão de capacidade de envios é uma ferramenta que permite aos vendedores configurar a quantidade máxima de envios que podem despachar em um dia sem sofrer atrasos. Isso lhes dá a flexibilidade de se organizar e evitar atrasos, seja em mudanças planejadas no volume de vendas ou em situações inesperadas.


Saiba mais sobre:


Vista del vendedor:



Consultar a capacidade de envios

Este endpoint permite obter a configuração atual da capacidade de envio de um usuário.


Chamada:

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

Exemplo:

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

Resposta com intervenção 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",
       },
     ]
 }

Resposta com intervenção 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 resposta:

  • day: Representa o dia da semana ao qual se refere a capacidade. Os valores possíveis são monday, tuesday, wednesday, thursday, friday, e saturday.
  • capacity_min: É o valor mínimo de capacidade permitido para esse dia.
  • capacity_max: É o valor máximo de capacidade permitido para esse dia.
  • capacity.value: É o valor da capacidade atual para o dia e semana em que o usuário se encontra.
  • capacity.maximum: Indica se o usuário tem a capacidade infinita (false) / máxima (true) selecionada. Caso não tenha next_capacity, é retornado um null para este campo.
  • next_capacity.value: É o valor da capacidade configurada aplicável para a próxima semana.
  • next_capacity.maximum: Indica se o usuário tem a capacidade infinita (false) / máxima (true) selecionada para a próxima semana.
  • can_add_capacity: Indica se é possível adicionar capacidade adicional para esse dia. Os valores possíveis são true ou false.
  • can_subtract_capacity: Indica se é possível subtrair capacidade para esse dia. Os valores possíveis são true ou false.
  • intervention: Descreve o tipo de intervenção em que o usuário pode incorrer:
    • delay: intervenção por atrasos.
    • early: intervenção por entregas antecipadas.
    • null: não tem intervenção.

Considerações:

  • Se a capacidade de despacho não for configurada, o sistema não imporá restrições. No entanto, recomenda-se que os vendedores utilizem esta função para otimizar suas entregas e melhorar a experiência do cliente.
  • Quando um vendedor não cumpre seu objetivo de capacidade de envios, ele entra em um estado de intervenção por atraso (delay). Durante este período, há restrições na capacidade de modificar ou atualizar a capacidade de envios. Isso é feito para garantir que os vendedores se comprometam a melhorar seu desempenho. Uma vez que os requisitos sejam atendidos durante o período de intervenção, as restrições serão levantadas e você poderá ajustar sua capacidade de envios novamente.
  • Quando um vendedor pode despachar mais do que sua capacidade, ele entra em um estado de intervenção por adiantamento (early). Durante este período, não há restrições na capacidade de modificar ou atualizar a capacidade de envios. O objetivo é que o vendedor possa maximizar sua injeção e configurar uma capacidade mais precisa.
  • Para uma experiência ótima, recomendamos habilitar as Novidades dos vendedores, pois é aqui que qualquer atualização ou mudança relevante neste processo será notificada.

Atualizar a capacidade de envios

Este endpoint permite modificar ou atualizar a configuração da capacidade de envio de um usuário.


Chamada:

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

Exemplo:

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 resposta:

Código Mensagem Descrição Recomendação
200 - OK - A configuração atual foi obtida corretamente. -
400 - Bad Request there was an error parsing the request body Erro nos parâmetros do corpo da solicitação (request body). Validar o corpo da solicitação (request body).
404 - Not Found not valid logistic type O usuário não existe ou não possui logística de cross_docking. Validar o user_id e os tipos de logística do usuário.

Tempo de preparação de envios

O tempo de preparação de envios é o tempo para gerenciar ou despachar um pedido uma vez processado.

Importante:
O Tempo de Preparação de Envios refere-se ao intervalo necessário para gerenciar e despachar um pedido uma vez que este foi processado. É importante não confundir este conceito com o Manufacturing Time, que denota o período necessário para fabricar ou preparar o produto em si.

Saiba mais sobre:


Consultar o tempo de preparação

Este endpoint permite obter o tempo de preparação para o envio.


Chamada:

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

Exemplo:

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

Resposta:

{
    "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 resposta:

  • modified_by_meli: caso venha como true, indica que o Mercado Livre é o responsável por modificar seu processing time.
  • visible: indica se o dia deve ser mostrado na frente.
  • enabled: Indica se a linha está habilitada para editar.
  • current_processing_time: indica o valor do processing time que estava selecionado antes da mudança. Se for diferente de null, será mostrada a mensagem de que entrará em vigor na próxima semana. Caso contrário, o dia será mostrado normalmente.
  • available_options.processing_time: indica o tempo de processamento possível de selecionar no formato HH:MM. Por exemplo, “00:30” (30 minutos).
  • available_options.selected: valor atual escolhido pelo usuário, ou o padrão se nunca configurado antes.
  • available_options.highlight_level: as opções são:
    • low: menos tempo de preparação que o padrão.
    • default: tempo de preparação padrão.
    • high: mais tempo de preparação que o padrão.

Atualizar o tempo de preparação

Este endpoint permite atualizar o tempo de preparação da envio.


Chamada:

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

Exemplo:

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"
            }
        }
    }

Resposta:

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

Considerações

  • Enviar no formato “01:00”, “00:30” como vem no GET.
  • Se o campo processing_times for enviado vazio, a integração usará os valores padrão dependendo da logística: “01:00” cross_docking e “01:30” xd_drop_off.
  • Se um dia bloqueado for enviado, ou seja, um dia em que enabled está false, a integração ignorará este valor e manterá o valor que estava selecionado antes da alteração.
  • A atualização do processing_time do dia vigente só terá impacto na próxima semana.

Códigos de estado de resposta:

Código Mensagem Descrição Recomendação
200 - OK - A configuração atual foi obtida corretamente. -
400 - Bad Request there was an error parsing the request body Erro nos parâmetros do corpo da requisição. Validar o corpo da requisição.
404 - Not Found not valid logistic type O usuário não existe ou não possui o tipo logístico de cross_docking. Validar o user_id e os tipos logísticos do usuário.

Horários de despacho

Os horários de despacho ajudam os vendedores a programar suas entregas e evitar atrasos, protegendo sua reputação. Para acessar esta informação, é necessário conhecer os tipos de logística habilitados na sua conta.


Chamada:

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

Exemplo:

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

Resposta:

{
    "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 resposta:

  • seller_id: id do vendedor.
  • work: indica se o vendedor trabalha nesse dia. Aplica-se a todas as logísticas. Não considera feriados.
  • from: é o horário de início da janela de coleta. Para xd_drop_off é o horário máximo de despacho.
  • to: é o horário de fim da janela de coleta.
  • cutoff: horário de corte.
  • carrier.id: id do transportador.
  • carrier.name: nome do transportador.
  • vehicle: é a descrição do veículo.
  • vehicle.id: id do veículo.
  • vehicle.license_plate: é a placa do veículo.
  • vehicle.only_for_today: indica se a coleta é apenas para hoje.
  • vehicle.new_driver: indica se houve uma mudança no motorista que passará.
  • driver.id: id do motorista da coleta.
  • driver.name: é o nome do motorista da coleta.

Códigos de estado de resposta:

Código Mensagem Descrição Recomendação
200 - OK - A configuração atual foi obtida corretamente. -
400 - Bad Request there was an error parsing the request body Erro nos parâmetros do corpo da requisição. Validar o corpo da requisição.
404 - Not Found not valid logistic type O usuário não existe ou não possui o tipo logístico de cross_docking. Validar o user_id e os tipos logísticos do usuário.