Mocks para mensajería por ventas de ítems con FULL, Cross docking y Drop off

Importante:
El recurso productivo está vigente para ventas con FULL y estará disponible, incluyendo Cross docking y Drop off:
- Desde el 3 de diciembre en MLA, MLB, MLM, MLC y MCO.
- Desde el 10 de diciembre en MLU.

Con estos recursos los vendedores deberán elegir un motivo para iniciar la conversación con el comprador y tendrán una cantidad de mensajes disponibles para enviar. Recuerda que los compradores siempre podrán iniciar la conversación y mantenemos los bloqueos de mensajes automáticos de los vendedores.

También puedes ver nuestro webinar:




Contenidos

→Template disponible según el país
→Consultar las opciones de comunicación disponibles por pack_id
→Consultar la cantidad disponible de mensajes posventa por pack_id
→Enviar mensaje según opción
    ↳Option_id REQUEST_VARIANTS
    ↳Option_id REQUEST_BILLING_INFO
    ↳Option_id SEND_INVOICE_LINK
    ↳Option_id OTHER
→Ejemplos de mensajes de error


A continuación, te mostramos los pack_id y el access token test junto a los mocks para obtener el árbol de motivos y consultar la cantidad de mensajes disponibles que podrá enviarle el vendedor al comprador.

Pack_id Descripción
2000000000000000 pack_id para MLA, MLU y MCO
2000000000000001 pack_id para MLM
2000000000000002 pack_id para MLB y MLC
2000000000000004 Conversación bloqueada, causa: fulfillment
2000000000000006 Hay otra solicitud que bloquea esta operación.
2000000000000008 Texto inválido.
2000000000000010 Sin cap disponible, ya se ejecutó option.
2000000000000012 Error en casos exceptuados.
Notas:
- El único access_token permitido para los mocks es: 123123123
- Los packs id permitidos y sus descripciones mencionadas anteriormente sólo están disponibles para realizar pruebas previo al rollout de la funcionalidad.

Template disponible según el país

El template es un texto predefinido disponibilizado por Mercado Libre, que el vendedor no puede modificar. Sólo para la opción “REQUEST_BILLING_INFO”.

MLA:

Para adjuntarte la factura de tu compra necesito los siguientes datos:

  • Nombre y apellido
  • DNI
  • Domicilio
  • Código postal

MLM:

Para adjuntarte la factura de tu compra necesito los siguientes datos:

  • Nombre y apellido
  • RFC
  • Domicilio
  • Código postal

MCO:

Para adjuntarte la factura de tu compra necesito los siguientes datos:

  • Nombre y apellido
  • Tipo y número de documento
  • Email
  • Domicilio
  • Código postal
  • Código de municipio
  • Código de departamento

MLU:

Para adjuntarte la factura de tu compra necesito los siguientes datos:

  • Nombre y apellido
  • Cédula

Consultar las opciones de comunicación disponibles (action guide) para un pack_id

Importante:
El recurso productivo será /messages/action_guide/packs/$PACK_ID?access_token=$ACCESS_TOKEN y la respuesta no cambiará.

Llamada:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/$PACK_ID?access_token=$ACCESS_TOKEN

Ejemplo para MLA, MLU y MCO:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000?access_token=123123123

Respuesta:

{
   "options":[
      {
         "id":"REQUEST_VARIANTS",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"template",
         "templates":[
            {
               "id":"TEMPLATE___REQUEST_VARIANTS___1",
               "vars":null
            }
         ],
         "actionable":true,
         "child_options":null,
         "cap_available":1
      },
      {
         "id":"REQUEST_BILLING_INFO",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"template",
         "templates":[
            {
               "id":"TEMPLATE___REQUEST_BILLING_INFO___1",
               "vars":null
            }
         ],
         "actionable":true,
         "child_options":null,
         "cap_available":1
      },
      {
         "id":"OTHER",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"free_text",
         "templates":null,
         "actionable":true,
         "char_limit":350,
         "child_options":null,
         "cap_available":1
      }
   ]
}

La opción REQUEST_VARIANTS sólo está disponible en tipos de envío Cross Docking y Drop Off.

Ejemplo para MLM:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000001?access_token=123123123

Respuesta:

