WhatsApp API Web Service: Como Funciona, Integrar e Evitar Erros em 2026

📌 Resposta direta

O WhatsApp API web service é uma API REST da Meta que permite enviar e receber mensagens programaticamente. O envio é feito via POST nos servidores da Meta. O recebimento funciona por webhook — a Meta notifica seu servidor a cada evento. Exige número dedicado, token de acesso via Meta for Developers e, para mensagens fora da janela de 24h, templates aprovados.

Você chegou aqui com uma dúvida técnica objetiva: como o WhatsApp funciona como web service?

Antes de escrever qualquer linha de código, você quer entender a arquitetura, endpoints, webhooks, janelas de sessão, tipos de mensagem e onde as integrações costumam quebrar.

A boa notícia é que a WhatsApp Business Platform expõe uma API REST bem documentada.

A má notícia é que ela tem comportamentos que fogem do padrão de uma API convencional request-response, e quem descobre isso no meio da integração perde dias de trabalho.

Depois de apoiar muitas implementações de API oficial no Brasil, a Chatsac mapeou os pontos de travamento mais comuns (veja também nosso guia de integração) da configuração de webhook até os erros de código que aparecem em produção.

Este guia cobre a arquitetura real, o passo a passo técnico e o cálculo que a maioria das equipes faz antes de decidir entre construir do zero ou usar uma plataforma pronta.

Tópicos

WhatsApp API web service: arquitetura real antes de escrever uma linha de código

A Cloud API do WhatsApp é uma API REST hospedada pela Meta. Você não precisa gerenciar nenhum servidor para enviar mensagens, basta fazer um POST para o endpoint da Meta com seu token de acesso.


🔗 Endpoint de envio — Cloud API


POST https://graph.facebook.com/v19.0/{phone-number-id}/messages

{phone-number-id}
Authorization: Bearer TOKEN
Content-Type: application/json

Mas há uma diferença crítica em relação a APIs convencionais: o recebimento de mensagens não funciona por polling. Funciona por webhook.

Na prática, o fluxo é bidirecional assimétrico:

  • Envio: você faz POST https://graph.facebook.com/v19.0/{phone-number-id}/messages
  • Recebimento: a Meta faz POST no seu servidor a cada evento — mensagem recebida, status de entrega, erro de envio
Diagrama do fluxo bidirecional da WhatsApp Cloud API: envio de mensagens 
via POST REST pelo desenvolvedor e recebimento de eventos via webhook 
pela Meta — arquitetura assimétrica explicada

Se o seu servidor não responder 200 OK em até 20 segundos, a Meta tenta reenviar com backoff exponencial por até 7 dias.

Isso significa que sua URL de webhook precisa ser estável, com SSL válido e tempo de resposta rápido, caso contrário, você processa eventos duplicados ou fora de ordem.

A Cloud API do WhatsApp é uma API REST hospedada pela Meta. Se você ainda está avaliando se a WhatsApp Business API é o caminho certo para o seu negócio, temos um guia completo sobre isso.

REST + Webhooks: por que é diferente de uma API request-response comum

Em APIs convencionais, você pergunta e o servidor responde na mesma conexão HTTP. No WhatsApp, você envia por uma conexão e recebe por outra, iniciada pelo servidor da Meta. Isso exige que sua infraestrutura:

  • Exponha um endpoint público com SSL válido (HTTP sem TLS é rejeitado pela Meta)
  • Processe payloads JSON de forma idempotente — o mesmo evento pode chegar mais de uma vez
  • Retorne 200 OK imediatamente e processe o evento de forma assíncrona em background

Ignorar qualquer um desses três pontos é a causa raiz de 80% dos problemas que vemos em integrações novas.

Os 4 tipos de mensagem e como afetam o billing

A Meta categoriza cada mensagem em uma das quatro categorias abaixo. Cada uma tem regras de janela e custo diferentes, e confundir as categorias é a causa direta do erro 131047 em produção:


Categoria

Quando usar

Janela de envio

Template obrigatório?
Service
Resposta a mensagem iniciada pelo usuário

