API REST Privada — Requer assinatura ativa do MultChat ProAPI Status: Online

Documentação da API REST

Integre seus sistemas, CRMs, ERPs e plataformas de vendas ao WhatsApp. Envie mensagens, consulte números e receba webhooks automáticos.

Autenticação e Token de Acesso

Como obter e autenticar suas chamadas de API

Aviso de Segurança: Para utilizar a API do MultChat Pro, é necessário possuir uma assinatura ativa. O token de integração externa é gerado dentro do painel em cada conexão de WhatsApp configurada.

1

Crie sua conta

Acesse o painel oficial em app.multchatpro.com e crie sua conta.

Criar Conta
2

Conecte o WhatsApp

No painel, navegue em Conexões e adicione uma nova sessão escaneando o QR Code.

3

Obtenha o Token

Edite a conexão desejada e copie a chave no campo 'Token de Integração'.

Como enviar o Token no Header da Requisição

# Inclua o token no header Authorization de todas as requisições:
curl -X POST "https://api.multchatpro.com/api/messages/send" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -d '{"number": "5511999999999", "body": "Olá via API!"}'
Base URL da API REST:
https://api.multchatpro.com

Catálogo de Endpoints REST

Clique na categoria ou no endpoint para expandir e ver detalhes

Envia uma mensagem de texto e/ou mídia para um número do WhatsApp. Pode opcionalmente associar a um atendente, fila, fechar o ticket após envio ou enviar sem registro no sistema.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Headers HTTP

Content-Type:application/json
Authorization:Bearer {TOKEN_DA_CONEXAO}

Request Body (JSON)

{
  "number": "5511999999999",
  "body": "Olá! Esta é uma mensagem enviada via API.",
  "whatsappId": 1,
  "msdelay": 1000,
  "userId": 1,
  "queueId": 1,
  "sendSignature": false,
  "closeTicket": false,
  "noRegister": false
}
Parâmetros do Corpo
CampoDescrição
numberNúmero do destinatário com código do país (obrigatório). Ex: 5511999999999
bodyTexto da mensagem a ser enviada (obrigatório se não enviar mídia)
whatsappIdID da conexão WhatsApp para envio (opcional — usa a conexão do token se omitido)
msdelayDelay em milissegundos antes do envio, simulando digitação (opcional)
userIdID do atendente para associar à conversa (opcional)
queueIdID da fila/setor para associar à conversa (opcional)
sendSignatureSe true, prefixa o nome do atendente na mensagem (opcional, padrão: false)
closeTicketSe true, fecha o ticket automaticamente após o envio (opcional, padrão: false)
noRegisterSe true, envia a mensagem sem criar ticket ou contato no sistema (opcional, padrão: false)

Respostas da API

200Mensagem enviada com sucesso
{
  "status": "SUCCESS"
}
400Parâmetros inválidos ou número não encontrado
{
  "error": "ERR_SENDING_WAPP_MSG"
}
401Token inválido ou ausente
{
  "error": "ERR_SESSION_EXPIRED"
}
403Conexão WhatsApp desconectada
{
  "error": "ERR_WAPP_NOT_INITIALIZED"
}

Observações Importantes

  • Para enviar mídia, use multipart/form-data com o campo 'medias' contendo o(s) arquivo(s).
  • O número deve incluir o código do país (ex: 55 para Brasil).
  • Se msdelay for informado, o sistema aguarda antes de enviar, simulando tempo de digitação.

Exemplo de Comando cURL

curl -X POST "https://api.multchatpro.com/api/messages/send" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -d '{
  "number": "5511999999999",
  "body": "Olá! Esta é uma mensagem enviada via API.",
  "whatsappId": 1,
  "msdelay": 1000,
  "userId": 1,
  "queueId": 1,
  "sendSignature": false,
  "closeTicket": false,
  "noRegister": false
}'

Envia uma imagem para o contato a partir de uma URL pública. Útil para enviar banners, catálogos ou imagens hospedadas externamente.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Headers HTTP

Content-Type:application/json
Authorization:Bearer {TOKEN_DA_CONEXAO}

Request Body (JSON)

