send.message
Mensagem enviada pela API apos envio e persistencia bem-sucedidos.
Requisição
POST /webhooks/codechat HTTP/1.1Content-Type: application/jsonx-webhook-event: send.message
Payload
{"data": {"content": {"text": "Mensagem enviada"},"device": "web","id": 2048,"isGroup": false,"keyFromMe": true,"keyLid": null,"keyParticipant": null,"keyParticipantLid": null,"messageTimestamp": 1783188000,"messageType": "conversation","metadata": null,"pushName": null},"event": "send.message","instance": {"connectionStatus": "online","externalAttributes": {},"id": 1,"name": "codechat",},"timestamp": "2026-07-04T18:00:00Z"}
idnumberobrigatório, não aceita `null`. ID interno da mensagem.
keyRemoteJidstring | nullobrigatório, aceita `null`. JID remoto da mensagem.
keyLidstring | nullobrigatório, aceita `null`. LID remoto da mensagem.
keyFromMebooleanobrigatório, não aceita `null`. Indica se a mensagem foi enviada pela propria instancia.
keyParticipantstring | nullobrigatório, aceita `null`. Participante em mensagens de grupo.
keyParticipantLidstring | nullobrigatório, aceita `null`. LID do participante em mensagens de grupo.
pushNamestring | nullobrigatório, aceita `null`. Nome exibido do remetente quando conhecido.
messageTypestringobrigatório, não aceita `null`. Tipo normalizado da mensagem.
contentobjectobrigatório, não aceita `null`. Conteudo normalizado da mensagem.
messageTimestampnumberobrigatório, não aceita `null`. Timestamp Unix em segundos.
devicestring | nullobrigatório, aceita `null`. Dispositivo/origem inferida da mensagem.
isGroupbooleanobrigatório, não aceita `null`. Indica se a mensagem pertence a grupo.
metadataobject | nullobrigatório, aceita `null`. Metadados adicionais normalizados.
Observações de entrega
- Usa o mesmo DTO de messages.upsert, mas a origem e o envio pela propria API.
- Quando uma mensagem e aceita com options.mentionAll=true, o mesmo evento send.message tambem entrega o resultado definitivo do processamento assincrono. Nesse caso, data contem processId, status, mentionAll, externalAttributes e, em caso de sucesso, data.messageId, data.remoteJid, data.participantCount e data.timestamp. Em caso de falha, contem error.code e error.message.
- Implemente idempotência por chave de negócio e aceite a possibilidade de duplicidades e reordenação.