24h após última msg do contato

❌ Não
Utility
Confirmações, atualizações, alertas transacionais

Qualquer momento

✅ Sim
Authentication
OTP, verificação em 2 etapas

Qualquer momento

✅ Sim
Marketing Promoções, campanhas, newsletters Qualquer momento ✅ Sim

Custos por conversa (Brasil, março 2026):

Categoria Custo por conversa (USD) Observação
Service $0.0300 1.000 conversas grátis/mês
Utility $0.0080 Grátis dentro da janela de 24h
Authentication $0.0315 Valores variam por país
Marketing $0.0625 Categoria mais cara — use com estratégia

Fonte: Meta WhatsApp Pricing (valores Brasil, mar/2026). Preços podem variar.

Mensagens fora da janela de 24h obrigatoriamente usam templates aprovados na Meta Business Manager. Tentar enviar texto livre fora da janela retorna erro imediatamente.

Pré-requisitos técnicos e de conta antes de ativar o endpoint

A maioria dos atrasos em integração não acontece no código — acontece na burocracia da Meta. Antes de qualquer chamada à API, você precisa ter:

  • Conta no Meta Business Manager verificada com CNPJ
  • Número de telefone dedicado — não pode estar ativo no WhatsApp pessoal ou Business App (exceto com o recurso Coexistence, detalhado abaixo)
  • App criado no Meta for Developers com as permissões whatsapp_business_messaging e whatsapp_business_management
  • Nome de exibição do número aprovado pela Meta

Meta Business Manager, número dedicado e verificação empresarial

A verificação empresarial na Meta pode levar de 2 a 10 dias úteis dependendo do CNPJ e dos documentos enviados. O ponto de travamento mais comum é o nome de exibição do número: ele precisa ser consistente com o nome da empresa verificada.

Nomes genéricos como “Atendimento” ou “Suporte” são frequentemente reprovados na primeira tentativa.

Outro erro comum: usar um número que já teve histórico no WhatsApp pessoal.

A Meta rastreia o histórico do número e pode exigir que ele fique inativo por um período antes de ser registrado na API.

Se você ainda está na etapa de configuração inicial da conta, preparamos um passo a passo detalhado sobre como ativar a API oficial do WhatsApp — incluindo os documentos exigidos e os erros mais comuns na verificação empresarial.

Cloud API vs BSP: qual arquitetura escolher

Com a Cloud API direta, você se autentica com um token do Meta for Developers e faz chamadas diretamente nos servidores da Meta — sem intermediário. Você gerencia token, webhook, logs e atualizações de versão da API.

Com um BSP (Business Solution Provider) como a Chatsac, a API já está pré-configurada, os webhooks gerenciados, e você acessa tudo por uma interface com CRM, multiusuário e automação integrados.

A escolha entre os dois modelos costuma depender de um único fator: se sua equipe tem capacidade e interesse em manter infraestrutura de API indefinidamente — não apenas na fase de build.

💡 Coexistence — recurso lançado em 2025

A Meta lançou o recurso Coexistence que permite usar a API oficial e o WhatsApp Business App no mesmo número simultaneamente. Isso eliminou o maior obstáculo de migração para empresas que não queriam perder o acesso pelo celular durante a transição.

Passo a passo da integração: da credencial ao primeiro webhook

Com os pré-requisitos resolvidos, a integração técnica segue três etapas principais.

O erro mais comum aqui é tentar testar em produção antes de validar em sandbox, o que contamina o histórico de qualidade do número e pode resultar em limite de envio reduzido pela Meta.

1. Gerar token via System User, configurar App e registrar número

No Meta for Developers, crie um App do tipo Business, adicione o produto WhatsApp e associe seu número ao App.

Para o token de acesso, não use o token de usuário gerado automaticamente no painel — ele expira em 60 dias e é a causa do erro 190 em produção.

O caminho correto é:

  1. No Meta Business Manager, acesse Configurações → Usuários do sistema
  2. Crie um System User com função de administrador
  3. Atribua o App e o número ao System User
  4. Gere um token de acesso sem expiração para esse System User