{
   "options":[
      {
         "id":"REQUEST_VARIANTS",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"template",
         "templates":[
            {
               "id":"TEMPLATE___REQUEST_VARIANTS___1",
               "vars":null
            }
         ],
         "actionable":true,
         "child_options":null,
         "cap_available":1
      },
      {
         "id":"REQUEST_BILLING_INFO",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"template",
         "templates":[
            {
               "id":"TEMPLATE___REQUEST_BILLING_INFO___1",
               "vars":null
            }
         ],
         "actionable":true,
         "child_options":null,
         "cap_available":1
      },
      {
         "id":"SEND_INVOICE_LINK",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"free_text",
         "templates":null,
         "actionable":true,
         "char_limit":350,
         "child_options":null,
         "cap_available":1
      },
      {
         "id":"OTHER",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"free_text",
         "templates":null,
         "actionable":true,
         "char_limit":350,
         "child_options":null,
         "cap_available":1
      }
   ]
}

Campos de la respuesta

char_limit: es la cantidad máxima de caracteres aceptados en la opción ("OTHER" o "SEND_INVOICE_LINK"). .


Ejemplo para MLB y MLC:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000002?access_token=123123123

Respuesta:

{
   "options":[
      {
         "id":"REQUEST_VARIANTS",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"template",
         "templates":[
            {
               "id":"TEMPLATE___REQUEST_VARIANTS___1",
               "vars":null
            }
         ],
         "actionable":true,
         "child_options":null,
         "cap_available":1
      },
      {
         "id":"OTHER",
         "internal_description":"This is an example...",
         "enabled":true,
         "type":"free_text",
         "templates":null,
         "actionable":true,
         "char_limit":350,
         "child_options":null,
         "cap_available":1
      }
   ]
}

Próximamente, actualizaremos los resultados de las opciones.


Ejemplo de usuario no permitido:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000002?access_token=987654321

Respuesta:

{
   "cause": "",
   "error": "forbidden",
   "message": "You are not allowed to access the information of the pack 2000000000000002",
   "status": 403
}

Consultar la cantidad disponible de mensajes posventa para un pack_id

Dentro del árbol de motivos, las categorías pueden tener la opción de enviar un mensaje al comprador y puedes reconocerlos con el campo cap_available:

  • Si es 0 (cero), el vendedor no podrá enviar mensajes al comprador
  • Si es 1 (uno) o más, indica la cantidad disponible para enviar.

Recuerda que el mensaje tendrá caracteres limitados y conservará las moderaciones de un mensaje normal (solo para OTHER y SEND_INVOICE_LINK).
En el caso de que el vendedor haya consumido el cap de mensajes disponibles a enviar, si vuelve a ingresar a una sección de campo abierto (OTHER), la respuesta retornará un error de que ya no es posible hacerlo, y deberá esperar a que el comprador responda.


Llamada:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/$PACK_ID/caps_available?access_token=$ACCESS_TOKEN
Importante:
El recurso productivo será /messages/action_guide/packs/$PACK_ID/caps_available?access_token=$ACCESS_TOKEN y la respuesta no cambiará.

Ejemplo para MLA y MCO:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/caps_available?access_token=123123123

Respuesta:


[
   {
      "option_id":"REQUEST_VARIANTS",
      "cap_available":1
   },
   {
      "option_id":"REQUEST_BILLING_INFO",
      "cap_available":1
   },
   {
      "option_id":"OTHER",
      "cap_available":1
   }
]

Ejemplo para MLM:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000001/caps_available?access_token=123123123

Respuesta:

[
   {
      "option_id":"REQUEST_VARIANTS",
      "cap_available":1
   },
   {
      "option_id":"REQUEST_BILLING_INFO",
      "cap_available":1
   },
   {
      "option_id":"SEND_INVOICE_LINK",
      "cap_available":1
   },
   {
      "option_id":"OTHER",
      "cap_available":1
   }
]

Ejemplo para MLB y MLC:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000002/caps_available?access_token=123123123

Respuesta:

[
   {
      "option_id":"REQUEST_VARIANTS",
      "cap_available":1
   },
   {
      "option_id":"OTHER",
      "cap_available":1
   }
]

Ejemplo de usuario no permitido:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000002/caps_available?access_token=987654321

Respuesta:

   {
    "cause": "",
    "error": "forbidden",
    "message": "You are not allowed to access the information of the pack 2000000000000002",
    "status": 403
}

Enviar mensaje según opción

Luego de buscar las opciones disponibles para el pack_id, debes enviar el mensaje como el siguiente POST. Recuerda que, después de que el comprador responda, los mensajes siguientes deberán enviarse directamente mediante el post /messages.
Conoce los option_id disponibles por sitios:


Sitio / Option_id “REQUEST_VARIANTS”:
Solicitar datos de variantes
“REQUEST_BILLING_INFO”:
Pedir datos de facturación
“SEND_INVOICE_LINK”:
Enviar link para facturación
“OTHER”:
Otros, campo libre
MLA
MLB
MLM
MCO
MLC
MLU

Option_id REQUEST_VARIANTS

