Skip to content

Enviar mensagens pela API

This content is not available in your language yet.

Administrador

Envia uma mensagem para um número e, se não houver atendimento aberto com ele, abre um. Autenticação: token de escopo full (Tokens). Limite: 60 chamadas por minuto por empresa.

Campo Tipo Obrigatório Descrição
number string sim Número com DDI e DDD, só dígitos: 5522999990001.
body string sim (ou mídia) Texto da mensagem.
whatsappId número não ID da conexão por onde enviar. Sem ele, usa a conexão padrão.
quotedMsg string não ID de uma mensagem para citar.
medias arquivo(s) não Em multipart/form-data, um ou mais arquivos.
closeAfterSend boolean não Envia e encerra o atendimento. closeSubject define o assunto (padrão “Fechado automaticamente pela API”).
registerAsClosed ou openTicket: false boolean não Registra a mensagem num atendimento já encerrado, sem aparecer na fila. Útil para avisos (fatura, visita). subject define o assunto (padrão “Integracao externa”).
wabaTemplate objeto API oficial { "name", "languageCode", "bodyParameters": [], "previewBody" }. Obrigatório fora da janela de 24 horas.
action menu ou buttons não Menu interativo (API oficial) com menuOptions, menuButtonText, menuHeader, menuFooter, menuType (list, button, cta_url, auto).

Booleanos aceitam true, 1, "yes" e "sim".

{ "ticketId": 456, "status": "closed", "closed": true, "messages": [ { "id": "...", "body": "...", "type": "chat" } ] }
Mensagem Causa
Invalid number format. Only numbers is allowed. number com espaços, + ou traços.
whatsapp #N not found whatsappId inexistente ou de outra empresa.
ERR_CREATING_TICKET Falha ao abrir o atendimento (conexão desconectada, por exemplo).
Informe ao menos uma opcao para enviar menu WABA. action: menu sem menuOptions.
401 ERR_SESSION_EXPIRED Token inválido.
429 Limite de 60 por minuto.
Janela do terminal
curl -X POST https://app.altchat.com.br/api/messages/send \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5522999990001",
"body": "Olá! Sua fatura de outubro está disponível: https://central.provedor.com.br/fatura/123",
"whatsappId": 1,
"registerAsClosed": true,
"subject": "Aviso de fatura"
}'

GET /api/messages/status?id=ID_DA_MENSAGEM (limite de 300 por minuto):

{ "id": "...", "ticketId": 456, "fromMe": true, "ack": 2, "status": "delivered", "failureReason": null, "createdAt": "...", "updatedAt": "..." }
ack status
-1 failed (veja failureReason)
0 pending
1 sent
2 delivered
3 read
4 played (áudio ouvido)

Um ERP típico chama a API em três momentos: ao gerar a fatura (aviso com link), ao agendar visita técnica (confirmação) e ao bloquear por inadimplência (aviso com link de pagamento). Para cada tipo, cadastre o texto como um modelo no ERP com variáveis ({NOME}, {VENCIMENTO}, {LINK}) e envie com registerAsClosed: true. Em conexões da API oficial, mantenha um template aprovado equivalente e use wabaTemplate quando o cliente não escreveu nas últimas 24 horas.