Turbine sua comunicação via WhatsApp.
Nossa API REST foi desenhada para facilitar integrações complexas. Automatize notificações, lembretes de pagamento e fluxos de atendimento com segurança de nível empresarial.
Base Endpoint (SSL Required)
https://zap.mago3.com.br/api.php
Segurança & Autenticação
Bearer Token
Padrão via Header HTTP. Recomendado para maior segurança em ambientes configurados.
JSON Payload
Envio da api_key dentro do corpo JSON. Mais estável em servidores Apache/CPanel.
TLS 1.3
Toda comunicação é criptografada de ponta a ponta via HTTPS.
Método 1: Header HTTP
Authorization: Bearer SUA_API_KEY
Método 2: JSON (Garante Funcionamento)
{
"api_key": "SUA_API_KEY",
"action": "...",
"..."
}
Proteção Anti-Ban Ativa
Diferente de APIs genéricas, nosso motor processa cada mensagem com inteligência de segurança integrada. Sua conta está protegida por 3 camadas exclusivas:
Inteligência Spintax
Suporte a variações {A|B} para evitar padrões robóticos.
Cooldown de Segurança (48h)
Bloqueio automático de mensagens idênticas para o mesmo número.
Simulação Humana
Status "Digitando..." e delays aleatórios em todos os envios.
Payload "message":
"{Boa tarde|Olá|Oi} {contato}! Seu pedido está {a caminho|sendo entregue}."
Resultado Aleatório:
"Olá João! Seu pedido está a caminho."
Enviar Mensagem
Endpoint principal para disparos individuais com simulação humana.
/api.php
Parâmetros Obrigatórios (Payload Principal)
| Campo | Valor/Tipo | Descrição Detalhada |
|---|---|---|
| action | send_message | Ação obrigatória para iniciar o processo de envio. |
| instance | string | Nome da instância que realizará o envio (deve estar Connected). |
| number | string | DDI + DDD + Número. Formato: 5511999887766. |
| message | string | O texto da mensagem. Suporta emojis e Spintax. |
Todos os Parâmetros Suportados
| Parâmetro | Tipo | Obrigatório | Descrição e Regras |
|---|---|---|---|
| template_id | integer | Opcional | Se enviado, ignora o campo message e usa um template do painel. |
| vars | object | Opcional | Variáveis para substituição: {"cliente": "Carlos"}. |
| scheduled_at | datetime | Opcional | Data/Hora para envio programado (Y-m-d H:i:s). |
| close_session | boolean | Opcional | Se 1, fecha a janela de chat no painel após o envio. |
| fura_fila | boolean | PRIORIDADE | Ignora a fila de espera e envia imediatamente (Consome 2 créditos). |
{
"api_key": "SUA_API_KEY",
"action": "send_message",
"instance": "vendas01",
"number": "5511999998877",
"message": "{Olá|Oi} {nome}! Tudo bem?",
"vars": { "nome": "Carlos" },
"schedule_enabled": 1
}
Dica de Alta Performance
Para integrações de larga escala, recomendamos o uso da propriedade fura_fila: true apenas para alertas críticos ou autenticação (2FA).
Simulação de Digitação Ativa por Padrão
Envio em Lote (Batch)
Dispare para múltiplos contatos em uma única chamada.
A API agora aceita o array contacts.
Ao enviar este array, o sistema processa cada contato individualmente, aplicando as variáveis específicas de cada um e personalizando a mensagem final.
| Propriedade do Contato | Tipo | Descrição |
|---|---|---|
| number | string | Número de destino (DDI + DDD + Número). |
| name | string | Nome opcional para exibição no sistema. |
| vars | object | Variáveis exclusivas deste número (ex: {"nome": "João"}). |
{
"api_key": "SUA_API_KEY",
"action": "send_message",
"instance": "Minha_Instancia",
"message": "{Olá|Oi} {nome}, seu pedido foi aprovado!",
"contacts": [
{
"number": "5511999990001",
"name": "Maria Silva",
"vars": { "nome": "Maria" }
},
{
"number": "5511999990002",
"name": "João Souza",
"vars": { "nome": "João" }
},
{
"number": "5511999990003",
"name": "Ana Costa",
"vars": { "nome": "Ana" }
}
],
"close_session": 1
}
Histórico de Sessão
Polling de Mensagens
Retorne o histórico de uma sessão aberta. Você pode sincronizar as conversas do seu CRM usando o parâmetro after_id.
?action=get_chat_history&number=...
GET /api.php?action=get_chat_history&number=5511999998877
Saldo & Créditos
Consulte o saldo atual do usuário autenticado para exibir no seu painel externo ou controlar limites de disparo.
GET /api.php?action=get_credits
Exemplo de Retorno
Mensagens restantes
Instâncias
Retorna todas as instâncias do usuário e seus respectivos status de conexão. Útil para validar se um bot pode disparar ou se o QR Code desconectou.
GET /api.php?action=list_instances
Webhook Externo
Receba mensagens recebidas em seu servidor (Integração com IA).
Sempre que uma mensagem é recebida em sua instância, nosso sistema pode disparar um POST JSON automático para uma URL externa. Ideal para conectar com motores de Inteligência Artificial ou CRMs próprios.
| Campo | Descrição |
|---|---|
| event | Tipo de evento. Valor fixo: message_received. |
| instance | Nome da instância que recebeu a mensagem. |
| number | Número do remetente (incluindo DDI). |
| message | Conteúdo textual da mensagem. Retorna null quando o tipo não é texto (ex: áudio, imagem). |
| messageType | Tipo da mensagem recebida. Valores possíveis: text, audio, image, video, document, sticker. |
| timestamp | Data e Hora do recebimento no formato Y-m-d H:i:s. |
Tipos de Mensagem Suportados
O webhook notifica sobre todos os tipos de mensagem. O campo messageType identifica o tipo recebido. Para mídias, message retorna null.
text
Mensagem de texto simples ou formatada.
audio
Áudio ou mensagem de voz (PTT).
image
Foto ou imagem enviada.
video
Vídeo enviado pelo contato.
document
PDF, planilha ou outro documento.
sticker
Figurinha/sticker (adesivo).
Importante: Nenhum arquivo de mídia é enviado pelo webhook — apenas a notificação do tipo. Seu sistema pode decidir como tratar cada tipo (ex: transcrever áudios com Whisper, processar imagens com OCR).
Dica para IA
Após processar a mensagem com sua IA, você deve responder ao usuário utilizando o endpoint send_message documentado acima.
// Mensagem de texto
{
"event": "message_received",
"instance": "vendas_01",
"number": "5511999998877",
"message": "Olá, gostaria de saber mais.",
"messageType": "text",
"timestamp": "2024-03-27 15:30:45"
}
// Mensagem de áudio
{
"event": "message_received",
"instance": "vendas_01",
"number": "5511999998877",
"message": null,
"messageType": "audio",
"timestamp": "2024-03-27 15:31:12"
}