messages.upsert
Mensagem recebida e persistida pela aplicacao.
Requisição
POST /webhooks/codechat HTTP/1.1Content-Type: application/jsonx-webhook-event: messages.upsert
Payload
{"data": {"content": {"text": "Ola"},"device": "ios","id": 1024,"isGroup": false,"keyFromMe": false,"keyLid": null,"keyParticipant": null,"keyParticipantLid": null,"messageTimestamp": 1783188000,"messageType": "conversation","metadata": null,"pushName": "Cliente"},"event": "messages.upsert","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
- Se a persistencia ou a releitura da mensagem falhar, o webhook nao e emitido.
- Implemente idempotência por chave de negócio e aceite a possibilidade de duplicidades e reordenação.
