Formato de entrega
O WaGo envia webhooks como requisiçõesPOST usando form data, não um corpo de requisição JSON bruto.
Todo webhook normal contém:
| Campo do formulário | Significado |
|---|---|
token | O token de sessão do WaGo que gerou o evento. Use-o para mapear o evento para um de seus usuários ou dispositivos. |
jsonData | Uma string JSON. Analise (parse) este campo para obter o payload do evento. |
| Campo do formulário | Significado |
|---|---|
file | O arquivo de imagem, áudio, vídeo, documento ou figurinha baixado. |
Envelope do evento
A maioria dos valores dejsonData segue este formato:
type é o nome da assinatura/evento do WaGo. event é o objeto de evento subjacente do WhatsApp, com campos como Info, Message, MessageIDs, Timestamp, From, State ou metadados de chamada, dependendo do tipo de evento.
Alguns tipos de evento incluem campos extras do WaGo ao lado de event:
| Campo | Adicionado para | Significado |
|---|---|---|
state | ReadReceipt, Presence | Status normalizado como Delivered, Read, ReadSelf, online ou offline. |
decryptVote | Atualizações de enquete em Message | Hash hexadecimal para uma opção de enquete selecionada e descriptografada. |
orderDetails | Mensagens de pedido em Message | Dados do pedido obtidos do WhatsApp quando uma mensagem de pedido contém orderID e token. |
Valores de assinatura
As assinaturas são definidas emPOST /session/connect ou POST /session/pair.
| Valor de assinatura | Eventos incluídos |
|---|---|
All | Envia todos os tipos de eventos de webhook públicos. |
Message | Eventos de mensagens recebidas e enviadas de chats. |
Newsletter | Eventos de mensagens cuja origem é uma newsletter/canal. |
ReadReceipt | Confirmações de entrega/leitura de mensagens. |
Presence | Atualizações de online/offline para usuários. |
ChatPresence | Indicadores de digitação e gravação dentro de um chat. |
HistorySync | Payloads de sincronização histórica do WhatsApp após login ou reconexão. |
Call | Oferta de chamada, aceite, encerramento, latência de relay e eventos de estado de chamada gerenciada pelo WaGo. |
LoggedOut | A sessão foi desconectada ou desvinculada. |
All durante a integração. Em produção, assine apenas os tipos de evento que sua aplicação precisa.
Evento de mensagem
Use eventosMessage para processar mensagens de chat recebidas, mensagens enviadas de dispositivos vinculados, mensagens de mídia, atualizações de enquetes, mensagens de pedido, edições e mensagens de newsletter.
Exemplo de mensagem de texto:
| Campo | Significado |
|---|---|
event.Info.ID | ID da mensagem do WhatsApp. Armazene isso para respostas, reações, edições, exclusões, confirmações ou logs de auditoria. |
event.Info.Chat | JID do chat ao qual a mensagem pertence. |
event.Info.Sender | JID do remetente. Em grupos, este é o participante que a enviou. |
event.Info.IsFromMe | true quando a mensagem foi enviada pela conta conectada ou outro dispositivo vinculado. |
event.Info.IsGroup | true para contextos de grupo ou transmissão. |
event.Message | O payload real da mensagem do WhatsApp. O campo interno depende do tipo de mensagem. |
event.Message:
| Campo da mensagem | Significado |
|---|---|
conversation | Mensagem de texto simples. |
extendedTextMessage | Texto com contexto, pré-visualização, citação ou dados de formatação. |
imageMessage | Metadados da imagem e legenda. |
audioMessage | Metadados do áudio. |
videoMessage | Metadados do vídeo e legenda. |
documentMessage | Metadados do documento, nome do arquivo e legenda. |
stickerMessage | Metadados da figurinha. |
locationMessage | Mensagem de latitude/longitude. |
contactMessage | Mensagem de contato vCard. |
pollUpdateMessage | Atualização de voto em enquete. O WaGo tenta descriptografar o voto e adiciona decryptVote. |
orderMessage | Mensagem de pedido comercial. O WaGo tenta buscar orderDetails. |
Mensagem de mídia com upload de arquivo
Se o binário for executado com o encaminhamento de arquivos de webhook habilitado, o WaGo baixa a mídia recebida suportada e envia o arquivo com a requisição do webhook. Exemplo dejsonData para mídia de imagem:
file. Salve-o em sua aplicação antes de responder.
Tipos de arquivo com encaminhamento automático suportados no WaGo:
| Mensagem do WhatsApp | Comportamento do arquivo |
|---|---|
| Imagem | Baixado e anexado como file. |
| Áudio | Baixado e anexado como file. |
| Documento | Baixado e anexado como file. |
| Vídeo | Baixado e anexado como file. |
| Figurinha | Baixado e anexado como file. |
Evento de confirmação de leitura
Use eventosReadReceipt para atualizar o estado de entrega da mensagem em sua aplicação.
state adicionados pelo WaGo:
| Estado | Significado |
|---|---|
Delivered | O WhatsApp entregou a mensagem. |
Read | O destinatário leu a mensagem. |
ReadSelf | Outro dispositivo vinculado à mesma conta leu a mensagem. |
Evento de presença
Use eventosPresence para o estado online/offline do usuário.
state é offline, LastSeen pode ser zero se o contato ocultar o visto por último.
Evento de presença no chat
UseChatPresence para indicadores de digitação e gravação.
| Campo | Valores |
|---|---|
State | composing, paused |
Media | text, audio |
Evento de chamada
O WaGo envia dois tipos de webhooks relacionados a chamadas:- Eventos brutos de chamada do WhatsApp, como oferta, aceite, encerramento, aviso de oferta e latência de relay.
- Eventos de chamada gerenciada da camada de chamadas do WaGo, como
incoming,state,readyeended.
callID com os endpoints /call/answer, /call/reject, /call/hangup, /call/status e de áudio ao vivo.
Evento de logout
UseLoggedOut para detectar que a sessão do WhatsApp não está mais vinculada.
Evento de sincronização de histórico
HistorySync chega quando o WhatsApp envia mensagens históricas após login ou reconexão.
HistorySync.
Eventos de conta e estado do aplicativo
O WaGo também encaminha vários tipos de eventos de estado da conta. Eles são úteis para dashboards e tarefas de sincronização, mas a maioria das aplicações pode ignorá-los, a menos que precisem de detalhes de administração da conta.| Tipo | O que significa |
|---|---|
SyncComplete | Sincronização offline concluída após reconexão. |
LabelEdit | Um rótulo do WhatsApp foi editado. |
LabelAssociationChat | Um rótulo foi aplicado ou removido de um chat. |
LabelAssociationMessage | Um rótulo foi aplicado ou removido de uma mensagem. |
ClientOutdated | O WhatsApp informa que esta versão do cliente está desatualizada. |
TemporaryBan | A conta recebeu um evento de banimento temporário. |
TemporaryBanReason | Detalhes do motivo de um banimento temporário. |
JoinedGroup | A conta entrou ou foi adicionada a um grupo. |
Blocklist | Contatos bloqueados alterados. |
PrivacySettings | Configurações de privacidade alteradas. |
ClearChat | Um chat foi limpo. |
Contact | Estado do contato alterado. |
MarkChatAsRead | O estado de lido/não lido de um chat foi alterado. |
UserAbout | O texto de recado (about) de um usuário foi alterado. |
Regras do receptor
Seu endpoint de webhook deve:- Responder com 2xx rapidamente.
- Analisar
jsonDataapós ler os dados do formulário. - Armazenar
token,type, IDs de mensagem e timestamps. - Desduplicar por
event.Info.IDpara mensagens ou portype + message ID + timestamppara confirmações. - Salvar o
fileenviado antes de retornar. - Lidar com campos que você não reconhece. Objetos de evento do WhatsApp podem ganhar novos campos.
- Evitar processamento lento dentro da requisição. Coloque tarefas de acompanhamento em uma fila após armazenar o evento.

