API Externa
A API do ChatDigi permite que sistemas externos enviem mensagens, consultem contatos e gerenciem tickets programaticamente. A tela de documentação interativa fica em Menu lateral → API Docs (rota /messagesAPI).
Requer plano com API Externa
A página só é acessível quando o plano inclui useExternalApi. Sem esse recurso no plano, o sistema redireciona para a tela inicial.

Onde encontrar o Token de API
O token de autenticação da API fica associado a cada conexão WhatsApp, não à empresa como um todo.
Para encontrar o token:
- Vá em Menu lateral → Conexões.
- Clique no ícone de editar (lápis) da conexão desejada.
- No modal de edição, localize o campo Token — o valor gerado automaticamente é o token da API para aquela conexão.
- Copie o token (há botão de cópia).
Token por conexão
Cada conexão WhatsApp tem seu próprio token. As mensagens enviadas via API usam a conexão cujo token foi informado.
Autenticação
Todas as requisições usam autenticação via Bearer Token no header HTTP:
Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/jsonExemplo com curl:
curl -X POST "https://SUA_URL/api/messages/send" \
-H "Authorization: Bearer SEU_TOKEN_AQUI" \
-H "Content-Type: application/json" \
-d '{"number":"5585999999999","body":"Olá!"}'URL base da API
https://SUA_URL/api/messagesOnde SUA_URL é o endereço do seu servidor ChatDigi (o mesmo usado para acessar o sistema pelo navegador).
Endpoints disponíveis
Mensagens
| Método | Caminho | Descrição |
|---|---|---|
POST | /send | Envia mensagem de texto ou mídia (suporta grupos) |
POST | /send/linkImage | Envia imagem a partir de uma URL |
POST | /send/noTicket | Envia mensagem sem criar ticket |
POST | /send/bulk | Envio em lote com delay configurável |
POST | /send/buttons | Envia mensagem interativa com botões |
POST | /checkNumber | Verifica se um número está no WhatsApp |
GET | /connections | Lista conexões ativas da empresa |
Contatos
| Método | Caminho | Descrição |
|---|---|---|
GET | /contacts | Lista todos os contatos |
GET | /contacts/{contactId} | Retorna um contato específico |
POST | /contacts | Cria um novo contato |
PUT | /contacts/{contactId} | Atualiza dados de um contato |
DELETE | /contacts/{contactId} | Remove um contato |
Tickets
| Método | Caminho | Descrição |
|---|---|---|
GET | /tickets | Lista tickets |
GET | /tickets/{ticketId} | Retorna um ticket específico |
POST | /tickets | Cria um novo ticket |
PUT | /tickets/{ticketId} | Atualiza status ou dados do ticket |
DELETE | /tickets/{ticketId} | Remove um ticket |
POST | /tickets/closeAll | Fecha todos os tickets |
GET | /messagesRange | Busca mensagens por intervalo de datas |
Parâmetros principais por endpoint
POST /send — Enviar mensagem
{
"number": "5585999999999",
"body": "Olá! Como posso ajudar?",
"userId": 1,
"queueId": 2,
"isGroup": false,
"sendSignature": false,
"closeTicket": false
}| Parâmetro | Tipo | Obrigat. | Descrição |
|---|---|---|---|
number | string | Sim | Número com DDD e DDI (sem +), ex: 5585999999999 |
body | string | Sim | Texto da mensagem |
userId | number | Não | ID do atendente responsável |
queueId | number | Não | ID da fila de destino |
isGroup | boolean | Não | true para enviar a um grupo do WhatsApp |
sendSignature | boolean | Não | Incluir assinatura do atendente |
closeTicket | boolean | Não | Fechar o ticket após o envio |
POST /send/bulk — Envio em lote
{
"delay": 2000,
"messages": [
{ "number": "5585999999999", "body": "Olá João!", "isGroup": false },
{ "number": "5585888888888", "body": "Olá Maria!", "isGroup": false }
]
}| Parâmetro | Tipo | Descrição |
|---|---|---|
delay | number | Intervalo em ms entre cada mensagem (evita bloqueios) |
messages | array | Lista de objetos com number, body e isGroup |
POST /contacts — Criar contato
{
"name": "João Silva",
"number": "5585999999999",
"email": "joao@email.com"
}POST /tickets — Criar ticket
{
"contactId": 1,
"status": "open",
"queueId": 1,
"userId": 1
}Playground interativo
A tela de API Docs tem um Playground integrado que permite testar os endpoints diretamente pelo navegador, sem precisar de ferramentas externas como Postman.
Como usar o Playground
- Acesse Menu lateral → API Docs.
- No campo URL da API, confirme o endereço (preenchido automaticamente).
- No campo Token, cole o token obtido na sua conexão WhatsApp.
- Selecione o Endpoint desejado no seletor.
- Ajuste o Body (editor de JSON) conforme necessário.
- Clique em Enviar.
- A resposta aparece abaixo em formato JSON.

Abas do Playground
| Aba | Conteúdo |
|---|---|
| Body | Editor JSON para o corpo da requisição |
| Headers | Visualização do header de autenticação gerado |
| Upload de Mídia | Upload de arquivo para endpoints que suportam mídia |
Histórico de requisições
O Playground mantém um histórico das últimas 50 requisições no sidebar esquerdo. Clique em qualquer item do histórico para recarregar os parâmetros e reenviar. É possível remover itens individuais ou limpar todo o histórico.
Códigos de resposta HTTP
| Código | Significado |
|---|---|
200 / 201 | Sucesso |
400 | Requisição inválida (parâmetro faltando ou incorreto) |
401 | Token inválido ou ausente |
403 | Sem permissão (plano não inclui o recurso) |
404 | Recurso não encontrado |
500 | Erro interno do servidor |
Problemas comuns
| Problema | Causa provável | Solução |
|---|---|---|
| Erro 401 em todas as requisições | Token incorreto ou expirado | Copiar novamente o token na tela de Conexões |
| Página redireciona para o início | Plano sem useExternalApi | Verificar plano com o suporte |
| Mensagem enviada mas sem ticket criado | Endpoint /send/noTicket usado | Usar /send para criar ticket junto |
| Número não reconhecido | Formato incorreto | Usar apenas dígitos com DDI+DDD (ex: 5585999999999) |
