Para 1 mensagem, use
POST /v1/messages. Para até 1.000 com o mesmo template, POST /v1/messages/batch. Acima disso, agendado ou com teste A/B, use campanha.O objeto campanha
Criar uma campanha
200 OK (o totalCost do exemplo é ilustrativo):
message.status_updated. O fim da campanha gera o evento campaign.completed.
Regras que valem saber
Idempotency-Keyé obrigatório. Repetir a chave devolve a campanha já criada, sem cobrar de novo. Derive a chave do identificador da campanha no seu sistema e reuse nas retentativas. A unicidade é global na Arara, não por organização: inclua um prefixo só seu (acme-campanha-8842), nunca um valor genérico comocampanha-1. Sem o header, a resposta hoje é500, e não400.- Cobrança antecipada. O total sai da carteira na criação. Contatos bloqueados no envio (opt-out, número inválido, limite de frequência) são estornados um a um.
- Pré-requisitos. Número dedicado conectado (
403 NO_DEDICATED_NUMBER), saldo para o total (402 INSUFFICIENT_FUNDS) e cota do plano (403 PLAN_LIMIT_REACHED). variablesé array posicional.["João", "30"], não objeto.- Estime antes.
POST /v1/campaigns/estimatecom a lista de telefones calcula por país de destino e bate com o valor cobrado. OGETusa só o preço do mercado local. - Cancelar estorna o que não saiu.
POST /v1/campaigns/{id}/canceldevolve à carteira os contatos que ainda não viraram mensagem. Mensagens já enfileiradas seguem. Campanha já finalizada responde422. - A lista tem envelope próprio.
GET /v1/campaignsresponde{ content, totalPages, totalElements }, e não{ data, pagination }.
Agendar
EnviescheduledAt entre 5 minutos e 30 dias no futuro. A campanha nasce SCHEDULED, já cobrada. Fora da janela: 400 CAMPAIGN_SCHEDULE_TOO_SOON ou 400 CAMPAIGN_SCHEDULE_TOO_FAR.
Teste A/B
MandeabTest junto com a criação: templateName é a variante A e abTest.variantBTemplateName é a B. Uma amostra dos contatos (samplePct, padrão 20%) recebe as duas variantes, e o restante espera a vencedora pela métrica escolhida (metric, padrão CLICKED). Enquanto o teste roda, a campanha fica em AB_TESTING.
Prefira abTest na criação. Adicionado depois por POST /v1/campaigns/{campaignId}/ab-test, parte dos contatos pode já ter sido enviada sem o teste. As rotas de teste A/B respondem 404 sem corpo quando a campanha ou o teste não existe.
Endpoints
Erros mais comuns
Próximos passos
Receita: Black Friday
Fluxo completo de campanha sazonal.
Smart Links
Clique e conversão por campanha.