# Recebendo respostas interativas do WhatsApp

Um toque em um botão de resposta, uma linha de lista ou um botão de resposta rápida de template chega como sua própria mensagem de entrada contendo `interactive_reply`. O campo devolve o identificador que você definiu no envio, então um fluxo ramifica pelo seu próprio identificador em vez do rótulo que o contato viu.

## O que uma resposta interativa de entrada contém

`type` indica o tipo de toque, e o campo de mesmo nome o carrega:

```json
{
  "id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "interactive_reply": {
    "type": "button",
    "button": { "slug": "cancel-booking", "text": "Cancel" }
  },
  "created_at": "2026-08-25T09:04:11Z"
}
```

| `type`   | Campo    | O que ele contém                                                                           |
| -------- | -------- | ------------------------------------------------------------------------------------------ |
| `button` | `button` | O `slug` e o `text` de um botão de resposta, ou de um botão de resposta rápida de template |
| `list`   | `list`   | O `slug` e o `text` da linha que o contato escolheu, mais o `description` quando havia um  |

Uma linha de lista substitui `button` por `list` e adiciona a segunda linha que a opção exibia:

```json
{
  "interactive_reply": {
    "type": "list",
    "list": {
      "slug": "priority_express",
      "text": "Priority Mail Express",
      "description": "Next day to 2 days"
    }
  }
}
```

`slug` é o identificador que você declarou e o contato nunca viu; `text` é o rótulo que ele leu. Ramifique por `slug`. Rótulos são reformulados e traduzidos, e em um toque no botão de resposta rápida de template o `slug` é o payload que o template declarou, que WhatsApp define como o próprio rótulo do botão.

A lista de tipos é aberta: WhatsApp adiciona tipos interativos ao longo do tempo, então trate um `type` que você não reconhece como um tipo futuro em vez de um erro, e registre a mensagem em vez de falhar a leitura.

## Vinculando um toque ao que você enviou

`in_reply_to_message_id` identifica a mensagem que continha o botão ou o menu, e é assim que você sabe a qual pergunta essa resposta pertence. WhatsApp não o reporta em todos os toques, e a resolução também pode falhar; nesse caso, o campo é omitido em vez de reportado vazio. A seção [respostas citadas](/docs/guides/whatsapp/receiving-whatsapp#quoted-replies) do hub explica o que uma falha significa e por quanto tempo uma mensagem citada permanece resolvível.

Quando a correlação precisa ser confiável, coloque sua própria referência no próprio `slug`, ou em `metadata` no envio, em vez de depender do campo. Veja [citando uma mensagem](/docs/guides/whatsapp/sending-whatsapp#quoting-a-message) para o lado do envio.

## Os dois toques que chegam em outro lugar

Dois tipos interativos respondem sem nenhum `interactive_reply`:

- Uma [solicitação de localização](/docs/guides/whatsapp/message-types/interactive/location-requests) retorna como uma [localização](/docs/guides/whatsapp/receiving-whatsapp/location) de entrada comum.
- Uma [solicitação de informações de contato](/docs/guides/whatsapp/message-types/interactive/contact-info-requests) retorna como [cartões de contato](/docs/guides/whatsapp/receiving-whatsapp/contact-cards), com `origin` definido como `contact_request`.

Um [botão de link](/docs/guides/whatsapp/message-types/interactive/cta-url-buttons) não envia nada de volta: o contato sai para a URL, e nenhuma mensagem de entrada registra o toque. Uma integração que observa apenas `interactive_reply` perde todos os três.

## O payload do webhook

`whatsapp.received` carrega o campo `interactive_reply` no envelope do evento, para que um bot possa responder a um toque sem precisar ler a mensagem de volta:

```json
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:04:11.118Z",
  "data": {
    "whatsapp_id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100", "display_name": "Alex Rivera" },
    "to": { "phone_number": "+13124495569" },
    "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
    "interactive_reply": {
      "type": "button",
      "button": { "slug": "cancel-booking", "text": "Cancel" }
    },
    "tags": null,
    "metadata": null
  }
}
```

## Pontos de atenção

- **`interactive` e `interactive_reply` são direções opostas.** `interactive` é o que você enviou e nunca chega como entrada; `interactive_reply` é o que o contato tocou e nunca aparece em uma mensagem de saída.
- **Um toque reinicia a janela de atendimento.** É uma mensagem de entrada, então reabre 24 horas de respostas livres da mesma forma que uma mensagem de texto.
- **Um contato pode tocar o mesmo botão duas vezes.** Nada deduplica os toques, então cada um é sua própria mensagem com seu próprio ID. Torne a ação que você executa em um `slug` idempotente.
- **Um toque em um menu antigo ainda chega.** Um contato que rola para trás pode tocar um botão de dias atrás, então valide que o fluxo ainda está aberto em vez de presumir que o toque responde à sua mensagem mais recente.

## Próximos passos

- [Como o recebimento funciona](/docs/guides/whatsapp/receiving-whatsapp): o envelope de entrada, busca de mídia e o webhook `whatsapp.received`
- [Mensagens interativas do WhatsApp](/docs/guides/whatsapp/message-types/interactive): os seis tipos que um destinatário pode tocar
- [Botões de resposta do WhatsApp](/docs/guides/whatsapp/message-types/interactive/reply-buttons): o lado do envio de um toque em botão
- [Menus de lista do WhatsApp](/docs/guides/whatsapp/message-types/interactive/list-menus): o lado do envio de uma escolha de linha

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
