Conceitos
Instância (número)
Cada número é uma instância com sessão whatsmeow própria, persistida e
criptografada. Tem uma máquina de estados com motivo: qr_pending →
connecting → connected; quedas distinguem transient (reconecta sozinho),
logged_out (reescanear) e banned (fora de rotação).
Rotação e anti-ban
Vários números viram um pool com estratégia (round_robin, least_used,
health_weighted). O envio sem instance_id rotaciona automaticamente.
Anti-ban: throttle humano com jitter, presença "digitando", warming
(limites crescentes em número novo), proxy por número e health score —
número ruim sai da rotação na hora.
🔥 Aquecimento (warming) — por que importa
O WhatsApp bane chips novos que disparam muito cedo. Por isso, todo número
recém-conectado passa por um período de aquecimento (padrão 5 dias,
configurável por conta via warming_days): a rotação automática prefere
números já aquecidos para distribuir o volume, protegendo seus chips.
É um diferencial de sobrevivência — não um obstáculo:
- Durante o aquecimento, o número entra na rotação como fallback: se for o único disponível (ex.: você acabou de conectar), ele ainda envia — testes e primeiros envios funcionam normalmente.
- Havendo números já aquecidos, eles são preferidos para o volume maior.
- Para forçar um número específico, passe
instance_idno envio. - A API só responde
409 no_number_availablequando não há nenhum número conectado/saudável.
Recomendação: comece devagar num número novo e aumente o volume ao longo dos dias — o bZapper já aplica limites crescentes automaticamente.
LID
Contatos podem vir como @lid (identificador oculto) em vez de
@s.whatsapp.net. A API normaliza e expõe sender.lid no envelope; detecte
menção por JID, nunca por texto.
Observabilidade
Se um número cai, você sabe na hora: SSE (status muda ao vivo) + webhook
instance.* (com o motivo) + alerta opcional. Health score vivo e métricas por
número/tenant.
Caveats honestos
- Botões/listas não são confiáveis (pior em grupo) → a API sempre manda um menu de texto numerado equivalente. Em grupo, só texto.
- Encaminhar, labels e iniciar chamada são experimentais (limitação do
whatsmeow) e respondem
501. - Bot ativo em muitos grupos aumenta risco de ban — respeite throttle + proxy.