POST /messages envia os quatro tipos de mensagem. A API responde na hora com 202 e um jobId,
e faz o envio em segundo plano. Depois você consulta o jobId para saber se a mensagem saiu.
O fluxo
1
Descubra o canal de saída
Todo envio precisa de um Guarde o id na configuração da sua integração. Ele quase nunca muda, e buscar a lista a cada
envio gasta o seu limite por minuto sem necessidade.
channelId. Liste os canais conectados da empresa:2
Envie
3
Confirme o resultado
ticketId. Com ele você acompanha a conversa dali em diante, usando
GET /tickets/{ticketId}/messages.Estados do job
status
Aceito e aguardando processamento.
status
Sendo enviado ao provedor.
status
Entregue ao provedor. O campo
providerMessageId traz o identificador que o provedor deu à
mensagem.status
O envio falhou.
failedReason explica o motivo e attempts mostra quantas vezes o envio foi
tentado.Contatos ativos no mês. O plano tem um limite de contatos ativos por mês: um contato conta
uma vez, na primeira mensagem trocada com a empresa no mês (enviada ou recebida), e a contagem
zera no dia 1º. Com o limite atingido, contatos que já contaram seguem recebendo normalmente; uma
mensagem a um contato novo é recusada na chamada com
402 ERR_API_ACTIVE_CONTACTS_LIMIT_REACHED.
Se o limite acabar entre a chamada e o envio, o job termina em failed com
failedReason: ERR_MAX_ACTIVE_CONTACTS_BY_MONTH_REACHED. Canais web_whatsapp não são
limitados.Os quatro tipos
- text
- media
- template
- interactive
É o tipo padrão. Além do destinatário, só o O campo
body é obrigatório.body aceita variáveis do sistema, como {{name}}.Para quem enviar
Há três formas de indicar o destinatário. Se vier mais de uma, vale nesta ordem:ticketId,
contactId, number.
ticketId
Envia dentro de um atendimento que já existe, e a mensagem fica no mesmo histórico da conversa.
Use para responder uma conversa em andamento.
contactId
Envia para um contato que já existe, em qualquer canal. É obrigatório nos canais sem telefone
(Instagram, Facebook/Messenger, Webchat, Telegram): neles só dá para enviar a quem já conversou
com o canal. No Webchat, o visitante precisa ter aberto o webchat deste canal.
number
Número do destinatário, em canais de telefone. Se o contato ainda não existir, ele é criado, e
você pode usar
contactName para dar um nome a ele. Se não houver atendimento aberto com esse
contato, um novo é aberto.Controlando o atendimento no mesmo envio
Quatro campos opcionais mudam o atendimento na mesma chamada do envio, sem precisar de uma segunda requisição:integer
Move o atendimento para esta fila depois do envio.
boolean
Reabre o atendimento se ele estiver encerrado.
boolean
Encerra o atendimento depois do envio. Serve para avisos que não esperam resposta.
integer
Qualificação registrada no encerramento do atendimento. Use junto com
closeTicket.Volume alto
Idempotência
Como evitar que uma nova tentativa duplique a mensagem.
Referência de mensagens
Todos os campos aceitos, com playground para testar.

