Enviar mensajes multimedia

Utiliza el nodo messages para enviar mensajes que contengan audio, documentos, imágenes, stickers o vídeos a tus clientes.

Básicamente, cuando envías un mensaje que incluye contenido multimedia, debes proporcionar el identificador del contenido multimedia subido o un enlace al contenido en el cuerpo de la solicitud. También debes especificar el tipo de contenido multimedia que envías: audio, document, image, sticker o video. Cuando se recibe la solicitud, el contenido multimedia se sube al servidor de WhatsApp y se envía al usuario indicado en el campo to.

Actualmente, existen dos maneras de enviar mensajes multimedia con la API de WhatsApp Business:

  • Identificadores: para utilizar un identificador, antes debes subir el contenido multimedia mediante el nodo media para obtener el identificador necesario para la llamada a la API messages.
  • Enlaces: para utilizar un enlace, debes proporcionar un enlace HTTP(S) desde el que la aplicación descargará el contenido multimedia, lo que te ahorra el paso de subirlo por ti mismo.

Antes de empezar

Necesitas:

Paso 1: Realizar una solicitud POST a /messages

Después de subir el contenido multimedia, usa el identificador devuelto para el campo id en la llamada a la API que envía el mensaje multimedia. Como alternativa, puedes proporcionar un parámetro link que apunte al contenido multimedia que quieres enviar (actualmente solo se admiten enlaces HTTP/HTTPS).

Se requiere id o link, pero no se deben utilizar a la vez.

Ejemplo

En el ejemplo anterior se muestran distintos objetos, tales como audio, document, image, sticker y video, solo a modo de referencia. Un cuerpo de solicitud válido solo contiene uno de ellos.

POST /v1/messages
{
  "recipient_type": "individual",
  "to": "whatsapp-id",
  "type": "audio" | "contact" | "document" | "image" | "location" | "sticker" | "text" | "video",
  
  "audio": {
    "id": "your-media-id"
  }
  
  "document": {
    "id": "your-media-id",
    "filename": "your-document-filename"
  }
  
  "document": {
    "link": "the-provider-name/protocol://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "document": {
    "link": "http(s)://the-url.pdf"
  }
  
  "video": {
    "id": "your-media-id"  
  }
  
  "image": {
    "link": "http(s)://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "image": {
    "id": "your-media-id"   
  }
  
  "sticker": {
    "id": "your-media-id"
  }
  
  "sticker": {
    "link": "http(s)://the-url",
    "provider": {
      "name" : "provider-name"
    }
  }
}

Para obtener más información sobre los parámetros, consulta:

Paso 2: Comprobar la respuesta

Una respuesta correcta incluye un objeto messages con un identificador de mensaje.

{
  "messages": [{
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  }]
}  

En caso de respuesta incorrecta, se envía una devolución de llamada a la URL del webhook, aunque la respuesta devolverá un identificador de mensaje similar a un envío de mensaje correcto. Por este motivo, es importante tener un servidor de webhooks configurado.

Consulta Códigos de error y de estado para obtener más información sobre los errores.