Pular para o conteúdo principal

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_pendingconnectingconnected; 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_id no envio.
  • A API só responde 409 no_number_available quando 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.