Documentación Mercado Libre

Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.
circulos azuis em degrade

Documentación

Última actualización 31/01/2025

Experiencia para inmuebles

Importante:
Ya tenemos completamente soportado el flujo guest para la funcionalidad de Solicitud de Visita en los sitios MLM, MLU y MLA. A partir de ahora, los usuarios podrán realizar la solicitud de visita de manera más ágil y eficiente, incluso sin estar autenticados.

Desde Mercado Libre queremos generar una nueva experiencia de arriendo y venta de propiedades para el buyer a través de publicaciones que ofrezcan una experiencia superior con foco en asegurar la disponibilidad de los inmuebles, y garantizar la respuesta a dudas y solicitudes de agenda en tiempo y forma.


Esta guía tiene como objetivo describir y ejemplificar cómo Mercado Libre se conecta con los partners que hoy están dentro del modelo de solicitud de visita, el customer journey y en qué etapa participa cada uno de los actores involucrados dentro del mismo.


Objetivos

  • Describir brevemente el customer journey de solicitud de visita.
  • Describir cada uno de los webhooks y cuales son los dominios de variable que acepta.
  • Entregar lineamientos técnicos de cómo integrarse con nuestro sistema para poder hacer uso de la actualizacion en tiempo real y APIs.
  • Importante:
    Este recurso está activo para los sitios MLC, MLM, MLU y MLA.

    Consideraciones

    Actualmente, tenemos dos ambientes disponibles para integración:

    • Ambiente de producción: este es el ambiente utilizado para acceder a la versión en producción de nuestro sistema
    • Ambiente de stage: este es nuestro ambiente de preproducción, reservado para pruebas y desarrollo. Para acceder a él, es necesario agregar el parámetro ?scope=stage a la URL principal. Por ejemplo: URL/?scope=stage.

    Por favor, utilice este ambiente para pruebas y desarrollo antes de implementar cualquier cambio en el ambiente de producción.


    Pasos para iniciar la integración

    1. La cuenta del seller profesional debe estar registrada.
    2. Registrar la aplicación para la obtención del token.
    3. Autenticación como seller o integrador según corresponda.
    4. Publicar ítems en la plataforma.
    5. Marcar ítems como solicitud de visita.
    6. Obtener detalles de la agenda para verificar el flujo.

    Actualizaciones en Tiempo Real

    Estas actualizaciones en tiempo real son utilizadas por el partner para obtener más información sobre la intención de visita. Al mismo tiempo, también nos permiten proporcionar más información sobre el estado de la intención de visita generada por el buyer.


    Es importante que el seller haya configurado en su sistema todos los endpoints de nuestra API y realice las llamadas siempre que desee cambiar el estado de una agenda. Tan pronto como un buyer programe una visita, la información se envía al seller, quien podrá comenzar a realizar las llamadas a nuestra API para cambiar el estado.


    Importante:
    A partir de octubre/2024, se implementará un nuevo criterio de calidad en las publicaciones de arriendo de casas y departamentos en MLM y MLC. Este criterio requerirá que las publicaciones incluyan la opción de agendamiento online. Para que la publicación tenga una buena exposición, es importante disponibilizar esta funcionalidad. Si esta funcionalidad no se desarrolla, al consultar el criterio de calidad en el endpoint de health, verás el atributo online_scheduling afectado.

    Configuraciones

    Las configuraciones son necesarias para operar en los flujos de visita y adicionalmente informar acerca de las condiciones de arriendo de cada seller sobre sus propiedades, esta información se visualiza en cada publicación y dentro del flujo de visita.


    Crear configuración

    Nota:
    La creación de la configuración es necesaria tanto para las propiedades en arriendo como para las de venta. Aunque en el caso de las propiedades en venta no se muestran las condiciones de arriendo, ya que estas solo aplican a las propiedades en arriendo, es imprescindible que la configuración esté creada para poder operar adecuadamente en el flujo de solicitud de visita.

    Para aquellos sellers que SOLO tienen propiedades en VENTA los valores por defecto deben ser los siguientes:

    Atributo Tipo Default Descripción
    seller_id Long Sustituir por el identificador único Identificador único de proveedor o seller
    codebtor_required Boolean true Requisito de aval
    latest_dependent_worker_payrolls Integer 3 Cantidad de últimas liquidaciones de sueldo
    latest_independent_worker_payrolls Integer 6 Cantidad de boletas de honorarios
    email_notify_schedule Boolean true Notificación de agendas por correo al partner
    salary_multiplier Double 3 Factor multiplicador de renta
    allow_guest_login Boolean false Permite agendas de usuarios no logueados

    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,
        "codebtor_required": false,
        "latest_dependent_worker_payrolls": 6,
        "latest_independent_worker_payrolls": 10,
        "email_notify_schedule": true,
        "salary_multiplier": 4,
        "allow_guest_login": true
    }'
    
    
    

    Ambiente de producción:

    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 continuación se detallan las validaciones aplicadas en cada atributo.

    Atributo Requerido Min Max Tipo Default Descripción
    seller_id 1 - Long - Identificador único de proveedor o seller
    codebtor_required No - - Boolean, valores permitidos true o false true Requisito de aval
    latest_dependent_worker_payrolls No 0 12 Integer 3 Cantidad de últimas liquidaciones de sueldo
    latest_independent_worker_payrolls No 0 24 Integer 6 Cantidad de boletas de honorarios
    email_notify_schedule No - - Boolean, valores permitidos true o false true Notificación de agendas por correo al partner
    salary_multiplier No 1 10 Double 3 Factor multiplicador de renta
    allow_guest_login No - - Boolean false Permite agendas de usuarios no logueados

    Actualizar configuración

    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 '{
        "codebtor_required": false,
        "latest_dependent_worker_payrolls": 6,
        "latest_independent_worker_payrolls": 10,
        "email_notify_schedule": true,
        "salary_multiplier": 4,
        "allow_guest_login": true
    }'
    
    

    Ambiente de producción:

    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 continuación se detallan las validaciones aplicadas en cada atributo:

    Nota:
    Dado que es una actualización parcial, todos los campos son opcionales y sólo se deben enviar los que se quieran actualizar. .

    Atributo Requerido Min Max Tipo
    codebtor_required No - - Boolean, valores permitidos true ó false
    latest_dependent_worker_payrolls No 0 12 Integer
    latest_independent_worker_payrolls No 0 24 Integer
    email_notify_schedule No - - Boolean, valores permitidos true ó false
    salary_multiplier No 1 10 Double
    allow_guest_login No - - Boolean, valores permitidos true ó false

    Obtención de configuración

    Mediante providerId:

    curl --location --request GET 
    'https://api.mercadolibre.com/vis-transactions-hub/configurations/provider/{providerId}?scope=stage' \
    --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
    

    Nota: es importante hacer el llamado con el id de seller de prueba y añadir como queryParam scope=stage.


    Ambiente de producción:

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

    Mediante sellerId:

    curl --location --request GET 
    'https://api.mercadolibre.com/vis-transactions-hub/configurations/seller/{sellerId}?scope=stage' \
    --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
    

    Nota: es importante hacer el llamado con el id de seller de prueba y añadir como queryParamscope=stage.


    Ambiente de producción:

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

    Respuesta

    En ambos casos, mediante providerId y sellerId, el JSON retornado será el siguiente:

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

    Descripción de atributos

    A continuación se detallan las validaciones en cada parámetro para obtener una configuración:

    Variable Tipo Descripción
    provider_id String Identificador único de proveedor o seller.
    fantasy_name String Nombre de fantasía asociado al usuario.
    codebtor_required Boolean Requisito de aval.
    latest_dependent_worker_payrolls Integer Cantidad de últimas liquidaciones de sueldo.
    latest_independent_worker_payrolls Integer Cantidad de boletas de honorarios.
    email_notify_schedule Boolean Notificación de agendas por correo al partner.
    salary_multiplier Double Factor multiplicador de renta.
    allow_guest_login Boolean Permite agendas de usuarios no logueados.

    Marcado y Desmarcado de ítems

    Marcar y desmarcar ítems

    Este endpoint se utiliza para marcar ítems que no están con Solicitud de Visita para que sean convertidos al modelo con Solicitud de visita y viceversa, esta acción dependerá del campo enable_rex enviado

    En caso de que ya se intentara marcar o desmarcar y por algún motivo el proceso falle, se puede ejecutar este endpoint para intentar marcarlo nuevamente.

    Nota:
    Es importante hacer el llamado con el id de seller de los items en el body y añadir como queryParam scope=stage. .


    En el caso de stage y producción, los parámetros para hacer la llamada son los siguientes:

    Campo Descripción Ejemplo
    seller_id ID del seller al cual pertenecen los ítems. 12345678
    item_ids Corresponde a los ítems que van a ser marcados.
    Debe ser un arreglo donde los ids deben estar todos juntos y separados por comas (,) ej: MLC123,MLC321 Nota: los ítems que se vayan a marcar, deben pertenecer al “seller_id” que se haya colocado
    enable_rex Corresponde a la acción de convertir o revertir item con Solicitud de Visita. Para convertir un item con Solicitud de visita se debe colocar en true Para revertir un item con Solicitud de visita se debe colocar en false.



    Nota: es importante hacer el llamado con el id de seller de prueba y añadir como queryParam scope=stage.


    Ambiente de stage:

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

    Ambiente de producción:

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

    Y el JSON retornado será el lista de ítems marcados/desmarcados:

    [
        
            "MLC123",
            "MLC321"
    
    ]
    

    APIs

    Notificación de leads de agenda

    Cuando desde el marketplace de Mercadolibre.cl, se gatille una intención de visita por parte del cliente (buyer) o cuando se actualice una agenda a cualquier otro estado, se enviará una notificación a través del tópico público de VIS Leads, utilizando el filtro de Visit Request.



    Para ello es necesario ir a la aplicación que recibe todos los leads y habilitar este filtro.

    El callback URL que definió para recibir las notificaciones, recibirá el contenido de la siguiente 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"
      ]
    }
    
    

    El campo lead_id corresponde al identificador del Lead de agenda, luego se debe hacer el API Call para poder consultarlo:

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

    Para más detalles, consultar la documentación en la sección VIS Leads

    Finalmente al consultar el Lead, podrá obtener el ID de la agenda asociada dado por el campo external_id. Con él podrá consultar la agenda y su estado en la sección Obtención detalle de agenda

    Nota:
    Es importante mencionar que el campo “notification_url” será deprecado próximamente. .

    Para los integradores que cuentan con “notification_url” definida en su configuración y hayan habilitado el filtro de “Visit Request” en el tópico de “VIS Leads”, estarán recibiendo la notificación de agenda tanto por nuestros sistemas como en su callback URL de notificaciones, es decir de forma duplicada.

    Si desea sólo recibir notificaciones desde el tópico de “VIS Leads”, debe actualizar el campo “notification_url” y dejarlo vacío.


    {
      "notification_url": ""
    }

    De esta forma se dejará de notificar las agendas por nuestro sistema interno. Para más detalles de cómo cambiar la configuración, ir a la sección Actualizar configuración

    Visita

    Generar Agenda

    Para simular una agenda desde el portal de Mercado Libre en Stage debe hacerse mediante la siguiente url:

    Ambiente de stage:

    https://www.mercadolibre.cl/agendar/visita-inmuebles/{itemId}?scope=stage
    

    Es importante resaltar que esta url se debe utilizar directamente en el buscador reemplazando el parámetro {itemId} por el correspondiente a la publicación y por otro lado tanto el usuario como la publicación deben ser de prueba por lo cual no se deben utilizar datos productivos.

    El parámetro para especificar la publicación sobre la cual crear la agenda es:

    {itemId}
    

    El cual representa el ID de la publicación, ejemplo: MLC916101223.


    Obtención detalle de 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: es importante hacer el llamado con el id de seller de prueba y añadir como queryParam scope=stage.


    Ambiente de producción:

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

    En ambos casos, el parámetro para hacer la llamada es:

    {scheduleId}
    

    El cual representa el ID de la agenda a consultar.
    Y el JSON retornado será el siguiente::

    {
      "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"}],
     }
    

    Sus respectivos tipos de datos son:

    Variable 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)
    scheduling_time_period List (String)


    Actualización status agenda

    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 producción:

    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 continuación se detallan el dominio de variable data:

    Status_code Status_name Descripción Body
    2 scheduling_canceled Agenda cancelada { code: "string", reason: "string" }
    3 scheduling_modified Horario modificado
    4 visit_success Visita exitosa {}
    6 scheduling_confirmed Horario confirmado { scheduling_date: "date", scheduling_time: "string" }
    7* scheduling_contacting Gestionando visita {}

    (*) El estado scheduling_contacting sirve para indicar que el seller ya se está comunicando con el buyer para coordinar una fecha y hora de la visita. El objetivo de utilizar este estado es evitar el proceso de expiración de agendas, tal como se explica en la sección Agenda expirada. Este estado es utilizado cuando un seller usa algún canal de contacto como Whatsapp, Call para contactar al buyer. Desde Mercado Libre el proceso se encuentra automatizado para detectar intenciones de contacto desde el Panel de Personas interesadas, Emails y Whatsapp al buyer.


    Scheduling_canceled

    El dominio de variable del Status_code: 2 (scheduling_canceled) es el siguiente:

    Code Reason Descripción Usada por Usada por tipoo de propriedad
    2 buyer_out_of_reach No se puede comunicar con el buyer. Integradores, Panel. Arriendo/Venta
    6 requirements_not_met buyer no cumple requisitos. Integradores, Panel. Arriendo
    14 buyer_searching_for_later buyer busca para más adelante. Integradores, Panel. Arriendo
    15** property_not_available Propiedad no está disponible. De forma interna. N/A
    16 buyer_cancel_visit Cancelada por el buyer. Integradores, Panel. Arriendo/Venta
    18** property_not_available_from_life_cycle Propiedad no disponible por ciclo de vidas. De forma interna. N/A
    19** property_not_available_from_pack_finished Propiedad no disponible por paquete de publicaciones finalizado. De forma interna. N/A
    20** property_not_available_from_seller_finished Propiedad no disponible porque el seller la finalizó. De forma interna. N/A
    21** property_not_available_from_partner_finished Propiedad no disponible porque integrador la finalizó. De forma interna. N/A
    24** property_not_available_from_seller_penalty Propiedad no disponible por penalización al seller. De forma interna. N/A
    25*** property_not_available_seller Cancelada por el seller. Integradores, Panel. Arriendo/Venta

    (**) Estas razones se utiliza para señalar aquellas agendas que fueron canceladas por los siguientes motivos:

    • Automática para las agendas que son canceladas por ciclo de vida del ítem (18).
    • Automática por finalización del paquete de destaque (19).
    • Mecanismo de control de disponibilidad ejecutado por MercadoLibre o tras finalizar una publicación. (24).
    • Seller que finaliza manualmente su ítem y este posee agendas asociadas. (15, 20, 21).

    Cabe destacar que estas razones son solo de uso interno, por lo que no deberían usarse directamente en los requests.


    Como estas son razones de forma automática e interna, se estará notificando el estado de la cancelación tal como indica en la sección notificación de estados de agenda.

    Importante:
    Al utilizar la razón con código 25 (“property_not_available_seller”) se procede a cancelar la agenda y, se llevará a cabo la acción de finalizar la publicación en MercadoLibre. Una vez que se complete esta acción, se cancelarán automáticamente todas las agendas asociadas a dicha publicación

    Razones del buyer

    Estos códigos y razones corresponden a la respuesta que nos entrega el Buyer. No deben ser utilizados por el integrador/seller.

    Código Razón Descripción Usada por Usada por Tipo de propiedad
    100*** property_not_available_buyer Propiedad no está disponible buyer N/A
    101* buyer_out_of_reach No contactaron al buyer buyer N/A
    102 buyer_cancel_visit Cancelaron la visita buyer N/A
    103 requirements_not_met Buyer no cumple requisitos buyer N/A
    104 buyer_searching_for_later Busca para otra fecha buyer N/A
    105 other_reason Otro motivo buyer N/A
    Nota:
    Si las agendas no han sido gestionadas, se consultará al buyer por Correo y por Whatsapp si pudo visitar la propiedad. Si la respuesta es que no pudo, el buyer cancelará la agenda especificando la razón de cancelación. .

    Importante:
    Al utilizar la razón con código 100 (“property_not_available_buyer”) , que indica que la propiedad no está disponible, NO se ejecutará el proceso para finalizar la publicación, a diferencia de la razón con código 25, esto dado que es informado por el buyer y no por el seller.

    Visit_success

    Como se indicó anteriormente, cuando una agenda no se gestiona, se consulta al buyer si pudo o no visitar la propiedad, en caso de que indique que sí pudo visitar la propiedad, la agenda pasará a Visita Realizada, junto con ello, indicamos la siguiente razón de por qué una agenda se puede completar por el buyer:

    Razón Descripción Usada por Usada por Tipo de propiedad
    buyer_completed_whatsapp Visita realizada a través de WhatsApp Buyer N/A
    buyer_completed_email Visita realizada a través de correo Buyer N/A

    Agenda expirada (proceso automático interno)

    El sistema cuenta con un proceso automático que se encarga de expirar todas las agendas que no han sido gestionadas y se encuentran en el estado de “agendas creadas”, esta acción se ejecuta después de 3 días seguidos desde la fecha de intención del buyer a visitar la propiedad.
    Ejemplo: el buyer genera una solicitud de visita con la intención de visitar la propiedad el día 1 de noviembre, luego de pasados 3 días consecutivos (4 de noviembre), al 4to día a primera hora, si la agenda sigue sin gestionarse, esta procederá a expirar Las agendas creadas que son expiradas quedan con la siguiente condición:


    Code Reason Descripción
    1 seller_no_response Expiró la agenda por no respuesta del seller después de 3 días seguidos desde la fecha de intención del buyer a visitar la propiedad.

    Como esta es una razón de forma automática e interna, se estará notificando el estado de la expiración tal como indica en la sección Notificación de leads de Agenda..


    Unidades MultiFamily

    Nota:
    Esta sección NO aplica para propiedades en VENTA. .

    Edición de precio, aumento o disminución de unidades

    Este endpoint se utiliza para actualizar el precio de las unidades así como también aumentar o disminuir el stock de las mismas. Con el objetivo de que no se muestren unidades en la publicación que no están disponible y por ende no se vayan generando nuevos agendamientos, en el caso de estar nuevamente disponible se puedan mostrar. Adicionalmente ofrece la opción de actualizar el precio de las unidades.


    El endpoint soporta la actualización de una lista de unidades mediante su campo units en el 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: es importante hacer el llamado con el id de seller de prueba y añadir como queryParam scope=stage.


    Ambiente de producción:

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

    En ambos casos el body es el siguiente:

    {
      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 continuación se detalla los valores de status_code y status_name.

    Status_code Status_name
    1 update_units

    A continuación se detalla el dominio del atributo operation:

    Operation Descripción
    price_updated Permite actualizar el precio de la unidad.
    unit_added Permite aumentar la unidad.
    unit_removed Permite disminuir la unidad.

    Nota:
    para el caso de la operación unit_added sí se envía el precio este también se actualiza. Para el caso de remover unidades no se permite la actualización del precio.