Skip to main content
POST /v1/messages envia uma mensagem por um canal. Este guia cobre o envio de texto. Para templates, veja Enviar um template.
Escopo necessário: messages:write.

Requisição

Informe exatamente um entre text e template. Os dois juntos, ou nenhum, retornam 422 content_rejected.

Resposta

A API responde 202 Accepted com a mensagem no estado accepted:
Guarde o id. Ele é a chave para consultar a mensagem e para correlacionar os eventos de entrega. Toda resposta traz também o header Routa-Request-Id; cite-o ao falar com o suporte.

Garanta que não haja duplicidade

Se a rede falhar depois que você enviou a requisição, você não sabe se ela chegou. Reenviar sem cuidado poderia criar duas mensagens. Para evitar isso, envie um Idempotency-Key único por mensagem lógica:
  • Use um UUID v4 e gere-o uma vez, antes da primeira tentativa. Reutilize a mesma chave em todas as retentativas.
  • Uma segunda requisição com a mesma chave e o mesmo corpo devolve a resposta original, com o header Idempotent-Replay: true.
  • Reutilizar a chave com um corpo diferente retorna 409 idempotency_key_reuse.
O SDK gera e reutiliza a chave automaticamente. Detalhes em Idempotência.

Erros comuns

Veja Erros para o formato completo.

Próximo passo

A mensagem foi aceita, não entregue. Acompanhe a entrega por webhooks.