Escopos necessários: read:broadcasts, write:broadcasts e read:whatsapp_instances.
1. Escolha o número
Guarde o id de um número com status: "connected".
Esta resposta ainda não informa se o número é do WhatsApp Oficial ou por QR Code — e isso muda
tudo: o Oficial exige modelo aprovado. Se você não souber, confira no painel ou olhe o campo channel
em um disparo existente.
2. Estime antes de criar
Este passo não é opcional. É o que separa “mandei para 1.250 clientes” de “mandei para a base inteira”.
Os filtros ficam em audience.filters. Se você colocá-los na raiz de audience, a requisição é
aceita e a estimativa volta com toda a base — esse é o sinal de que o aninhamento está errado.
Confira estimated_count e o detalhamento em skipped_by_reason antes de seguir.
3. Crie o rascunho
Os perfis são conservative, moderate e aggressive. Comece devagar em número novo.
4. Lance
O status vai para processing — não running, que não existe. Com scheduledFor no futuro, vai para scheduled e sai sozinho na hora marcada.
Se um número estiver acima do limite de aquecimento, o lançamento é barrado com 422. Reenvie com confirmWarmupOverride: true só se você aceita o risco de bloqueio.
5. Acompanhe
Em vez de fazer polling, assine broadcast.completed e broadcast.failed nos webhooks. O payload traz o consolidado.
6. Ajuste sem recomeçar
Percebeu que está rápido demais? Não cancele:
Funciona com o disparo em sending ou paused.
7. Audite o resultado
O consolidado está em stats do próprio disparo — incluindo errorsByType, que agrupa as falhas por causa. Para o detalhe contato a contato:
Checklist