Gerenciamento de Instâncias
Este guia explica como criar e gerenciar instâncias do WhatsApp no ZapFlare.
O que são Instâncias?
Uma instância representa uma conexão com o WhatsApp. Cada instância:
- Conecta a um número de telefone único
- Mantém sessão persistente
- Pode enviar e receber mensagens
- Tem webhook próprio para eventos
Criando uma Instância
Via Dashboard
- Acesse Instâncias no menu
- Clique em Nova Instância
- Preencha o nome descritivo
- Configure o webhook (opcional)
- Clique em Criar
Via API
javascript
const response = await fetch('https://api.zapflare.io/whatsapp/instances', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer SEU_API_KEY'
},
body: JSON.stringify({
name: 'Atendimento Principal',
description: 'Instância principal de atendimento',
webhookUrl: 'https://meu-webhook.com/whatsapp',
webhookEvents: ['message', 'status', 'connection']
})
});
const instance = await response.json();
console.log('Instância criada:', instance.data.id);Parâmetros de Criação
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome da instância (3-100 caracteres) |
description | string | Não | Descrição detalhada |
webhookUrl | string | Não | URL para receber eventos |
webhookEvents | array | Não | Eventos a receber: message, status, connection |
Conectando ao WhatsApp
Após criar a instância:
- Um QR Code será gerado automaticamente
- Abra o WhatsApp no celular
- Vá em Configurações > Dispositivos Conectados
- Escaneie o QR Code
Importante
- Cada QR Code expira em 20 segundos
- Você tem até 6 tentativas (2 minutos total)
- Se expirar, use o endpoint de regeneração
Monitorando Status
Estados Possíveis
created- Recém criadaqr- Aguardando leitura do QRconnected- Conectada e operacionaldisconnected- Desconectada temporariamentebanned- Número banido
Verificando Status
javascript
const status = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}`, {
headers: {
'Cookie': 'auth-session=...'
}
});
const data = await status.json();
console.log('Status:', data.data.status);Estados da Instância
| Estado | Descrição |
|---|---|
initializing | Instância sendo criada |
waiting_qr | Aguardando leitura do QR Code |
connected | Conectada e operacional |
disconnected | Desconectada temporariamente |
error | Erro na conexão |
Operações com Instâncias
Listar Instâncias
javascript
const response = await fetch('https://api.zapflare.io/whatsapp/instances', {
headers: {
'Authorization': 'Bearer SEU_API_KEY'
}
});Obter Detalhes
javascript
const response = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}`, {
headers: {
'Authorization': 'Bearer SEU_API_KEY'
}
});Atualizar Instância
javascript
const response = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer SEU_API_KEY'
},
body: JSON.stringify({
name: 'Novo Nome',
webhookUrl: 'https://novo-webhook.com'
})
});Desconectar
javascript
const response = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}/disconnect`, {
method: 'POST',
headers: {
'Authorization': 'Bearer SEU_API_KEY'
}
});Regenerar QR Code
javascript
const response = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}/regenerate-qr`, {
method: 'POST',
headers: {
'Authorization': 'Bearer SEU_API_KEY'
}
});Deletar Instância
javascript
const response = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}`, {
method: 'DELETE',
headers: {
'Authorization': 'Bearer SEU_API_KEY'
}
});Boas Práticas
- Nomeie descritivamente - Use nomes que identifiquem o propósito
- Configure webhooks - Receba eventos em tempo real
- Monitore conexões - Implemente reconexão automática
- Respeite limites - Evite criar instâncias desnecessárias