{
  "number": "5511999999999",
  "url": "https://exemplo.com/imagem.jpg",
  "caption": "Confira nosso catálogo!",
  "whatsappId": 1,
  "msdelay": 1000
}
Parâmetros do Corpo
CampoDescrição
numberNúmero do destinatário com código do país (obrigatório). Ex: 5511999999999
urlURL pública da imagem a ser enviada (obrigatório). Ex: https://exemplo.com/imagem.jpg
captionLegenda da imagem (opcional)
whatsappIdID da conexão WhatsApp para envio (opcional)
msdelayDelay em milissegundos antes do envio (opcional)

Respostas da API

200Imagem enviada com sucesso
{
  "status": "SUCCESS"
}
400URL inválida ou número não encontrado
{
  "error": "ERR_SENDING_WAPP_MSG"
}
401Token inválido ou ausente
{
  "error": "ERR_SESSION_EXPIRED"
}

Observações Importantes

  • A URL deve ser publicamente acessível (sem autenticação).
  • Formatos suportados: JPG, PNG, GIF, WEBP.
  • Imagens muito grandes podem ser comprimidas pelo WhatsApp automaticamente.

Exemplo de Comando cURL

curl -X POST "https://api.multchatpro.com/api/messages/send/linkImage" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -d '{
  "number": "5511999999999",
  "url": "https://exemplo.com/imagem.jpg",
  "caption": "Confira nosso catálogo!",
  "whatsappId": 1,
  "msdelay": 1000
}'

Verifica se um número de telefone está registrado no WhatsApp. Útil para validar contatos antes de enviar mensagens, evitando erros e melhorando a taxa de entrega.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Headers HTTP

Content-Type:application/json
Authorization:Bearer {TOKEN_DA_CONEXAO}

Request Body (JSON)

{
  "number": "5511999999999"
}
Parâmetros do Corpo
CampoDescrição
numberNúmero a ser verificado com código do país (obrigatório). Ex: 5511999999999

Respostas da API

200Número encontrado no WhatsApp
{
  "existsInWhatsapp": true,
  "number": "5511999999999",
  "numberFormatted": "5511999999999@s.whatsapp.net"
}
200Número não encontrado no WhatsApp
{
  "existsInWhatsapp": false,
  "number": "5511999999999",
  "error": "Not exists on Whatsapp"
}
401Token inválido ou ausente
{
  "error": "ERR_SESSION_EXPIRED"
}

Observações Importantes

  • Sempre retorna status 200 — use o campo 'existsInWhatsapp' para determinar o resultado.
  • Útil para validação em massa antes de campanhas.
  • Respeite limites de requisição para evitar bloqueio do WhatsApp.

Exemplo de Comando cURL

curl -X POST "https://api.multchatpro.com/api/messages/checkNumber" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -d '{
  "number": "5511999999999"
}'

Endpoint para receber webhooks de plataformas de venda como Kiwify, Hotmart, Eduzz, Monetizze e outras. O token da conexão faz parte da URL. Ao receber o evento, o sistema pode enviar mensagens automáticas ao comprador.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Headers HTTP

Content-Type:application/json

Request Body (JSON)

{
  "platform": "kiwify",
  "event": "purchase_approved",
  "customer": {
    "name": "João Silva",
    "phone": "5511999999999",
    "email": "joao@email.com"
  },
  "product": {
    "name": "Curso de Marketing"
  },
  "message": "Mensagem personalizada (opcional)"
}
Parâmetros do Corpo
CampoDescrição
platformPlataforma que está enviando o webhook (identificada automaticamente pelo payload)
eventTipo do evento (ex: purchase_approved, subscription_canceled, etc.)
customerDados do cliente/comprador (nome, telefone, email)
productInformações do produto adquirido
messageMensagem personalizada para enviar ao cliente (opcional — se omitido, usa a mensagem padrão configurada)

Respostas da API

200Webhook processado com sucesso
{
  "status": "ok"
}
404Token de conexão inválido
{
  "error": "Connection not found"
}

