Documentação do Mercado Livre
Confira todas as informações necessárias sobre as APIs Mercado Livre.Documentação do
Experiência para imóveis
A partir do Mercado Livre queremos gerar uma nova experiência de Solicitação de visita com foco em assegurar a disponibilidade dos imóveis, e garantir a resposta a dúvidas e pedidos de agenda em tempo e forma.
Este guia tem como objetivo descrever e exemplificar como o Mercado Livre se conecta com os parceiros que estão atualmente dentro do modelo de Solicitação de visita. Ele detalha a jornada do cliente, destacando em que 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ável que aceitam.
- Entregar diretrizes técnicas de como integrar-se com nosso sistema para poder utilizar os Webhooks e APIs.
- Ambiente de produção: este é o ambiente utilizado para acessar a versão em produção do nosso sistema.
- Ambiente de stage: este é o nosso ambiente de pré produção, reservado para provas y desesvolvimento. Para acessá-lo, é necessário incluir o parámetro ?scope=stage a URL principal. Por exemplo: URL/?scope=stage.
- A conta do seller profissional deve estar registrada.
- Registrar a aplicação para obter o token.
- Autenticação como seller ou integrador, conforme corresponda.
- Gerar a configuração do seller.
- Publicar os items na plataforma.
- Marcar os items como Solicitação de visita.
- Obter detalhes da agenda para verificar o fluxo.
Considerações
Atualmente, temos dois ambientes disponíveis para integração:
Por favor, utilize este ambiente para testes e desenvolvimento antes de implementar quaisquer alterações no ambiente de produção.
Passos para iniciar a integração
Atualizações em Tempo Real
Estas atualizações em tempo real são utilizadas pelo partner para obter mais informações sobre a intenção de visita, como sobre a reserva efetuada pelo cliente (comprador). Ao mesmo tempo, também para nos poder fornecer mais informações sobre o estado da intenção de visita gerada pelo cliente e, assim, teremos um journery transparente para o comprador.
É importante o seller ter configurado em seu sistema todos os endpoints de nossa API e fazer as chamadas sempre que quiser 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 fazer as chamadas para nossa API para alterar o estado.
Configurações
As configurações são necessárias para operar nos fluxos de visita e também informar sobre as condições de Solicitação de cada seller em relação às suas propriedades. Essas informações são exibidas em cada publicação e dentro do fluxo de visita.
Criar configuração
A seguir, são detalhadas as validações aplicadas a cada parâmetro para uma nova Configuração:
Parâmetro | Obrigatório | Min | Max | Tipo | Padrão | Descrição | seller_id | Sim | 1 | - | Long | - | Identificador único do provedor ou seller. |
---|---|---|---|---|---|---|
notification_url | Não | 0 | 150 | String | “” | URL para receber notificações de agenda. |
codebtor_required | Não | - | - | Boolean, valores permitidos true ou false. | true | Requisito de avaliação. |
latest_dependent_worker_payrolls | Não | 0 | 12 | Integer | 3 | Quantidade dos últimos pagamentos salariais. |
latest_independent_worker_payrolls | Não | 0 | 24 | Integer | 6 | Quantidade de recibos de honorários. |
email_notify_schedule | Não | - | - | Boolean, valores permitidos true ou false. | true | Notificação de agendas por e-mail ao partner. |
salary_multiplier | Não | 1 | 10 | Double | 3 | Fator multiplicador de renda. |
notification_header_token | Não | 1 | 50 | String | “” | Token de autenticação para receber notificações de agendas e reservas. |
notification_token | Não | 1 | 300 | String | “” | Header associado ao token para receber notificações de agendas e reservas. |
allow_guest_login | Não | - | - | Boolean | false | Permite agendas de usuários não registrados. |
No caso dos campos notification_header_token e notification_token estes só devem ser preenchidos quando é configurado um url de notificação e o seu valor será automaticamente encriptado ao criar essa configuração.
Ambiente de stage:
curl --location --request POST
'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider?scope=stage' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}} \
--header 'Content-Type: application/json' \
--data-raw '{
"seller_id": 123456789,
"notification_url": "https://notification-url.com",
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 10,
"email_notify_schedule": true,
"salary_multiplier": 4,
"notification_header_token": "Authorization",
"notification_token": "Bearer ANB7xKhiUZmwltVd3f1odcHHM9VAwg02kwmLwtZwHv3S",
"allow_guest_login": true
}'
Ambiente de produção:
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,
"notification_url": "https://notification-url.com",
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 10,
"email_notify_schedule": true,
"salary_multiplier": 4,
"notification_header_token": "Authorization",
"notification_token": "Bearer ANB7xKhiUZmwltVd3f1odcHHM9VAwg02kwmLwtZwHv3S",
"allow_guest_login": true
}'
Atualização de configuração
A seguir são detalhadas as validações aplicadas a cada atributo.
Nota: Dado que é uma atualização parcial, todos os campos são opcionais e só se deve enviar os que for atualizar.
Parâmetro | Obrigatório | Min | Max | Tipo | notification_url | Não | 1 | 150 | String |
---|---|---|---|---|
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 | No | - | - | Boolean, valores permitidos true ou false. |
salary_multiplier | Não | 0 | 10 | Double |
allow_guest_login | Não | - | - | Boolean, valores permitidos true ou false. |
notification_header_token | Não | 1 | 50 | String |
notification_token | Não | 1 | 300 | String |
Ambiente de stage:
curl --location --request PATCH
'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider/{providerId}?scope=stage' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}} \
--header 'Content-Type: application/json' \
--data-raw ''{
"notification_url": “https://notification-url.com”,
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 10,
"email_notify_schedule": true,
"salary_multiplier": 4,
"notification_header_token": "Authorization",
"notification_token": "Bearer ANB7xKhiUZmwltVd3f1odcHHM9VAwg02kwmLwtZwHv3S",
"allow_guest_login": true
}'
Ambiente de produção:
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 '{
"notification_url": “https://notification-url.com”,
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 10,
"email_notify_schedule": true,
"salary_multiplier": 3,
"notification_header_token": "Authorization",
"notification_token": "Bearer ANB7xKhiUZmwltVd3f1odcHHM9VAwg02kwmLwtZwHv3S",
"allow_guest_login": true
}'
Descrição de atributos
A seguir se detalham as validações em cada parâmetro para se obter a configuração:
Variavel | Tipo | Descrição | provider_id | String | Identificador único de provedor do seller. |
---|---|---|
notification_url | String | URL para receber notificações de agendas. |
fantasy_name | String | Nombe fantasia associado ao usuario. |
codebtor_required | Boolean | Requisito de aval. |
latest_dependent_worker_payrolls | Integer | Quantidade das ultimas liquidações de saldo. |
latest_independent_worker_payrolls | Integer | Quantidade de boleto de honorários |
email_notify_schedule | Boolean | Notificação de agendas por e-mail ao partner. |
salary_multiplier | Double | Fator multiplicador de renda. |
notification_token | String | Token de autenticação para recebir notificações de agendas. |
notification_header_token | String | Header associado ao token para receber notificações de agendas. |
allow_guest_login | Boolean | Permite agendas de usuarios não logados. |
Através providerId
Ambiente de stage:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider/{providerId}?scope=stage' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}
Nota: é importante fazer a chamada com o id de seller teste e inserir com o queryParam scope=stage.
Ambiente de produção:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider/{providerId}' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}
Através sellerId
Ambiente Stage:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/configurations/seller/{sellerId}?scope=stage' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
Nota: é importante fazer a chamada com o id de seller teste e inserir com o queryParam scope=stage.
Ambiente de produção:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/configurations/seller/{sellerId}' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
Em ambos casos, mediante providerId y sellerId o JSON que será retornado será o seguinte:
Resposta:
{
"provider_id": "123456789",
"notification_url": "https://notification-url.com",
"fantasy_name": "Test Company",
"codebtor_required": false,
"latest_dependent_worker_payrolls": 6,
"latest_independent_worker_payrolls": 12,
"email_notify_schedule": true,
"salary_multiplier": 3,
"notification_token": "gXt2x3qfL22UsqXLUY0egda32sffs2saj8UFyhw3Sw=="
"notification_header_token": "ne/GHVXAv2x9YxzJbCKzMA==",
"allow_guest_login": true
}
Seus respectivos dados são:
Variável | Tipo | Descrição |
---|---|---|
provider_id | String | Identificador único de provedor do seller |
notification_url | String | URL para receber notificações de agendas |
fantasy_name | String | Nome fantasia associado ao usuário |
codebtor_required | Boolean | Requisito de aval |
latest_dependent_worker_payrolls | Integer | Quantidade das ultimas liquidações de saldo |
latest_independent_worker_payrolls | Integer | Quantidade de recibos de honorários |
email_notify_schedule | Boolean | Notificação de agendas por e-mail para o partner |
salary_multiplier | Double | Fator multiplicador de renda |
notification_token | String | Token de autenticação para receber notificações de agendas |
notification_header_token | String | Header associado ao token para receber notificações de agendas |
allow_guest_login | Boolean | Permite agendas de usuários não logados |
Marcar e Desmarcar ítems
Este endpointl é utilizado para marcar items que estão como arrendamento tradicional para serem convertidos em Solicitação de visita e vice-versa, esta ação dependerá do estado enviado.
No caso de já ter tentado marcar ou desmarcar e por algum motivo o processo falhar, poderá executar este endpoint para tentar marcar novamente.
No caso de stage e produção, os parâmetros para efetuar a chamada são os seguintes:
Campo | Descrição | Exemplo | seller_id | ID do seller a que pertencem os itens. | 12345678 |
---|---|---|
operator_id | ID do operador dos itens. |
Por enquanto, este valor deve ser deixado como "null". |
status | Estado do marcado e desmarcado dos artigos itens. - pending_approval - remove_approval |
O status deve ser enviado para marcar o item como uma Solicitação de visita - pending_approval. Para o caso de desmarcar e converter o item em Solicitação tradicional, deve ser enviado o seguinte: - remove_approval |
operation_reason | Este é o motivo apresentado pelo operador do Mercado Livre para rejeitar os itens. | Este campo deve estar sempre vazio (“”). |
item_ids | Corresponde aos itens a marcar. | Deve ser um array em que os ids devem estar todos juntos e separados por vírgulas (,). Ej: MLC123, MLC321 Nota: Os itens que serão marcados devem pertencer ao "seller_id" especificado. |
Nota: é importante fazer a chamada com o id de seller teste e inserir com o queryParam scope=stage.
Ambiente de stage:
curl --location --request POST
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/item-candidates?scope=stage' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}} \
--header 'Content-Type: application/json' \
--data-raw '{
"seller_id": 123123123,
"operator_id": null,
"status": "pending_approval",
"operation_reason": "",
"item_ids": ["MLC123","MLC321"]
}'
Ambiente de producción:
curl --location --request POST
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/item-candidates' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}} \
--header 'Content-Type: application/json' \
--data-raw '{
"seller_id": 123123123,
"operator_id": null,
"status": "pending_approval",
"operation_reason": "",
"item_ids": ["MLC123","MLC321"]
}'
E o JSON que sera retornado será o seguinte:
[
{
"item_id": "MLC123",
"seller_id": 12345678,
"created_at": "2023-04-25T14:32:44.283691Z",
"last_updated": "2023-04-25T14:32:44.283706Z",
"status": "pending_approval",
"retries": 1,
"historical_events": [
{
"operation_date": "2023-04-25T14:32:44.281935Z",
"new_status": "pending_approval"
}
]
},
...
]
Obtenção de itens marcados por status
No caso de stage e produção, os parâmetros para fazer a chamada são os seguintes:
Parâmetro | Descrição | Exemplo | sellerId | ID do seller ao qual pertencem os itens. | 12345678 |
---|---|---|
item_ids | ID dos itens que se deseja buscar. | Eles devem estar todos juntos e separados por vírgulas (,). Por exemplo: MLC123, MLC321 |
status | Estados em que os itens marcados estão localizados. | Eles devem estar todos juntos e separados por vírgulas (,).
Por exemplo: - approved - rejected. Os possíveis status dos itens são: - pending_approval - approved - rejected - remove_approval |
size | Tamanho da quantidade de itens a serem obtidos. | 100 |
from | Isso se refere à quantidade de registros que você deseja pular a partir do primeiro encontrado. Isso é usado para paginação. | Por exemplo: se você inserir 10, isso significa que deseja pular os primeiros 10 itens. |
*field | É o campo pelo qual você deseja ordenar os resultados. | Você deve escolher um dos valores indicados a seguir: - item_id - created_at - last_updated |
*field_type | Tipo de dado a ser ordenado. | Você deve escolher um dos valores indicados a seguir: - text - date No caso em que “field” seja selecionado como “item_id” , o valor deste parâmetro deve ser “text”. Para “created_at” e “last_updated” o valor deve ser “date”. |
*order | Tipo de ordenação dos dados. | Você deve escolher um dos valores indicados a seguir: - asc - desc |
Caso deseje ordenar os resultados, é obrigatório preencher os parâmetros field, field_type y order, caso contrário, esses parâmetros devem ser omitidos..
Ambiente de stage:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/item-candidates/seller/{sellerId}?scope=stage&item_ids={itemIds}&status={statusIds}&size={size}&from={from}&field={field}&field_type={field_type}&order={order}' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}
Nota: é importante fazer a chamada com o do seller de teste e inserir como queryParam scope=stage.
Ambiente de produção:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/item-candidates/seller/{sellerId}?item_ids={itemIds}&status={statusIds}&size={size}&from={from}&field={field}&field_type={field_type}&order={order}' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
E o JSON que será retornado será o seguinte:
{
"total": 5,
"result": [
{
"item_id": "MLC321",
"seller_id": 123123123,
"created_at": "2023-02-20T18:09:32.313833Z",
"last_updated": "2023-03-21T13:00:12.919943Z",
"status": "approved",
"retries": 4,
"api_reason": "Error"
},
{
"item_id": "MLC123",
"seller_id": 123123123,
"created_at": "2023-02-24T20:59:21.216387Z",
"last_updated": "2023-04-12T16:54:56.21958Z",
"status": "approved",
"retries": 1,
"operation_reason": "problema"
},
...
]
}
Os respectivos tipos de variável são:
Variável | Tipo | item_id | String |
---|---|
seller_d | Long |
created_at | String |
last_updated | String |
status | String |
retries | Long |
operation_reason | String |
APIs
Notificação de estados de agenda
Quando uma intenção de visita for feita pelo cliente (comprador) através do Portal Imobiliário ou do marketplace do MercadoLivre.cl, ou quando a agenda for atualizada para qualquer outro estado internamente, você será notificado mediante uma chamada a um endpoint (que deve ser exposto por cada partner).
Este endpoint deve ter o sufixo: /scheduling, por exemplo:
https://api.partner.cl/api/v1/ao/scheduling
O body é o seguinte (método POST):
{
scheduling_id: 123456789,
status: “schedule_created”
}
Onde o valor de scheduling_id corresponde ao ID da agenda e o valor de status corresponde ao estado que a agenda foi atualizada.
Para o parâmetro status, você pode escolher entre os seguintes valores:
Status | Descrição | schedule_created | Agenda criada desde Portal Inmobiliario o marketplace de MercadoLibre.cl |
---|---|
schedule_canceled | Agenda criada a partir do Portal Imobiliário ou do marketplace do MercadoLibre.cl |
schedule_expired | Agenda expirada de forma interna depois de 72 hs. úteis desde sua criação por falta de gestão. |
Visita
Gerar agenda
Para simular uma agenda a partir do portal do Mercado Livre no ambiente de teste (stage), deve ser feito através da seguinte URL:
Ambiente de stage:
https://www.mercadolibre.cl/agendar/visita-inmuebles/{itemId}?scope=stage
É importante ressaltar 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, dados produtivos não devem ser utilizados.
O parâmetro para especificar a publicação sobre a qual criar a agenda é:
{itemId}
Que representa o ID da publicação, por exemplo: MLC916101223.
Obtenção de detalhes da agenda
Ambiente de stage:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/schedules/{scheduleId}?scope=stage' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}
Nota: é importante fazer a chamada com o id do seller de teste e inserir como queryParam scope=stage.
Ambiente de produção:
curl --location --request GET
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/schedules/{scheduleId}' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}
Em ambos casos, o parâmetro para fazer a chamada é:
{scheduleId}
Que representa o ID da agenda a ser consultada.
E o JSON que será 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 |
String | |
name | String |
last_name | String |
itemId | String |
phone1 | String |
phone2 | String |
scheduling_time | List (string) |
scheduling_time_period | List (string) |
Ambiente de stage:
curl --location --request PUT
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/schedules?scope=stage' \
--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": {}
}'
Ambiente de produção:
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": {}
}'
Em ambos casos o body é o seguinte:
{
scheduling_id: "int",
status_code: "int",
status_name: "string",
message: "string",
timestamp: "ISO 8601", // ej: 2011-10-05T14:48:00.000Z
data: {OBJ_DATA} // se detalla más adelante
}
Atualização de status da agenda
A seguir se detalha o domínio de 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 | { scheduling_date: date // "2022-03-30" scheduling_time: string // “12:00” } |
4 | visit_success | Visita bem-sucedida | {} |
5 | visit_fail | Visita malsucedida | { code: "string" reason: “string” } |
6 | scheduling_confirmed | Horário confirmado | { scheduling_date: date scheduling_time: string } |
Scheduling_canceled
O domínio da variável do Status_code: 2 (scheduling_canceled) é o seguinte:
Code | Reason | Descrição | 1 | buyer_cancelled | Cancelada pelo comprador. |
---|---|---|
2 | buyer_out_of_reach | Não é possível comunicar com o comprador. |
3 | agent_cancelled | Cancelada pelo agente. |
6 | requirements_not_met | Comprador não cumpre com os requisitos. |
7 | buyer_not_need_rental | Comprador não precisa do aluguel. |
8 | requirement_rent_not_met | Comprador não cumpre com o aluguel. |
9 | requirement_dicom_not_met | Comprador não cumpre com o DICOM. |
10 | other_buyer_approved | Propriedade tomada por outro locatário (aprovado). |
11 | buyer_rent_another_property | O comprador alugou outra propriedade. |
12 | buyer_stop_answering | Comprador parou de responder. |
13 | buyer_not_show_up | Comprador não compareceu. |
14 | buyer_searching_for_later | O comprador está buscando para mais tarde. |
15** | property_not_available | Propriedade não está disponível. |
16 | buyer_cancel_visit | Cancelada pelo comprador. |
17 | agent_not_attend_visit | Não se apresentou ao agente. |
18** | property_not_available_from_life_cycle | Propriedade não disponível devido ao ciclo de vida. |
19** | property_not_available_from_pack_finished | Propriedade não disponível devido ao pacote de publicações ter finalizado. |
20** | property_not_available_from_seller_finished | Propriedade não disponível porque o seller a finalizou. |
21** | property_not_available_from_partner_finished | Propriedade não disponível porque o integrador a finalizou. |
22** | property_not_available_from_feedback_seller | Propriedade não disponível devido ao feedback do seller indicando que não está disponível. |
23** | property_not_available_from_feedback_buyer | Propriedade não disponível devido ao feedback do comprador indicando que não está disponível. |
24** | property_not_available_from_seller_penalty | Propriedade não disponível devido à penalização ao seller. |
(**) Estes motivos são utilizados para indicar as agendas canceladas pelos seguintes motivos:
- Automático para agendas canceladas devido ao ciclo de vida do item.
- Automático devido ao término do pacote de destaques.
- Mecanismo de controle de disponibilidade executado pelo MercadoLivre ou após o término de uma publicação.
- seller que finalizou manualmente seu item e este possui agendas associadas.
Cabe ressaltar que esses motivos são apenas para uso interno e, portanto, não devem ser usados diretamente nos pedidos.
Como esses são motivos de cancelamento automáticos e internos, o estado do cancelamento será notificado conforme indicado na seção notificação de estados de agenda.
Visit_fail
O domínio da variável do Status_code: 5 (visit_fail) é o seguinte:
Code | Reason | Descrição | 1 | buyer_no_show | O comprador não compareceu. |
---|---|---|
2 | agent_no_show | O agente não compareceu. |
Agenda expirada (processo automático interno)
O sistema possui um processo automático que expira todas as agendas que não foram gerenciadas e estão no estado de "agendas criadas". Esta ação ocorre após 72 horas úteis.
As agendas criadas que expiram ficam com a seguinte condição:
Code | Reason | Descrição | 1 | seller_no_response | A agenda expirou devido à falta de resposta do seller dentro do SLA (72 horas). |
---|
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 estados de agenda.
Unidades MultiFamily
Edição de preço, aumento ou diminuição de unidades
Este endpoint é usado para atualizar o preço das unidades, bem como aumentar ou diminuir o estoque das mesmas. O objetivo é garantir que as unidades não disponíveis não sejam exibidas na publicação, evitando a geração de novas agendas. Caso as unidades estejam disponíveis novamente, elas podem ser exibidas. Além disso, oferece a opção de atualizar o preço das unidades.
O endpoint suporta a atualização de uma lista de unidades mediante o campo units em body:
Ambiente de stage:
curl --location --request PUT
'https://api.mercadolibre.com/vis-transactions-hub/{providerId}/entities/items?scope=stage' \
--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"
}
]
}
}'
Nota: é importante fazer a chamada com o seller_id de teste e inserir como queryParam scope=stage.
Ambiente de produção:
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"
}
]
}
}'
Em ambos casos 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 detalhamos os valores de status_code y status_name.
Status_code | Status_name | 1 | update_units |
---|
A seguir detalhamos o dominio 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. |