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 03/07/2026

Experiência para imóveis

Importante:
Recurso disponível exclusivamente para o site MLC (Chile).

No Mercado Livre, queremos criar uma nova experiência de aluguel e venda de imóveis para o comprador por meio de publicações que ofereçam uma experiência superior com foco em garantir a disponibilidade dos imóveis e assegurar a resposta a dúvidas e solicitações de agenda em tempo hábil.


Este guia tem como objetivo descrever e exemplificar como o Mercado Livre se conecta com os parceiros que hoje estão dentro do modelo de solicitação de visita, o customer journey e em qual etapa cada um dos atores envolvidos participa.


Objetivos

  • Descrever brevemente o customer journey de solicitação de visita.
  • Descrever cada um dos webhooks e quais são os domínios de variáveis que aceita.
  • Fornecer diretrizes técnicas de como integrar-se com nosso sistema para utilizar as atualizações em tempo real e APIs.

Passos para iniciar a integração

  1. A conta do vendedor profissional deve estar registrada.
  2. Registrar a aplicação para a obtenção do token.
  3. Autenticação como vendedor ou integrador, conforme aplicável.
  4. Publicar itens na plataforma.
  5. Marcar itens como solicitação de visita.
  6. Obter detalhes da agenda para verificar o fluxo.

Atualizações em Tempo Real

Essas atualizações em tempo real são utilizadas pelo parceiro para obter mais informações sobre a intenção de visita. Ao mesmo tempo, também nos permitem fornecer mais informações sobre o estado da intenção de visita gerada pelo comprador.


É importante que o seller tenha configurado em seu sistema todos os endpoints da nossa API e realize as chamadas sempre que desejar alterar o estado de uma agenda. Assim que um comprador agendar uma visita, as informações são enviadas ao seller, que poderá começar a realizar as chamadas para nossa API para alterar o estado.


Importante:
O critério de qualidade que exige a opção de agendamento online para publicações de aluguel (casas e apartamentos) no MLC é obrigatório. Para que as publicações mantenham uma boa exposição, é fundamental ter essa funcionalidade ativa. Se o seu desenvolvimento não contemplar essa opção, o atributo online_scheduling aparecerá como afetado no endpoint de health.

Configurações

As configurações são necessárias para operar nos fluxos de visita e, adicionalmente, informar sobre as condições de aluguel de cada seller em suas propriedades. Essa informação é exibida em cada publicação e dentro do fluxo de visita.


Criar configuração

Nota:
A criação da configuração é necessária tanto para as propriedades em aluguel quanto para as de venda. Embora no caso das propriedades em venda as condições de aluguel não sejam exibidas, pois estas se aplicam apenas às propriedades em aluguel, é imprescindível que a configuração esteja criada para poder operar adequadamente no fluxo de solicitação de visita.

Para os sellers que possuem APENAS propriedades em VENDA, os valores padrão devem ser os seguintes:

Atributo Tipo Default Descrição
seller_id Long Substituir pelo identificador único Identificador único de provedor ou seller
codebtor_required Boolean true Requisito de aval
latest_dependent_worker_payrolls Integer 3 Quantidade de últimas liquidações de salário
latest_independent_worker_payrolls Integer 6 Quantidade de boletas de honorários
email_notify_schedule Boolean true Notificação de agendas por e-mail ao parceiro
salary_multiplier Double 3 Fator multiplicador de renda
allow_guest_login Boolean false Permite agendas de usuários não logados

Chamada:

curl --location --request POST
'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"seller_id": 123456789,
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 10,
"email_notify_schedule": true,
"salary_multiplier": 4,
"allow_guest_login": true
}'

A seguir, são detalhadas as validações aplicadas em cada atributo.


