Sign inGet started

Tipos de mensagem WhatsApp não suportados

WhatsApp transporta conteúdo que o API do Bird não modela, de pedidos de catálogo a avisos do sistema sobre a conversa. Em vez de descartar a mensagem ou entregá-la vazia, Bird a registra com um braço unsupported que nomeia o tipo de conteúdo WhatsApp. A mensagem fica visível no log do WhatsApp e chega ao seu webhook como qualquer outra.

O que uma mensagem não suportada carrega

unsupported.type carrega a string de tipo própria do WhatsApp para o que chegou, e esse é o único conteúdo da mensagem. O envelope ao redor permanece inalterado:
Exemplo de código
{
  "id": "wam_01kyh0w4ujnz2x8p1s5dci0vlg",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "unsupported": { "type": "order" },
  "created_at": "2026-08-25T09:31:20Z"
}
typeO que o contato enviou
interactiveConteúdo interativo cuja forma de resposta o API não conseguiu ler como um toque
buttonUm toque em botão que o API não conseguiu ler como uma resposta
orderUm carrinho ou pedido feito a partir de um catálogo de produtos
systemUm aviso do sistema sobre a conversa, como um contato alterando seu número de telefone
unsupportedO tipo unsupported próprio do WhatsApp, para uma mensagem que seus próprios clientes não conseguem renderizar
unsupported não é um valor temporário nessa tabela. WhatsApp reporta um tipo de conteúdo próprio com esse nome quando um de seus clientes envia algo que os outros não conseguem exibir, e isso chega como esse valor.
A lista é aberta. WhatsApp adiciona tipos de conteúdo ao longo do tempo, então trate um type que você não reconhece como um tipo futuro, e não como um erro: registre-o e siga em frente em vez de falhar a leitura.

O payload do webhook

whatsapp.received dispara para uma mensagem não suportada também, carregando o mesmo braço:
Exemplo de código
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:31:20.774Z",
  "data": {
    "whatsapp_id": "wam_01kyh0w4ujnz2x8p1s5dci0vlg",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100" },
    "to": { "phone_number": "+13124495569" },
    "unsupported": { "type": "order" },
    "tags": null,
    "metadata": null
  }
}
Um endpoint que faz switch no campo de conteúdo encontrado deve ter um branch padrão, e esse braço é o que cai nele. Confirme o webhook com um 2xx de qualquer forma: tentar novamente não muda nada, já que o conteúdo não vai se tornar modelado entre as tentativas.

O que uma mensagem não suportada ainda faz

A mensagem conta como uma mensagem recebida em todos os aspectos que não dependem do seu conteúdo:
  • Ela reinicia a janela de atendimento ao cliente para 24 horas completas, então um pedido feito a partir do seu catálogo reabre respostas de formato livre.
  • Ela aparece na lista de mensagens e no log do WhatsApp, com seu tipo exibido em vez de uma linha em branco.
  • Ela nunca é cobrada. Nenhuma mensagem recebida tem custo.
O que você não pode fazer é ler o conteúdo. Um pedido não traz o carrinho, e um aviso do sistema não diz o que mudou. Quando esse detalhe importa, pergunte ao contato por mensagem, ou use um botão de resposta ou menu de lista para que a resposta chegue em um braço modelado no qual você possa agir.

Pontos de atenção

  • Não trate o braço como um erro. A mensagem foi recebida com sucesso; apenas seu conteúdo não é modelado. Gerar alerta sobre isso significa gerar alerta toda vez que um contato faz um pedido.
  • Um tipo system pode significar que o contato mudou de número. A Meta documenta uma mudança de número de telefone como um dos eventos que gera uma mensagem de sistema, e ela regenera o ID de usuário com escopo de negócio do contato ao mesmo tempo. O braço nomeia o tipo e nada mais, então trate-o como um sinal para restabelecer com quem você está falando.
  • Uma reação com emoji não é uma mensagem não suportada. Ela não é uma mensagem recebida, então não chega a nenhum webhook e não aparece em nenhuma lista de mensagens: cada alteração é registrada no log de reações da própria mensagem reagida, coberto em eventos do WhatsApp.
  • Armazene o tipo literalmente. Um tipo futuro se resolve em um nome para o qual você ainda não tem código, e manter o valor bruto é o que permite encontrar essas mensagens quando tiver.

Próximos passos