Esse token nunca expira a menos que seja revogado manualmente — o que elimina a principal causa de interrupção em produção.

2. Configurar Webhook URL, Verify Token e assinar eventos

Na aba Webhooks do seu App no Meta for Developers, informe sua URL pública e um verify_token de sua escolha (qualquer string segura). A Meta fará um GET na sua URL com três parâmetros:

texthub.mode=subscribe
hub.verify_token=SEU_TOKEN
hub.challenge=VALOR_ALEATORIO

Seu servidor deve verificar se o hub.verify_token bate com o seu e retornar exatamente o valor de hub.challenge com status 200.


🔧 Webhook Verification — Node.js

app.get('/webhook', (req, res) => {
  const mode      = req.query['hub.mode'];
  const token     = req.query['hub.verify_token'];
  const challenge = req.query['hub.challenge'];

  if (mode === 'subscribe' && token === process.env.VERIFY_TOKEN) {
    res.status(200).send(challenge);
  } else {
    res.sendStatus(403);
  }
});

hub.mode
hub.verify_token
hub.challenge
process.env.VERIFY_TOKEN


ℹ️ Armazene o VERIFY_TOKEN
como variável de ambiente — nunca no código-fonte.
Retorne exatamente o valor de hub.challenge
com status 200 para confirmar o endpoint.

Após a verificação, assine os campos messages e message_status_updates para receber eventos de mensagens recebidas e atualizações de status de entrega.

Fluxograma de 3 etapas da verificação de webhook do WhatsApp: Meta faz 
GET no endpoint, servidor valida o hub.verify_token e retorna 
hub.challenge com status 200 para confirmar o endpoint

3. Sandbox e testes sem impactar produção

O Meta for Developers fornece um número de teste gratuito para validar a integração antes de usar um número real.

Esse número tem limitações, só envia para números pré-autorizados no painel, mas é suficiente para validar o fluxo completo de envio e recebimento via webhook.

Para testar webhooks localmente sem expor sua máquina, use ngrok ou Cloudflare Tunnel para criar uma URL pública temporária que aponta para seu localhost.

✅ Checklist de integração — marque conforme avança

Erros comuns na integração e como resolver cada um

Esses são os erros que mais aparecem nas primeiras semanas após o go-live.

A maioria tem causa conhecida e solução objetiva, o problema é que a documentação da Meta descreve o código do erro, mas não explica o contexto real em que ele ocorre.

Erros de código: 190, 131026 e 131047

Os três erros mais frequentes em integrações novas têm causas distintas e soluções diretas:


Código

Causa mais comum

Solução

Como prevenir
190
Token de usuário expirado (60 dias)

Migrar para token de System User

Usar System User desde o início
131026
Template não encontrado ou em revisão

Verificar nome exato no Business Manager

Aguardar aprovação antes de usar em produção
131047
Mensagem livre fora da janela de 24h

Usar template Utility ou Marketing

Verificar timestamp da última msg antes de enviar
100
Campo obrigatório ausente no payload

Validar payload contra documentação oficial

Adicionar validação de schema antes do POST
368 Muitas msgs com feedback negativo Revisar conteúdo e aguardar desbloqueio Monitorar taxa de bloqueio no Business Manager

Webhook não recebe mensagens: as 3 causas mais comuns

Quando o webhook está configurado mas os eventos não chegam, o problema geralmente é um desses três:

  • SSL inválido ou autoassinado: a Meta rejeita URLs com certificados que não são de uma CA reconhecida. Certificate Let’s Encrypt resolve, mas precisa estar configurado corretamente no servidor
  • Timeout acima de 20 segundos: se seu endpoint demora mais de 20s para responder, a Meta considera a entrega como falha. A solução é retornar 200 imediatamente e processar o payload em uma fila assíncrona (Redis, SQS, etc.)
  • URL não acessível externamente: comum em ambientes de desenvolvimento. O endpoint precisa ser acessível pela internet pública — não funciona em localhost nem em redes privadas sem tunelamento
