Enviados para messagesUrl.
Todos os eventos de mensagem são disparados tanto para mensagens recebidas quanto para mensagens enviadas pelo app do WhatsApp no dispositivo conectado. Use o campo
data.isFromMepara distinguir:trueindica que a mensagem foi enviada pelo próprio dispositivo,falseindica que foi recebida de outro contato.
message — Mensagem de texto
message — Mensagem de textoDisparado quando uma mensagem de texto simples, com citação ou encaminhada é recebida.
{
"type": "message",
"data": {
"deviceId": "meu-device-token",
"messageTimestamp": 1714500000,
"isFromMe": false,
"quotedMessageId": "ABC123",
"message": {
"id": "MSG_ID_001",
"conversation": "Olá, tudo bem?",
"isForward": false
},
"contact": {
"phone": "5511999990000",
"name": "João Silva",
"senderJid": "[email protected]",
"senderLid": null
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
data.deviceId | string | Token do dispositivo que recebeu a mensagem |
data.messageTimestamp | number | Timestamp Unix em segundos |
data.isFromMe | boolean | true se a mensagem foi enviada pelo próprio dispositivo via app do WhatsApp; false se foi recebida de outro contato |
data.quotedMessageId | string | null | ID da mensagem citada, se houver |
data.message.id | string | ID da mensagem no WhatsApp |
data.message.conversation | string | Texto da mensagem |
data.message.isForward | boolean | null | true se a mensagem foi encaminhada |
data.contact.phone | string | null | Número do remetente (somente dígitos) |
data.contact.name | string | null | Nome exibido do remetente (push name) |
data.contact.senderJid | string | null | JID do remetente no WhatsApp |
data.contact.senderLid | string | null | LID do remetente (dispositivos vinculados) |
message.edit — Mensagem editada
message.edit — Mensagem editadaDisparado quando o remetente edita uma mensagem já enviada.
{
"type": "message.edit",
"data": {
"deviceId": "meu-device-token",
"messageTimestamp": 1714500060,
"isFromMe": false,
"message": {
"id": "MSG_ID_001",
"conversation": "Olá, tudo bem? (editado)"
},
"contact": {
"phone": "5511999990000",
"name": "João Silva",
"senderJid": "[email protected]"
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
data.message.id | string | ID da mensagem original que foi editada |
data.message.conversation | string | Novo conteúdo de texto após a edição |
message.revoke — Mensagem apagada
message.revoke — Mensagem apagadaDisparado quando o remetente apaga uma mensagem para todos.
{
"type": "message.revoke",
"data": {
"deviceId": "meu-device-token",
"messageTimestamp": 1714500120,
"isFromMe": false,
"message": {
"id": "MSG_ID_001"
},
"contact": {
"phone": "5511999990000",
"name": "João Silva",
"senderJid": "[email protected]"
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
data.message.id | string | ID da mensagem que foi apagada |
message.reaction — Reação
message.reaction — ReaçãoDisparado quando uma reação (emoji) é adicionada ou removida de uma mensagem.
{
"type": "message.reaction",
"data": {
"deviceId": "meu-device-token",
"messageTimestamp": 1714500180,
"isFromMe": false,
"message": {
"id": "MSG_ID_001",
"reaction": "👍"
},
"contact": {
"phone": "5511999990000",
"name": "João Silva",
"senderJid": "[email protected]"
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
data.message.id | string | ID da mensagem que recebeu a reação |
data.message.reaction | string | Emoji da reação. String vazia indica remoção da reação. |
message.contact — Contato compartilhado
message.contact — Contato compartilhadoDisparado quando um cartão de contato (vCard) é compartilhado.
{
"type": "message.contact",
"data": {
"deviceId": "meu-device-token",
"messageTimestamp": 1714500240,
"isFromMe": false,
"message": {
"id": "MSG_ID_002",
"sharedContact": {
"displayName": "Maria Souza",
"vcard": "BEGIN:VCARD\nVERSION:3.0\nFN:Maria Souza\nTEL:+5511988880000\nEND:VCARD"
}
},
"contact": {
"phone": "5511999990000",
"name": "João Silva",
"senderJid": "[email protected]"
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
data.message.sharedContact.displayName | string | Nome do contato compartilhado |
data.message.sharedContact.vcard | string | Dados completos do contato no formato vCard |
message.location — Localização
message.location — LocalizaçãoDisparado quando uma localização geográfica é compartilhada.
{
"type": "message.location",
"data": {
"deviceId": "meu-device-token",
"messageTimestamp": 1714500300,
"isFromMe": false,
"message": {
"id": "MSG_ID_003",
"location": {
"latitude": -23.5505,
"longitude": -46.6333
}
},
"contact": {
"phone": "5511999990000",
"name": "João Silva",
"senderJid": "[email protected]"
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
data.message.location.latitude | number | Latitude em graus decimais |
data.message.location.longitude | number | Longitude em graus decimais |
message.file — Arquivo / Mídia
message.file — Arquivo / MídiaDisparado quando uma imagem, vídeo, áudio ou documento é recebido. O conteúdo do arquivo é codificado em base64.
{
"type": "message.file",
"data": {
"deviceId": "meu-device-token",
"messageTimestamp": 1714500360,
"isFromMe": false,
"message": {
"id": "MSG_ID_004",
"attachment": {
"mimetype": "image/jpeg",
"fileName": "foto.jpg",
"caption": "Olha isso!",
"base64": "/9j/4AAQSkZJRgAB..."
}
},
"contact": {
"phone": "5511999990000",
"name": "João Silva",
"senderJid": "[email protected]"
}
}
}| Campo | Tipo | Descrição |
|---|---|---|
data.message.attachment.mimetype | string | Tipo MIME do arquivo (ex: image/jpeg, video/mp4, audio/ogg, application/pdf) |
data.message.attachment.fileName | string | null | Nome original do arquivo |
data.message.attachment.caption | string | null | Legenda enviada junto ao arquivo |
data.message.attachment.base64 | string | Conteúdo do arquivo codificado em base64 |