Observações Importantes

  • O token na URL é o token de integração externa da conexão WhatsApp (não o token de autenticação Bearer).
  • O formato do payload varia conforme a plataforma — o sistema detecta automaticamente.
  • Plataformas suportadas: Kiwify, Hotmart, Eduzz, Monetizze, PerfectPay, Pepper, Doppus, Ticto, ActiveCampaign, HubSpot, BullFlux, Webhook Genérico, Licença e outras.
  • Configure a URL deste endpoint na plataforma de vendas como webhook de notificação.

Exemplo de Comando cURL

curl -X POST "https://api.multchatpro.com/api/webhook/receive/{connectionToken}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -d '{
  "platform": "kiwify",
  "event": "purchase_approved",
  "customer": {
    "name": "João Silva",
    "phone": "5511999999999",
    "email": "joao@email.com"
  },
  "product": {
    "name": "Curso de Marketing"
  },
  "message": "Mensagem personalizada (opcional)"
}'

Retorna confirmação de que o endpoint está ativo. Algumas plataformas fazem uma requisição GET para verificar o webhook antes de ativá-lo.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Respostas da API

200Endpoint ativo
{
  "status": "active"
}

Exemplo de Comando cURL

curl -X GET "https://api.multchatpro.com/api/webhook/receive/{connectionToken}" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"

O MultChat Pro suporta diversos tipos de autenticação para webhooks enviados. Escolha o tipo mais adequado para sua integração.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Respostas da API

200Requisição autenticada com sucesso
{
  "status": "ok"
}

Observações Importantes

  • Tipo 1 - Nenhuma: Sem autenticação (APIs públicas). Não enviar nenhum header de autenticação.
  • Tipo 2 - Bearer Token: Header autorização → 'Authorization: Bearer SEU_TOKEN_AQUI'
  • Tipo 3 - API Key: Header customizado → 'X-API-Key: SEU_API_KEY_AQUI' ou nome customizado
  • Tipo 4 - Basic Auth: Header autorização → 'Authorization: Basic BASE64(usuario:senha)'
  • Tipo 5 - Conexão WhatsApp: Usa o token de uma conexão WhatsApp existente do sistema

Exemplo de Comando cURL

curl -X POST "https://api.multchatpro.com/api/webhook/send (exemplo)" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"

Configure um template para formatar a resposta da API antes de enviar ao cliente. Use {{campo}} para inserir valores da resposta JSON.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Request Body (JSON)

{
  "template": "✅ *Sua {{tipo|Licença}} foi gerada!*\n\n🔑 *Chave:* {{chave|license_key|key}}\n👤 *Usuário:* {{usuario|user|username}}\n🔒 *Senha:* {{senha|password|pass}}\n📅 *Validade:* {{validade|data_expiracao|expires_at}}"
}
Parâmetros do Corpo
CampoDescrição
templateTemplate com placeholders para formatação. Detecta automaticamente campos comuns (chave, usuário, senha, validade, link, etc.)

Respostas da API

200Template processado e mensagem enviada
{
  "message_sent": "✅ *Sua Licença foi gerada!*\n\n🔑 *Chave:* XXXX-XXXX-XXXX\n👤 *Usuário:* teste123\n🔒 *Senha:* abc456\n📅 *Validade:* 16/01/2026"
}

Observações Importantes

  • Deixe o template vazio para usar detecção automática de campos comuns
  • Variações detectadas automaticamente:
  • • Chave/Licença: chave, key, licenssKey, license_key, licenca
  • • Validade: data_expiracao, expiresAt, expires_at, validade, data
  • • Link: link, download_link, downloadLink, url
  • • Usuário: usuario, user, username
  • • Senha: senha, password, pass
  • • Mensagem: message, response, text, body
  • Datas são formatadas automaticamente para pt-BR (dia/mês/ano)
  • Placeholders não encontrados são removidos automaticamente

Exemplo de Comando cURL

curl -X POST "https://api.multchatpro.com/api/webhook/send (com template)" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -d '{
  "template": "✅ *Sua {{tipo|Licença}} foi gerada!*\n\n🔑 *Chave:* {{chave|license_key|key}}\n👤 *Usuário:* {{usuario|user|username}}\n🔒 *Senha:* {{senha|password|pass}}\n📅 *Validade:* {{validade|data_expiracao|expires_at}}"
}'

Configure webhooks para disparem automaticamente quando estes eventos ocorrem no sistema.

