Skip to main content
Quando POST /v1/messages responde 202, a mensagem está accepted: a Routa a gravou, mas ela ainda precisa chegar ao WhatsApp e ao aparelho do cliente. Existem três formas de acompanhar o resto do caminho.

1. Por webhook

Assine os eventos de mensagem. O curinga message.* cobre todos eles.
Cada transição da mensagem gera um evento, cujo data é a mensagem no estado atual: Atualize seu banco usando o data.id da mensagem e o data.status. Como a entrega pode chegar fora de ordem, nunca regrida o status:
Veja a configuração completa em Webhooks.

2. Consultando a mensagem

Os campos sent_at, delivered_at, read_at e failed_at mostram quando cada etapa ocorreu, ou null se ainda não ocorreu.
Evite fazer polling em loop para saber se a mensagem foi entregue. Use webhooks. As consultas contam para o seu limite de leituras. Veja Limites de taxa.

3. Reconciliando com o log de eventos

Se o seu servidor ficou indisponível, liste os eventos que você perdeu a partir do último processado:
Veja Reconciliar eventos.

O que significa failed

failed é terminal. Ocorre quando o provedor rejeita a mensagem de forma definitiva ou quando as tentativas de envio se esgotam. Falhas transitórias são retentadas automaticamente pela Routa e não aparecem como status. O motivo detalhado da falha fica na linha do tempo da mensagem, no painel.
Se uma mensagem permanece accepted por muito tempo, geralmente há uma indisponibilidade do provedor ou o canal está com uma fila acima da capacidade. A mensagem não se perde: ela é enviada assim que o caminho normaliza.