Recibe notificaciones

Algunos eventos se producen del lado de Mercado Libre y la única forma de conocerlos es a través de notificaciones. Recibir notificaciones te permite tener un feed en tiempo real de los cambios que se producen en los diferentes recursos de nuestra la API. Por ejemplo, si publicaste un artículo y más tarde fue pausado, si alguien formuló una pregunta, si compraron un artículo o incluso lo pagaron y/o solicitó envío. ¡Una manera eficiente sin tener que consultar permanentemente nuestra API!

Contenidos

→Suscríbete a las notificaciones
→Topics disponibles
→¿Qué eventos disparan notificaciones?
→Consideraciones
→Accede a los detalles
    ↳items
    ↳orders_v2
    ↳questions
    ↳payments
    ↳messages
    ↳quotations
    ↳invoices
    ↳claims
    ↳item competition
    ↳stock fulfillment
    ↳best price eligible
   →Prueba tus notificaciones
→Histórico de notificaciones
    ↳Campos del recurso
    ↳Filtro por tópico


Suscríbete a las notificaciones

Para comenzar a recibir notificaciones, debes realizar el login e ingresar a Mis aplicaciones, donde creaste tu aplicación por primera vez, editas detalles y especificas los topics que recibirás. Si aún no has creado tu aplicación, puedes hacerlo ahora.

Callback URL de notificaciones: configura el URL público del dominio donde quieres recibir notificaciones para los diferentes topics. Por ejemplo: “http://myshoes-app.com/callbacks”.

Topics: selecciona entre diferentes topics para recibir sus notificaciones.

Nota:
Los topics payments y messaging no son utilizados para vehículos, inmuebles y servicios ya que no se generan ventas ni pagos.


Topics disponibles

items: recibirás notificaciones de cualquier cambio en un artículo que publicaste.

questions: recibirás notificaciones de todas las preguntas formuladas o respondidas.

payments: recibirás notificaciones cuando se crea un pago en una orden o el estado del mismo cambia.

messages: recibirás notificaciones de los mensajes nuevos que se generen teniendo como destinatario su user_id.

orders_v2: recibirás notificaciones desde la creación y cambios realizados en alguna de tus ventas confirmadas (recomendable).

shipments: recibirás notificaciones desde la creación y cambios realizados en los envíos (shippings) de tus ventas confirmadas.

quotations: recibirás notificaciones referidas a cotizaciones que sucedan en las publicaciones (aplica solo para integración de inmuebles en Mercado Libre Chile).

invoices: recibirás notificaciones relacionadas a invoices (notas fiscales) generadas mediante la facturación automática der Mercado Libre (aplica solamente a quien trabaja con el facturador de Mercado Envio Full *Solo disponible en Brasil).

claims: recibirás notificaciones relacionadas a reclamos que sean hechos por las ventas (trabajar con reclamos)

item competition: recibirás notificaciones cuando las publicaciones de catálogo que se encuentran compitiendo cambian de estado. Tanto de competidor a ganador y viceversa.

Importante:
Este tópico está disponible solo en Argentina, Brasil y México.
Nota:
Deberás usar el recurso de /price_to_win para revisar la condición del ítem y tomar las acciones necesarias para ganar la página de producto.

stock fulfillment: recibirás notificaciones con el detalle de una operación en particular ejecutada sobre el stock que el seller tiene almacenado en los depósitos de FBM.

best price eligible: recibirás notificaciones cuando se crea una nueva promoción, se modifica el monto del target price y cuando un ítem que está compitiendo deja de ser el ganador del destaque especial en catálogo.


¿Qué eventos disparan notificaciones?

Ten en cuenta que cualquier cambio que haya en el Json, en cualquier topic, serán enviadas las notificaciones correspondientes.

Es importante que siempre veas las notificaciones y, en seguida, hagas la consulta en el recurso correspondiente para verificar si hay algún cambio con su aplicación. Estos cambios pueden surgir desde otras fuentes, como la acción via front, Seller Central u otras aplicaciones, etc.


Consideraciones

Importante:
Actualiza tu integración para devolver un HTTP 200 antes de 500 milisegundos de recibida la notificación y evitar que desactivemos los tópicos de tus notificaciones. Caso contrario, deberás suscribirte nuevamente a los tópicos.
  • Enviaremos un POST a la callback URL y tu aplicación deberá confirmar mediante un HTTP 200 la recepción correcta. Caso contrario, el mensaje será considerado como “no recibido” y habrá una nueva tentativa de envío.
  • Los mensajes serán enviados y las tentativas de envío serán hechas en un intervalo de 12 horas. Después de este período, los mensajes que no fueron aceptados serán excluídos.
  • Teniendo en cuenta que puede haber una gran cantidad de notificaciones, es recomendable que trabajes con filas, donde el servidor deberá confirmar la recepción de las notificaciones (HTTP 200) instantáneamente y hacer la consulta del topic en el API, para evitar nuevas tentativas de notificaciones y evitar generar la sensación de notificaciones duplicadas.
  • Ten en cuenta que hay eventos no visibles para integradores que disparan notificaciones.