Atributo Obrigatório Mín Máx Tipo Default Descrição
seller_id Sim 1 - Long - Identificador único de provedor ou seller
codebtor_required Não - - Boolean, valores permitidos true ou false true Requisito de aval
latest_dependent_worker_payrolls Não 0 12 Integer 3 Quantidade de últimas liquidações de salário
latest_independent_worker_payrolls Não 0 24 Integer 6 Quantidade de boletas de honorários
email_notify_schedule Não - - Boolean, valores permitidos true ou false true Notificação de agendas por e-mail ao parceiro
salary_multiplier Não 1 10 Double 3 Fator multiplicador de renda
allow_guest_login Não - - Boolean, valores permitidos true ou false false Permite agendas de usuários não logados

Atualizar configuração

Chamada:

curl --location --request PATCH
'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider/{providerId}' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 10,
"email_notify_schedule": true,
"salary_multiplier": 3,
"allow_guest_login": true
}'

A seguir, são detalhadas as validações aplicadas em cada atributo:

Nota:
Como é uma atualização parcial, todos os campos são opcionais e somente os que se deseja atualizar devem ser enviados.

Atributo Obrigatório Mín Máx Tipo
codebtor_required Não - - Boolean, valores permitidos true ou false
latest_dependent_worker_payrolls Não 0 12 Integer
latest_independent_worker_payrolls Não 0 24 Integer
email_notify_schedule Não - - Boolean, valores permitidos true ou false
salary_multiplier Não 1 10 Double
allow_guest_login Não - - Boolean, valores permitidos true ou false

Obtenção de configuração

Por provider_Id:


Chamada:

curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider/$provider_Id' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}'

Por seller_Id:


Chamada:

curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/configurations/seller/$seller_Id' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}'

Resposta


Em ambos os casos, por providerId e sellerId, o JSON retornado será o seguinte:

{
"provider_id": "123456789",
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 12,
"email_notify_schedule": true,
"salary_multiplier": 3,
"allow_guest_login": true
}

Descrição dos atributos

A seguir, são detalhadas as validações em cada parâmetro para obter uma configuração:

Variável Tipo Descrição
provider_id String Identificador único de provedor ou seller.
codebtor_required Boolean Requisito de aval.
latest_dependent_worker_payrolls Integer Quantidade de últimas liquidações de salário.
latest_independent_worker_payrolls Integer Quantidade de boletas de honorários.
email_notify_schedule Boolean Notificação de agendas por e-mail ao parceiro.
salary_multiplier Double Fator multiplicador de renda.
allow_guest_login Boolean Permite agendas de usuários não logados.

Marcação e Desmarcação de itens

Marcar e desmarcar itens

Este endpoint é utilizado para marcar itens que não estão com Solicitação de Visita para que sejam convertidos ao modelo com Solicitação de visita e vice-versa. Essa ação dependerá do campo enable_rex enviado. Caso já se tenha tentado marcar ou desmarcar e por algum motivo o processo falhe, é possível executar este endpoint para tentar marcá-lo novamente.


Durante o processo de marcação de itens, é possível obter um código de status 422, indicando que a solicitação foi aceita, mas não pôde ser processada, porque o seller não cumpre as condições para marcar itens.



Os parâmetros para realizar a chamada são os seguintes:

Campo Descrição Exemplo
seller_id ID do seller ao qual pertencem os itens. 12345678
item_ids Corresponde aos itens que serão marcados.
Deve ser um array onde os ids devem estar todos juntos e separados por vírgulas (,)
ex: MLC123,MLC321

Nota: os itens que serão marcados devem pertencer ao "seller_id" informado
enable_rex Corresponde à ação de converter ou reverter item com Solicitação de Visita.
Para converter um item com Solicitação de visita, deve-se definir como true.
Para reverter um item com Solicitação de visita, deve-se definir como false.


Chamada:

curl --location --request POST
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/items/tags' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "seller_id": 123123123,
  "item_ids": ["MLC123","MLC321"],
  "enable_rex": true
}'

E o JSON retornado será a lista de itens marcados/desmarcados:

