Pular para o conteúdo principal
Proteja sua integração ApiZap com autenticação adequada e melhores práticas de segurança.

Gerenciamento de Chaves API

Criando Chaves API

Gere chaves API para diferentes ambientes e casos de uso:
curl -X POST "https://b0fe4081af63.ngrok-free.app/api/v1/api-keys" \
  -H "Authorization: ApiKey sua_chave_existente" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Chave API de Produção",
    "description": "Chave principal do ambiente de produção"
  }'
Segurança: Armazene suas chaves API com segurança e nunca as exponha em código do lado do cliente ou controle de versão.

Melhores Práticas para Chaves API

Separação de Ambientes

Use chaves API diferentes para desenvolvimento, teste e produção

Princípio do Menor Privilégio

Crie chaves específicas para finalidades específicas (somente leitura, somente envio, etc.)

Rotação Regular

Rotacione chaves API periodicamente, especialmente após mudanças na equipe

Monitoramento

Monitore o uso das chaves API e configure alertas para atividades incomuns

Configuração de Instâncias

Criando Instâncias WhatsApp

Configure instâncias WhatsApp para suas integrações de API:
const criarInstancia = async () => {
  const response = await fetch('/api/v1/instances', {
    method: 'POST',
    headers: {
      'Authorization': 'ApiKey sua_chave_api_aqui',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      name: 'Instância de Produção',
      settings: {
        delayMessage: 1000,
        autoRead: false,
        autoReply: false
      }
    })
  });

  return await response.json();
};

Configuração de Instâncias

Configure delays entre mensagens para performance otimizada:
{
  "settings": {
    "delayMessage": 1000,      // Delay em ms entre mensagens
    "delayRandomMin": 500,     // Delay mínimo aleatório
    "delayRandomMax": 1500     // Delay máximo aleatório
  }
}
Controle o tratamento automático de mensagens:
{
  "settings": {
    "autoRead": false,         // Marcar mensagens como lidas automaticamente
    "autoReply": false,        // Habilitar funcionalidade de resposta automática
    "autoReplyMessage": "Obrigado pela sua mensagem. Entraremos em contato em breve."
  }
}
Configure o comportamento da conexão:
{
  "settings": {
    "reconnectInterval": 30000,  // Intervalo entre tentativas de reconexão
    "maxReconnectAttempts": 5,   // Máximo de tentativas de reconexão
    "sessionTimeout": 300000     // Timeout da sessão em ms
  }
}

Configurações Avançadas

Configurações de Performance

Otimize sua instância para diferentes cenários de uso:
{
  "settings": {
    "delayMessage": 500,
    "delayRandomMin": 200,
    "delayRandomMax": 800,
    "maxConcurrentMessages": 10,
    "batchSize": 50
  }
}

Configurações de Segurança

Whitelist de IPs

Restrinja o acesso da API apenas aos IPs autorizados

Logs de Auditoria

Habilite logs detalhados para todas as operações da API

Timeout de Sessão

Configure timeouts apropriados para evitar sessões ociosas

Criptografia

Todas as comunicações são criptografadas com TLS 1.2+

Solução de Problemas

Problemas Comuns

Sintomas: Erro 401 UnauthorizedSoluções:
  • Verifique se a chave API está correta
  • Confirme que a chave está ativa
  • Verifique o formato do cabeçalho Authorization
# Formato correto
Authorization: ApiKey ak_prod_abcdef1234567890
Sintomas: Status da instância como “DISCONNECTED”Soluções:
  • Reconecte a instância manualmente
  • Verifique se o QR code expirou
  • Confirme que o WhatsApp está ativo no dispositivo
# Verificar status da instância
curl -X GET "https://b0fe4081af63.ngrok-free.app/api/v1/instances/sua_instancia_id" \
  -H "Authorization: ApiKey sua_chave_api_aqui"
Sintomas: Mensagens ficam com status “FAILED”Soluções:
  • Verifique se a instância está conectada
  • Confirme o formato do número de telefone
  • Verifique se o destinatário não bloqueou o número
  • Reduza a frequência de envio de mensagens

Dica: Sempre teste suas configurações em ambiente de desenvolvimento antes de aplicar em produção. Use diferentes instâncias para diferentes casos de uso.