O fluxo principal (visão geral)
- Ter um template pronto (painel ou API) com conteúdo por canal.
- Chamar
POST /v1/templates/sendcomtemplate(id ou nome),channels,toevariables. - Receber 202 com IDs por canal e acompanhar entrega pelos webhooks ou APIs de cada canal.
Pré-requisitos
- API Key com escopos conforme os canais que for usar:
whatsapp:send,sms:send,email:send. - Template já criado no painel ou pela API v1 (
POST /v1/templatescom escopotemplates:create), com conteúdo e variáveis definidos para os canais desejados. - Para WhatsApp: instância ativa e, se não houver instância padrão no workspace, envie
instanceIdno body. - Para E-mail: domínio verificado e, se não houver domínio padrão, envie
fromno body.
- Header:
Authorization: Bearer sk_live_xxxxx - ou Header:
x-api-key: sk_live_xxxxx
1. Enviar por template
Use o ID ou o nome do template, os canais desejados e a lista de destinatários. Passe as variáveis exigidas pelo template emvariables.
Request
2. Campos do body
| Campo | Obrigatório | Descrição |
|---|---|---|
template | Sim | ID (cuid) ou nome do template. |
channels | Sim | Array com um ou mais de: whatsapp, sms, email. |
to | Sim | Até 100 destinatários (telefones E.164 e/ou e-mails). Se um canal precisar de telefone ou e-mail que você não passou, a API tenta completar buscando o contato no workspace (por telefone ou e-mail) e usando o outro campo do contato. |
variables | Conforme template | Objeto chave-valor para substituir no conteúdo. |
instanceId | Se WhatsApp sem default | ID da instância de WhatsApp. |
from | Se E-mail sem default | E-mail de origem (remetente). |
fromName | Não | Nome de exibição do remetente (e-mail). |
3. Respostas de erro
O formato é o mesmo das APIs SMS, E-mail, WhatsApp e Push: camelCase e corpo unificado. Body de erro (exemplo 400):success (false), error, message, code (opcional), details (array de { field, message }), missingVariables (apenas em 400 por variáveis faltando). Consulte a página Respostas de erro para a lista completa de códigos HTTP e códigos code.
Resumo rápido:
- 400 — Validação: variáveis faltando (
missingVariables),from/instanceIdobrigatório não informado, domínio não verificado, SMS com texto final menor que 9 caracteres (SMS_MESSAGE_TOO_SHORT). - 401 — API Key ausente ou inválida.
- 402 — Workspace bloqueado, saldo/créditos insuficientes ou limite da API Key (
WORKSPACE_BLOCKED,INSUFFICIENT_CREDITS*,API_KEY_SPEND_LIMIT_EXCEEDED). - 403 — Escopo insuficiente ou créditos/plano (
INSUFFICIENT_CREDITS,PLAN_LIMIT_CREDITS). - 404 — Template ou instância não encontrados.
- 409 — SMS duplicado (
code:SMS_DUPLICATE_RECENT). - 503 — Serviço de e-mail não configurado ou instância WhatsApp indisponível.
Resumo do fluxo
- Crie o template no painel ou com POST
/v1/templates(escopostemplates:create/templates:update) — mesmo contrato validado no painel. Use{{name}}para nome do contato; campos personalizados usam a chave técnica definida em Contatos. Veja Variáveis do contato e CRUD. - Chame POST
/v1/templates/sendcomtemplate,channels,toevariables(einstanceId/fromquando necessário). - Use a resposta 202 com
messageIds,smsIds,emailIdspara acompanhar status nos endpoints e webhooks de cada canal.