🔧 Sua integração trava em algum desses pontos? Nosso time técnico já resolveu esses erros em mais de 200 implementações. Travou na integração? Nosso time técnico resolve em 15 min →

Boas práticas de segurança, logs e auditoria em produção

Uma integração que funciona no go-live pode virar um problema de segurança seis meses depois se não tiver governança, esses são os três pontos que mais negligenciamos em revisões de implementações existentes.

Rotação de tokens, credenciais e proteção do webhook

  • Nunca armazene o token de acesso no código-fonte — use variáveis de ambiente ou um serviço de secrets como AWS Secrets Manager ou HashiCorp Vault
  • Valide a assinatura do webhook: a Meta assina cada payload com HMAC-SHA256 usando o App Secret. Valide o header X-Hub-Signature-256 antes de processar qualquer evento — isso evita que payloads falsos sejam injetados no seu sistema
  • Restrinja o IP do webhook se possível: a Meta publica os ranges de IP que usa para enviar webhooks — adicione uma allowlist no seu firewall

O que logar, por quanto tempo guardar e como auditar (LGPD)

Toda mensagem trafegada pela API contém dados pessoais de usuários: nome, número de telefone, conteúdo da conversa.

Pela LGPD, você precisa ter uma política clara de retenção e ser capaz de atender solicitações de exclusão de dados.

Na prática, isso significa:

  • Logar eventos de webhook com timestamp, tipo de evento e ID da mensagem — sem logar o conteúdo completo da mensagem em sistemas de log de terceiros
  • Definir um período de retenção (recomendamos 90 dias para logs operacionais)
  • Ter um mecanismo de exclusão de dados por número de telefone para atender requisições de titulares
⚠️ Atenção: APIs não oficiais (Evolution API, Waha, Uazapi, Z-API) funcionam via automação do WhatsApp Web e violam diretamente os Termos de Serviço da Meta. Desde 2025, a Meta intensificou os banimentos em escala — incluindo números com histórico de anos. Se você ou seu cliente está avaliando essas opções para reduzir custo, leia antes:

Build vs Buy: o cálculo que equipes técnicas fazem antes de decidir

Chegar até aqui significa que você entende a arquitetura. A pergunta real agora é: vale construir e manter essa integração internamente, ou usar uma plataforma que já fez isso?

Não existe resposta universal, existe o cálculo certo para o seu contexto.

Custo real de manter integração própria

A fase de build é a parte mais visível, o que a maioria das equipes subestima é o custo de manutenção contínua, que existe independentemente de o sistema estar funcionando bem:

  • Atualizações de versão da API: a Meta depreca versões da Graph API periodicamente. Cada deprecação exige revisão e atualização do código em produção
  • Gestão de token: mesmo com System User, tokens precisam de monitoramento. Uma rotação mal executada derruba o envio de mensagens sem alerta visível
  • Erros silenciosos de webhook: payloads que chegam fora de ordem ou duplicados precisam de lógica de idempotência — que precisa ser testada e mantida
  • Mudanças nas políticas da Meta: regras de template, janelas de billing e limites de envio mudam com frequência. Alguém precisa monitorar e adaptar

Na prática, manter uma integração própria saudável exige entre 4 a 8 horas mensais de atenção técnica, mesmo sem nenhum incidente.

Quando a plataforma ganha do código próprio — e quando não ganha

Uma plataforma como a Chatsac faz sentido quando o objetivo é operar WhatsApp em escala com o menor custo total, não apenas o menor custo de implementação inicial:

  • ✅ API oficial pré-homologada pela Meta — sem processo de verificação independente
  • ✅ Webhooks gerenciados, com fila de reprocessamento automático
  • CRM multiusuário, automação e relatórios integrados no mesmo painel
  • ✅ Atualizações de versão da API feitas pela plataforma, transparentes para o cliente
  • ✅ Suporte técnico especializado em WhatsApp Business Platform