Accede a los detalles

Después de recibir una notificación sobre un tema, deberás realizar una solicitud GET al recurso para acceder a los detalles y luego, si guardaste el JSON anterior, comparar ambos.


items

Notification response:

{
   "resource": "/items/MLA686791111",
   "user_id": 123456789,
   "topic": "items",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:44:33.006Z",
   "received": "2017-10-09T13:44:32.984Z"
}

Con esta información podrás realizar un GET al recurso de ítems:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID

orders_v2

Notification response:

{
  "resource":"/orders/2195160686",
  "user_id": 468424240,
  "topic":"orders_v2",
  "application_id": 5503910054141466,
  "attempts":1,
  "sent":"2019-10-30T16:19:20.129Z",
  "received":"2019-10-30T16:19:20.106Z"
}

Con esta información podrás realizar un GET al recurso de órdenes:

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

questions

Notification response:

{
   "resource": "/questions/5036111111",
   "user_id": "123456789",
   "topic": "questions",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:51:05.464Z",
   "received": "2017-10-09T13:51:05.438Z"
}

Con esta información podrás realizar un GET al recurso de questions:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/questions/$QUESTION_ID

payments

Notification response:

{
   "resource": "/collections/3043111111",
   "user_id": 123456789,
   "topic": "payments",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:58:22.081Z",
   "received": "2017-10-09T13:58:22.061Z"
}

Con esta información podrás realizar un GET al recurso de collections:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/collections/$PAYMENT_ID

messages

Notification response:

{
  "resource": "3f6da1e35ac84f70a24af7360d24c7bc",
  "user_id": "268897726",
  "topic": "messages",
  "application_id": 2219612378080430,
  "attempts": 1,
  "sent": "2017-08-17T12:59:44.164Z",
  "received": "2017-08-17T12:59:44.131Z"
 }

Con esta información podrás realizar un GET al recurso de mensajes:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/messages/$RESOURCE

quotations

Notification response:

{
    "resource":"/quotations/5013267",
    "user_id": 484630370,
    "topic":"quotations",
    "application_id": 5503910054141466,
    "attempts":1,
    "sent":"2019-10-30T14:04:14.584Z",
    "received":"2019-10-30T14:04:14.553Z"
}
Nota:
Las notificaciones referidas a cotizaciones solo están disponibles para Mercado Libre Chile.

Con esta información podrás realizar un GET al recurso de órdenes:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/$RESOURCE?caller.type=seller

Donde caller.type es para identificar quién es el generador de la acción. Puede ser un vendedor o un usuario. Generalmente, para las aplicaciones de lanzamientos será el del vendedor.


invoices

Notification response:

{
    "resource": "/users/123456789/invoices/$INVOICE_ID",
    "user_id": 123456789,
    "topic": "invoices",
    "application_id": 5503910054141466,
    "attempts": 1,
    "sent": "2018-03-21T20:51:11.906Z",
    "received": "2018-03-21T20:51:11.884Z"
}

Con esta información podrás realizar un GET al recurso de /invoices:

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

claims

Notification response:

{
  "resource":"/v1/claims/1041417027",
  "user_id":"465432224",
  "topic":"claims",
  "application_id":5503910054141466,
  "attempts":1,
  "sent":"2019-10-29T17:46:24.606Z",
  "received":"2019-10-29T17:46:24.616Z"
}

Con esta información podrás realizar un GET al recurso de /claims:

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

item competition

Importante:
Este tópico está disponible solo en Argentina, Brasil y México.

Notificación:

{
  "resource":"/items/ITEM_ID/price_to_win",
  "user_id":"123456789",
  "topic":"catalog_item_competition_status",
  "application_id":4806348059754779,
  "attempts":1,
  "sent":"2020-03-03T18:57:54.824Z",
  "received":"2020-03-03T18:57:54.819Z"
}

Con esta información podrás realizar un GET al recurso de /price_to_win.

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/price_to_win

stock fulfillment

Importante:
Este tópico está disponible en Argentina, Brasil, México, Chile y Colombia donde hay fulfillment.

Notificación:

{
   "resource":"/stock/fulfillment/operations/9876",
   "user_id":1234,
   "topic":"fbm_stock_operations",
   "application_id":12341234,
   "attempts":1,
   "sent":"2017-10-09T13:58:23.347Z",
   "received":"2017-10-09T13:58:23.329Z"
}

Con esta información podrás realizar un GET al recurso de /stock/fulfillment/operations :

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

