{
"event": "MESSAGE",
"data": {
"message": {
"key": {
"remoteJid": "557999070094@s.whatsapp.net",//Número da conversa
"fromMe": true,// Propriedade que indica se a mensagem foi enviada pelo número conectado na instância
"id": "BAE5873ED78F0837"// ID da mensagem no WhatsApp
},
"message": {
"contactMessage": {// objeto com os dados da mensagem de contato
"displayName": "nome mostrado",// nome do contato
"vcard": "BEGIN:VCARD\nVERSION:3.0\nFN:nome mostrado\nORG:organização;\nTEL;type=CELL;type=VOICE;waid=911234567890:+91 12345 67890\nEND:VCARD"// vcard é o formato do WhatsApp referente a contatos, basicamente as informações que voce precisa nessa string é "waid=numero" em que vem o número e o nome tambem vem em "\nFN:nome mostrado"
}
},
"messageTimestamp": "1686838585",
"status": "PENDING"
},
"instanceId": 450
}
}
A diferença do body para o webhook de recebimento é que o de recebimento virá com "pushName" que seria o nome no WhatsApp de quem enviou a mensagem. E o Status de "PENDING" que vem no envio via endpoint ou status 2 via celular.