WaflyComparativos › Baileys em produção

Baileys em produção em 2026: o que a biblioteca não resolve

Atualizado em 27 de julho de 2026 · dados conferidos no GitHub e no npm no mesmo dia

o Baileys é uma biblioteca excelente e gratuita, mas ela entrega o protocolo, não a operação. Três coisas costumam pegar quem coloca em produção: a licença (o Baileys é MIT, mas depende do libsignal-node, que é GPL-3.0), o estado do projeto (7.0.0 em release candidate desde outubro de 2025) e o erro 463, que leva a banimento e cujo tratamento de TC token ainda não está no master. Esta página mostra a conta completa e quando continuar no Baileys é a decisão certa.

Se você é dev e está avaliando integrar WhatsApp, o Baileys é quase sempre a primeira parada: é gratuito, tem mais de 10 mil estrelas no GitHub e resolve o protocolo multi-device inteiro em TypeScript. Nada nesta página desmerece isso. O objetivo aqui é outro: mostrar o que continua sendo seu problema depois que a lib funciona, com fonte para cada afirmação, para você decidir com números em vez de otimismo.

O que o Baileys entrega (e o que não)

A biblioteca fala o protocolo do WhatsApp Web por WebSocket, sem navegador. Isso é a parte difícil e ela faz bem. O que a documentação oficial deixa explícito que é responsabilidade sua:

Some a isso monitoramento, fila, retry, deploy, atualização quando o WhatsApp muda, e você percebe que escolheu construir um produto de infraestrutura como pré-requisito para construir o seu produto.

Estado do projeto em julho de 2026

IndicadorBaileys
Estrelas no GitHub~10.300
Issues abertas283
Versão publicada no npm7.0.0-rc13 (21/05/2026)
7.0.0 estávelNão existe. Em RC desde outubro de 2025.
Último commit de código no master26/06/2026
Licença da libMIT
Suporte comercialInformal: consultoria avulsa do mantenedor, sem SLA

Fonte: API do GitHub e registry do npm, consultados em 27/07/2026.

Traduzindo: o projeto está vivo, mas lento. Nove meses de release candidate significa que quem roda a versão nova roda um RC em produção, e quem fica na 6.x fica para trás no protocolo. Vale registrar também a CVE-2026-48063, de severidade crítica, que permitia spoofing de mensagem e injeção de chaves falsas; foi corrigida em 20/05/2026 nas versões 7.0.0-rc12 e 6.7.22. Qualquer instalação anterior a isso está exposta, e uma dependência sem quem a atualize é exatamente como esse tipo de falha fica em produção por meses.

A armadilha de licença

Cuidado se o seu produto é fechadoO Baileys é MIT, o que passa a impressão de liberdade total. Mas ele depende do libsignal-node, repositório da mesma organização, licenciado sob GPL-3.0. Para software proprietário distribuído, a GPL-3.0 é viral. O próprio time está migrando para uma ponte em Rust/Wasm justamente por causa disso.

Este é o ponto que mais surpreende quem já está com o produto em produção, porque a licença do repositório principal parece resolver a questão. Não é uma opinião nossa sobre risco jurídico: é a licença declarada da dependência, verificável em segundos. Não somos advogados e isto não é parecer jurídico; se o seu produto é fechado e distribuído, leve essa cadeia de dependências para quem é.

Para comparação: o WPPConnect é LGPL-3.0-or-later, que costuma ser mais previsível para consumo como dependência, embora obrigue a publicar modificações se você fizer fork da lib.

Os cinco problemas que aparecem em produção