A integração própria ainda ganha quando você precisa de customização profunda que uma plataforma não permite, como integração com sistemas legados muito específicos, lógicas de roteamento proprietárias ou requisitos de compliance que exigem que os dados nunca saiam da sua infraestrutura.

Depois de muitas implementações, o padrão que identificamos é: equipes que escolhem build geralmente migram para plataforma em 12 a 18 meses, quando o custo de manutenção começa a superar o custo da plataforma.

⚡ Agende uma demo técnica

Está avaliando build vs buy?
Traga seu cenário técnico — mostramos o delta de custo em 15 min.

API oficial + CRM + multiusuário + automação — tudo em um painel.
Sem servidor próprio. Sem gestão de token. Sem surpresa de billing.

Agendar demo técnica com a Chatsac →

Limites de envio por tier (messaging limits)

Tier Conversas / 24h Como avançar
Tier 1 250 Número recém-registrado (padrão)
Tier 2 1.000 Iniciar 500 conversas em 7 dias
Tier 3 10.000 Iniciar 2.000 conversas em 7 dias
Tier 4 100.000 Iniciar 10.000 conversas em 7 dias
Ilimitado Sem limite Iniciar 100.000 conversas em 7 dias

A progressão é automática se a qualidade do número estiver “Connected” (verde). Rebaixamento ocorre se a qualidade cair para “Flagged” ou “Restricted”.

Perguntas frequentes sobre WhatsApp API web service

WhatsApp API é REST ou SOAP?

A WhatsApp Business Platform usa exclusivamente REST.

As chamadas são feitas via HTTP com payloads em JSON, não há suporte a SOAP, XML-RPC ou GraphQL direto. A documentação oficial está disponível em developers.facebook.com (confira nosso guia prático da API Meta WhatsApp).

Preciso de servidor próprio para usar a Cloud API?

Não para o envio de mensagens, você faz chamadas diretamente nos servidores da Meta. Mas você precisa de um servidor próprio com URL pública e SSL para receber eventos via webhook.

Sem webhook, você consegue enviar mensagens mas não receber nem monitorar status de entrega.

Qual a diferença entre webhook e polling no WhatsApp?

Polling significa que seu sistema consulta periodicamente a API para verificar se há novas mensagens.

A WhatsApp Cloud API não suporta polling, ela usa exclusivamente webhooks, onde a Meta notifica seu servidor em tempo real a cada evento.

Tentar simular polling com chamadas repetidas resulta em rate limiting — veja os 8 riscos da WhatsApp Web API.

Como testar a API sem um número de produção?

O Meta for Developers fornece um número de teste gratuito que permite enviar mensagens para até 5 números pré-autorizados no painel.

Para testar webhooks localmente, use ngrok ou Cloudflare Tunnel para expor seu localhost com uma URL pública temporária.

Token do WhatsApp expira? Com que frequência renovar?

Depende do tipo de token. Tokens gerados diretamente no painel do Meta for Developers expiram em 60 dias.

Tokens gerados via System User no Meta Business Manager não expiram e são os recomendados para ambientes de produção.

Configure alertas de monitoramento mesmo assim, pois tokens podem ser revogados por mudanças de permissão na conta.

Quantas mensagens por segundo a API suporta?

O limite padrão da Cloud API é de 80 mensagens por segundo por número de telefone.

Para volumes maiores, é possível solicitar aumento de limite diretamente com a Meta, mas exige histórico de qualidade (baixa taxa de bloqueio e spam) e verificação adicional da conta.

Preciso de BSP ou posso integrar direto pela Meta?

Você pode integrar diretamente pela Meta sem BSP é o modelo Cloud API.

O BSP ou ISV faz sentido quando você quer uma camada de produto sobre a API: interface de atendimento, CRM, multiusuário, automação e suporte especializado inclusos.

Para integrações técnicas puras sem interface de operação, a Cloud API direta é suficiente.

0 0 votos
Classificação do artigo
Inscrever-se
Notificar de
guest
0 Comentários
mais recentes
mais antigos Mais votado
Feedbacks embutidos
Ver todos os comentários