Ir para o conteúdo

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
}
Para as reações, o valor timestamp indica quando o usuário enviou a reação, não quando o webhook foi gerado.

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
}
Quando receber uma figurinha, você verá esta mensagem:
{
  "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
}