Sólo aplica a órdenes con envíos Cross Docking o Drop Off.

Ejemplo:

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/option?access_token=123123123 -H 'Content-Type: application/json'  
{
    "option_id": "REQUEST_VARIANTS",
    "template_id": "TEMPLATE___REQUEST_VARIANTS___1"
}

Respuesta de mensaje enviado:

{
    "id": "94353d192b9640e8b1ed3c77aa406f39",
    "to": {
        "user_id": 618491100,
        "name": "Test Test"
    },
    "status": "available",
    "text": "Este es un template para solicitar datos de variantes: ",
    "message_date": {
        "received": "2020-09-09T19:07:24.890Z",
        "available": "2020-09-09T19:07:25.056Z",
        "notified": null,
        "created": "2020-09-09T19:07:24.890Z",
        "read": null
    },
    "message_moderation": {
        "status": "clean",
        "reason": null,
        "source": "online",
        "moderation_date": "2020-09-09T19:07:25.056Z"
    }
}
Nota:
En el campo text estará el contenido enviado correspondiente al template.

Option_id REQUEST_BILLING_INFO

Ejemplo:

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/option?access_token=123123123 -H 'Content-Type: application/json'  
{
    "option_id": "REQUEST_BILLING_INFO",
    "template_id": "TEMPLATE___REQUEST_BILLING_INFO___1"
}

Respuesta de mensaje enviado:

{
    "id": "94353d192b9640e8b1ed3c77aa406f39",
    "to": {
        "user_id": 618491100,
        "name": "Test Test"
    },
    "status": "available",
    "text": "Este es un template para solicitar datos de facturación: ",
    "message_date": {
        "received": "2020-09-09T19:07:24.890Z",
        "available": "2020-09-09T19:07:25.056Z",
        "notified": null,
        "created": "2020-09-09T19:07:24.890Z",
        "read": null
    },
    "message_moderation": {
        "status": "clean",
        "reason": null,
        "source": "online",
        "moderation_date": "2020-09-09T19:07:25.056Z"
    }
}
Nota:
En el campo text estará el contenido enviado correspondiente al template.

Ejemplo:


curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/option?access_token=123123123 -H 'Content-Type: application/json'  \
{
    "option_id": "SEND_INVOICE_LINK",
    "text": "Texto de ejemplo..."
}

Enviar en text el link para generar la factura.

Respuesta de mensaje enviado:

{
    "id": "94353d192b9640e8b1ed3c77aa406f39",
    "to": {
        "user_id": 618491100,
        "name": "Test Test"
    },
    "status": "available",
    "text": "Para facturar su pedido, puede hacer click en el siguiente enlace:  Facturar pedido ",
    "message_date": {
        "received": "2020-09-09T19:07:24.890Z",
        "available": "2020-09-09T19:07:25.056Z",
        "notified": null,
        "created": "2020-09-09T19:07:24.890Z",
        "read": null
    },
    "message_moderation": {
        "status": "clean",
        "reason": null,
        "source": "online",
        "moderation_date": "2020-09-09T19:07:25.056Z"
    }
}

Option_id OTHER

Llamada:

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/$PACK_ID/option?access_token=$ACCESS_TOKEN -H 'Content-Type: application/json'  \
{
    "option_id": "OTHER",
    "text": "Texto de ejemplo..."
}
Importante:
El recurso productivo será /messages/action_guide/packs/$PACK_ID/option?access_token=$ACCESS_TOKEN y la respuesta no cambiará.

Ejemplo de mensaje enviado correctamente:

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/option?access_token=123123123 -H 'Content-Type: application/json'  \
{
    "option_id": "OTHER",
    "text": "Cómo estás María, estaría necesitando de..."
}

Respuesta de mensaje enviado:

{
    "id": "94353d192b9640e8b1ed3c77aa406f39",
    "to": {
        "user_id": 618491100,
        "name": "Test Test"
    },
    "status": "available",
    "text": "Cómo estás María, estaría necesitando de...",
    "message_date": {
        "received": "2020-09-09T19:07:24.890Z",
        "available": "2020-09-09T19:07:25.056Z",
        "notified": null,
        "created": "2020-09-09T19:07:24.890Z",
        "read": null
    },
    "message_moderation": {
        "status": "clean",
        "reason": null,
        "source": "online",
        "moderation_date": "2020-09-09T19:07:25.056Z"
    }
}
Nota:
El campo text tiene el contenido enviado en el body de la llamada.

Ejemplo de mensaje moderado:

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000002/option?access_token=123123123 -H 'Content-Type: application/json'  \
{
    "option_id": "OTHER",
    "text": "Cómo estás María, estaría necesitando de..."
}

