Skip to main content

Evento messages.sent

O messages.sent é disparado exclusivamente para mensagens enviadas via API da D-API (/messages/send/* e /interactive/send/*). Mensagens enviadas pelo próprio celular ou por outros dispositivos conectados ao mesmo número não geram messages.sent — elas chegam em messages.received com fromMe: true.
Use este evento para confirmar que uma mensagem disparada pela API foi enviada com sucesso e para registrar o conteúdo final entregue ao WhatsApp.
O payload tem exatamente a mesma estrutura do evento messages.received para o mesmo type (mesmos campos, media_data com file_length/mimetype, context_info etc.), apenas com fromMe: true. Para a referência completa de todos os campos, consulte a página de messages.received.
A diferença está nos papéis: from é o seu número (a sessão) e to é o destinatário.
Quando a mídia é enviada por URL externa, o payload pode incluir pending_media_url (a URL original informada na requisição) dentro de media_data. Além disso, o id da mensagem (gerado pelo whatsmeow) pode vir em letras maiúsculas.

Exemplos por Tipo


Outros tipos enviáveis

Os tipos abaixo também podem ser enviados pela API. O formato exato do payload de messages.sent para esses tipos não está documentado aqui para evitar exemplos incorretos — quando enviados, o webhook segue a mesma estrutura do messages.received correspondente, com fromMe: true.
Enquetes (poll) são reportadas em messages.received como poll_update (votos). O álbum envia múltiplas mídias e pode gerar mais de um evento de mídia individual (image/video). Confirme o formato em ambiente de teste antes de tratar esses tipos em produção.

Endpoints de envio

Cada tipo enviável corresponde a um endpoint da API:
Evite usar messages.sent para acionar automações de resposta automática. Como ele confirma mensagens que você mesmo enviou pela API, tratá-lo como gatilho de resposta pode gerar loops.