{
"type": "instance_status",
"event_id": "01J5Q8ZK3M4N5P6Q7R8S9T0V1Y",
"instance_id": "8f2a3c1e-6b7d-4e5f-9a0b-1c2d3e4f5a6b",
"momment": 1786971600000,
"status": "logged_out",
"previous_status": "connected",
"disconnect_reason": "logged_out",
"reason": "Device has been disconnected"
}Mudança de status da instância
O webhook de conexão: enviado uma vez a cada transição do ciclo de vida — starting, qr (aguardando leitura do QR code / pareamento), connecting, connected, disconnected (queda temporária, reconecta sozinho), logged_out, banned, stopped. phone vem quando status é connected; disconnect_reason diz o que derrubou a sessão (network e stream_replaced são temporários; logged_out e banned exigem novo QR code / número; stopped é uma parada pela API/assinatura); reason é texto livre para log. O QR code em si não vem no webhook — busque em GET /qr-code enquanto status for qr. Substituiu os antigos connected / disconnected.
Headers de toda entrega: Content-Type: application/json, User-Agent: Wabox-Webhook/1.0, X-Wabox-Event: <type>, X-Wabox-Event-Id: <event_id>, X-Wabox-Instance-Id: <instance_id> e X-Wabox-Signature: t=<unix>,v1=<hex> (HMAC-SHA256 do corpo cru com o secret da instância). Responda 2xx em até 10 s; caso contrário o Wabox tenta de novo em 10 s, 1 min, 10 min, 1 h e 6 h. Entregas são ordenadas por instância e podem repetir (event_id é a chave de idempotência).
{
"type": "instance_status",
"event_id": "01J5Q8ZK3M4N5P6Q7R8S9T0V1Y",
"instance_id": "8f2a3c1e-6b7d-4e5f-9a0b-1c2d3e4f5a6b",
"momment": 1786971600000,
"status": "logged_out",
"previous_status": "connected",
"disconnect_reason": "logged_out",
"reason": "Device has been disconnected"
}Headers
Tipo do evento.
instance_status Id único do evento (ULID). Use para deduplicar.
Instância que gerou o evento.
t=<unix seconds>,v1=<hex> — v1 = HMAC-SHA256(secret, "<t>.<corpo cru>"). Ausente quando a instância não tem segredo.
Body
instance_status ^[0-9A-HJKMNP-TV-Z]{26}$^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$0 <= x <= 9007199254740991created, starting, qr, connecting, connected, disconnected, logged_out, banned, stopped created, starting, qr, connecting, connected, disconnected, logged_out, banned, stopped 1^(\d{5,20}|\d+@lid|\d+(-\d+)?-group|\d+@g\.us|\d+@newsletter|\d+@broadcast|status@broadcast)$network, stream_replaced, logged_out, banned, stopped, engine_shutdown, unknown Response
Qualquer 2xx confirma o recebimento. Outros códigos (ou timeout de 10 s) agendam nova tentativa.