Comece aqui
Sua primeira instância
Lifecycle de uma instância — do DISCONNECTED ao CONNECTED.
Estados possíveis
Criar via API
Estado inicial: DISCONNECTED. O worker pega a instância via lease no Redis e tenta abrir o socket.
Receber QR via SSE
Reconexão automática
Quando o socket cai, o worker tenta reconectar com backoff exponencial:
| Tentativa | Delay |
|---|---|
| 1ª | 5s |
| 2ª | 10s |
| 3ª | 30s |
| 4ª+ | 60s (max) |
Se o WhatsApp respondeu com loggedOut, a instância vira DISCONNECTED e exige novo QR scan.
Quando vira BANNED
Worker detecta loggedOut com motivo "Banned" (ou similar) → atualiza status=BANNED, banned_at=now(), ban_reason="...". Sem reconexão automática nesse caso (proteção pra não piorar).
Pra evitar ban: use warmup nos primeiros dias (≤10 msgs/min), nunca envie a mesma mensagem pra muita gente (use templates com variação), e respeite o opt-out.
Próximos passos
- Conceitos: anti-ban — como minimizar risco de ban
- Webhooks — receba eventos no seu backend em tempo real
- API Reference — endpoints completos