Skip to main content

Visão Geral

O EnviaAI oferece duas formas de conectar seu WhatsApp:
MétodoRecomendado para
API Oficial (Meta)Produção, empresas
QR CodeDesenvolvimento, testes

API Oficial (Meta)

A conexão via WhatsApp Business API oficial da Meta.

Vantagens

Alta Confiabilidade

Conexão direta com infraestrutura da Meta

Sem Risco de Ban

100% dentro dos termos de uso

Selo Verificado

Badge verde de negócio verificado

Suporte Oficial

Suporte da Meta disponível

Requisitos

  1. Conta Meta Business - business.facebook.com
  2. Verificação do negócio - Documentos da empresa
  3. Número de telefone dedicado - Não pode estar em uso no WhatsApp regular
  4. Access Token - Gerado no Meta Developer Portal

Como Configurar

1

Criar conta Meta Business

Acesse business.facebook.com e crie sua conta comercial.
2

Verificar negócio

Envie documentos para verificação (CNPJ, contrato social, etc).
3

Criar app no Meta Developers

Em developers.facebook.com, crie um app com WhatsApp.
4

Adicionar número de telefone

Configure e verifique seu número de telefone.
5

Gerar Access Token

Gere um token permanente para a API.
6

Conectar no EnviaAI

Use o token para conectar sua instância.

Código

await client.instances.connect('inst_abc123', {
  method: 'official',
  businessId: 'seu-business-id',
  phoneNumberId: 'seu-phone-number-id',
  accessToken: 'seu-access-token'
});

Templates

Com API Oficial, você precisa de templates aprovados para iniciar conversas:
await client.messages.sendTemplate({
  instanceId: 'inst_abc123',
  to: '5511999999999',
  template: {
    name: 'hello_world',
    language: 'pt_BR'
  }
});
Templates devem ser criados e aprovados no Meta Business Manager antes de usar.

QR Code (Não Oficial)

Conexão rápida via escaneamento de QR Code.

Vantagens

Setup Instantâneo

Conecte em segundos

Sem Verificação

Não precisa de documentos

Gratuito

Sem custos adicionais da Meta

Ideal para Testes

Perfeito para desenvolvimento

Desvantagens

Atenção: Riscos do QR Code
  • Sua conta WhatsApp pode ser banida sem aviso
  • Menor estabilidade na conexão
  • Não recomendado para produção
  • EnviaAI não se responsabiliza por banimentos
Use apenas para desenvolvimento e testes.

Como Configurar

1

Solicitar QR Code

Chame o endpoint de conexão com method: 'qrcode'
2

Exibir QR Code

Mostre o QR Code retornado para o usuário
3

Escanear

Abra WhatsApp > Configurações > Aparelhos Conectados > Conectar Aparelho
4

Aguardar conexão

Poll o status até connected

Código

// Solicitar QR Code
const response = await client.instances.connect('inst_abc123', {
  method: 'qrcode'
});

console.log('QR Code:', response.qrCode);

// Aguardar conexão
let connected = false;
while (!connected) {
  const status = await client.instances.getStatus('inst_abc123');

  if (status.data.status === 'connected') {
    console.log('Conectado!', status.data.phone);
    connected = true;
  } else if (status.data.status === 'qr_pending') {
    // QR pode ter atualizado
    if (status.data.qrCode !== response.qrCode) {
      console.log('Novo QR Code:', status.data.qrCode);
    }
  }

  await sleep(2000);
}

Comparação Detalhada

AspectoAPI OficialQR Code
Setup1-2 semanasMinutos
CustoTaxa Meta + EnviaAIApenas EnviaAI
EstabilidadeAltaMédia
Risco banZeroAlto
TemplatesObrigatóriosNão necessários
VerificaçãoNecessáriaNão necessária
RecomendadoProduçãoDesenvolvimento

Qual Escolher?

Use QR Code para prototipar rapidamente. Migre para API Oficial antes de ir para produção.
Use API Oficial. O investimento em setup compensa pela estabilidade e segurança.
QR Code pode funcionar, mas esteja ciente dos riscos de banimento.
API Oficial é a única opção recomendada para operações críticas.

Migrando de QR Code para API Oficial

  1. Crie uma nova instância para API Oficial
  2. Configure o mesmo webhook URL
  3. Atualize seu código para usar a nova instância
  4. Teste em paralelo antes de migrar totalmente
  5. Desative a instância QR Code
// Antes (QR Code)
const oldInstance = 'inst_qrcode123';

// Depois (API Oficial)
const newInstance = 'inst_official456';

// Migração gradual
const instanceId = process.env.USE_OFFICIAL
  ? newInstance
  : oldInstance;

Próximos Passos