{"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.