Recebendo stickers do WhatsApp
Um sticker que um contato toca na bandeja chega como uma mensagem de entrada contendo sticker: uma referência a um arquivo WebP, mais um flag animated.
O que um sticker de entrada contém
Exemplo de código
{
"id": "wam_01kye7t1rgyw9u5l8p2zaf7sid",
"direction": "inbound",
"from": { "phone_number": "+14155550100" },
"to": { "phone_number": "+13124495569" },
"status": "received",
"sticker": {
"id": "waf_01kye6r7as0zkv3g1q6suy9whc",
"url": "https://platform.bird.com/v1/whatsapp/messages/wam_01kye7t1rgyw9u5l8p2zaf7sid/media/waf_01kye6r7as0zkv3g1q6suy9whc",
"mime_type": "image/webp",
"animated": false
},
"created_at": "2026-08-25T09:19:37Z"
}| Campo | O que contém |
|---|---|
| id | O arquivo armazenado, para passar como media_id ao obter os bytes |
| url | Uma URL Bird, obtida com sua chave API |
| mime_type | O tipo de mídia reportado pelo WhatsApp, image/webp para um sticker |
| animated | Se o sticker é animado; presente apenas em um sticker de entrada |
O arm não carrega legenda em nenhuma direção, nem nome do sticker ou do pacote de onde veio. Um sticker é a mensagem inteira.
animated diferencia um WebP animado de um estático, o que importa quando você renderiza o arquivo por conta própria: um sticker animado é um WebP com vários frames que um renderizador de imagem estática achata para o primeiro frame.
Obtendo os bytes
Passe o ID da mensagem e o id da mídia para o método de mídia do canal. A página obtendo mídia de entrada do hub traz essa chamada em todas as linguagens, junto com as regras de redirecionamento e cabeçalho que ela segue, e define a janela de retenção em que o arquivo existe.
A maioria das integrações nunca obtém um sticker. Ele geralmente carrega sentimento em vez de informação, então uma caixa de entrada de agente pode exibir um placeholder e um fluxo automatizado pode tratar a mensagem como uma confirmação que reinicia a janela de serviço, sem baixar nada.
O payload do webhook
whatsapp.received carrega o arm sticker no envelope do evento:
Exemplo de código
{
"type": "whatsapp.received",
"timestamp": "2026-08-25T09:19:37.882Z",
"data": {
"whatsapp_id": "wam_01kye7t1rgyw9u5l8p2zaf7sid",
"workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
"direction": "inbound",
"from": { "phone_number": "+14155550100" },
"to": { "phone_number": "+13124495569" },
"sticker": {
"id": "waf_01kye6r7as0zkv3g1q6suy9whc",
"url": "https://platform.bird.com/v1/whatsapp/messages/wam_01kye7t1rgyw9u5l8p2zaf7sid/media/waf_01kye6r7as0zkv3g1q6suy9whc",
"mime_type": "image/webp",
"animated": false
},
"tags": null,
"metadata": null
}
}Pontos de atenção
- Um sticker ainda reinicia a janela de serviço. Ele é uma mensagem de entrada como qualquer outra, então garante mais 24 horas de respostas livres, mesmo sem conter texto para agir.
- Um sticker não é uma reação. Uma reação com emoji que um contato adiciona a uma de suas mensagens não é uma mensagem de entrada: ela é registrada no log de reações da própria mensagem, e a leitura é coberta em eventos do WhatsApp.
Próximos passos
- Como o recebimento funciona: o envelope de entrada, obtenção de mídia e o webhook whatsapp.received
- Mensagens de sticker do WhatsApp: o lado de envio do mesmo arm
- Tipos de mensagem não suportados: pedidos, avisos do sistema e o restante do que chega sem modelo
- Eventos do WhatsApp: a lista completa de eventos, via API ou webhooks
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Assista ao guiaConnecting WhatsApp to Bird: from buying a number to a live channelEntenda o conceitoWhat is the 24-hour customer service window on WhatsApp?Use a ferramentaWhatsApp message builderExplore a funcionalidadeWhatsApp
Experimente na prática e obtenha um resumo de implementação