best price eligible

Notificación:

{
 "resource":"/items/ITEM_ID/best-price",
   "user_id":1234,
   "topic":"best_price_eligible",
   "application_id":2069392825111111,
   "attempts":1,
   "sent":"2017-10-09T13:58:23.347Z",
   "received":"2017-10-09T13:58:23.329Z"
}

Con esta información podrás realizar un GET al recurso /best-price :

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


Prueba tus notificaciones

Puedes validar si estás recibiendo notificaciones en tu integración importando este link en Postman. Si tu URL funciona correctamente recibirás como respuesta code 200 status ok, como se muestra en la siguiente imagen.


Histórico de notificaciones

Consulta el historial de notificaciones perdidas de estos tópicos realizando un GET al siguiente endpoint:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/missed_feeds?app_id=$APP_ID
Nota:
La respuesta contendrá información de las notificaciones que luego del octavo reintento (4 horas), no haya recibido un http code 200, es decir, que consideraremos la notificación como perdida.

Si estás utilizando algún tipo de filtro en tu aplicación, desde Mercado Libre generaremos las notificaciones con las siguientes direcciones IP:

- 54.88.218.97
- 18.215.140.160
- 18.213.114.129
- 18.206.34.84


Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/missed_feeds?app_id=3486171129139063

Respuesta:

{
   "messages": [
       {
           "_id": "5da8a1b24be30a49eb66c52a",
           "resource": "a35cf79864a845ca9a3bf6aee59bb4d7",
           "user_id": "465432224",
           "topic": "messages",
           "application_id": 3486171129139063,
           "attempts": 1,
           "sent": "2019-10-17T17:15:30.279Z",
           "received": "2019-10-17T17:15:30.259Z",
           "request": {
               "url": "https://YOUR_URL",
               "headers": {
                   "accept": "application/json",
                   "content-type": "application/json",
                   "content-length": 207
               },
               "data": "{\"resource\":\"a35cf79864a845ca9a3bf6aee59bb4d7\",\"user_id\":\"465432224\",\"topic\":\"messages\",\"application_id\":3486171129139063,\"attempts\":1,\"sent\":\"2019-10-17T17:15:30.279Z\",\"received\":\"2019-10-17T17:15:30.259Z\"}"
           },
           "response": {
               "req_time": 260,
               "http_code": 400,
               "body": "[object Object]",
               "headers": {
                   "date": "Thu, 17 Oct 2019 17:15:30 GMT",
                   "content-length": "141",
                   "content-type": "text/plain; charset=utf-8",
                   "connection": "close"
               }
           }
       },
       {
           "_id": "5da87eea5b35b865994cfd7d",
           "resource": "/items/MLA820048955",
           "user_id": 468424240,
           "topic": "items",
           "application_id": 3486171129139063,
           "attempts": 1,
           "sent": "2019-10-17T14:47:06.414Z",
           "received": "2019-10-17T14:47:06.375Z",
           "request": {
               "url": "https://YOUR_URL",
               "headers": {
                   "accept": "application/json",
                   "content-type": "application/json",
                   "content-length": 189
               },
               "data": "{\"resource\":\"/items/MLA820048955\",\"user_id\":468424240,\"topic\":\"items\",\"application_id\":3486171129139063,\"attempts\":1,\"sent\":\"2019-10-17T14:47:06.414Z\",\"received\":\"2019-10-17T14:47:06.375Z\"}"
           },
           "response": {
               "req_time": 498,
               "http_code": 200,
               "body": "[object Object]",
               "headers": {
                   "content-type": "application/json; charset=utf-8",
                   "date": "Thu, 17 Oct 2019 14:47:06 GMT",
                   "content-length": "190",
                   "connection": "close"
               }
           }
       }

}

Campos del recurso

resource: recurso completo, con tópico por el cual se generó la notificación.

user_id: usuario que la generó.

topic: tema referente de la notificación.

request: consulta realizada a la URL de notificaciones, junto con su respectivo url, header y data.

response: respuesta de parte del servidor que recibe la notificación.

http_code: código HTTP que devuelve dicho servidor, para que no se reintente tiene que enviar un 200.


Filtro por tópico

Existe la posibilidad de filtrar por tópico, es muy útil para cuando se tienen una gran cantidad de notificaciones.

Llamada:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/myfeeds?app_id=$APP_ID&topic=$TOPIC

Ejemplo:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/myfeeds?app_id=3486171129139063&topic=payments
Nota:
Por defecto sólo se mostrarán 10 notificaciones pero, puedes utilizar LIMIT y OFFSET para modificar la cantidad que quieres recibir tal como se muestra a continuación:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/myfeeds?app_id=$APP_ID&offset=1&limit=5
o regístrate para recibir las últimas novedades sobre nuestra API