Documentação do Mercado Livre
Confira todas as informações necessárias sobre as APIs Mercado Livre.![circulos azuis em degrade](https://http2.mlstatic.com/storage/developers-site-cms-admin/DevImgs/230801158836-ImgMS--1-.png)
Documentação do
Envios Flex
Envios Flex é um serviço que permite aos vendedores realizarem envios por conta própria, os 7 dias da semana. Integra envios no dia ou no dia seguinte para melhorar os tempos de entrega e aumentar a penetração no mercado. Com Envios Flex, os vendedores podem ter maior controle e acompanhamento sobre seus envios, oferecendo um serviço mais rápido e eficiente aos seus clientes.
Saiba mais sobre:
- Como funciona Envios Flex
- Custo dos envios pelo Envios Flex
- Dicas para enviar com Envios Flex
- Como oferecer Envios Flex e Full na mesma publicação
- Áreas de cobertura do Mercado Envios Flex em Brasil
- Entregue dentro do prazo seus envios com o Envios Flex
Visão do vendedor:
![](https://http2.mlstatic.com/storage/developers-site-cms-admin/188384866111-Captura-de-pantalla-2024-06-18-a-la-s--9.51.14-a.-m..png)
![](https://http2.mlstatic.com/storage/developers-site-cms-admin/188384859413-Captura-de-pantalla-2024-06-18-a-la-s--9.51.36-a.-m..png)
![](https://http2.mlstatic.com/storage/developers-site-cms-admin/188384848667-Captura-de-pantalla-2024-06-18-a-la-s--9.51.49-a.-m..png)
Áreas de cobertura por países
Para poder oferecer Envíos Flex, o endereço de envio do vendedor deve estar habilitado para alguma das áreas de cobertura conforme o país:
País | Cobertura |
---|---|
Argentina | AMBA (Área Metropolitana de Buenos Aires) Córdoba |
Brasil | São Paulo Rio de Janeiro Brasília Belo Horizonte Porto Alegre Salvador Bahia Curitiba |
México | CDMX (Zona Metropolitana do Vale do México) Mérida |
Chile | Santiago (Região Metropolitana) Valparaíso |
Colômbia | Bogotá Medellín Cali |
Uruguai | Montevidéu Canelones |
Peru | Lima (Área Metropolitana) |
Equador | Quito |
Configurar um usuário de teste
Para configurar a funcionalidade de Envíos Flex para usuários de teste, leve em conta:
- Faça login na conta em que deseja habilitar o Envio Flex.
- Certifique-se de que a conta tenha publicações ativas no ME2.
- Verifique se sua conta possui uma reputação Amarela ou Verde.
- Certifique-se de ter um endereço de e-mail compatível com a área de cobertura do seu país.
- Configure o endereço de envio de acordo com as áreas de cobertura nos países correspondentes.
- Ative Envíos Flex na conta.
Depois de concluir essas etapas, você deve conseguir usar o Envíos Flex como um usuário de teste.
Consultar inscrições de um usuário
Este endpoint permite consultar as inscrições que um usuário possui.
- Se o usuário ativou apenas Flex, ele terá uma única inscrição.
- Se o usuário também ativou Turbo, ele terá duas inscrições, já que para ativar o Turbo, o usuário deve primeiro ter o Flex ativo.
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/users/$USER_ID/subscriptions/v1
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/MLA/users/1438865529/subscriptions/v1
Resposta:
[
{
"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 resposta:
- id: ID único da assinatura.
- site_id: Identificador do país.
- user_id: ID do usuário.
- mode: Tipo de assinatura ("FLEX" neste caso).
- configuration_type: Tipo de configuração da assinatura ("FLEX" neste caso).
- configuration_type.coverage: Tipo de cobertura.
- configuration_type.delivery: Tipo de entrega.
- service_id: ID do serviço associado à assinatura.
- status: Estado da assinatura.
- status.id: Tipos de estados da assinatura:
- in: A assinatura está ativa. Nesse estado, o usuário pode mudar sua configuração e receberá pedidos de envio para o modo de assinatura.
- out: A assinatura não está ativa. Nesse estado, o usuário não pode mudar a configuração.
- pending: A assinatura está pendente de ativação. Nesse estado, o usuário pode mudar sua configuração, embora não vá receber pedidos para realizar envios.
- creation_date: Data de criação da assinatura.
Códigos de Estado de resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
200 - OK | - | Configuração atualizada corretamente. | - |
400 - Bad Request | empty site id | O site_id está vazio | Validar o site_id. |
400 - Bad Request | invalid site_id | Site_id inválido | Verificar se o site_id está habilitado para Envíos Flex. |
400 - Bad Request | can't access to resource | Site_id inválido | Verificar se o site_id está habilitado para Envíos Flex. |
404 - Not Found | user not found | Usuário não encontrado | Validar o user_id. |
Consultar a configuração da assinatura
Este endpoint permite consultar a configuração das assinaturas que um usuário possui, neste caso para Flex.
Chamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipping/flex/sites/$SITE_ID/configuration/v3
Exemplo:
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 } }"
}
Resposta:
{
"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 resposta:
- address: Informação sobre o endereço do usuário.
- availables: Contém informações sobre capacidade, cortes e intervalos disponíveis para o serviço.
- availables.capacity_range: Intervalo de valores para capacidade.
- availables.cutoff: Detalhe dos cortes disponíveis.
- availables.ranges: Detalhe dos intervalos disponíveis.
- delivery_ranges: Informação sobre capacidade, cortes e intervalos disponíveis para os diferentes dias da semana.
- delivery_ranges.saturday: Intervalos de entrega e capacidade para os sábados.
- delivery_ranges.sunday: Intervalos de entrega e capacidade para os domingos.
- delivery_ranges.week: Intervalos de entrega e capacidade para os dias da semana.
- delivery_window: O tipo de serviço para a entrega. Os valores possíveis são "same_day" (entregas no mesmo dia) ou "next_day" (entregas no dia seguinte).
- disabled_features: Características desabilitadas para o serviço, incluindo "CUTOFF_BY_ZONE" e "CAPACITY_BY_DAY".
- is_moderated: Indica se o serviço está moderado (true/false).
- subscription: Informação sobre a assinatura do usuário.
- working_days: Dias úteis disponíveis.
- zones: Informação sobre as zonas disponíveis para o serviço.
- zones.selected: Indica se a zona está selecionada (true/false).
Códigos de Estado de resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
200 - OK | - | Configuração atualizada corretamente. | - |
400 - Bad Request | empty site id | O site_id está vazio. | Validar o site_id. |
400 - Bad Request | invalid site_id | Site_id inválido. | Verificar se o site_id está habilitado para Envíos Flex. |
400 - Bad Request | can't access to resource | Site_id inválido. | Verificar se o site_id está habilitado para Envíos Flex. |
400 - Bad Request | invalid JSON body | O JSON é inválido. | Verificar o esquema da query estabelecida. |
400 - Bad Request | invalid query | GraphQL inválida para o esquema definido. | Verificar o esquema da query estabelecida. |
404 - Not Found | subscriptions not found | Não há assinatura para Envíos Flex para a combinação de user_id e service_id enviada. | Verificar o user_id e o service_id no endpoint. |
404 - Not Found | user not found | Usuário não encontrado. | Verificar o user_id. |
Configurar Prazo de Entrega e Limite de Envios
Através deste endpoint, é possível configurar diferentes aspectos para Envios Flex como:
- Janela de Entrega
- Intervalos de Horário de Entrega
- Horário de Corte
- Limite de envios
Chamada:
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
Exemplo:
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
}
]
}
}
Considerações:
O delivery_window é sempre necessário ao alterar qualquer configuração.
Os Intervalos de Horário de Entrega para dias da semana, sábado e domingo indicam de que hora (from) e até que hora (to) as entregas são realizadas. Esses valores devem ser enviados em:
- delivery_ranges.week.from e delivery_ranges.week.to
- delivery_ranges.saturday.from e delivery_ranges.saturday.to (se trabalha aos sábados)
- delivery_ranges.sunday.from e delivery_ranges.sunday.to (se trabalha aos domingos)
O from e o to são sempre necessários ao alterar qualquer configuração.
O valor da Capacidade (limite de envios) deve ser enviado em:
- delivery_ranges.week.capacity
- delivery_ranges.saturday.capacity (se trabalha aos sábados)
- delivery_ranges.sunday.capacity (se trabalha aos domingos)
Atualmente, a API só suporta o mesmo valor para os 3 casos.
O valor do Cutoff Geral deve ser enviado em:
- delivery_ranges.week.cutoff
- delivery_ranges.saturday.cutoff (se trabalha aos sábados)
- delivery_ranges.sunday.cutoff (se trabalha aos domingos)
O cutoff é sempre necessário ao alterar qualquer configuração.
Códigos de Estado de resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
200 - OK | - | Configuração atualizada corretamente. | - |
400 - Bad Request | invalid user_id | User_id inválido. | Validar o user_id (deve ser um número inteiro). |
400 - Bad Request | invalid service_id | Service_id inválido. | Validar o service_id (deve ser um número inteiro). |
400 - Bad Request | invalid JSON body | O JSON é inválido. | Validar o esquema de query estabelecida. |
403 - Forbidden | can't update delivery custom | Não é possível atualizar a configuração porque o usuário está moderado ou intervenido. | Não permitir mudar configurações de usuários moderados ou intervenidos. |
404 - Not Found | can't update delivery custom | Não é possível atualizar a configuração porque não existe inscrição no Envíos Flex para a combinação de user_id e service_id enviada. | Validar o user_id e service_id no endpoint. |
Ampliar área de cobertura Flex
Este endpoint permite adicionar mais áreas de cobertura para Envíos Flex.
Chamada:
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
Exemplo:
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 resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
200 - OK | - | Configuração atualizada corretamente. | - |
400 - Bad Request | invalid user_id | User_id inválido. | Validar o user_id (deve ser um número inteiro). |
400 - Bad Request | invalid service_id | Service_id inválido. | Validar o service_id (deve ser um número inteiro). |
400 - Bad Request | invalid JSON body | O JSON é inválido. | Validar o esquema de query estabelecida. |
403 - Forbidden | can't update coverage zone | Não é possível atualizar a configuração porque o usuário está moderado ou intervenido. | Não permitir mudar configurações de usuários moderados ou intervenidos. |
404 - Not Found | can't update coverage zone | Não é possível atualizar a configuração porque não existe inscrição no Envíos Flex para a combinação de user_id e service_id enviada. | Validar o user_id e service_id no endpoint. |
Consultar estado do item
Antes de ativar flex a um item, é necessário realizar uma validação para garantir que o item esteja no estado 'active'. Isso pode ser verificado por meio do endpoint para obter um item e depois consultar o atributo 'status'.
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID?attributes=id,status,id,status,shipping.mode,shipping.logistic_type,shipping.tags,shipping.free_shipping
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLB4879366528?attributes=id,status,id,status,shipping.mode,shipping.logistic_type,shipping.tags,shipping.free_shipping
Resposta:
{
"status": "active",
"id": "MLB4879366528",
"shipping": {
"tags": [
"self_service_in",
"mandatory_free_shipping"
],
"free_shipping": true,
"logistic_type": "drop_off",
"mode": "me2"
}
}
Parâmetros de resposta:
- id: ID da publicação
- status: Status da publicação
- shipping.mode: Modo de envio da publicação.
- shipping.logistic_type: Tipo logístico da publicação
- shipping.tags: Tags de shipping, incluindo a ativação do Flex.
- self_service_in: Item com Flex ativado
- self_service_out: Item não tem Flex ativado
- self_service_available: Item é permitido enviar por Flex.
Consultar se a categoria permite Flex
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/categories/MLB438794/shipping_preferences
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/categories/MLB438794/shipping_preferences
Resposta:
{
...
"logistics": [
...
{
"types": [
"drop_off",
"xd_drop_off",
"self_service",
"cross_docking",
"fulfillment"
],
"mode": "me2"
}
],
...
"category_id": "MLB438794"
}
Nota: Para saber que a categoria permite Flex, deve estar presente a opção self_service, dentro do array logistics.
Consultar Flex no item
Este endpoint permite verificar se o item está atualmente sendo oferecido com Envios Flex ou não.
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403
Resposta:
Status: 204 No Content
Códigos de Estado de resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
204 - No Content | - | Item habilitado para Envios Flex. | - |
403 - Forbidden | item down | Item não oferece Envios Flex. | Validar as modalidades de envio do item. |
404 - Not Found | item not found | O país está desabilitado para Envios Flex. | Validar os países com Envios Flex. |
Ativar Flex no item
Este endpoint permite ativar a opção de Envios Flex no item.
Chamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID
Exemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403
Resposta:
Status: 204 No Content
Códigos de Estado de resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
204 - No Content | - | Item habilitado para Envios Flex. | - |
400 - Bad request | item is already in flex | Item já tem Flex ativo | Validar que o Item já possua Flex prévio a esta requisição |
403 - Forbidden | item down | Item não oferece Envios Flex. | Validar as modalidades de envio do item. |
404 - Not Found | item not found | O país está desabilitado para Envios Flex. | Validar os países com Envios Flex. |
Desativar Flex no item
Este endpoint permite desativar a opção de Envios Flex no item.
Chamada:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/$SITE_ID/shipping/selfservice/items/$ITEM_ID
Exemplo:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/sites/MLB/shipping/selfservice/items/MLB1493119403
Resposta:
Status: 204 No Content
Códigos de Estado de resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
204 - No Content | - | Item desabilitado para envios Flex. | - |
403 - Forbidden | item down | Item não oferece Envios Flex. | Validar as modalidades de envio do item. |
404 - Not Found | item not found | O país está desabilitado para Envios Flex. | Validar os países com Envios Flex. |
Identificar Ordens Flex
Este endpoint determina se um envio será realizado pelo serviço Flex, permitindo concluir a transação de forma efetiva.
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/$SHIPMENT_ID
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/42469883906
Resposta:
"tags": [
"self_service"
]
Identificar o código do transportador
Este endpoint facilita a identificação do transportador atribuído a um envio, o que é útil para registrar alterações de transportador durante o processo de entrega.
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/flex/sites/$SITE_ID/shipments/$SHIPMENT_ID/assignment/v1
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/flex/sites/MLA/shipments/40070866801/assignment/v1
Resposta:
{
"driver_id": 1234
}
Códigos de Estado de resposta:
Código | Mensagem | Descrição | Recomendação |
---|---|---|---|
200 - OK | - | Transportador atribuído. | - |
404 - Not Found | shipment_id not found | Não possui transportador atribuído ou a rota não está aberta (envio pendente de ser entregue). Não existe (shipment inexistente). | Validar o estado do envio ou shipment_id . |
Estados e subestados Flex
Este endpoint permite conhecer os estados e subestados do fluxo de envios Flex.
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/$SHIPMENT_ID
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/shipments/43319685225
Respostas:
{
...
"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 resposta:
- status: O estado geral do pacote. Os valores possíveis são:
- delivered: pacotes entregues.
- ready_to_ship: pacotes prontos para despachar.
- cancelled: pacotes cancelados.
- not_delivered: pacotes rejeitados ou que não será possível entregá-los. Dentro deste status temos os seguintes substatus possíveis:
- Rejeitado pelo comprador.
- refused_delivery: O comprador rejeitou a entrega.
- Rejeitado pelo comprador.
- shipped: pacotes que estão a caminho do comprador.
- Saída para rota: O pedido está a caminho.
- out_for_delivery: O pacote está a caminho para ser entregue.
- soon_deliver: O motorista notificou o comprador que seu pacote é o próximo na rota de entrega.
- Endereço incorreto ou incompleto.
- bad_address: O motorista registrou que o endereço fornecido está incorreto.
- Não há ninguém no endereço.
- receiver_absent: O motorista marcou que o comprador estava ausente no momento da entrega.
- O comprador decide reprogramar a compra desde seu aplicativo.
- buyer_rescheduled: O comprador solicitou reprogramar a entrega.
- O motorista marcou como entregue longe do endereço do comprador.
- delivery_blocked: O motorista indicou que o pacote foi entregue, mas longe do endereço do comprador. Solicita-se ao comprador que confirme se recebeu o envio.
- O vendedor marca como entregue o envio desde seu aplicativo.
- waiting_for_confirmation: O pacote foi marcado como entregue pelo vendedor após a data prometida. Solicita-se ao comprador que confirme se recebeu o envio.
- Saída para rota: O pedido está a caminho.
Convivencia Full e Flex
Para gerenciar o estoque do Flex quando o vendedor tem Fulfillment ativo em sua publicação, disponibilizamos a funcionalidade de estoque distribuído.
Consulte a documentação para entender o funcionamento: Convivência Full e Flex
Itens não enviáveis por ME2 (Items em ME1, custom ou not_specified)
Produtos em categorias que não são enviadas por Mercado Envios (ME2) em outras modalidades logisticas (drop_off, crossdocking, fulfillment) por suas particularidades, agora podem ser enviados por Envios Flex especificamente.
São produtos considerados não enviáveis os que possuem a seguinte caracteristica:
- Inflamável: Produtos com risco de inflamação.
- Pack 4 Pneus: Pacotes que contêm quatro pneus.
- Não-Maquinável: Itens que não podem ser processados por máquinas.
- Hazmat: Materiais perigosos.
Para ativar o Flex no produto do vendedor, valide que a categoria agora permite a opção self_service (Flex), como já deve ser realizado para os demais envios.
Categoria exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/categories/MLA45502/shipping_preferences
Resposta:
{
...
"logistics": [
...
{
"types": [
"self_service"
],
"mode": "me2"
}
],
...
"category_id": "MLA45502"
}
Após isso, para ativar o Flex não é necessário modificar previamente o shipping.mode do Item, mas sim executar o optin do Flex conforme a instrução de ativar Flex.
Vista do vendedor:
![](https://http2.mlstatic.com/storage/developers-site-cms-admin/188388415981-Captura-de-pantalla-2024-06-18-a-la-s--8.52.52-a.-m..png)
Próximo: Envios Turbo