API interactiva de WhatsApp

Documentación técnica de mensajería interactiva

Mensajes interactivos

Para el envío de mensajes Interactivos seguiremos el patrón del resto de tipos de mensajes que se pueden ver.

Message

CampoObligatorioDetallesTipo

interactive

Campo utilizado para enviar mensajes de tipo interactivo

Interactive Message

Interactive Message

CampoObligatorioDetallesTipo

messageInteractiveType

Si

Tipo de mensaje interactivo. Opciones disponibles: LIST y REPLY_BUTTON

String

header

No

Contenido del encabezado

Header

body

Si

Texto principal

Body

footer

No

contenido del pie de página

Footer

listAction

Cuando el tipo de mensaje interactivo es LISTA

Contiene los parámetros de un mensaje de lista.

ListAction

replyButtonAction

Cuando el tipo de mensaje interactivo es REPLY_BUTTON

Contiene los parámetros de un mensaje de botones de respuesta.

ReplyButtonAction

alternativeText

No

El texto que se enviará si el celular del usuario no soporta mensajes de tipo interactivo

String

Encabezamiento

Si el mensaje contiene un encabezado, se debe completar exactamente uno de los campos a continuación.

Si el mensaje es del tipo LISTA, solo se acepta el campo de texto.

CampoDetallesTipo

text

Texto de cabecera. Máximo 60 caracteres. Permite el uso de emojis y rebajas.

String

document

Objeto complejo de tipo Documento.

Document

video

Objeto complejo de tipo Video.

Video

image

Objeto complejo de tipo Image.

Image

location

Objeto complejo de tipo Video.Location.

Location

Image

CampoObligatorioDetallesTipo

type

Si

Tipo/extensión de la imagen que se enviará en el mensaje. Opciones disponibles: JPG, JPEG, PNG.

String

url

Si

URL del contenido (imagen) que se enviará.

String

Video

CampoObligatorioDetallesTipo

type

Sim

Tipo/extensión del vídeo que se enviará en el mensaje. Opciones disponibles: MP4.

String

url

Sim

URL del contenido (video) que se enviará.

String

Document

CampoObligatorioDetallesTipo

type

Si

Tipo/extensión del documento que se enviará en el mensaje. Opciones disponibles: PDF.

String

url

Si

URL del contenido (documento) que se enviará.

String

Location

CampoObligatorioDetallesTipo

name

No

Nombre del lugar.

String

address

No

Dirección del sitio.

String

geoPoint

Sm

Coordenadas de formato: latitud, longitud

String

CampoObligatorioDetallesTipo

text

Si

No puede ser una cadena vacía. Se permiten emojis y rebajas.

Cuerpo: máximo 1024 caracteres.

Pie de página: Máximo 60 caracteres.

String

ListAction

CampoObligatorioDetallesTipo

button

Si

Contenido que se escribirá en el botón.

String

sections

Si

Lista de secciones. Debe haber al menos una sección.

Section[]

Section

CampoObligatorioDetallesTipo

rows

Si

Lista de filas. Debe haber al menos una fila y un máximo de 10 sumando todas las secciones.

Row[]

Row

CampoObligatorioDetallesTipo

identifier

Si

identificador de fila

String

title

Si

título de la fila

String

description

No

descripción de la fila

String

ReplyButtonAction

CampoObligatorioDetallesTipo

buttons

Si

Lista con 1, 2 o 3 Botones

Button[]

Button

CampoObligatorioDetallesTipo

reply

Si

estructura de botones

Reply

Reply

CampoObligatorioDetallesTipo

title

Si

Texto que se escribirá en el botón. Máximo 20 caracteres.

String

payload

Si

Información que se devolverá en la devolución de llamada. Máximo 256 caracteres.

String

Exemplos de requests

LIST

{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "LIST",
      "header": {
        "text": "Sample text"
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "listAction": {
        "button": "button text",
        "sections": [
        {
          "rows": [
            {
              "identifier": "9ab8d65e-d389-4123-b97b-702e658cc9e4",
              "title": "August 7, 11:00",
              "description": "Saturday, August 7, 2021. 11:00AM"
            },
            {
              "identifier": "2051afef-e000-47d0-99a5-7d96c17968b2",
              "title": "August 7, 15:00",
              "description": "Saturday, August 7, 2021. 3:00PM"
            },
            {
              "identifier": "55baac93-a513-45d0-ad9e-2e2271861fc8",
              "title": "August 9, 11:00",
              "description": "Monday, August 9, 2021. 11:00AM"
            },
            {
              "identifier": "e2703f03-689c-4d1e-b0e9-4045d6687605",
              "title": "August 9, 15:00",
              "description": "Monday, August 9, 2021. 4:00PM"
            }
          ]
        }
      ]
      },
      "alternativeText": "Simple message text"
    }
  }
}

