Acompanhe cada passo da sua mensagem
Em sistemas antigos, você precisaria ficar perguntando para a API a cada 5 segundos (“Já chegou? Já chegou?”). Isso é ineficiente e derruba a performance do seu banco de dados. Na Zenvio, nós usamos Webhooks Assíncronos. Assim que o status da mensagem muda no WhatsApp, nós notificamos seu sistema automaticamente.Uso e vantagem das filas
Para garantir que seu servidor nunca seja “bombardeado” por milhares de requisições simultâneas, nós processamos os webhooks através de filas de alta performance. O que isso significa na prática? Existe um pequeno delay técnico (geralmente alguns segundos) entre o evento ocorrer no WhatsApp e chegar no seu sistema. Isso é proposital e benéfico:- Proteção de Pico: Se você enviar 10.000 mensagens de uma vez e todas forem entregues no mesmo segundo, nós enfileiramos os avisos de entrega e despachamos para você de forma ordenada. Seu servidor agradece.
- Prioridade Inteligente: Eventos críticos (como erros de envio) entram em uma Fila de Prioridade para serem processados antes de eventos menos urgentes.
É rápido o suficiente para parecer instantâneo, mas controlado o suficiente para não derrubar sua infraestrutura.
O Ciclo de Vida da Mensagem
Seu sistema deve estar preparado para ouvir os seguintes eventos para manter seus registros de envio atualizados:message.sentA mensagem saiu da nossa fila e foi para a rede do WhatsApp.message.deliveredA mensagem chegou com sucesso nos servidores do WhatsApp.message.readA mensagem foi lida pelo usuário final.message.failedUma falha impediu que a mensagem chegasse no destino.
Uma falha pode acontecer por alguns motivos, como: número inválido ou erro no WhatsApp.
Alguns usuários podem desativar a confirmação de leitura no WhatsApp. Então sua mensagem pode ter sido lida mas não ativar esse webhook.
Segurança Militar (HMAC & Anti-Replay)
Como você sabe que o aviso de “Pagamento Recebido” veio mesmo da Zenvio e não de um hacker tentando fraudar seu sistema? Nós assinamos criptograficamente cada evento usando HMAC-SHA256. Validação Simples:- Nós enviamos um hash no header
X-Zenvio-Signature. - Você usa o seu “Segredo de Webhook” (disponível no Dashboard) para recalcular o hash do payload.
- Se bater, a requisição é legítima.
X-Zenvio-Timestamp para evitar ataques de repetição (replay attacks), garantindo que você só processe eventos recentes (janela de 5 minutos).
Se seu servidor piscar, nós seguramos
Se o seu sistema estiver fora do ar (Error 500 ou Timeout) no momento em que tentarmos avisar que uma mensagem foi lida, a informação não se perde. Nós temos uma política automática de Retentativa Exponencial:- Tentamos entregar. Falhou?
- Esperamos 5 minutos.
- Esperamos 30 minutos.
- Esperamos 2 horas.