Documentação do Mercado Livre
Confira todas as informações necessárias sobre as APIs Mercado Livre.
Documentação do
Motivos para se comunicar
Consultar motivos de comunicação disponíveis
Com os seguintes recursos, os vendedores podem escolher um motivo para iniciar a conversa com o comprador e terão uma quantidade de mensagens disponíveis para envio.
Templates disponíveis por país
O template é um texto predefinido disponibilizado pelo Mercado Livre, que o vendedor não pode modificar.
Template de “REQUEST_VARIANTS”
Para MLA, MLM, MCO, MLC, MLU, MPE e MEC:
Para MLB:
Template de “REQUEST_BILLING_INFO”
Para MLA:
Para MLM:
Para MCO:
Para MLU:
Para MPE:
Para MEC:
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/messages/action_guide/packs/$PACK_ID?tag=post_sale
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/messages/action_guide/packs/20000000000?tag=post_sale
Resposta:
Campos da resposta
char_limit: é a quantidade máxima de caracteres aceitos na opção ("OTHER" ou "SEND_INVOICE_LINK").
A opção REQUEST_VARIANTS está disponível apenas para envios cross docking e drop off.
A opção DELIVERY_PROMISE está disponível apenas para envios Flex.
Dentro das opções do tipo template (REQUEST_VARIANTS e REQUEST_BILLING_INFO), temos o template_id, que deve ser utilizado no POST para envio da mensagem.
Consultar quantidade de mensagens pós-venda disponíveis por pack_id
No grupo de motivos, as categorias podem ter a opção de enviar mensagem ao comprador e você pode reconhecê-las pelo campo cap_available:
- Se for 0 (zero), o vendedor não poderá enviar mensagens ao comprador
- Se for 1 (um) ou mais, indica a quantidade disponível para envio.
Lembre-se que a mensagem terá limite de caracteres e será moderada como uma mensagem normal (apenas para OTHER e SEND_INVOICE_LINK).
Caso o vendedor tenha esgotado o cap de mensagens disponíveis para envio, ao tentar novamente em um campo aberto (OTHER), a resposta será um erro informando que não é mais possível, sendo necessário aguardar resposta do comprador.
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/messages/action_guide/packs/$PACK_ID/caps_available?tag=post_sale
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/messages/action_guide/packs/200000000000/caps_available?tag=post_sale
Resposta:
Enviar mensagem conforme opção
Depois de buscar as opções disponíveis para o pack_id, você deve enviar a mensagem como no POST abaixo. Lembre-se: depois que o comprador responder, as mensagens seguintes devem ser enviadas diretamente pelo post /messages.
Confira os option_id disponíveis por site:
| Site / Option_id | “REQUEST_VARIANTS”: Solicitar dados de variantes |
“REQUEST_BILLING_INFO”: Solicitar dados de faturamento |
“SEND_INVOICE_LINK”: Enviar link para faturamento |
“OTHER”: Outros, campo livre |
“DELIVERY_PROMISE”: Informar promessa de entrega |
|---|
Chamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' -H 'Content-Type: application/json'
{
"option_id": $OPTION_ID,
"template_id": $TEMPLATE_ID
}
https://api.mercadolibre.com/messages/action_guide/packs/$PACK_ID/option?tag=post_sale
Exemplo com REQUEST_BILLING_INFO (Tipo template):
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' -H 'Content-Type: application/json'
{
"option_id": "REQUEST_BILLING_INFO",
"template_id": "TEMPLATE___REQUEST_BILLING_INFO___1"
}
https://api.mercadolibre.com/messages/action_guide/packs/2000000000000000/option?tag=post_sale
Resposta de mensagem enviada:
Exemplo com OTHER (Tipo texto livre):
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/messages/action_guide/packs/2000000000000000/option -H 'Content-Type: application/json' \
{
"option_id": "OTHER",
"text": "Olá Maria, estou precisando de..."
}
Resposta de mensagem enviada corretamente:
Resposta de mensagem moderada:
Campos da resposta
status: estado da mensagem. Por exemplo: available ou moderated
message_moderation:
status: status da moderação da mensagem.
reason: motivo da moderação. Por exemplo: out_of_place_language (moderação por linguagem inadequada).
Exemplo com DELIVERY_PROMISE:
Ao possuir uma promessa de entrega antiga, não enviaremos a mensagem e você receberá o erro:
{
"status_code": 500,
"message": "data de entrega é anterior à data atual"
}
Resposta da mensagem:
Exemplos de mensagens de erro
Por ser caso de exceção
- Produtos com tempo de fabricação (manufacturing time) de qualquer categoria
- Lembre-se que podemos modificar essas exceções sem aviso prévio.
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/messages/action_guide/packs/2000000000000012?tag=post_sale
Resposta:
{
"cause": "blocked_by_excepted_case",
"error": "bad_request",
"message": "Este pack pertence a um caso de exceção, é solicitado usar o recurso de mensagens.",
"status_code": 400
}
Dessa forma, o vendedor poderá utilizar a mensageria pós-venda sem restrições.
Erros
| Status (erro) | Mensagem | Detalhe |
|---|---|---|
| 400 - limit_exceeded | O texto é inválido | Por exceder o limite de 350 caracteres (opção OTHER e SEND_INVOICE_LINK) |
| 403 - bad_request | Você não tem permissão para executar a opção OTHER novamente | Capacidade (cap) não disponível | 403 - forbidden | Este pacote está com a conversa bloqueada, por favor verifique mensagens bloqueadas | Há uma conversa aberta, você deve utilizar o recurso de /messages |
| 404 - not_found | A opção selecionada não é válida | Option_id inválido |
| 409 - conflict | Há outra requisição bloqueando esta operação | Este erro ocorre porque o vendedor executa várias opções simultâneas sobre a mesma venda e, para evitar que sejam realizadas mais caps do que o disponível, criamos um “Lock” do serviço sobre o vendedor e a venda, que é liberado ao finalizar a execução da opção. |
| 403 - forbidden | A conversa está bloqueada | Pack_id com mensageria bloqueada |
| 403 - forbidden | Você não tem permissão para acessar as informações do pack $PACK_ID | Vendedor não está autorizado a consultar as informações desse pack id |
| 400 - bad_request | O template $TEMPLATE_ID é inválido | Template_id incorreto |
| 400 - bad_request | A promessa de entrega do envio contido no pack é de uma data anterior à de hoje | Data inválida/expirada para a promessa de entrega |
| 500 - internal_server_error | Erro interno do servidor | Erro interno |
| 429 - too_many_request | Muitas requisições | Esse erro é retornado quando um usuário enviou muitas requisições em um curto período de tempo |
| 451 - Unavailable | Indisponível | Esse erro é retornado quando o comprador desativou a conta. |
Próximo: Gestão de mensagens.