Não são teoria: são as discussões mais movimentadas do repositório hoje.

  1. Passkey no pareamento. Desde 30/06/2026, conectar por QR ou pairing code trava pedindo passkey (issue #2672, 87 comentários). Sem correção nem contorno oficial até o fechamento desta página. É uma mudança do WhatsApp, e quem depende da lib fica parado esperando.
  2. Sessão corrompida. "Bad MAC", "Failed to decrypt", "No session", "Invalid PreKey". Existe uma issue guarda-chuva (#1769) criada pelo próprio time para consolidar mais de dez issues duplicadas, aberta desde setembro de 2025.
  3. Mensagem "enviada" que não chega. A lib reporta sucesso e a mensagem não é entregue (#1963, #2653). É o pior modo de falha possível: silencioso.
  4. Conexão viva e surda. As mensagens param de chegar, mas o socket continua aberto; só volta apagando a instância e lendo o QR de novo (#2060, #2331).
  5. Vazamento de memória entre RCs. O padrão se repete a cada release candidate, e um dos casos é justamente o cenário multi-tenant, com várias sockets sob o mesmo key store (#1377).

Cada um desses itens é resolvível. A pergunta não é se você consegue, é se resolver isso é o seu negócio.

O 463 e o TC token: onde a engine importa

Este é o ponto mais técnico da página e o mais relevante para quem envia mensagem para contato novo.

O erro 463 (reachout timelock) acontece quando você manda mensagem para alguém que nunca falou com você e o pacote não carrega os campos de TC token. O WhatsApp contabiliza isso num limite de "abordagem", e a repetição vira restrição de conta. O issue #2707 descreve exatamente isso: 463 levando a banimento, porque a lib não gerencia o ciclo do token automaticamente. Existe trabalho em andamento numa branch separada, mas em 27/07/2026 não estava integrado ao master.

Aqui vale a transparência que a gente sempre pratica nestes comparativos: a Wafly não roda Baileys. Nossa infraestrutura é construída sobre whatsmeow, uma implementação em Go do mesmo protocolo, e o ciclo de TC token está implementado no nosso lado. Também tratamos o fluxo de passkey, que é o que está travando o pareamento no Baileys e no WPPConnect desde junho: no nosso caso ele foi validado em produção em julho de 2026.

E agora a parte que quase nenhum fornecedor escreve: trocar de biblioteca não te deixa imune a banimento. A detecção do WhatsApp é independente da lib e atinge whatsmeow e Baileys igualmente, inclusive contas de baixo volume. O que muda o resultado de verdade é o padrão de uso, e é sobre isso que escrevemos nesta página, com os dados que medimos na nossa frota.

E o WPPConnect?

É a outra opção open source popular no Brasil, e a arquitetura é diferente: em vez de falar o protocolo direto, ele abre um Chromium por sessão via Puppeteer, carrega o WhatsApp Web de verdade e injeta código na página. Isso traz uma vantagem real (o comportamento é o do cliente oficial) e um custo grande.

O número mais útil vem de dentro do projeto: uma issue aberta pelo próprio time mostra uma sessão consumindo cerca de 387 MB em quatro processos do Chromium, com 15% de CPU. A mesma discussão relata produção real batendo 30 GB de 32 GB de RAM, com um caso de uma única sessão usando 12 GB, sem forma nativa de descobrir qual sessão estava vazando.

Em compensação, o WPPConnect tem cadência de release melhor que a do Baileys (v2.2.4 em 24/07/2026) e licença mais previsível. O ponto de atenção é o bus factor: a manutenção humana se concentra em duas pessoas. E, como já dito, ele foi atingido pelo mesmo problema de passkey em julho de 2026.

Baileys vs WPPConnect vs Wafly

BaileysWPPConnectWafly
O que éBibliotecaBiblioteca + servidorAPI gerenciada
Custo de licençaR$ 0R$ 0R$ 59,90/instância
LicençaMIT, com libsignal GPL-3.0 embaixoLGPL-3.0-or-laterServiço, sem implicação de licença
ArquiteturaProtocolo direto (WebSocket)Chromium por sessãoProtocolo direto (whatsmeow, Go)
RAM por númeroBaixa, não documentada~387 MB medidosNão é problema seu
Persistência de sessãoVocê implementaVocê operaIncluso
ReconexãoVocê implementaVocê operaIncluso
TC token / 463Não gerenciado no masterNão informadoImplementado
Passkey no pareamentoIssue aberta desde 30/06/2026Issue aberta desde 02/07/2026Validado em produção em julho/2026
Sinal de risco do númeroVocê constróiVocê constróiScore de saúde 0–100 no painel
Quem atende às 3h da manhãVocêVocêA gente

Quando ficar no Baileys

Existem casos claros em que o Baileys é a escolha certa e pagar por API seria desperdício:

Quando vale pagar

A conta fica simples quando você coloca a sua hora na planilha. Se manter a integração custa 4 horas por mês entre atualizar, investigar sessão corrompida e reconectar número, e a sua hora vale R$ 100, o "grátis" custa R$ 400 por mês. Nesse cenário a comparação não é R$ 59,90 contra R$ 0, é R$ 59,90 contra R$ 400 mais o risco de a operação parar num dia em que você não pode atender.

Some o custo de oportunidade: o mês que você gasta implementando auth state, cache de grupo, reconexão e observabilidade é um mês que você não gastou no que o seu cliente paga para ter. Fizemos essa mesma conta, com mais detalhe, na análise do self-host da Evolution API, que por sua vez também roda Baileys por baixo.

Troque uma semana de infraestrutura por uma tarde

REST, webhook e multi-instância prontos. 3 dias grátis, sem cartão. A documentação é pública, com payloads reais: dá para avaliar sem criar conta.

Criar instância grátis

Perguntas frequentes

Posso usar Baileys em um produto comercial fechado?

A lib é MIT, mas depende do libsignal-node, que é GPL-3.0, viral para software proprietário distribuído. O próprio time está migrando para uma ponte em Rust/Wasm por causa disso. Não somos advogados: leve a cadeia de dependências para um.

O Baileys ainda é mantido em 2026?

Sim, mas devagar: 7.0.0 em RC desde outubro de 2025, rc13 publicada em 21/05/2026, último commit de código no master em 26/06/2026, 283 issues abertas.

Por que o Baileys toma 463 e banimento?

O 463 (reachout timelock) ocorre em mensagem para contato frio sem os campos de TC token. A lib não gerencia esse ciclo no master; a repetição vira restrição de conta.

Quanta memória o WPPConnect consome por sessão?

Não há requisito oficial. Uma issue do próprio time mostra ~387 MB por sessão em 4 processos do Chromium, com relatos de produção chegando a 12 GB numa única sessão.

Continue comparando

Evolution API: o custo real de self-hostearA conta completa de VPS mais horas de operação, na prática. Por que números são banidos no WhatsAppO erro 463, o que medimos na frota e por que trocar de API não reduz o risco. Como enviar mensagem por APIcurl, Node.js e Python, com payload real.

Baileys, WPPConnect, whatsmeow, Evolution API e WhatsApp são marcas e projetos de seus respectivos donos, sem relação com a Wafly. Dados de estrelas, issues, versões e datas conferidos na API do GitHub e no registry do npm em 27/07/2026; projetos open source mudam rápido, confira na fonte. As observações sobre licenciamento descrevem licenças declaradas publicamente e não constituem orientação jurídica. Encontrou algo desatualizado? Fale com a gente que corrigimos.