Aparência
Mensagens
As mensagens vivem dentro de uma conversa. Pela API você envia mensagens ao cliente, cria notas internas (que o cliente não vê), anexa arquivos e lista o histórico.
Base e autenticação
As rotas desta página são relativas a /api/v1/accounts/{account_id}/conversations/{conversation_id} na base https://appchat01.interleads.chat e exigem o cabeçalho api_access_token.
Endpoints
| Método | Rota | Descrição |
|---|---|---|
GET | /messages | Lista mensagens (query: after, before — paginação por ID de mensagem) |
POST | /messages | Cria uma mensagem (saída ou entrada) |
DELETE | /messages/{message_id} | Exclui uma mensagem |
Enviar uma mensagem
Campo obrigatório: content. Demais campos: message_type (outgoing / incoming), private (nota interna), content_type (text / input_email / cards / input_select / form / article), content_attributes, template_params e attachments[] (via multipart).
bash
curl -X POST "https://appchat01.interleads.chat/api/v1/accounts/3/conversations/123/messages" \
-H "api_access_token: $INTERLEADS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Obrigado pelo contato! Em que posso ajudar?",
"message_type": "outgoing"
}'js
const res = await fetch(
"https://appchat01.interleads.chat/api/v1/accounts/3/conversations/123/messages",
{
method: "POST",
headers: {
api_access_token: process.env.INTERLEADS_TOKEN,
"Content-Type": "application/json",
},
body: JSON.stringify({
content: "Obrigado pelo contato! Em que posso ajudar?",
message_type: "outgoing",
}),
}
)
const msg = await res.json()Nota interna
Uma nota interna fica registrada na conversa para a equipe, mas não é enviada ao cliente. Basta marcar private: true:
bash
curl -X POST "https://appchat01.interleads.chat/api/v1/accounts/3/conversations/123/messages" \
-H "api_access_token: $INTERLEADS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Lead qualificado — encaminhar ao closer.",
"message_type": "outgoing",
"private": true
}'Enviar um anexo
Para anexos, envie multipart/form-data (não JSON) com o content e um ou mais attachments[]:
bash
curl -X POST "https://appchat01.interleads.chat/api/v1/accounts/3/conversations/123/messages" \
-H "api_access_token: $INTERLEADS_TOKEN" \
-F "content=Segue a proposta em anexo" \
-F "message_type=outgoing" \
-F "attachments[]=@/caminho/proposta.pdf"Listar o histórico
bash
curl "https://appchat01.interleads.chat/api/v1/accounts/3/conversations/123/messages" \
-H "api_access_token: $INTERLEADS_TOKEN"A paginação é por ID de mensagem: use before=<id> para carregar mensagens mais antigas e after=<id> para mais recentes.
Erros comuns
| Código | Significado |
|---|---|
401 | Token ausente ou inválido |
404 | Conversa ou mensagem não encontrada |
422 | content ausente, ou fora da janela de envio permitida pelo canal |
Janela de 24h do WhatsApp
Em canais WhatsApp, mensagens livres só podem ser enviadas dentro da janela de 24h desde a última mensagem do cliente. Fora dela, é preciso um template aprovado (campo template_params).