Skip to main content

Webhook para mensagens de Documento

Descrição:

O evento messages.upsert é acionado sempre que uma mensagem de documento é inserida ou atualizada. Este webhook é vital para empresas e desenvolvedores que necessitam rastrear o envio e recebimento de documentos em tempo real, sejam eles acompanhados de legendas (captions) ou não.

Payload do Webhook:

Documento Sem Legenda:

Quando uma mensagem de documento sem legenda é recebida, o payload enviado ao endpoint do webhook configurado será semelhante ao abaixo, não incluindo o atributo caption:

{
"eventType": "messages.upsert",
"instance": "ID_DA_INSTANCIA",
"sender": "NUMERO_DO_REMETENTE@s.whatsapp.net",
"recipient": "NUMERO_DO_DESTINATARIO@s.whatsapp.net",
"messageType": "documentMessage",
"owner": "ID_DA_INSTANCIA",
"messageTimestamp": TIMESTAMP,
"pushName": "NOME_PUSH",
"fromMe": BOOLEAN,
"document": {
"url": "URL_DO_DOCUMENTO",
"mimetype": "TIPO_DO_MIME",
"title": "TITULO_DO_DOCUMENTO",
"fileSha256": "HASH_SHA256_DO_ARQUIVO",
"fileLength": "TAMANHO_DO_ARQUIVO",
"pageCount": NUMERO_DE_PAGINAS,
"mediaKey": "CHAVE_DE_MIDIA",
"fileName": "NOME_DO_ARQUIVO",
"fileEncSha256": "HASH_ENC_SHA256_DO_ARQUIVO",
"directPath": "CAMINHO_DIRETO",
"mediaKeyTimestamp": "TIMESTAMP_DA_CHAVE_DE_MIDIA",
"jpegThumbnail": "MINIATURA_JPEG"
}
}

Documento Com Legenda:

Quando uma mensagem de documento com legenda é recebida, o payload terá um atributo caption adicional, como descrito abaixo:

{
"eventType": "messages.upsert",
"instance": "ID_DA_INSTANCIA",
"sender": "NUMERO_DO_REMETENTE@s.whatsapp.net",
"recipient": "NUMERO_DO_DESTINATARIO@s.whatsapp.net",
"messageType": "documentWithCaptionMessage",
"owner": "ID_DA_INSTANCIA",
"messageTimestamp": TIMESTAMP,
"pushName": "NOME_PUSH",
"fromMe": BOOLEAN,
"document": {
"url": "URL_DO_DOCUMENTO",
"mimetype": "TIPO_DO_MIME",
"title": "TITULO_DO_DOCUMENTO",
"fileSha256": "HASH_SHA256_DO_ARQUIVO",
"fileLength": "TAMANHO_DO_ARQUIVO",
"pageCount": NUMERO_DE_PAGINAS,
"mediaKey": "CHAVE_DE_MIDIA",
"fileName": "NOME_DO_ARQUIVO",
"fileEncSha256": "HASH_ENC_SHA256_DO_ARQUIVO",
"directPath": "CAMINHO_DIRETO",
"mediaKeyTimestamp": "TIMESTAMP_DA_CHAVE_DE_MIDIA",
"jpegThumbnail": "MINIATURA_JPEG",
"caption": "LEGENDA_DO_DOCUMENTO"
}
}

Detalhamento das Propriedades do Payload:

  • eventType: (string) Tipo do evento. Será sempre messages.upsert para este webhook.
  • instance: (string) ID da instância que está enviando ou recebendo a mensagem.
  • sender: (string) Número de telefone do remetente no formato internacional, seguido por @s.whatsapp.net.
  • recipient: (string) Número de telefone do destinatário no formato internacional, seguido por @s.whatsapp.net.
  • messageType: (string) Tipo da mensagem. Será documentMessage para documentos sem legenda e documentWithCaptionMessage para documentos com legenda.
  • messageTimestamp: (number) Timestamp da data e hora da inserção ou atualização da mensagem.
  • pushName: (string) Nome exibido do remetente da mensagem.
  • fromMe: (boolean) true se a mensagem foi enviada pela instância, false se foi recebida por ela.

Propriedades do Objeto document:

  • url: (string) URL de onde o documento pode ser baixado.
  • mimetype: (string) Tipo MIME do documento.
  • title: (string) Título do documento.
  • fileSha256: (string) Hash SHA-256 do arquivo do documento.
  • fileLength: (string) Tamanho do arquivo do documento em bytes.
  • pageCount: (number) Número de páginas do documento, se aplicável.
  • mediaKey: (string) Chave de mídia do documento.
  • fileName: (string) Nome do arquivo do documento.
  • fileEncSha256: (string) Hash SHA-256 encriptado do arquivo do documento.
  • directPath: (string) Caminho direto para o documento.
  • mediaKeyTimestamp: (string) Timestamp da chave de mídia do documento.
  • jpegThumbnail: (string) Miniatura JPEG do documento, se disponível.
  • caption: (string) Legenda do documento, se disponível.

Conclusão

O webhook messages.upsert para mensagens de documento permite um monitoramento em tempo real de documentos transmitidos, com ou sem legendas, proporcionando uma integração mais eficiente e detalhada. Para qualquer dúvida ou problema, por favor, contacte o nosso suporte.