[
        "MLC123",
        "MLC321"
]

APIs

Notificação de leads de agenda

Quando no marketplace do Mercadolibre.cl for acionada uma intenção de visita por parte do cliente (comprador) ou quando uma agenda for atualizada para qualquer outro estado, será enviada uma notificação por meio do tópico público VIS Leads, utilizando o filtro de Visit Request.



Para isso, é necessário acessar o aplicativo que recebe todos os leads e habilitar este filtro. A callback URL definida para receber as notificações receberá o conteúdo da seguinte forma:

{
  "_id": "abcd-qwer-1234",
  "topic": "vis_leads",
  "resource": "/vis/leads/{lead_id}",
  "user_id": 123456789,
  "application_id": 123456789123456789,
  "sent": "2025-01-27T18:21:06.159Z",
  "attempts": 1,
  "received": "2025-01-27T18:21:06.057Z",
  "actions": [
    "visit_request"
  ]
}

O campo lead_id corresponde ao identificador do Lead de agenda. Em seguida, deve-se realizar o API Call para consultá-lo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN'
https://api.mercadolibre.com/vis/leads/$LEAD_ID

Para mais detalhes, consulte a documentação na seção VIS Leads. Ao consultar o Lead, você poderá obter o ID da agenda associada fornecido pelo campo external_id. Com ele, poderá consultar a agenda e seu estado na seção Obtenção de detalhe de agenda.

Importante:

Em 23 de março de 2026, o campo notification_url será descontinuado. Por isso, recomendamos que você ative o mais rápido possível o filtro Visit Request no tópico "VIS Leads", para continuar recebendo as notificações de visita.

Para os integradores que possuem "notification_url" definida em sua configuração e habilitaram o filtro "Visit Request" no tópico "VIS Leads", estarão recebendo a notificação de agenda tanto por nossos sistemas quanto em sua callback URL de notificações, ou seja, de forma duplicada.

Se desejar receber notificações apenas do tópico "VIS Leads", deve atualizar o campo "notification_url" e deixá-lo vazio.


{
  "notification_url": ""
}

Dessa forma, as agendas deixarão de ser notificadas pelo nosso sistema interno. Para mais detalhes sobre como alterar a configuração, acesse a seção Atualizar configuração



Visita

Gerar Agenda

Para realizar uma agenda pelo portal do Mercado Livre, deve-se fazê-la por URL:

https://www.mercadolibre.cl/agendar/visita-inmuebles/{itemId}

É importante destacar que esta URL deve ser utilizada diretamente no navegador, substituindo o parâmetro {itemId} pelo correspondente à publicação. Além disso, tanto o usuário quanto a publicação devem ser de teste, portanto não se devem utilizar dados produtivos.


O parâmetro para especificar a publicação sobre a qual criar a agenda é:

{itemId}

O qual representa o ID da publicação, exemplo: MLC916101223.


Obtenção de detalhe de agenda

Chamada:

curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/schedules/$schedule_Id' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}'

O parâmetro para realizar a chamada é:

$schedule_Id

O qual representa o ID da agenda a consultar. O JSON retornado será o seguinte:

{
  "id": 27002,
  "unit_name ":"1808-B",
  "user_id": 1006753330,
  "email": "useremail@email.cl",
  "name": "Test Test",
  "last_name": "",
  "item_id": "MLC916101223",
  "phone": "1111-1111",
  "scheduling_date": ["2022-03-30"],
  "scheduling_time_period": [{"from": "09:00:00","to": "12:00:00"}]
}

Seus respectivos tipos de dados são:

Variável Tipo
id Long
unit_name String
user_id Long
email String
name String
last_name String
item_id String
phone1 String
phone2 String
scheduling_time List (String)

Atualização status agenda

Chamada:

