Skip to main content

Mensagem de Contato

O tipo CONTACT_MESSAGE permite enviar um cartão de contato (vCard) para o destinatário. O contato aparecerá como um cartão interativo que o destinatário pode salvar na agenda.

Payload

Campos

string
required
Deve ser "CONTACT_MESSAGE".
Address
required
Endereço do destinatário. Veja formatos de endereço.
string
required
Nome de exibição do contato. Aparece como título do cartão de contato.
string
required
Conteúdo do cartão de contato no formato vCard 3.0. Deve conter pelo menos nome e um telefone.

Formato vCard

O vCard é um formato padrão para troca de informações de contato. Abaixo os campos mais comuns:
O campo waid no telefone é específico do WhatsApp e indica o número do WhatsApp associado ao contato. Isso permite que o destinatário inicie uma conversa diretamente pelo cartão.

Exemplos

Contato simples

Contato completo com endereço

Use \n para separar as linhas do vCard no JSON. Cada campo do vCard deve estar em uma linha separada.
O displayName deve corresponder ao FN (Full Name) do vCard para consistência na exibição. Caso sejam diferentes, o WhatsApp pode exibir o FN do vCard.

Resposta

Recebimento

Quando um contato é compartilhado com o seu canal, a plataforma entrega um webhook com content.type igual a CONTACT_MESSAGE. O contato recebido usa exatamente os mesmos campos do envio: displayName e vCard.
Para o envelope completo do webhook (packageId, channelId, correlationId, timestamp, providerMetadata, echoMessage) e a configuração do canal de recebimento, veja Recebendo Eventos.

Exemplo de webhook recebido

Campos recebidos

string
Sempre "CONTACT_MESSAGE".
Address
Endereço de quem compartilhou o contato. Para WhatsApp inclui jid, number e name (e opcionalmente lid). Veja formatos de endereço.
Address
Endereço do canal/chat que recebeu a mensagem.
string
Identificador da mensagem no provedor. Guarde-o para responder ou citar posteriormente.
string
Nome de exibição do contato compartilhado.
string
Conteúdo do cartão de contato no formato vCard 3.0, com nome, telefone(s) e demais informações.
boolean
true quando o contato foi compartilhado em um grupo.
boolean
true quando a mensagem foi enviada pelo próprio canal (eco).
boolean
true se a mensagem foi enviada para uma lista de transmissão (broadcast list).
boolean
true se a mensagem foi enviada para um grupo de avisos da comunidade.
boolean
true se a mensagem foi enviada para o grupo de avisos da comunidade.
boolean
true se a mensagem foi enviada para um canal/newsletter.
DateTimeOffset
Momento em que a mensagem foi recebida pelo provedor.
Os campos comuns a toda mensagem recebida (isForwarded, isStatusMessage, isHistoryMessage, quotedMessage, metaReferralAds) também podem estar presentes. Veja o envelope comum de mensagens.