Skip to main content
Todo evento chega no mesmo envelope. Os campos do topo não mudam; só o data varia por tipo de evento. O payload é normalizado pela Zapfy — não muda quando a conexão com o WhatsApp muda.

Envelope

string
Tipo do evento, em UPPER_SNAKE. Um dos valores abaixo.
string
ID da instância na Zapfy que originou o evento.
string
ID único do evento. Use como chave de idempotência (a entrega é at-least-once).
string
Momento da emissão, ISO 8601 (UTC).
object
Payload específico do evento — descrito abaixo. Os exemplos a seguir mostram o evento completo (envelope + data).

Tipos de evento

MESSAGE_RECEIVED / MESSAGE_SENT

Mensagem em conversa de contato (1:1):
Mensagem em grupochat é o grupo (phone: null) e sender é o participante que enviou:
Os campos abaixo descrevem o objeto data:
string
ID da mensagem no WhatsApp. Reaproveite em delete/edit.
boolean
true se foi você quem enviou (MESSAGE_SENT); false se recebeu.
object
A conversa — o contato ou grupo onde a mensagem está. É aqui que você responde.
object
Quem enviou esta mensagem. Em conversa de contato é o próprio contato; em grupo, o participante.
string
TEXT · IMAGE · AUDIO · VIDEO · DOCUMENT · STICKER · LOCATION · CONTACT · INTERACTIVE.
string
Conteúdo de texto. Em mídias, traz a legenda.
object | null
Presente em mídias: { mimeType, url, filename, caption }.

MESSAGE_STATUS

Status de uma mensagem que você envioudata traz chat (mesma forma), sem sender:
string
PENDING · SENT · DELIVERED · READ · FAILED.
object | null
Presente em FAILED: { code, message }.

CONNECTION_UPDATE

string
CONNECTING · CONNECTED · DISCONNECTED.
string | null
Número da conta conectada, em E.164. null enquanto não há sessão (ex.: CONNECTING ou DISCONNECTED).
string | null
Motivo da queda quando DISCONNECTED (ex.: LOGGED_OUT, BANNED).

QRCODE_UPDATED

string
QR Code em data URL (PNG base64) para parear o número.
string
Expiração do QR, ISO 8601 (UTC).