curl --location --request PUT 'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/schedules' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "scheduling_id": 12345,
   "status_code": 12345,
   "status_name": "string",
   "message": "string",
   "timestamp": "ISO 8601",
   "data": {}
   }'

A seguir, detalhamos o domínio da variável data:


Status_code Status_name Descrição Body
2 scheduling_canceled Agenda cancelada { code: "string", reason: "string" }
3 scheduling_modified Horário modificado
4 visit_success Visita realizada {}
6 scheduling_confirmed Horário confirmado { scheduling_date: "date", scheduling_time: "string" }
7* scheduling_contacting Gerenciando visita {}

(*) O estado scheduling_contacting serve para indicar que o seller já está se comunicando com o buyer para coordenar uma data e hora da visita. O objetivo de utilizar este estado é evitar o processo de expiração de agendas, conforme explicado na seção Agenda expirada. Este estado é utilizado quando um seller usa algum canal de contato como Whatsapp ou Call para contatar o buyer. Desde o Mercado Livre o processo está automatizado para detectar intenções de contato a partir do Painel de Pessoas interessadas, Emails e Whatsapp ao buyer.


Scheduling_canceled

O domínio da variável do Status_code: 2 (scheduling_canceled) é o seguinte:

Code Reason Descrição Usado por Usado por tipo de propriedade
2 buyer_out_of_reach Não é possível se comunicar com o buyer. Integradores, Painel. Aluguel/Venda
6 requirements_not_met buyer não cumpre requisitos. Integradores, Painel. Aluguel
14 buyer_searching_for_later buyer procura para mais tarde. Integradores, Painel. Aluguel
15** property_not_available Propriedade não está disponível. De forma interna. N/A
16 buyer_cancel_visit Cancelada pelo buyer. Integradores, Painel. Aluguel/Venda
18** property_not_available_from_life_cycle Propriedade não disponível por ciclo de vida. De forma interna. N/A
19** property_not_available_from_pack_finished Propriedade não disponível por pacote de publicações finalizado. De forma interna. N/A
20** property_not_available_from_seller_finished Propriedade não disponível porque o seller a finalizou. De forma interna. N/A
21** property_not_available_from_partner_finished Propriedade não disponível porque o integrador a finalizou. De forma interna. N/A
24** property_not_available_from_seller_penalty Propriedade não disponível por penalização ao seller. De forma interna. N/A
25*** property_not_available_seller Cancelado por propriedade não disponível. Integradores, Painel. Aluguel/Venda

(**) Estas razões são utilizadas para sinalizar aquelas agendas que foram canceladas pelos seguintes motivos:

  • Automática para as agendas canceladas por ciclo de vida do item (18).
  • Automática por finalização do pacote de destaque (19).
  • Mecanismo de controle de disponibilidade executado pelo MercadoLibre ou após finalizar uma publicação. (24).
  • Seller que finaliza manualmente seu item e este possui agendas associadas. (15, 20, 21).

Cabe destacar que estas razões são apenas de uso interno, portanto não deveriam ser usadas diretamente nas requests.


Como estas são razões de forma automática e interna, o estado do cancelamento será notificado conforme indicado na seção notificação de estados de agenda.

Importante:
Ao utilizar a razão com código 25 ("property_not_available_seller") a agenda é cancelada e será realizada a ação de finalizar a publicação no MercadoLibre. Uma vez que esta ação for concluída, todas as agendas associadas a essa publicação serão canceladas automaticamente.

Razões do comprador

Esses códigos e razões correspondem à resposta fornecida pelo comprador. Não devem ser usados pelo integrador/vendedor.


Código Razão Descrição Usado por Usado por Tipo de propriedade
100*** property_not_available_buyer Propriedade não está disponível buyer N/A
101* buyer_out_of_reach Não contactaram o buyer buyer N/A
102 buyer_cancel_visit Cancelaram a visita buyer N/A
103 requirements_not_met Buyer não cumpre requisitos buyer N/A
104 buyer_searching_for_later Procura para outra data buyer N/A
105 other_reason Outro motivo buyer N/A

