Eventos de webhook

Tudo o que pode chegar no seu webhook, com o formato do payload de cada evento.

Status da conexão

session.statusAPI OnZapAPI oficial

A conexão mudou de status (ex.: WORKING → SCAN_QR_CODE quando o celular desconecta).

Campos do payload

statusstringobrigatório
STOPPED, STARTING, SCAN_QR_CODE, WORKING ou FAILED.
rawanyopcional
reasonstringopcional
Motivo, quando a conexão caiu (ex.: token da Meta revogado).
Exemplo do envelope
{
  "event": "session.status",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "reason": "a conta da Meta revogou o acesso",
    "status": "WORKING"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Mensagem recebida

messageAPI OnZapAPI oficial

Mensagem que chegou de outra pessoa (não inclui as enviadas por este número).

Campos do payload

chatIdstringobrigatório
Conversa (contato ou grupo). Usa o número (...@c.us) sempre que ele é conhecido, mesmo quando o WhatsApp manda o LID.
fromobjectobrigatório
Quem mandou.
from.idstringobrigatório
ID para responder: 5511999999999@c.us (o número, sempre que conhecido), …@lid ou, na API oficial, BR.…@bsuid.
from.bsuidstringopcional
API oficial: ID do usuário na Meta (usuários com nome de usuário podem não mostrar o número).
from.lidstringopcional
LID do contato, quando o WhatsApp o endereçou assim (…@lid); o id já vem com o número.
from.phonestringopcional
Número (só dígitos), quando conhecido.
from.picturestringopcional
Link assinado para a foto de perfil (só na API OnZap).
from.pushNamestringopcional
Nome que a pessoa definiu no WhatsApp.
from.usernamestringopcional
API oficial: nome de usuário do WhatsApp, se houver.
fromMebooleanobrigatório
Enviada por este número.
idstringobrigatório
ID da mensagem (use em reply_to, reações, lida).
isGroupbooleanobrigatório
A conversa é um grupo.
timestampintegerobrigatório
Segundos desde 1970.
typestringobrigatório
text, image, video, audio, voice, document, sticker, location, contact, button_reply, list_reply, reaction, poll ou unknown.
chatLidstringopcional
LID da conversa, quando o WhatsApp a endereçou assim (...@lid). O chatId já vem com o número.
chatNamestringopcional
Nome da conversa: o assunto do grupo ou o nome do contato (agenda do celular ou perfil).
chatPicturestringopcional
Link temporário para a foto da conversa (do grupo ou do contato). Só na API OnZap; sem foto visível, o link responde 404.
contactsarray de stringopcional
vCards, em mensagens de contato.
locationobjectopcional
location.latitudenumberobrigatório
location.longitudenumberobrigatório
location.addressstringopcional
location.namestringopcional
location.urlstringopcional
mediaobjectopcional
media.errorstringopcional
Por que o arquivo não pôde ser baixado, se for o caso.
media.filenamestringopcional
media.mimetypestringopcional
media.urlstringopcional
Link assinado para baixar o arquivo (válido por 24 h).
quotedIdstringopcional
ID da mensagem respondida (citada).
rawanyopcional
Evento original do provedor, para campos que o formato padrão não cobre.
replyobjectopcional
Botão ou item de lista escolhido.
reply.idstringopcional
reply.titlestringopcional
sourcestringopcional
api (enviada pela API) ou app (pelo celular), nas mensagens próprias.
textstringopcional
Texto (ou legenda da mídia).
Exemplo do envelope
{
  "event": "message",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "chatLid": "36576092528787@lid",
    "chatName": "Maria Silva",
    "chatPicture": "https://app.onzap.io/v1/avatars/i01jabcdefghjkmnpqrstvwxyz/5511999999999@c.us?exp=1767229200&sig=…",
    "contacts": [
      "texto"
    ],
    "from": {
      "bsuid": "BR.1349120865530274191",
      "id": "5511999999999@c.us",
      "lid": "36576092528787@lid",
      "phone": "5511999999999",
      "picture": "https://app.onzap.io/v1/avatars/i01jabcdefghjkmnpqrstvwxyz/5511999999999@c.us?exp=1767229200&sig=…",
      "pushName": "Maria",
      "username": "maria.silva"
    },
    "fromMe": false,
    "id": "false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "isGroup": false,
    "location": {
      "address": "Av. Paulista, 1000 - São Paulo, SP",
      "latitude": -23.5613,
      "longitude": -46.6565,
      "name": "Loja Centro",
      "url": "https://exemplo.com.br/arquivos/pedido.jpg"
    },
    "media": {
      "error": "número sem WhatsApp",
      "filename": "pedido.pdf",
      "mimetype": "image/jpeg",
      "url": "https://exemplo.com.br/arquivos/pedido.jpg"
    },
    "quotedId": "false_5511999999999@c.us_3EB0A1A2A3A4A5A6A7",
    "reply": {
      "id": "confirmar",
      "title": "Confirmação"
    },
    "source": "api",
    "text": "Olá! Seu pedido foi confirmado.",
    "timestamp": 1767225600,
    "type": "text"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Reação

message.reactionAPI OnZapAPI oficial

Alguém reagiu (ou removeu a reação) a uma mensagem.

Campos do payload

chatIdstringobrigatório
emojistringobrigatório
Emoji; vazio quando a reação foi removida.
fromobjectobrigatório
from.idstringobrigatório
ID para responder: 5511999999999@c.us (o número, sempre que conhecido), …@lid ou, na API oficial, BR.…@bsuid.
from.bsuidstringopcional
API oficial: ID do usuário na Meta (usuários com nome de usuário podem não mostrar o número).
from.lidstringopcional
LID do contato, quando o WhatsApp o endereçou assim (…@lid); o id já vem com o número.
from.phonestringopcional
Número (só dígitos), quando conhecido.
from.picturestringopcional
Link assinado para a foto de perfil (só na API OnZap).
from.pushNamestringopcional
Nome que a pessoa definiu no WhatsApp.
from.usernamestringopcional
API oficial: nome de usuário do WhatsApp, se houver.
fromMebooleanobrigatório
idstringobrigatório
messageIdstringobrigatório
Mensagem que recebeu a reação.
timestampintegerobrigatório
rawanyopcional
Exemplo do envelope
{
  "event": "message.reaction",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "emoji": "👍",
    "from": {
      "bsuid": "BR.1349120865530274191",
      "id": "5511999999999@c.us",
      "lid": "36576092528787@lid",
      "phone": "5511999999999",
      "picture": "https://app.onzap.io/v1/avatars/i01jabcdefghjkmnpqrstvwxyz/5511999999999@c.us?exp=1767229200&sig=…",
      "pushName": "Maria",
      "username": "maria.silva"
    },
    "fromMe": false,
    "id": "false_5511999999999@c.us_3EB0AA11BB22CC33DD44",
    "messageId": "false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Qualquer mensagem

message.anyAPI OnZapAPI oficial

Recebidas e enviadas, inclusive as enviadas pelo celular ou por outro sistema (fromMe: true, source: app).

Campos do payload

chatIdstringobrigatório
Conversa (contato ou grupo). Usa o número (...@c.us) sempre que ele é conhecido, mesmo quando o WhatsApp manda o LID.
fromobjectobrigatório
Quem mandou.
from.idstringobrigatório
ID para responder: 5511999999999@c.us (o número, sempre que conhecido), …@lid ou, na API oficial, BR.…@bsuid.
from.bsuidstringopcional
API oficial: ID do usuário na Meta (usuários com nome de usuário podem não mostrar o número).
from.lidstringopcional
LID do contato, quando o WhatsApp o endereçou assim (…@lid); o id já vem com o número.
from.phonestringopcional
Número (só dígitos), quando conhecido.
from.picturestringopcional
Link assinado para a foto de perfil (só na API OnZap).
from.pushNamestringopcional
Nome que a pessoa definiu no WhatsApp.
from.usernamestringopcional
API oficial: nome de usuário do WhatsApp, se houver.
fromMebooleanobrigatório
Enviada por este número.
idstringobrigatório
ID da mensagem (use em reply_to, reações, lida).
isGroupbooleanobrigatório
A conversa é um grupo.
timestampintegerobrigatório
Segundos desde 1970.
typestringobrigatório
text, image, video, audio, voice, document, sticker, location, contact, button_reply, list_reply, reaction, poll ou unknown.
chatLidstringopcional
LID da conversa, quando o WhatsApp a endereçou assim (...@lid). O chatId já vem com o número.
chatNamestringopcional
Nome da conversa: o assunto do grupo ou o nome do contato (agenda do celular ou perfil).
chatPicturestringopcional
Link temporário para a foto da conversa (do grupo ou do contato). Só na API OnZap; sem foto visível, o link responde 404.
contactsarray de stringopcional
vCards, em mensagens de contato.
locationobjectopcional
location.latitudenumberobrigatório
location.longitudenumberobrigatório
location.addressstringopcional
location.namestringopcional
location.urlstringopcional
mediaobjectopcional
media.errorstringopcional
Por que o arquivo não pôde ser baixado, se for o caso.
media.filenamestringopcional
media.mimetypestringopcional
media.urlstringopcional
Link assinado para baixar o arquivo (válido por 24 h).
quotedIdstringopcional
ID da mensagem respondida (citada).
rawanyopcional
Evento original do provedor, para campos que o formato padrão não cobre.
replyobjectopcional
Botão ou item de lista escolhido.
reply.idstringopcional
reply.titlestringopcional
sourcestringopcional
api (enviada pela API) ou app (pelo celular), nas mensagens próprias.
textstringopcional
Texto (ou legenda da mídia).
Exemplo do envelope
{
  "event": "message.any",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "chatLid": "36576092528787@lid",
    "chatName": "Maria Silva",
    "chatPicture": "https://app.onzap.io/v1/avatars/i01jabcdefghjkmnpqrstvwxyz/5511999999999@c.us?exp=1767229200&sig=…",
    "contacts": [
      "texto"
    ],
    "from": {
      "bsuid": "BR.1349120865530274191",
      "id": "5511999999999@c.us",
      "lid": "36576092528787@lid",
      "phone": "5511999999999",
      "picture": "https://app.onzap.io/v1/avatars/i01jabcdefghjkmnpqrstvwxyz/5511999999999@c.us?exp=1767229200&sig=…",
      "pushName": "Maria",
      "username": "maria.silva"
    },
    "fromMe": false,
    "id": "false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "isGroup": false,
    "location": {
      "address": "Av. Paulista, 1000 - São Paulo, SP",
      "latitude": -23.5613,
      "longitude": -46.6565,
      "name": "Loja Centro",
      "url": "https://exemplo.com.br/arquivos/pedido.jpg"
    },
    "media": {
      "error": "número sem WhatsApp",
      "filename": "pedido.pdf",
      "mimetype": "image/jpeg",
      "url": "https://exemplo.com.br/arquivos/pedido.jpg"
    },
    "quotedId": "false_5511999999999@c.us_3EB0A1A2A3A4A5A6A7",
    "reply": {
      "id": "confirmar",
      "title": "Confirmação"
    },
    "source": "api",
    "text": "Olá! Seu pedido foi confirmado.",
    "timestamp": 1767225600,
    "type": "text"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Status de entrega e leitura

message.ackAPI OnZapAPI oficial

Enviada, entregue, lida, ouvida ou falhou.

Campos do payload

chatIdstringobrigatório
idstringobrigatório
ID da mensagem.
statusstringobrigatório
pending, sent, delivered, read, played ou failed.
errorobjectopcional
Motivo da falha (status failed).
error.messagestringobrigatório
error.codeintegeropcional
pricinganyopcional
API oficial: categoria e cobrança da conversa.
rawanyopcional
timestampintegeropcional
Exemplo do envelope
{
  "event": "message.ack",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "error": {
      "code": 0,
      "message": "Olá! Seu pedido foi confirmado."
    },
    "id": "true_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "status": "read",
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Status de leitura em grupos

message.ack.groupAPI OnZap

Leitura e entrega por participante em grupos.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

acknumberobrigatório
Valores:-101234
ackNamestringobrigatório
fromstringobrigatório
fromMebooleanobrigatório
idstringobrigatório
Message ID
participantstringobrigatório
tostringobrigatório
_dataobjectopcional
Exemplo do envelope
{
  "event": "message.ack.group",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "ack": -1,
    "ackName": "READ",
    "from": "5511999999999@c.us",
    "fromMe": false,
    "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
    "participant": "5511999999999@c.us",
    "to": "5511999999999@c.us"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Mensagem aguardando

message.waitingAPI OnZap

O WhatsApp avisou que há uma mensagem que ainda não pôde ser lida ("Aguardando mensagem").

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Exemplo do envelope
{
  "event": "message.waiting",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {},
  "provider": "onzap",
  "timestamp": 1767225600000
}

Mensagem apagada

message.revokedAPI OnZapAPI oficial

Mensagem apagada para todos.

Campos do payload

chatIdstringobrigatório
fromMebooleanobrigatório
messageIdstringobrigatório
Mensagem apagada para todos.
rawanyopcional
timestampintegeropcional
Exemplo do envelope
{
  "event": "message.revoked",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "fromMe": false,
    "messageId": "false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Mensagem editada

message.editedAPI OnZapAPI oficial

Texto de uma mensagem foi editado.

Campos do payload

chatIdstringobrigatório
fromobjectobrigatório
from.idstringobrigatório
ID para responder: 5511999999999@c.us (o número, sempre que conhecido), …@lid ou, na API oficial, BR.…@bsuid.
from.bsuidstringopcional
API oficial: ID do usuário na Meta (usuários com nome de usuário podem não mostrar o número).
from.lidstringopcional
LID do contato, quando o WhatsApp o endereçou assim (…@lid); o id já vem com o número.
from.phonestringopcional
Número (só dígitos), quando conhecido.
from.picturestringopcional
Link assinado para a foto de perfil (só na API OnZap).
from.pushNamestringopcional
Nome que a pessoa definiu no WhatsApp.
from.usernamestringopcional
API oficial: nome de usuário do WhatsApp, se houver.
fromMebooleanobrigatório
idstringobrigatório
messageIdstringobrigatório
Mensagem original.
textstringobrigatório
Novo texto.
timestampintegerobrigatório
rawanyopcional
Exemplo do envelope
{
  "event": "message.edited",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "from": {
      "bsuid": "BR.1349120865530274191",
      "id": "5511999999999@c.us",
      "lid": "36576092528787@lid",
      "phone": "5511999999999",
      "picture": "https://app.onzap.io/v1/avatars/i01jabcdefghjkmnpqrstvwxyz/5511999999999@c.us?exp=1767229200&sig=…",
      "pushName": "Maria",
      "username": "maria.silva"
    },
    "fromMe": false,
    "id": "false_5511999999999@c.us_3EB0EE55FF66AA77BB88",
    "messageId": "false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "text": "Olá! Seu pedido foi confirmado.",
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Mudança de estado do aparelho

state.changeAPI OnZap

Estado interno da conexão com o celular.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Exemplo do envelope
{
  "event": "state.change",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {},
  "provider": "onzap",
  "timestamp": 1767225600000
}

Entrou em um grupo (legado)

group.joinAPI OnZap

Formato antigo; prefira group.v2.join.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Exemplo do envelope
{
  "event": "group.join",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {},
  "provider": "onzap",
  "timestamp": 1767225600000
}

Saiu de um grupo (legado)

group.leaveAPI OnZap

Formato antigo; prefira group.v2.leave.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Exemplo do envelope
{
  "event": "group.leave",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {},
  "provider": "onzap",
  "timestamp": 1767225600000
}

Entrou em um grupo

group.v2.joinAPI OnZap

Este número foi adicionado ou entrou em um grupo.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

_dataobjectobrigatório
groupobjectobrigatório
group.descriptionstringobrigatório
group.idstringobrigatório
group.membersCanAddNewMemberbooleanobrigatório
Members can add new members
group.membersCanSendMessagesbooleanobrigatório
Members can send messages to the group
group.newMembersApprovalRequiredbooleanobrigatório
Admin approval required for new members
group.participantsarray de objectobrigatório
group.participants[].idstringobrigatório
Member ID in @c.us or @lid format
group.participants[].rolestringobrigatório
Valores:leftparticipantadminsuperadmin
group.participants[].pnstringopcional
Member ID in @c.us format
group.subjectstringobrigatório
group.invitestringopcional
Invite URL
timestampnumberobrigatório
Unix timestamp
Exemplo do envelope
{
  "event": "group.v2.join",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "group": {
      "description": "Group Description",
      "id": "123456789@g.us",
      "invite": "https://chat.whatsapp.com/1234567890abcdef",
      "membersCanAddNewMember": false,
      "membersCanSendMessages": false,
      "newMembersApprovalRequired": false,
      "participants": [
        {
          "id": "123456789@lid",
          "pn": "123456789@c.us",
          "role": "participant"
        }
      ],
      "subject": "Group Name"
    },
    "timestamp": 1666943582
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Saiu de um grupo

group.v2.leaveAPI OnZap

Este número saiu ou foi removido de um grupo.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

_dataobjectobrigatório
groupobjectobrigatório
group.idstringobrigatório
timestampnumberobrigatório
Unix timestamp
Exemplo do envelope
{
  "event": "group.v2.leave",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "group": {
      "id": "123456789@g.us"
    },
    "timestamp": 1666943582
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Grupo alterado

group.v2.updateAPI OnZap

Nome, descrição, foto ou configurações do grupo mudaram.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

_dataobjectobrigatório
groupobjectobrigatório
timestampnumberobrigatório
Unix timestamp
Exemplo do envelope
{
  "event": "group.v2.update",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "group": {},
    "timestamp": 1666943582
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Participantes alterados

group.v2.participantsAPI OnZap

Participantes entraram, saíram, foram promovidos ou rebaixados.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

_dataobjectobrigatório
groupobjectobrigatório
group.idstringobrigatório
participantsarray de objectobrigatório
participants[].idstringobrigatório
Member ID in @c.us or @lid format
participants[].rolestringobrigatório
Valores:leftparticipantadminsuperadmin
participants[].pnstringopcional
Member ID in @c.us format
timestampnumberobrigatório
Unix timestamp
typestringobrigatório
Type of the event
Valores:joinleavepromotedemote
Exemplo do envelope
{
  "event": "group.v2.participants",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "group": {
      "id": "123456789@g.us"
    },
    "participants": [
      {
        "id": "123456789@lid",
        "pn": "123456789@c.us",
        "role": "participant"
      }
    ],
    "timestamp": 1666943582,
    "type": "join"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Presença

presence.updateAPI OnZap

Online, digitando ou gravando áudio, para chats com presença assinada (POST /presence/{chatId}/subscribe).

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

idstringobrigatório
Chat ID - either group id or contact id
presencesarray de objectobrigatório
presences[].lastKnownPresencestringobrigatório
Valores:offlineonlinetypingrecordingpaused
presences[].participantstringobrigatório
Chat ID - participant or contact id
presences[].lastSeennumberopcional
Exemplo do envelope
{
  "event": "presence.update",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "id": "5511999999999@c.us",
    "presences": [
      {
        "lastKnownPresence": "offline",
        "lastSeen": 1686568773,
        "participant": "5511999999999@c.us"
      }
    ]
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Voto em enquete

poll.voteAPI OnZap

Alguém votou numa enquete enviada por este número.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

pollobjectobrigatório
poll.fromstringobrigatório
poll.fromMebooleanobrigatório
poll.idstringobrigatório
Message ID
poll.tostringobrigatório
poll.participantstringopcional
voteobjectobrigatório
vote.fromstringobrigatório
vote.fromMebooleanobrigatório
vote.idstringobrigatório
Message ID
vote.selectedOptionsarray de stringobrigatório
Option that user has selected
vote.timestampnumberobrigatório
Timestamp, ms
vote.tostringobrigatório
vote.participantstringopcional
_dataobjectopcional
Exemplo do envelope
{
  "event": "poll.vote",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "poll": {
      "from": "5511999999999@c.us",
      "fromMe": false,
      "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
      "participant": "5521988887777@c.us",
      "to": "5511888888888@c.us"
    },
    "vote": {
      "from": "5511999999999@c.us",
      "fromMe": false,
      "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
      "participant": "5521988887777@c.us",
      "selectedOptions": [
        "Awesome!"
      ],
      "timestamp": 1692861369,
      "to": "5511888888888@c.us"
    }
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Voto não decifrado

poll.vote.failedAPI OnZap

Chegou um voto que não pôde ser decifrado.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

pollobjectobrigatório
poll.fromstringobrigatório
poll.fromMebooleanobrigatório
poll.idstringobrigatório
Message ID
poll.tostringobrigatório
poll.participantstringopcional
voteobjectobrigatório
vote.fromstringobrigatório
vote.fromMebooleanobrigatório
vote.idstringobrigatório
Message ID
vote.selectedOptionsarray de stringobrigatório
Option that user has selected
vote.timestampnumberobrigatório
Timestamp, ms
vote.tostringobrigatório
vote.participantstringopcional
_dataobjectopcional
Exemplo do envelope
{
  "event": "poll.vote.failed",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "poll": {
      "from": "5511999999999@c.us",
      "fromMe": false,
      "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
      "participant": "5521988887777@c.us",
      "to": "5511888888888@c.us"
    },
    "vote": {
      "from": "5511999999999@c.us",
      "fromMe": false,
      "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
      "participant": "5521988887777@c.us",
      "selectedOptions": [
        "Awesome!"
      ],
      "timestamp": 1692861369,
      "to": "5511888888888@c.us"
    }
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Conversa arquivada

chat.archiveAPI OnZap

Uma conversa foi arquivada ou desarquivada.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

archivedbooleanobrigatório
idstringobrigatório
timestampnumberobrigatório
Exemplo do envelope
{
  "event": "chat.archive",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "archived": false,
    "id": "5511999999999@c.us",
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Chamada recebida

call.receivedAPI OnZap

Chamada de voz ou vídeo chegando (dá para recusar com POST /calls/reject).

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

_dataobjectobrigatório
idstringobrigatório
Call ID
isGroupbooleanobrigatório
isVideobooleanobrigatório
timestampnumberobrigatório
fromstringopcional
Exemplo do envelope
{
  "event": "call.received",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "from": "5511999999999@c.us",
    "id": "ABCDEFGABCDEFGABCDEFGABCDEFG",
    "isGroup": false,
    "isVideo": false,
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Chamada atendida

call.acceptedAPI OnZap

A chamada foi atendida em outro aparelho.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

_dataobjectobrigatório
idstringobrigatório
Call ID
isGroupbooleanobrigatório
isVideobooleanobrigatório
timestampnumberobrigatório
fromstringopcional
Exemplo do envelope
{
  "event": "call.accepted",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "from": "5511999999999@c.us",
    "id": "ABCDEFGABCDEFGABCDEFGABCDEFG",
    "isGroup": false,
    "isVideo": false,
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Chamada recusada

call.rejectedAPI OnZap

A chamada foi recusada.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

_dataobjectobrigatório
idstringobrigatório
Call ID
isGroupbooleanobrigatório
isVideobooleanobrigatório
timestampnumberobrigatório
fromstringopcional
Exemplo do envelope
{
  "event": "call.rejected",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "from": "5511999999999@c.us",
    "id": "ABCDEFGABCDEFGABCDEFGABCDEFG",
    "isGroup": false,
    "isVideo": false,
    "timestamp": 1767225600
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Etiqueta criada ou alterada

label.upsertAPI OnZap

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

colornumberobrigatório
Color number, not hex
colorHexstringobrigatório
Color in hex
idstringobrigatório
Label ID
namestringobrigatório
Label name
Exemplo do envelope
{
  "event": "label.upsert",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "color": 0,
    "colorHex": "#ff9485",
    "id": "1",
    "name": "Lead"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Etiqueta removida

label.deletedAPI OnZap

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

colornumberobrigatório
Color number, not hex
colorHexstringobrigatório
Color in hex
idstringobrigatório
Label ID
namestringobrigatório
Label name
Exemplo do envelope
{
  "event": "label.deleted",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "color": 0,
    "colorHex": "#ff9485",
    "id": "1",
    "name": "Lead"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Etiqueta aplicada

label.chat.addedAPI OnZap

Uma etiqueta foi aplicada a uma conversa.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

chatIdstringobrigatório
Chat ID
labelobjectobrigatório
label.colornumberobrigatório
Color number, not hex
label.colorHexstringobrigatório
Color in hex
label.idstringobrigatório
Label ID
label.namestringobrigatório
Label name
labelIdstringobrigatório
Label ID
Exemplo do envelope
{
  "event": "label.chat.added",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "label": {
      "color": 0,
      "colorHex": "#ff9485",
      "id": "1",
      "name": "Lead"
    },
    "labelId": "1"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Etiqueta retirada

label.chat.deletedAPI OnZap

Uma etiqueta foi retirada de uma conversa.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

chatIdstringobrigatório
Chat ID
labelobjectobrigatório
label.colornumberobrigatório
Color number, not hex
label.colorHexstringobrigatório
Color in hex
label.idstringobrigatório
Label ID
label.namestringobrigatório
Label name
labelIdstringobrigatório
Label ID
Exemplo do envelope
{
  "event": "label.chat.deleted",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "chatId": "5511999999999@c.us",
    "label": {
      "color": 0,
      "colorHex": "#ff9485",
      "id": "1",
      "name": "Lead"
    },
    "labelId": "1"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Resposta a evento

event.responseAPI OnZap

Alguém respondeu a um evento (agenda).

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

eventCreationKeyobjectobrigatório
eventCreationKey.fromstringobrigatório
eventCreationKey.fromMebooleanobrigatório
eventCreationKey.idstringobrigatório
Message ID
eventCreationKey.tostringobrigatório
eventCreationKey.participantstringopcional
fromstringobrigatório
ID for the Chat that this message was sent to, except if the message was sent by the current user
fromMebooleanobrigatório
Indicates if the message was sent by the current user
idstringobrigatório
Message ID
participantstringobrigatório
For groups - participant who sent the message
sourcestringobrigatório
The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only "fromMe: true" messages.
Valores:apiapp
timestampnumberobrigatório
Unix timestamp for when the message was created
tostringobrigatório
* ID for who this message is for. * If the message is sent by the current user, it will be the Chat to which the message is being sent. * If the message is sent by another user, it will be the ID for the current user.
_dataobjectopcional
Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend.
eventResponseobjectopcional
eventResponse.extraGuestCountnumberobrigatório
eventResponse.responsestringobrigatório
Valores:UNKNOWNGOINGNOT_GOINGMAYBE
eventResponse.timestampMsnumberobrigatório
Exemplo do envelope
{
  "event": "event.response",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "eventCreationKey": {
      "from": "5511999999999@c.us",
      "fromMe": false,
      "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
      "participant": "5521988887777@c.us",
      "to": "5511888888888@c.us"
    },
    "eventResponse": {
      "extraGuestCount": 0,
      "response": "UNKNOWN",
      "timestampMs": 0
    },
    "from": "5511999999999@c.us",
    "fromMe": false,
    "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
    "participant": "5521988887777@c.us",
    "source": "api",
    "timestamp": 1666943582,
    "to": "5511999999999@c.us"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Resposta a evento não decifrada

event.response.failedAPI OnZap

Chegou uma resposta que não pôde ser decifrada.

Só na API OnZap. O payload segue o formato do WhatsApp Web.

Campos do payload

eventCreationKeyobjectobrigatório
eventCreationKey.fromstringobrigatório
eventCreationKey.fromMebooleanobrigatório
eventCreationKey.idstringobrigatório
Message ID
eventCreationKey.tostringobrigatório
eventCreationKey.participantstringopcional
fromstringobrigatório
ID for the Chat that this message was sent to, except if the message was sent by the current user
fromMebooleanobrigatório
Indicates if the message was sent by the current user
idstringobrigatório
Message ID
participantstringobrigatório
For groups - participant who sent the message
sourcestringobrigatório
The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only "fromMe: true" messages.
Valores:apiapp
timestampnumberobrigatório
Unix timestamp for when the message was created
tostringobrigatório
* ID for who this message is for. * If the message is sent by the current user, it will be the Chat to which the message is being sent. * If the message is sent by another user, it will be the ID for the current user.
_dataobjectopcional
Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend.
eventResponseobjectopcional
eventResponse.extraGuestCountnumberobrigatório
eventResponse.responsestringobrigatório
Valores:UNKNOWNGOINGNOT_GOINGMAYBE
eventResponse.timestampMsnumberobrigatório
Exemplo do envelope
{
  "event": "event.response.failed",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "_data": {},
    "eventCreationKey": {
      "from": "5511999999999@c.us",
      "fromMe": false,
      "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
      "participant": "5521988887777@c.us",
      "to": "5511888888888@c.us"
    },
    "eventResponse": {
      "extraGuestCount": 0,
      "response": "UNKNOWN",
      "timestampMs": 0
    },
    "from": "5511999999999@c.us",
    "fromMe": false,
    "id": "false_5511999999999@c.us_AAAAAAAAAAAAAAAAAAAA",
    "participant": "5521988887777@c.us",
    "source": "api",
    "timestamp": 1666943582,
    "to": "5511999999999@c.us"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Envio da fila concluído

queue.sentAPI OnZapAPI oficial

Uma mensagem da fila foi enviada.

Campos do payload

attemptsintegerobrigatório
idstringobrigatório
ID do envio na fila.
routestringobrigatório
Rota do envio, ex.: POST /messages/text.
statusstringobrigatório
Valores:sentfailedcancelledexpired
chatIdstringopcional
errorstringopcional
Motivo da falha.
messageIdstringopcional
ID da mensagem no WhatsApp (quando enviada).
Exemplo do envelope
{
  "event": "queue.sent",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "attempts": 1,
    "chatId": "5511999999999@c.us",
    "error": "número sem WhatsApp",
    "id": "3EB0C0A1B2C3D4E5F6",
    "messageId": "false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "route": "POST /messages/text",
    "status": "sent"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Envio da fila não concluído

queue.failedAPI OnZapAPI oficial

Uma mensagem da fila falhou, expirou esperando a reconexão ou foi cancelada.

Campos do payload

attemptsintegerobrigatório
idstringobrigatório
ID do envio na fila.
routestringobrigatório
Rota do envio, ex.: POST /messages/text.
statusstringobrigatório
Valores:sentfailedcancelledexpired
chatIdstringopcional
errorstringopcional
Motivo da falha.
messageIdstringopcional
ID da mensagem no WhatsApp (quando enviada).
Exemplo do envelope
{
  "event": "queue.failed",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "attempts": 1,
    "chatId": "5511999999999@c.us",
    "error": "número sem WhatsApp",
    "id": "3EB0C0A1B2C3D4E5F6",
    "messageId": "false_5511999999999@c.us_3EB0C0A1B2C3D4E5F6",
    "route": "POST /messages/text",
    "status": "sent"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}

Status de template

template.statusSó API oficial

Um template foi aprovado, rejeitado, pausado ou desativado pela Meta.

Campos do payload

namestringobrigatório
statusstringobrigatório
APPROVED, REJECTED, PAUSED, DISABLED…
templateIdstringobrigatório
languagestringopcional
rawobjectopcional
Evento original da Meta.
reasonstringopcional
Motivo da rejeição, se houver.
Exemplo do envelope
{
  "event": "template.status",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "language": "pt_BR",
    "name": "Maria Silva",
    "raw": {},
    "reason": "falhas seguidas",
    "status": "ok",
    "templateId": "1234567890123456"
  },
  "provider": "meta",
  "timestamp": 1767225600000
}

Qualidade do número

phone.qualitySó API oficial

A qualidade ou o limite de conversas do número mudou.

Campos do payload

eventstringobrigatório
FLAGGED, UNFLAGGED, UPGRADE, DOWNGRADE…
currentLimitstringopcional
Limite atual de conversas iniciadas pela empresa.
phonestringopcional
Número (como a Meta exibe).
rawobjectopcional
Evento original da Meta.
Exemplo do envelope
{
  "event": "phone.quality",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "currentLimit": "TIER_1K",
    "event": "message.any",
    "phone": "5511999999999",
    "raw": {}
  },
  "provider": "meta",
  "timestamp": 1767225600000
}

Evento de teste

webhook.testAPI OnZapAPI oficial

Enviado por POST /webhooks/{webhookId}/test.

Campos do payload

messagestringobrigatório
webhookIdstringobrigatório
Exemplo do envelope
{
  "event": "webhook.test",
  "id": "evt_01jabcdefghjkmnpqrstvwxyz0",
  "instanceId": "i01jabcdefghjkmnpqrstvwxyz",
  "payload": {
    "message": "Olá! Seu pedido foi confirmado.",
    "webhookId": "whk_01jabcdefghjkmnpqrstvwxy"
  },
  "provider": "onzap",
  "timestamp": 1767225600000
}