WhatsApp Interactive API
Documentação técnica de mensagens do tipo Interactive
Para o envio de mensagens Interactive, vamos seguir o padrão dos outros tipos de mensagens que podem ser vistas aqui.
Campo | Obrigatório | Detalhes | Tipo |
interactive | Sim | Campo usado para enviar mensagens do tipo interactive | Interactive Message |
Campo | Obrigatório | Detalhes | Tipo |
messageInteractiveType | Sim | Tipo da mensagem Interactive. Opções disponíveis: LIST e REPLY_BUTTON | String |
header | Não | Conteúdo do Header | Header |
body | Sim | Texto principal | Body |
footer | Não | Conteúdo do footer | Footer |
listAction | Quando o messageInteractiveType for LIST | Contém os parametros de uma mensagem de lista | ListAction |
replyButtonAction | Quando o messageInteractiveType for REPLY_BUTTON | Contém os parametros de uma mensagem de reply buttons | ReplyButtonAction |
alternativeText | Não | O texto que sera enviado caso o celular do usuário não suporte mensagens do tipo interactive | String |
Caso a mensagem contenha header, exatamente um dos campos abaixo precisa ser preenchido.
Se a mensagem for do tipo
LIST
apenas o campo text é aceito.Campo | Detalhes | Tipo |
text | Texto do Header. Máximo 60 caracteres. Permite uso de emojis e markdown. | String |
document | Objeto complexo do tipo Document. | Document |
video | Objeto complexo do tipo Video. | Video |
image | Objeto complexo do tipo Image. | Image |
location | Objeto complexo do tipo Location. | Location |
Image
Campo | Obrigatório | Detalhes | Tipo |
type | Sim | Tipo/extensão da imagem que será enviada na mensagem. Opções disponíveis: JPG, JPEG, PNG. | String |
url | Sim | URL do conteúdo (imagem) que será enviado. | String |
Video
Campo | Obrigatório | Detalhes | Tipo |
type | Sim | Tipo/extensão do vídeo que será enviado na mensagem. Opções disponíveis: MP4. | String |
url | Sim | URL do conteúdo (vídeo) que será enviado. | String |
Document
Campo | Obrigatório | Detalhes | Tipo |
type | Sim | Tipo/extensão do documento que será enviado na mensagem. Opções disponíveis: PDF. | String |
url | Sim | URL do conteúdo (documento) que será enviado. | String |
Location
Campo | Obrigatório | Detalhes | Tipo |
name | Não | Nome da localização. | String |
address | Não | Endereço da localização. | String |
geoPoint | Sim | Coordenadas no formato: latitude,longitude | String |
Campo | Obrigatório | Detalhes | Tipo |
text | Sim | Não pode ser uma string vazia. É permitido emojis e markdown.
Body: Máximo de 1024 caracteres.
Footer: Máximo de 60 caracteres. | String |
Campo | Obrigatório | Detalhes | Tipo |
button | Sim | Conteúdo que será escrito no botão. | String |
sections | Sim | Lista de sections. Deve haver pelo menos uma section. | Section[] |
Section
Campo | Obrigatório | Detalhes | Tipo |
rows | Sim | Lista de rows. Deve haver pelo menos uma row e no máximo 10 somando todas as sections. | Row[] |
Row
Campo | Obrigatório | Detalhes | Tipo |
identifier | Sim | Identificador da row | String |
title | Sim | Título da row | String |
description | Não | Descrição da row | String |
Campo | Obrigatório | Detalhes | Tipo |
buttons | Sim | Lista com 1, 2 ou 3 Buttons | Button[] |
Button
Campo | Obrigatório | Detalhes | Tipo |
reply | Sim | Estrutura do botão | Reply |
Reply
Campo | Obrigatório | Detalhes | Tipo |
title | Sim | Texto que vai ser escrito no botão. Máximo 20 caracteres. | String |
payload | Sim | Informação que será retornada no callback. Máximo 256 caracteres. | String |
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": "Wavy",
"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"
}
}
}
Campos | Detalhes | Tipo |
total | Número de callbacks nesse request | Long |
data | Lista de mensagens enviadas pelo usuário | Data[] |
clientInfo | Informações do cliente que está recebendo as mensagens | ClientInfo |
Campos | Detalhes | Tipo |
id | Identificador da mensagem | String |
source | Número de telefone de quem enviou a mensagem | String |
origin | Número de telefone da WhatsApp Account que recebeu a mensagem | String |
userProfile | Perfil do usuário que enviou a mensagem | UserProfile |
correlationId | ID único enviado pelo cliente no momento do envio da mensagem para ser retornado no callback. Opcional. | String |
campaignId | Campanha relacionada ao envio | String |
campaignAlias | Alias da campanha relacionada ao envio | String |
message | Mensagem recebida | Message |
receivedDate | Data que a mensagem foi recebida
Formato: yyyy-MM-dd’T'HH:mm:ssZ | String |
receivedAt | Data que a mensagem foi recebida, usando o formato Unix_time | Long |
extraInfo | Informação extra relacionada a mensagem. Formato: Json | String |
session | Informação da sessão | Session |
Campo | Detalhes | Tipo |
name | Nome do usuário no WhatsApp | String |
whatsAppId | Telefone do usuário | String |
Campo | Detalhes | Tipo |
sessionId | Id da sessão desse usuário | String |
createdAt | Timestamp da criação dessa sessão | Long |
Campo | Detalhes | Tipo |
type | Tipo da mensagem enviada pelo usuário: TEXT - IMAGE - AUDIO - DOCUMENT - STICKER - BUTTON - ORDER | String |
messageText | Texto da mensagem enviada pelo usuário. Para respostas de lista é igual ao rowTitle que o usuário clicou | String |
mediaUrl | Url para baixar a mídia enviada pelo usuário | String |
mimeType | Mime type do arquivo enviado pelo usuário | String |
caption | Label da mídia enviada pelo usuário | String |
location | Location enviada pelo usuário | Location |
contacts | Lista de contatos enviados pelo usuário | Contact[] |
interactive | Campos relacionados a mensagens interactive | ReceivedInteractive |
Campo | Detalhes | Tipo |
type | Tipo da mensagem interactive. Pode ser: LIST_REPLY ou BUTTON_REPLY | String |
listReply | Resposta de lista ( LIST ) | ListReply |
buttonReply | Resposta do botão ( REPLY_BUTTON ) | ButtonReply |
ListReply
Campo | Detalhes | Tipo |
rowIdentifier | Identificador da row que o usuário selecionou | String |
rowTitle | Título da row que o usuário selecionou | String |
ButtonReply
Campo | Detalhes | Tipo |
payload | Texto definido no momento do envio | String |
title | Título do botão em que o usuário clicou | String |
Campo | Detalhes | Tipo |
customerId | customerId do cliente que está recebendo a mensagem | Long |
subAccountId | subAccountId do cliente que está recebendo a mensagem | Long |
userId | userId do cliente que está recebendo a mensagem | Long |
Last modified 1yr ago