Nota:
Se as agendas não foram gerenciadas, o comprador será consultado por e-mail e WhatsApp sobre a visita à propriedade. Se a resposta for que não conseguiu, o comprador cancelará a agenda especificando o motivo do cancelamento.

Importante:
Ao utilizar a razão com código 100 ("property_not_available_buyer"), que indica que a propriedade não está disponível, NÃO será executado o processo para finalizar a publicação, ao contrário da razão com código 25, isso dado que é informado pelo buyer e não pelo seller.

Visit_success

Como indicado anteriormente, quando uma agenda não é gerenciada, o buyer é consultado se pôde ou não visitar a propriedade, caso indique que sim pôde visitar a propriedade, a agenda passará a Visita Realizada, junto com isso, indicamos a seguinte razão de por que uma agenda pode ser concluída pelo buyer:


Razão Descrição Usado por Usado por Tipo de propriedade
buyer_completed_whatsapp Visita realizada através do WhatsApp Buyer N/A
buyer_completed_email Visita realizada através de correio Buyer N/A

Agenda expirada (processo automático interno)

O sistema conta com um processo automático que se encarrega de expirar todas as agendas que não foram gerenciadas e se encontram no estado de "agendas criadas", esta ação é executada após 3 dias consecutivos desde a data de intenção do buyer de visitar a propriedade.


Exemplo: o buyer gera uma solicitação de visita com a intenção de visitar a propriedade no dia 1 de novembro, após 3 dias consecutivos (4 de novembro), no 4º dia nas primeiras horas, se a agenda ainda não foi gerenciada, esta procederá a expirar. As agendas criadas que são expiradas ficam com a seguinte condição:


Code Reason Descrição
1 seller_no_response Expirou a agenda por não resposta do seller após 3 dias consecutivos desde a data de intenção do buyer de visitar a propriedade.

Como esta é uma razão de forma automática e interna, o estado da expiração será notificado conforme indicado na seção Notificação de leads de Agenda.


Unidades MultiFamily

Nota:
Esta seção NÃO se aplica para propriedades em VENDA.

Edição de preço, aumento ou diminuição de unidades

Este endpoint é utilizado para atualizar o preço das unidades, bem como aumentar ou diminuir o estoque das mesmas. Com o objetivo de que não sejam exibidas unidades na publicação que não estão disponíveis e, portanto, não sejam gerados novos agendamentos, e que, caso estejam novamente disponíveis, possam ser exibidas. Adicionalmente, oferece a opção de atualizar o preço das unidades.


O endpoint suporta a atualização de uma lista de unidades por meio do campo units no body.


Chamada:

curl --location --request PUT 'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/items' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "item_id": ML123,
   "status_code": 1,
   "status_name": "string",
   "message": "string",
   "timestamp": "ISO 8601",
   "data": {
      "units": [
         {
            "unit_name": "string",
            "price": 200000,
            "operation": "string"
         },
         {
            "unit_name": "string",
            "price": 400000,
            "operation": "string"
         }
      ]
   }
}'

O body é o seguinte:

{
  item_id: "int",
  status_code: "int",
  status_name: "string",
  message: "string",
  timestamp: "ISO 8601", // ej: 2011-10-05T14:48:00.000Z
  data: {
    units: [
      {
        unit_name: "string",
        price: "int",
        operation:"string"
      }
    ]
  }
}

A seguir são detalhados os valores de status_code e status_name.

Status_code Status_name
1 update_units

A seguir é detalhado o domínio do atributo operation:

Operation Descrição
price_updated Permite atualizar o preço da unidade.
unit_added Permite aumentar a unidade.
unit_removed Permite diminuir a unidade.

Nota:
para o caso da operação unit_added, se o preço for enviado, este também é atualizado. Para o caso de remover unidades não é permitida a atualização do preço.