Skip to main content

Autenticação

A Wapizap API usa Bearer Token (API Keys) para autenticar requisições. Todas as requisições devem incluir sua API Key no header Authorization.

Obtendo sua API Key

1

Acessar o Dashboard

Faça login em dashboard.wapizap.com
2

Navegar até API Keys

Vá em Configurações → API Keys no menu lateral
3

Gerar Nova Chave

Clique em Gerar Nova API KeyVocê será solicitado a:
  • Dar um nome para a chave (ex: “Produção”, “Desenvolvimento”)
  • Escolher as permissões (opcional)
4

Copiar e Guardar

⚠️ IMPORTANTE: A chave é exibida apenas uma vezCopie imediatamente e guarde em local seguro (ex: variáveis de ambiente)

Formato da API Key

As API Keys da Wapizap seguem este formato:
sk_live_1234567890abcdefghijklmnopqrstuvwxyz
     ↑        ↑
  ambiente  identificador único

Ambientes

PrefixoAmbienteUso
sk_live_ProduçãoDados reais, cobrança ativa
sk_test_TesteDados de teste, sem cobrança
Nunca exponha suas chaves sk_live_ publicamente. Use variáveis de ambiente!

Como Usar

Inclua sua API Key no header Authorization com o prefixo Bearer:
curl -X GET https://api.wapizap.com/api/v2/instances \
  -H "Authorization: Bearer sk_live_SEU_TOKEN_AQUI"

Variáveis de Ambiente

Melhor prática: Sempre use variáveis de ambiente para armazenar API Keys

Node.js (com dotenv)

.env
WAPIZAP_API_KEY=sk_live_1234567890abcdef
index.js
require('dotenv').config();

const apiKey = process.env.WAPIZAP_API_KEY;

fetch('https://api.wapizap.com/api/v2/instances', {
  headers: {
    'Authorization': `Bearer ${apiKey}`
  }
});

Python (com python-dotenv)

.env
WAPIZAP_API_KEY=sk_live_1234567890abcdef
main.py
import os
from dotenv import load_dotenv

load_dotenv()

api_key = os.getenv('WAPIZAP_API_KEY')

requests.get(
    'https://api.wapizap.com/api/v2/instances',
    headers={'Authorization': f'Bearer {api_key}'}
)

PHP

<?php
// Usando variável de ambiente do servidor
$apiKey = getenv('WAPIZAP_API_KEY');

$ch = curl_init('https://api.wapizap.com/api/v2/instances');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer {$apiKey}"
]);
?>

Erros de Autenticação

401 Unauthorized - Token Inválido

{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid API key provided"
  }
}
Causas comuns:
  • API Key incorreta ou mal formatada
  • Falta do prefixo Bearer no header
  • Chave expirada ou revogada

401 Unauthorized - Token Ausente

{
  "success": false,
  "error": {
    "code": "MISSING_AUTH",
    "message": "Authorization header is required"
  }
}
Solução: Certifique-se de incluir o header Authorization em todas as requisições.

403 Forbidden - Permissões Insuficientes

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "This API key does not have permission to perform this action"
  }
}
Solução: Verifique as permissões da sua API Key no dashboard.

Gerenciamento de API Keys

Listar API Keys

No dashboard, você pode ver todas as suas chaves ativas:
  • Nome da chave
  • Data de criação
  • Último uso
  • Permissões
  • Número de requisições (últimas 24h)

Revogar API Key

Atenção: Revogar uma chave é irreversível e quebrará todas as integrações que a utilizam!
Para revogar uma chave:
  1. Acesse Configurações → API Keys
  2. Clique nos 3 pontinhos ao lado da chave
  3. Selecione Revogar
  4. Confirme a ação

Rotação de Chaves

Recomendamos rotacionar suas API Keys periodicamente (ex: a cada 90 dias):
  1. Gere uma nova API Key
  2. Atualize suas aplicações com a nova chave
  3. Teste se tudo funciona
  4. Revogue a chave antiga

Permissões de API Key

Ao criar uma API Key, você pode definir permissões granulares:
PermissãoDescrição
readListar e visualizar recursos (instâncias, mensagens, grupos)
writeCriar e atualizar recursos
deleteDeletar recursos
adminAcesso total incluindo configurações da conta

Exemplo de Permissões

{
  "permissions": {
    "instances": ["read", "write"],
    "messages": ["read", "write"],
    "groups": ["read", "write"],
    "webhooks": ["read", "write", "delete"],
    "settings": [] // Sem acesso
  }
}
Princípio do Menor Privilégio: Conceda apenas as permissões necessárias para cada chave.

Segurança

✅ Boas Práticas

Use variáveis de ambiente em vez de hardcode
Nunca commite API Keys no Git
Use chaves diferentes para dev/staging/prod
Rotacione chaves periodicamente
Revogue chaves imediatamente se comprometidas
Use HTTPS em todas as requisições
Implemente rate limiting no seu lado

❌ Evite

Expor chaves em código frontend/mobile
Compartilhar chaves entre projetos/times
Logar API Keys em arquivos de log
Enviar chaves por email/chat
Usar a mesma chave para dev e produção

Arquivo .gitignore

Sempre adicione arquivos de configuração ao .gitignore:
.gitignore
# Environment variables
.env
.env.local
.env.*.local

# API Keys
**/config/secrets.js
**/config/credentials.json

Rate Limiting

A API aplica rate limiting por API Key:
TierRequisições por Minuto
Free60
Starter120
Pro300
EnterprisePersonalizado

Headers de Rate Limit

Cada resposta inclui headers informativos:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 115
X-RateLimit-Reset: 1705233060
HeaderDescrição
X-RateLimit-LimitLimite total de requisições
X-RateLimit-RemainingRequisições restantes
X-RateLimit-ResetTimestamp Unix do reset

429 Too Many Requests

Quando o limite é excedido:
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Too many requests. Please retry after 60 seconds.",
    "retryAfter": 60
  }
}
Implemente exponential backoff para lidar com rate limits automaticamente.

Testando Autenticação

Faça um teste rápido para verificar se sua autenticação está funcionando:
curl -X GET https://api.wapizap.com/api/v2/instances \
  -H "Authorization: Bearer sk_live_SEU_TOKEN_AQUI"
Resposta de sucesso (200):
{
  "success": true,
  "data": []
}
Se retornar 401: Verifique se sua API Key está correta e no formato Bearer sk_live_...

Próximos Passos

Agora que você entende autenticação:

Precisa de Ajuda?