Respuesta mensaje moderado:

{
    "id": "94353d192b9640e8b1ed3c77aa406f39",
    "to": {
        "user_id": 618491100,
        "name": "Test Test"
    },
    "status": "moderated",
    "text": "Cómo estás María, estaría necesitando de...",
    "message_date": {
        "received": "2020-09-09T19:02:11.438Z",
        "available": null,
        "notified": null,
        "created": "2020-09-09T19:02:11.438Z",
        "read": null
    },
    "message_moderation": {
        "status": "rejected",
        "reason": "out_of_place_language",
        "source": "online",
        "moderation_date": "2020-09-09T19:02:11.697Z"
    }
}

Campos de la respuesta

status: estado del mensaje. Por ejemplo: available o moderated
message_moderation:
status: estado de la moderación del mensaje.
reason: motivo de moderación. Por ejemplo: out_of_place_language moderación por lenguaje inapropiado.


Ejemplos de mensajes de error

Por ser caso exceptuado

Quedan exceptuados:
- Productos de Autopartes, Moda y con tiempo de realización (manufacturing time)
- Productos con envío Flex
Recuerda que podemos modificar estas excepciones sin previo aviso.

Ejemplo:

curl -X GET https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000012?access_token=123123123

Respuesta:

{
   "cause": "blocked_by_excepted_case",
   "error": "bad_request",
   "message": "This pack belongs to an excepted case, it is requested to use the messaging resource.",
   "status": 400
}

El vendedor podrá utilizar la mensajería posventa sin restricciones.


Por exceder el límite de 350 caracteres (option OTHER y SEND_INVOICE_LINK)

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/option?access_token=123123123 -H 'Content-Type: application/json'  
{
    "option_id": "OTHER",
    "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
}

Respuesta:

{
    "cause": "",
    "error": "bad_request",
    "message": "The text is invalid.",
    "status": 400
}

Por cantidad (cap) no disponible

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000010/option?access_token=123123123 -H 'Content-Type: application/json'  \
{
    "option_id": "OTHER",
    "text": "Cómo estás María, estaría necesitando de..."
}

Respuesta:

{
    "cause": "",
    "error": "limit_exceeded",
    "message": "You are not allowed to execute the option OTHER again.",
    "status": 403
}

Por option_id inválido

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/option?access_token=123123123 -H 'Content-Type: application/json'  \
{
    "option_id": "HOLA",
    "text": "Cómo estás María, estaría necesitando de..."
}

Respuesta:

{
    "cause": "",
    "error": "not_found",
    "message": "The option selected is not valid.",
    "status": 404
}

Por otra solicitud bloqueando el recurso

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000006/option?access_token=123123123 -H 'Content-Type: application/json'  \
{
    "option_id": "OTHER",
    "text": "Cómo estás María, estaría necesitando de..."
}

Respuesta:

{
    "cause": "",
    "error": "conflict",
    "message": "There is another request locking this operation.",
    "status": 409
}

Este error sucede porque el vendedor ejecuta varias opciones simultáneas sobre la misma venta y, para evitar que se realicen más caps de los disponibles, creamos un “Lock” del servicio sobre el vendedor y la venta, el cual se libera al terminar de ejecutar la opción.


Por pack_id con mensajería bloqueada

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000004/option?access_token=123123123 -H 'Content-Type: application/json'  
{
    "option_id": "OTHER",
    "text": "Cómo estás María, estaría necesitando de..."
}

Respuesta:

{
   "cause": "blocked_by_fulfillment",
   "error": "forbidden",
   "message": "The conversation is blocked.",
   "status": 403
}

El vendedor no está autorizado para consultar la información de ese pack id

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000004/option?access_token=987654321 -H 'Content-Type: application/json'  
{
    "option_id": "OTHER",
    "text": "Cómo estás María, estaría necesitando de..."
}

Respuesta:

{
    "status_code": 403,
    "code": "forbidden",
    "message": "You are not allowed to access the information of the pack 2000000000000000.",
}

Por el template_id incorrecto

curl -X POST https://api.mercadolibre.com/messages_mock/action_guide/packs/2000000000000000/option?access_token=123123123 -H 'Content-Type: application/json'  
{
    "option_id": "REQUEST_BILLING_INFO",
    "template_id": "TEMPLATE"
}

Respuesta:

{
   "cause":"",
   "error":"bad_request",
   "message":"The template TEMPLATE is invalid.",
   "status":400
}

Error 500:

{
    "status_code": 500,
    "code": "internal_server_error",
    "message": "Internal server error.",
}

Volver: Mensajería posventa.

o regístrate para recibir las últimas novedades sobre nuestra API