REPLY_BUTTON

{
  "destinations": [
    {
      "correlationId": "MyCorrelationId",
      "destination": "5519900001111"
    }
  ],
  "message": {
    "interactive": {
      "messageInteractiveType": "REPLY_BUTTON",
      "header": {
        "text": "Sample text",
        "image": {
          "type": "JPG",
          "url": "http://...jpg"
        },
        "video": {
          "type": "MP4",
          "url": "http://...mp4"
        },
        "document": {
          "type": "PDF",
          "url": "http://...pdf"
        },
        "location": {
          "geoPoint": "-22.894180,-47.047960",
          "name": "Sinch",
          "address": "Av. Cel. Silva Telles"
        }
      },
      "body": {
        "text": "Main message text"
      },
      "footer": {
        "text": "Footer text"
      },
      "replyButtonAction": {
        "buttons": [
        {
          "reply": {
            "title": "Display Text 1",
            "payload": "callback_payload_1"
          }
        },
        {
          "reply": {
            "title": "Display Text 2",
            "payload": "callback_payload_2"
          }
        }
       ],
      },
      "alternativeText": "Simple message text"
    }
  }
}

Callback de mensagem interactive

Callback

CamposDetallesTipo

total

Número de devoluciones de llamada en esta solicitud

Long

data

Lista de mensajes enviados por el usuario

Data[]

clientInfo

Información sobre el cliente que recibe los mensajes.

ClientInfo

Data

CamposDetallesTipo

id

identificador de mensaje

String

source

Número de teléfono de la persona que envió el mensaje

String

origin

Número de teléfono de la cuenta de WhatsApp que recibió el mensaje

String

userProfile

Perfil del usuario que envió el mensaje

UserProfile

correlationId

ID único enviado por el cliente al enviar el mensaje que se devolverá en la devolución de llamada. Opcional.

String

campaignId

Campaña relacionada con el envío

String

campaignAlias

Alias ​​de campaña relacionados con el envío

String

message

Mensaje recibido

Message

receivedDate

Fecha en que se recibió el mensaje Formato: aaaa-MM-dd'T'HH:mm:ssZ

String

receivedAt

Fecha en que se recibió el mensaje, utilizando el formato Unix_time

Long

extraInfo

Información adicional relacionada con el mensaje. Formato: JSON

String

session

información de la sesión

Session

UserProfile

CampoDetallesTipo

name

Nombre de usuario de WhatsApp

String

whatsAppId

telefono de usuario

String

Session

CampoDetallesTipo

sessionId

ID de sesión de este usuario

String

createdAt

Marca de tiempo de la creación de esta sesión

Long

Message

CampoDetallesTipo

type

Tipo de mensaje enviado por el usuario: TEXT - IMAGE - AUDIO - DOCUMENT - STICKER - BUTTON - ORDER

String

messageText

Texto del mensaje enviado por el usuario. Para las respuestas de lista, es igual al título de fila en el que el usuario hizo clic

String

mediaUrl

Url para descargar medios subidos por el usuario

String

mimeType

Mime type de archivo subido por el usuario

String

caption

Etiqueta de medios enviada por el usuario

String

location

Ubicación enviada por el usuario

Location

contacts

Lista de contactos enviada por el usuario

Contact[]

interactive

Campos relacionados con los mensajes interactivos

ReceivedInteractive

ReceivedInteractive

CampoDetallesTipo

type

Tipo de mensaje interactivo. Puede ser: LIST_REPLY o BUTTON_REPLY

String

listReply

Respuesta de lista (LIST)

ListReply

buttonReply

Respuesta del botón (REPLY_BUTTON)

ButtonReply

ListReply

CampoDetallesTipo

rowIdentifier

Identificador de la fila que el usuario seleccionó

String

rowTitle

Título de la fila que el usuario seleccionó

String

ButtonReply

CampoDetallesTipo

payload

Texto establecido en el momento del envío

String

title

Título del botón en el que el usuario hizo clic

String

ClientInfo

CampoDetallesTipo

customerId

customerId del cliente que recibe el mensaje

Long

subAccountId

subAccountId del cliente que recibe el mensaje

Long

userId

ID de usuario del cliente que recibe el mensaje.

Long

Last updated