Skip to main content

Visão geral

A API pública de transmissão permite que sistemas externos acessem os números do WhatsApp Business da sua organização. Cada solicitação é vinculada a uma organização pela chave de API, e todos os números WABA utilizados devem pertencer a essa organização. Existem duas famílias de endpoints em /broadcast/public:
  • Endpoints v2: usam a chave de autenticação da organização e são os endpoints documentados nesta página.
  • Endpoints legados: continuam usando a chave WABA anterior por número e permanecem inalterados. Consulte Endpoints legados.

Configuração base

Antes de começar

Mantenha a chave no servidor. Ela permite enviar mensagens de todos os números do WhatsApp da sua organização. Armazene-a em variáveis de ambiente ou em um gerenciador de segredos; nunca a inclua em código web ou móvel.
Comece aqui. Consulte Obter números de telefone para identificar os números WABA disponíveis e Obter modelos para confirmar que o modelo foi aprovado antes do envio.

Fluxo de autenticação

1

Usar a chave de autenticação nos cabeçalhos da solicitação

Todos os endpoints de transmissão exigem a chave de autenticação gerada no cabeçalho x-api-key, disponível em Workspace → Staff.

Armazene sua chave de API com segurança. Evite regenerá-la desnecessariamente.
Encontre a chave de autenticação da sua organização na seção Staff

O que a chave resolve

A chave identifica sua organização. Em endpoints que usam fromPhoneNumber ou phone_number, a API verifica adicionalmente se o número está registrado nessa organização e se seu registro WABA está completo – waba_id, phone_number_id, phone_number e access_token devem estar todos presentes. Uma incompatibilidade retorna 401, não 403.

Índice de endpoints


Obter números de telefone

Lista todos os números do WhatsApp Business registrados na sua organização. Use o phone_number retornado como fromPhoneNumber nos endpoints de envio.

Endpoint

Solicitação

Resposta

200 — Números de telefone obtidos com sucesso
Uma matriz data vazia significa que a chave é válida, mas nenhum número WABA está conectado à organização ainda. Esse é um estado de configuração, não um erro.

Obter modelos

Retorna os modelos aprovados do WhatsApp disponíveis para um de seus números. Consulte este endpoint antes de uma transmissão – enviar um nome de modelo não aprovado ou com erro ortográfico falha em toda a solicitação.

Endpoint

Parâmetros de consulta

Solicitação

Resposta

200 — Modelos obtidos com sucesso
Conte os espaços reservados {{n}} no corpo - é exatamente quantos valores a matriz templateParams de cada destinatário deve fornecer.

Enviar modelo de transmissão

Envia um modelo aprovado para uma lista de destinatários. O comportamento muda com o tamanho da lista: até 1.000 destinatários a transmissão é enfileirada de forma síncrona; acima disso, a lista é dividida em partes e processado como um trabalho em segundo plano cujo status pode ser consultado.

Endpoint

Cabeçalhos

Corpo

Objeto destinatário

Solicitação

Neste exemplo, o primeiro destinatário obtém seus próprios valores e o segundo volta para globalTemplateParams.

Respostas

200 — Na fila (1.000 destinatários ou menos)
202 — Aceito para processamento em segundo plano (mais de 1.000 destinatários)
Guarde o jobId — é a única forma de verificar como terminou a transmissão. Consulte Obter status da transmissão usando esse identificador. 400 — Limite de destinatários excedido
400 — Modelo não aprovado
Destinatários duplicados são rejeitados, não mesclados. Se o mesmo par countryCode + toPhoneNumber aparecer duas vezes, toda a solicitação falhará com um 400 nomeando o índice da duplicata. Desduplicar sua lista antes de enviar.

Enviar mensagem de formato livre

Envia uma única mensagem para um destinatário. Todos os oito tipos de conteúdo compartilham este endpoint — o campo type decide quais outros campos são obrigatórios.

Endpoint

Campos comuns

Campos específicos do tipo

A extensão é lida a partir do caminho do URL, não do arquivo. Um PNG real servido a partir de um URL que termina em .webp é rejeitado para image, e um URL sem extensão é rejeitado para cada tipo de mídia. As strings de consulta são ignoradas, então …/photo.png?v=2 está bem.

Texto

Imagem

Documento

Áudio

Vídeo

Adesivo

Localização

latitude e longitude devem ser números JSON, não strings. A latitude aceita −90 a 90, longitude −180 a 180.

Interativo — botões

Até 3 botões de resposta. Mais de três são rejeitados.

Interativo — lista

Até 10 linhas contadas em todas as seções combinadas, não por seção.

Resposta

200 — mesmo formato para todos os oito tipos

Obter status da transmissão

Retorna o progresso de um trabalho de transmissão de grande porte — aqueles que retornaram 202 e um jobId. Transmissões de 1.000 destinatários ou menos não criam um trabalho e não têm status para consultar.

Endpoint

Solicitação

Respostas

200 — registro de trabalho mais um resumo do progresso do bloco
404 — Trabalho de transmissão não encontrado 401 — O trabalho pertence a uma organização diferente Um trabalho criado por outra organização retorna 401 em vez de 404 — os IDs de trabalho não são enumeráveis entre organizações.

Verificação de integridade

Confirma que o serviço está ativo e lista as rotas que ele expõe atualmente. Nenhuma chave de API necessária.

Endpoint


Regras de validação

Eles são executados antes que qualquer coisa chegue ao WhatsApp, portanto, uma rejeição aqui não custa cota de mensagens. Cada falha retorna 400 com message: "Validation error" e um motivo específico.

Limites de taxa

Os limites são contados em uma janela fixa de 60 segundos. A maioria tem como escopo sua chave de API e o número de telefone na solicitação, portanto, dois números de envio diferentes não competem pelo mesmo orçamento.

Excedendo um limite

A mensagem informa exatamente quantos segundos restam na janela. Espere tanto tempo em vez de tentar novamente imediatamente – uma nova tentativa imediata não consome nada, mas retorna o mesmo erro.

Tratamento de erros

Cada erro usa o mesmo envelope:

Códigos de status

Os quatro erros 401

Todos os quatro retornam 401, mas significam coisas diferentes:
Política de nova tentativa. Tente novamente 500 e 503 com espera exponencial. Nunca tente novamente 400 ou 401 — a mesma solicitação falhará de forma idêntica. Em 429, aguarde o intervalo dos nomes das respostas. Sempre envie um Idempotency-Key nas solicitações que você pretende tentar novamente.

Endpoints legados

Autenticação diferente. Esses três são anteriores à v2 e ainda usam a chave WABA por número mais antiga, não a sua organização auth_key. Eles permanecem inalterados e com suporte, mas novas integrações devem usar os endpoints v2 acima.
Gera uma chave de API herdada para um número de telefone. Leva phoneNumber, não um ID de organização.
Envia uma mensagem modelo. Os campos do destinatário ficam no nível superior, e não em uma matriz data.
Envio de modelos em massa, limitado a 1.000 destinatários — não há agrupamento nem ID de trabalho. Exceder o limite retorna 400 no corpo da resposta com uma linha de status HTTP 200, ao contrário do endpoint v2 que é lançado.