Skip to content

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étodoRotaDescrição
GET/messagesLista mensagens (query: after, before — paginação por ID de mensagem)
POST/messagesCria 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ódigoSignificado
401Token ausente ou inválido
404Conversa ou mensagem não encontrada
422content 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).

Documentação da API — Interleads Chat.