Para o catálogo completo derivado do esquema, consulte todos os exemplos.
O que é
Entenda as atualizações de mensagens do WhatsApp enviadas, entregues, lidas e com falha.Antes de começar
- Crie um endpoint HTTPS público na sua aplicação.
- Configure um endpoint de webhook da YCloud para os tipos de eventos necessários.
- Armazene o segredo de assinatura do endpoint com segurança.
- Torne o processamento de eventos idempotente.
Como funciona
A YCloud envia uma requisição HTTPPOST quando o evento ocorre. Valide a assinatura, registre o evento de forma durável, retorne uma resposta 2xx e processe tarefas lentas de forma assíncrona.
Requisição
Os cenários abaixo mostram requisições entregues ao seu URL de webhook. Trate oid do evento como o identificador de entrega e use o type para rotear a carga útil.
Resposta
Retorne um status2xx após aceitar o evento.
Para configuração de endpoints, validação de assinatura e comportamento de novas tentativas, consulte Configurar webhooks.
accepted. As atualizações de status da mensagem acionarão o webhook whatsapp.message.updated.
Geralmente, o status da mensagem:
- Muda para
failedse não conseguirmos entregar esta mensagem. - Muda para
sentse for possível entregar esta mensagem e, posteriormente, pode mudar parafailed,deliveredouread. - Muda para
deliveredoureadse esta mensagem foi entregue ao dispositivo do destinatário.
delivered podem ocorrer após failed, e vice-versa, especialmente quando o usuário final está usando múltiplos dispositivos.
Mensagem Enviada
Neste caso, seu endpoint de webhook recebeu um evento de mensagemsent:
- O
statusda mensagem ésent, o que significa que a mensagem está em trânsito nos sistemas do WhatsApp. - Contém informações sobre a conversa, incluindo quando a conversa expira e o tipo de origem.
- Contém o
pricingCategorye atotalPriceestimados que poderemos cobrar de você. - Contém
wamid, que é o ID original da mensagem na plataforma do WhatsApp, começando comwamid..
Requisição
Resposta
Confirme a entrega após aceitar o evento de forma durável.Explicação
-
totalPriceé apenas um preço estimado antes que a primeira mensagem seja entregue, e torna-se o preço final quando ostatusfordeliveredouread. O saldo retido por mensagens enviadas que ainda não foram entregues não estará disponível até que as mensagens sejam descartadas (mensagens enviadas não entregues por 30 dias são descartadas). -
Em geral, uma mensagem
sentmuda paradeliveredoureadem breve, exceto quando:- A conta do WhatsApp do destinatário está offline; as mensagens enviadas do WhatsApp não serão entregues até que o destinatário tenha conexão de internet ativa ou funcional.
- Qualquer mensagem enviada para um contato que bloqueou você sempre exibirá a mensagem como
sente nunca mudará paradelivered. - O destinatário desativou as confirmações de leitura, e você não receberá as confirmações de mensagem
read. - A mensagem muda para
failedmais tarde com o código de erro131026, o que significa “Message Undeliverable” (Mensagem Não Entregável) ou “Receiver is incapable of receiving this message” (Destinatário incapaz de receber esta mensagem). É muito provável que o destinatário não esteja registrado ou esteja usando uma versão antiga do WhatsApp. - A mensagem não foi entregue para manter uma experiência de usuário de alta qualidade. Consulte Limites de Mensagens de Modelo de Marketing por Usuário.
Mensagem Entregue
Neste caso, seu endpoint de webhook recebeu um evento de mensagemdelivered:
- O
statusda mensagem édelivered, o que significa que a mensagem foi entregue ao dispositivo do destinatário.
Requisição
Resposta
Confirme a entrega após aceitar o evento de forma durável.Explicação
- Este evento indica que a mensagem enviada pela sua empresa foi entregue ao dispositivo do usuário.
- Para que um status seja
read, ele deve ter sidodelivered. Em alguns cenários, como quando um usuário está na tela de conversa e uma mensagem chega, a mensagem édeliveredereadquase simultaneamente. Neste ou em outros cenários semelhantes, a notificaçãodeliverednão será enviada de volta, pois fica implícito que uma mensagem foi entregue se tiver sido lida. O motivo desse comportamento é otimização interna. - É possível que geremos mais de 1 evento de webhook
deliveredpara a mesma mensagem, especialmente se o usuário final estiver usando múltiplos dispositivos. - pricingModel: “PMP” — indica que o modelo de preço por mensagem se aplica. Consulte também whatsapp-message-pricing-updates
- pricingType
- regular — indica que a mensagem é faturável.
- free_customer_service — indica que a mensagem é gratuita porque foi uma mensagem de modelo de utilidade ou uma mensagem sem modelo enviada dentro de uma janela de atendimento ao cliente.
- free_entry_point — indica que a mensagem é gratuita porque faz parte de uma conversa de ponto de entrada gratuito.
Mensagem lida
Nesse caso, seu endpoint de Webhook recebeu um evento de mensagemread:
- O status da mensagem
statuséread, o que significa que a mensagem foi lida pelo destinatário.
Requisição
Resposta
Confirme a entrega após aceitar o evento de forma durável.Explicação
- Se o destinatário tiver desativado as confirmações de leitura, você não receberá os recibos de mensagem
read.
Falha na mensagem
Nesse caso, seu endpoint de Webhook recebeu um evento de mensagemfailed:
- O status da mensagem
statuséfailed. - Contém
errroCode,errorMessageewhatsappApiError.
Requisição
Resposta
Confirme a entrega após aceitar o evento de forma durável.Explicação
- Esses eventos têm como objetivo notificá-lo sobre alterações de status das mensagens ativas que você enviou anteriormente aos clientes.
- O motivo da falha no envio da mensagem geralmente decorre de parâmetros de requisição inválidos, número de telefone do cliente não registrado, etc. Consulte também Erros do WhatsApp para tratamento de erros.
whatsappApiErroré fornecido caso tenhamos tentado enviar esta mensagem para a plataforma WhatsApp da Meta para ajudar você a entender os detalhes do erro. Consulte também Códigos de erro da Cloud API.- Não cobramos por mensagens com falha.

