webhooks em um cliente de equipe ou de projeto e
verifique cada solicitação com os utilitários de webhooks.
Endpoints de projeto recebem os eventos dos Números do projeto, como mensagens e
chamadas. Endpoints de equipe recebem eventos da equipe, como eventos do ciclo
de vida de Clientes e campanhas. Veja Webhooks para todos os
tipos de evento.
Crie um endpoint
secretAvailable é false quando a resposta não pode
incluí-lo.
Altere um endpoint com update(webhookId, { ... }). Defina enabled: false
para pausar as entregas e chame delete(webhookId) para removê-lo.
Verifique um webhook
Toda entrega traz um cabeçalhox-webhook-signature. Verifique-o com os bytes
exatos da solicitação antes de ler o evento:
webhooks.verify
funciona em qualquer handler que consiga ler o corpo bruto, incluindo Node.js,
Deno e Bun. Leia o corpo como bytes. Interpretar o JSON e serializá-lo de novo
muda os bytes e invalida a assinatura.
webhooks.verify rejeita uma assinatura inválida antes de interpretar o corpo.
Use webhooks.verifySignature para obter um resultado true ou false sem
interpretar o corpo.
As novas tentativas de entrega reutilizam o id do evento. Guarde os IDs já
processados e ignore as repetições.
Trate cada tipo de evento
isEvent restringe um evento ao tipo da carga dele:
Envie uma entrega de teste
test aceita apenas eventType. Em um cliente de
projeto, ele também aceita um body de evento nativo codificado em base64,
junto com o sessionId de um Número desse projeto. Veja
Envie uma entrega de teste.
Teste seu receptor sem a API
webhooks.createFixture assina o corpo de um evento localmente, sem chamar a
API. Use-o em testes unitários:
fixture.body para o seu handler sem alterações. Use um segredo de
teste, nunca um de produção.
As fixtures abrangem apenas o formato nativo. Endpoints que usam o formato da
Meta são assinados com o cabeçalho X-Hub-Signature-256. Veja
Formatos de entrega.
Troque um segredo de assinatura
previousValidUntil. Faça o deploy do novo segredo no seu receptor
antes disso.
Inspecione entregas e tente novamente
listAttempts(deliveryId) e retrieveAttempt(deliveryId, attemptId) mostram
cada tentativa. Uma tentativa que falhou inclui um trecho com dados ocultados da
resposta do seu endpoint. Para enviar de novo um evento mais antigo, veja
Reenvie um evento.
Mudanças nos recursos do Número
O beta de recursos por número, para equipes inscritas, emitesession.capabilities_updated. As versões do SDK que incluem esse evento
expõem SessionCapabilitiesUpdatedPayload e o restringem com
isEvent(event, "session.capabilities_updated"). A carga contém a visão
canônica dos recursos do número e changedKeys. Veja
Recursos por número para as regras de
elegibilidade e de eventos em fila. Verifique a assinatura antes de examinar a
carga.
Notificações de identidade da API oficial
Os webhooks da API oficial mantêm os metadados opcionaisparentBsuid. Um
evento contact.update com identityChange informa a nova identidade e a
identidade anterior, quando o WhatsApp a fornece. Não mescle registros de
contato só porque um ID pai coincide. Veja
Identidades de usuário
para os campos transmitidos e as restrições do ID pai. Fixe uma versão do SDK
cujos tipos de webhook incluam esses campos antes de depender do acesso tipado.