Mensagens recebidas no Webhook
Mensagens de texto
Veja a seguir o exemplo de uma mensagem de texto recebida de um usuário:
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"text": {
"body": "MESSAGE_BODY"
},
"type": "text"
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Mensagens de reação
Veja a seguir o exemplo de uma mensagem de reação recebida de um usuário. Você não receberá este webhook se a mensagem à qual o usuário reagiu tiver mais de 30 dias.
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"type": "reaction",
"reaction": {
"message_id": "MESSAGE_ID",
"emoji": "EMOJI"
}
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Mensagens de mídia
Quando uma mensagem com mídia é recebida, a Plataforma do WhatsApp Business baixa a mídia. Uma mensagem é enviada ao seu Webhook quando a mídia é baixada.
A mensagem para o Webhook contém informações que identificam o objeto de mídia e possibilitam que você o encontre e o recupere. Veja em Como receber mídia
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"from": "PHONE_NUMBER",
"id": "wamid.ID,
"timestamp": "TIMESTAMP",
"type": "image",
"image": {
"mime_type": "image/jpeg",
"sha256": "IMAGE_HASH",
"id": "ID"
}
}
],
"errors": [],
"statuses": [],
"delay": 0
}
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"type": "sticker",
"sticker": {
"mime_type": "image/webp",
"sha256": "HASH",
"id": "ID",
"animated": false
}
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Mensagens de localização
Veja a seguir o exemplo de uma mensagem de localização que você recebeu de um usuário:
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"location": {
"address": "LOCATION_ADDRESS",
"latitude": LOCATION_LATITUDE,
"longitude": LOCATION_LONGITUDE,
"name": "LOCATION_NAME",
"url": "LOCATION_URL"
},
"type": "location"
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Mensagens de contatos
Veja a seguir o exemplo de uma mensagem de contato que você recebeu de um usuário:
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"type": "contacts",
"contacts": [
{
"name": {
"first_name": "CONTACT_FIRST_NAME",
"last_name": "CONTACT_LAST_NAME",
"formatted_name": "CONTACT_FORMATTED_NAME"
},
"phones": [
{
"phone": "CONTACT_PHONE",
"wa_id": "CONTACT_WA_ID",
"type": "CONTACT_PHONE_TYPE"
}
]
}
]
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Retorno de chamada recebido de um botão de resposta rápida
Quando o usuário clica em um botão de resposta rápida em um modelo de mensagem interativa, a resposta é enviada. Veja abaixo o exemplo de um formato de retorno de chamada.
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"context": {
"from": "PHONE_NUMBER",
"id": "wamid.ID"
},
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"type": "button",
"button": {
"payload": "Parar promoções",
"text": "Parar promoções"
}
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Resposta recebida da mensagem de lista
A mensagem para o webhook a seguir é recebida quando o usuário clica em um item de uma mensagem de lista enviada por você:
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"context": {
"from": "PHONE_NUMBER",
"id": "wamid.ID"
},
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"type": "interactive",
"interactive": {
"type": "list_reply",
"list_reply": {
"id": "LIST_REPLY_ID",
"title": "LIST_REPLY_TITLE",
"description": "LIST_REPLY_DESCRIPTION"
}
}
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Resposta recebida para o botão Responder
A mensagem para o webhook a seguir é recebida quando o usuário clica em um botão Responder enviado por você:
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"context": {
"from": "PHONE_NUMBER",
"id": "wamid.ID"
},
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"type": "interactive",
"interactive": {
"type": "button_reply",
"button_reply": {
"id": "UNIQUE_BUTTON_IDENTIFIER",
"title": "BUTTON_TEXT"
}
}
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Mensagem recebida para um botão flow
Exemplo de resposta a uma mensagem de um botão flow:
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"context": {
"from": "PHONE_NUMBER",
"id": "wamid.ID"
},
"from": "PHONE_NUMBER",
"id": "wamid.ID,
"timestamp": "TIMESTAMP",
"type": "interactive",
"interactive": {
"type": "nfm_reply",
"nfm_reply": {
"response_json": "{\"flow_token\":\"FLOW_TOKEN12345\",\"screen_1_question2RadioButtons_0\":\"0\",\"screen_0_question1Checkbox_0\":[\"0_Buy_it_right_away\",\"3_Buy_multiple,_while_its_cheap\"],\"screen_2_question3Checkbox_0\":[\"3\",\"0\"]}",
"body": "Sent",
"name": "flow"
}
}
}
],
"errors": [],
"statuses": [],
"delay": 0
}
Mensagens desconhecidas
É possível receber uma mensagem desconhecida. Por exemplo, um usuário poderia enviar uma mensagem não compatível, como, exemplo, uma mensagem temporária. Nesse caso, avisaríamos a ele que esse tipo de mensagem não é aceito.
Veja a seguir o exemplo de uma mensagem não compatível que você recebeu de um usuário.
{
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "PHONE_NUMBER",
"phone_number_id": "PHONE_NUMBER_ID"
},
"contacts": [
{
"profile": {
"name": "NAME"
},
"wa_id": "PHONE_NUMBER"
}
],
"messages": [
{
"from": "PHONE_NUMBER",
"id": "wamid.ID",
"timestamp": "TIMESTAMP",
"errors": [
{
"code": 131051,
"title": "Message type is currently not supported."
}
],
"type": "unsupported"
}
],
"errors": [],
"statuses": [],
"delay": 0
}