Autenticação Requisições

Authorization: Bearer <TOKEN_DA_CONEXAO>

Respostas da API

200Webhook disparado
{
  "event": "new_message",
  "ticket_id": "1234",
  "contact": {
    "name": "João Silva",
    "phone": "5511999999999"
  },
  "message_body": "Olá, preciso de ajuda",
  "timestamp": "2026-02-08T15:30:45Z"
}

Observações Importantes

  • EVENTO 1 - Nova Mensagem: Dispara ao receber mensagem no WhatsApp.
  • EVENTO 2 - Ticket Criado: Dispara no primeiro contato.
  • EVENTO 3 - Ticket Atualizado: Dispara ao alterar atribuição, status ou tags.
  • EVENTO 4 - Ticket Encerrado: Dispara ao fechar atendimento.
  • EVENTO 5 - Ticket Transferido: Dispara ao transferir entre filas/usuários.
  • EVENTO 6 - Contato Criado: Dispara ao importar ou criar novo contato.
  • EVENTO 7 - Contato Atualizado: Dispara ao editar dados do contato.

Exemplo de Comando cURL

curl -X POST "https://api.multchatpro.com/api/webhooks (referência)" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"

Exemplos de Código Prontos

Copie e cole em seu projeto Node.js, Python ou PHP

Node.js (axios)

const axios = require('axios');

const TOKEN = 'SEU_TOKEN_AQUI';
const BASE_URL = 'https://api.multchatpro.com';

// Enviar mensagem de texto
async function sendMessage(number, body) {
  const response = await axios.post(`${BASE_URL}/api/messages/send`, {
    number,
    body,
  }, {
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${TOKEN}`,
    },
  });

  console.log('Resposta:', response.data);
  return response.data;
}

// Exemplo de uso
sendMessage('5511999999999', 'Olá! Mensagem via API.');

Python (requests)

import requests

TOKEN = 'SEU_TOKEN_AQUI'
BASE_URL = 'https://api.multchatpro.com'

def send_message(number: str, body: str):
    response = requests.post(
        f'{BASE_URL}/api/messages/send',
        json={'number': number, 'body': body},
        headers={
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {TOKEN}',
        },
    )
    print('Resposta:', response.json())
    return response.json()

# Exemplo de uso
send_message('5511999999999', 'Olá! Mensagem via API.')

PHP (cURL)

<?php

$token = 'SEU_TOKEN_AQUI';
$baseUrl = 'https://api.multchatpro.com';

function sendMessage($number, $body) {
    global $token, $baseUrl;

    $ch = curl_init("$baseUrl/api/messages/send");
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'Content-Type: application/json',
            "Authorization: Bearer $token",
        ],
        CURLOPT_POSTFIELDS => json_encode([
            'number' => $number,
            'body' => $body,
        ]),
    ]);

    $response = curl_exec($ch);
    curl_close($ch);

    return json_decode($response, true);
}

// Exemplo de uso
$result = sendMessage('5511999999999', 'Olá! Mensagem via API.');
print_r($result);

Integração Nativa N8N

O MultChat Pro possui integração nativa com o N8N para automação de workflows. Configure a URL do webhook N8N na sua fila de atendimento para disparar os eventos instantaneamente.

Integração Nativa Typebot

Conecte fluxos conversacionais do Typebot diretamente na sua fila do WhatsApp. O Typebot gerencia o chatbot interativo e coleta dados dos clientes automaticamente.

Boas Práticas de Envio

  • Sempre valide o número com /checkNumber antes de enviar mensagens em massa.
  • Use o parâmetro msdelay (ex: 1500ms) para simular digitação humana.
  • Mantenha seu token seguro no servidor — nunca exponha no código frontend.

Formatos & Limites de Arquivo

  • Número com código do país: 5511999999999 (código 55 para o Brasil).
  • Imagens: JPG, PNG, GIF, WEBP (suporta até 16MB).
  • Documentos: PDF, DOC, XLS, ZIP (suporta até 100MB).

Pronto para começar a integração?

Crie sua conta no MultChat Pro, conecte seu WhatsApp e envie suas primeiras mensagens via API REST em menos de 5 minutos.