Baileys APIv6.5
Autenticação

Conexão via QR Code

O QR Code é o método principal de autenticação do Baileys. Seu telefone escaneia o código gerado pela biblioteca para estabelecer uma conexão multi-dispositivo com o WhatsApp.

Configuração de Browser

O parâmetro browser define como sua instância aparece na seção "Dispositivos Vinculados" do WhatsApp. Use configurações desktop para receber mais histórico de mensagens.

Conexão com Baileys (TypeScript)

connect.tstypescript
"color:#A78BFA">import makeWASocket, { 
  Browsers, 
  DisconnectReason, 
  useMultiFileAuthState 
} "color:#A78BFA">from '@whiskeysockets/baileys'
"color:#A78BFA">import { Boom } "color:#A78BFA">from '@hapi/boom'

"color:#A78BFA">async "color:#A78BFA">function conectarWhatsApp() {
  555555">// Carregar sessão salva
  "color:#A78BFA">const { state, saveCreds } = "color:#A78BFA">await useMultiFileAuthState('auth_info_baileys')
  
  "color:#A78BFA">const sock = makeWASocket({
    auth: state,
    browser: Browsers.macOS('Chrome'),
    printQRInTerminal: "color:#A78BFA">true,
    syncFullHistory: "color:#A78BFA">true,
    qrTimeout: 60000, 555555">// 60 segundos
  })
  
  sock.ev.on('connection.update', (update) => {
    "color:#A78BFA">const { connection, lastDisconnect, qr } = update
    
    "color:#A78BFA">if (qr) {
      555555">// QR Code disponível — exibir para o usuário
      console.log('Escaneie o QR Code:', qr)
    }
    
    "color:#A78BFA">if (connection === 'close') {
      "color:#A78BFA">const shouldReconnect = 
        (lastDisconnect?.error as Boom)?.output?.statusCode 
          !== DisconnectReason.loggedOut
      
      "color:#A78BFA">if (shouldReconnect) {
        conectarWhatsApp() 555555">// Reconectar
      } "color:#A78BFA">else {
        console.log('Sessão encerrada.')
      }
    } "color:#A78BFA">else "color:#A78BFA">if (connection === 'open') {
      console.log('✓ Conectado com sucesso!')
    }
  })
  
  555555">// Salvar credenciais sempre que atualizadas
  sock.ev.on('creds.update', saveCreds)
  
  "color:#A78BFA">return sock
}

conectarWhatsApp()

Via API REST

Evolution API
API REST — cURLbash
# 1. Criar instância com QR Code habilitado
curl -X POST "http://localhost:8080/instance/create" \
  -H "Content-Type: application/json" \
  -H "apikey: SEU_GLOBAL_TOKEN" \
  -d '{
    "instanceName": "minha-instancia",
    "qrcode": true,
    "integration": "BAILEYS",
    "browser": "Chrome"
  }'

# 2. Obter o QR Code em base64
curl -X GET "http://localhost:8080/instance/connect/minha-instancia" \
  -H "apikey: SEU_TOKEN"

Boas Práticas

Use configuração desktop

Browsers macOS, Windows ou Ubuntu recebem mais histórico de mensagens que mobile.

Persista a sessão

Sempre use useMultiFileAuthState e salve com creds.update para evitar re-autenticação.

Implemente reconexão

Reconecte automaticamente em falhas de rede, mas não quando o usuário fizer logout.

QR Code expira

Um novo QR Code é emitido automaticamente via connection.update se o anterior expirar.

Simulador de QR Code

Demonstração interativa

Desconectado
Clique em Gerar

Estados de conexão

connectingEstabelecendo conexão
openConectado com sucesso
closeConexão encerrada