A primeira decisão é sobre o número e quem será dono dos ativos. “Ativar a API” pode significar fluxos diferentes — e um deles nem exige uma nova conta na Meta.
O número já está em uso? Não exclua a conta do WhatsApp para “liberar o número” antes de escolher entre coexistência e migração. A exclusão pode afetar o histórico e a operação. Números em outro provedor precisam de um plano de migração. Requisitos oficiais do número ↗
01
Prepare a reunião com o cliente.
Tenha o responsável da empresa presente para login, códigos, permissões e dados comerciais. Separe tempo para a configuração; análises da Meta e migrações podem continuar depois da reunião.
O que a empresa precisa trazer
O que o implementador prepara
Entenda os ativos · o cliente mantém a propriedade
Portfólio empresarial
A empresa na Meta. Agrupa pessoas, apps e contas.
Conta WhatsApp · WABA
A conta comercial da plataforma. Tem configurações e modelos de mensagem.
Número de telefone
A identidade que os usuários contatam. Tem um Phone Number ID próprio.
Os nomes dos menus podem aparecer em português ou inglês. Este guia mostra os rótulos principais em ambos os idiomas. A ordem de algumas telas depende da conta e da versão do painel.
02
Ativação manual em 10 etapas.
Use esta sequência para uma empresa configurar seus próprios ativos. Se você vai cadastrar clientes no app da sua plataforma, comece pelo Embedded Signup.
Decida antes de criar a WABA. A documentação atual informa que contas WhatsApp criadas pelo app de desenvolvedor não podem ser selecionadas diretamente no Embedded Signup. Se esse é seu destino, prepare o fluxo de plataforma primeiro. Consultar a limitação ↗
Fase 1 · Empresa e ativos
01
Entre no portfólio da empresa
Empresa
Meta Business Suite → Configurações / Settings → portfólio empresarial
Abra as Configurações da empresa. Confira o nome no seletor de portfólios; não avance no portfólio de outro cliente.
Selecione o portfólio existente ou crie um para a empresa, com seus dados reais. Evite duplicar uma estrutura que ela já usa.
Em Pessoas / People, confira quem tem controle administrativo. Convide o implementador com o acesso necessário, usando a própria conta dele. O dono não precisa compartilhar sua senha.
Em Informações da empresa / Business info, registre o ID do portfólio. Confira pendências na Central de Segurança ou no início do suporte empresarial.
App → Use cases → Customize → Quickstart → Start using the API → API Setup
Em Configuração da API / API Setup, selecione ou crie a conta WhatsApp Business da empresa. Confira se ela pertence ao portfólio correto.
Anote o WhatsApp Business Account ID / WABA ID. Ele é diferente do ID do app e do ID do número.
Opcionalmente, faça o teste oferecido pelo painel: gere o token temporário, selecione o número de teste em From, adicione e verifique seu telefone em To e envie a mensagem de exemplo.
Responda pelo seu celular. Esse teste ajuda a conhecer a API; as próximas etapas devem usar a WABA e o número reais de produção.
Não confunda os ambientes. O número de teste da Meta já vem registrado e tem destinatários restritos. Conseguir enviar por ele não prova que o número da empresa está ativo.
App → API Setup → Add phone number · ou WhatsApp Manager → Phone numbers
Escolha Adicionar número / Add phone number. Preencha o perfil comercial, a categoria e o nome de exibição coerentes com o negócio e seu site.
Informe país, DDD e número. Se ele já está no Business app ou em outro provedor, retorne ao fluxo correspondente antes de alterá-lo.
Escolha SMS ou Ligação / Voice call. O responsável recebe o código e o informa na Meta. Em linha fixa com URA, prepare o atendimento da ligação e confira bloqueios.
Após a validação, selecione o número real no painel e anote seu Phone Number ID, além do telefone com DDI. Confira também o estado do nome de exibição.
Código aceito não significa API ativa. Essa etapa comprova o controle do telefone. O registro na Cloud API é uma etapa separada, descrita no passo 7. O nome de exibição também tem sua própria análise.
Configurações da empresa → Usuários / Users → Usuários do sistema / System users
Crie um usuário do sistema dedicado à integração, com nome reconhecível. Em Atribuir ativos / Assign assets, selecione o app e a conta WhatsApp da empresa.
Conceda as capacidades necessárias nesses ativos. O guia geral da Meta usa Manage app e Manage WhatsApp Business accounts; restrinja a seleção aos ativos desta integração. Permissão no token e acesso ao ativo precisam existir juntos.
Clique em Gerar token / Generate token, selecione o app correto e, para uma credencial persistente de servidor, escolha Nunca / Never se essa opção estiver disponível. Se houver expiração, registre a data e programe a renovação.
Selecione whatsapp_business_messaging e whatsapp_business_management. Acrescente business_management somente se o fluxo realmente precisar acessar ou administrar o portfólio pela API.
Salve o token diretamente no cofre e nas variáveis secretas do servidor. Valide app, permissões, validade e acesso ao número com uma consulta autenticada. Não coloque tokens em prints, chats, GitHub ou código do navegador.
Por que não usar o token do Quickstart? Ele é temporário, normalmente de 24 horas. O token de usuário do sistema é apropriado para o servidor e pode ter 60 dias ou não ter expiração programada. “Nunca” ainda permite revogação ou perda de acesso; mantenha um responsável e um procedimento de troca.
App Meta → Configurações do app / App settings → Básico / Basic → App Secret
Localize a Chave secreta do app / App Secret. A Meta pode pedir nova autenticação. Guarde-a no cofre; o backend a usa para verificar a origem dos eventos.
Gere um Verify Token aleatório para a validação inicial do webhook. Este valor é definido por você e deve ser idêntico na Meta e no servidor.
Configure o backend com o token de acesso, App Secret, Verify Token, WABA ID e Phone Number ID corretos. Os nomes das variáveis dependem da implementação.
Publique o endpoint HTTPS de produção, acessível à Meta, com tratamento de GET e POST. Na Vercel, aplique os segredos ao ambiente de produção e faça uma nova implantação após alterar variáveis que dependam dela.
Verifique também banco, fila, serviço de IA e autenticação entre componentes. Um webhook não é apenas uma URL: ele precisa conseguir processar a mensagem e enviar a resposta.
Quatro coisas diferentes: access token autoriza chamadas à API; App Secret verifica assinaturas; Verify Token valida o endereço do webhook; PIN protege o registro do telefone. Veja a tabela de credenciais.
Com a posse do número já verificada, use a API de registro para o Phone Number ID real.
Defina um PIN de verificação em duas etapas com 6 dígitos e armazene-o no cofre. Se o número já tiver um PIN, utilize o existente ou siga a recuperação oficial. Esse PIN não é o código recebido por SMS.
Após o registro, consulte o status ou abra WhatsApp Manager → Account tools → Phone numbers. O resultado esperado para operar é CONNECTED / Conectado.
Referência técnica: registrar e conferir
Exemplos de requisição para o implementador, sem credenciais reais. Use uma versão suportada da Graph API; os exemplos atuais da documentação usam v26.0. Envie o token pelo cabeçalho, nunca pela URL.
Registro · somente no fluxo que exige registro manual
GET https://graph.facebook.com/v26.0/PHONE_NUMBER_ID?fields=status
Authorization: Bearer ACCESS_TOKEN
Resultado esperado: "status": "CONNECTED"
Uma resposta de sucesso no registro deve ser seguida da consulta do estado. Se ocorrer erro, leia-o antes de repetir: a Meta limita tentativas de registro.
Exceção: coexistência. O fluxo de onboarding do WhatsApp Business app já registra o número. Nesse caminho, não repita /register. Uma migração também deve seguir sua documentação específica.
App → Use cases → Customize → Configuration · ou WhatsApp → Configuration
Em Webhook, informe a Callback URL do backend de produção e o Verify Token configurado no servidor. Clique em Verify and save / Verificar e salvar.
A Meta faz um GET. O servidor deve conferir o token e devolver o valor de hub.challenge com status 200. Uma página HTML ou JSON contendo o desafio não substitui a resposta esperada.
Na lista de campos, assine messages. Esse campo entrega mensagens recebidas e atualizações de status das mensagens enviadas.
Confirme que o app também está inscrito na WABA real. A URL validada e a seleção de campos não substituem a inscrição do app na conta WhatsApp. No onboarding de clientes, faça isso para cada WABA.
Envie um teste pelo painel e confira o recebimento. Depois faça o teste real do passo 10: a simulação do painel não comprova todo o fluxo do número.
Referência técnica: inscrição e validação segura
POST https://graph.facebook.com/v26.0/WABA_ID/subscribed_apps
Authorization: Bearer ACCESS_TOKEN
GET https://graph.facebook.com/v26.0/WABA_ID/subscribed_apps
Authorization: Bearer ACCESS_TOKEN
Confirme o app esperado na consulta. Use um token com acesso à WABA e permissão de gerenciamento; no Embedded Signup, siga as credenciais do fluxo de cliente.
Nos POSTs, valide X-Hub-Signature-256 com HMAC-SHA256 sobre os bytes originais do corpo e o App Secret correspondente. Rejeite assinaturas inválidas. O Verify Token não autentica esses POSTs.
Recomendação de implementação: aceite e persista o evento de forma durável antes do 200, processe a IA fora da requisição de entrada e deduplique pelo ID da mensagem e número. Falhas devem poder ser recuperadas sem respostas duplicadas. A Meta pode repetir eventos por até 7 dias quando não recebe 200.
No WhatsApp Manager ou na seção de pagamento do API Setup, confira a WABA e configure o método de pagamento aplicável. Combine quem paga Meta, hospedagem, IA e eventual provedor.
Confira o status do nome de exibição, os limites da conta e as pendências de verificação empresarial. Envie documentos da própria empresa quando solicitados.
No app, conclua os requisitos de publicação que o painel mostrar e configure Live / Ao vivo para produção. Verificação empresarial, análise de nome, publicação do app e App Review são processos distintos.
Se o app acessará ativos de outras empresas, conclua o App Review e obtenha acesso avançado às permissões necessárias. Apenas mudar o app para Live não concede esse acesso. Use o fluxo de plataforma.
Prepare modelos aprovados quando houver mensagens iniciadas pela empresa ou fora da janela de atendimento. Defina como obter consentimento, respeitar pedidos para parar o contato e oferecer acesso claro a atendimento humano. Confira a política de mensagens.
Janela de 24 horas. Uma mensagem do usuário abre ou renova a janela de atendimento. Dentro dela, respostas de serviço são gratuitas na Meta; mensagens de utilidade dentro da janela também têm gratuidade conforme as regras atuais. Fora dela, use um modelo aprovado aplicável. A cobrança depende de categoria e mercado de destino; consulte a tabela vigente, sem fixar um preço único por conversa.
Verificar a empresa não é contratar Meta Verified nem obter o selo de Conta Comercial Oficial. Não prometa selo ou aprovação imediata ao cliente.
De outro telefone com WhatsApp, envie uma mensagem nova ao número real da empresa, por exemplo: “Olá, teste de ativação”. Para uma Eve privada, cadastre esse remetente antes do teste.
Confirme no backend a entrada com o Phone Number ID e remetente corretos. Verifique que fila, armazenamento e agente processaram o evento.
Confira o envio da resposta pela Graph API e acompanhe seu status. A API aceitar o envio não prova que a mensagem foi entregue.
Peça ao responsável para confirmar visualmente o recebimento no WhatsApp. Envie uma segunda pergunta e verifique a continuidade da conversa.
Teste as regras da solução: remetente sem acesso, encaminhamento ao negócio correto, intervenção humana e ausência de respostas duplicadas. Para automações proativas, teste também um modelo aprovado com consentimento.
Critério de sucesso: a mensagem entra pelo número real, chega ao agente correto e a resposta aparece no celular. HTTP 200 no webhook, isoladamente, não encerra a ativação.
Anote os identificadores na ficha técnica do cliente. Guarde os segredos somente no cofre e no servidor autorizado. Este HTML não solicita nem armazena credenciais.
Item
Onde encontrar / finalidade
Como tratar
Business Portfolio ID
Configurações → Informações da empresa. Identifica a empresa na Meta.
ID de referência
App ID
Painel do app. Identifica a aplicação que acessa a API.
ID de referência
WABA ID
API Setup ou conta no WhatsApp Manager. Identifica a conta WhatsApp Business.
ID de referência
Phone Number ID
API Setup, após selecionar o telefone real. Identifica o recurso usado nos endpoints.
ID de referência
Número com DDI
O telefone que as pessoas usam. Formato internacional, por exemplo +55 DDD NÚMERO.
Dado de contato
Access Token
Usuário do sistema no fluxo manual; token de negócio do cliente no Embedded Signup. Autoriza chamadas à API.
Segredo · cofre
App Secret
Configurações básicas do app. Valida assinaturas e participa de operações do servidor.
Segredo · cofre
Verify Token
Gerado pelo implementador. Confere a verificação GET da Callback URL.
Segredo · cofre
PIN de 6 dígitos
Definido no registro ou já existente. Protege a verificação em duas etapas do número.
Segredo · cofre
Código por SMS / voz
Recebido durante a comprovação de posse do número. É temporário e não substitui o PIN.
Usar apenas na etapa
04
Os outros caminhos de ativação.
Caminho B · Preservar o WhatsApp Business app
Coexistência: app e API no mesmo número.
Para empresas elegíveis, a Meta permite conectar o número do WhatsApp Business app à Cloud API mantendo o uso do aplicativo. Isso exige um fluxo de Embedded Signup preparado por um Tech Provider ou Solution Partner.
Confirme a elegibilidade. Atualize o WhatsApp Business app e confira os requisitos atuais com o provedor. Esse fluxo não se aplica diretamente ao WhatsApp Messenger pessoal.
Entre pelo convite do provedor. O cliente abre o Embedded Signup, autentica-se na Meta, seleciona seus ativos e escolhe conectar a conta existente do WhatsApp Business.
Confirme no aplicativo. Siga o fluxo oficial de código e a mensagem da conta oficial Facebook Business Account para conectar à plataforma. A interface pode variar conforme a versão.
Revise o compartilhamento. O dono decide sobre sincronização de contatos e histórico. O backend precisa implementar os eventos específicos; não prometa que todo o histórico ou grupos aparecerão automaticamente.
Conclua a integração no servidor. Troque o código de autorização, configure a inscrição na WABA e os eventos necessários. Não execute novamente o registro do telefone neste fluxo.
Teste os dois lados. Envie uma nova mensagem após o onboarding e teste respostas pelo app e pela API. Confira sincronização, dispositivos vinculados e eventuais mudanças de recursos antes da entrega.
Coexistência não surge ao simplesmente adicionar um telefone em API Setup. O provedor precisa habilitar o fluxo e tratar eventos como smb_message_echoes, além das sincronizações que oferecer.
Embedded Signup: onboarding dentro da sua plataforma.
Esse é o caminho para o cliente autorizar seu app a operar os ativos dele, sem entregar senhas ou copiar tokens manualmente. A empresa continua dona de sua WABA e de seus números.
Preparação da plataforma — feita antes de convidar clientes
Configure seu portfólio e app para atuar como Tech Provider ou no modelo de parceiro aplicável. Complete as verificações solicitadas no onboarding.
Prepare política de privacidade, informações do app e evidências de funcionamento. Submeta as permissões necessárias ao App Review e obtenha acesso avançado antes de cadastrar clientes externos.
Configure Facebook Login for Business, domínios autorizados e o Embedded Signup Builder. Implemente o fluxo atual; confira a versão suportada antes de copiar exemplos antigos.
No servidor, implemente troca do código por token de negócio específico do cliente, armazenamento protegido, registro do telefone quando aplicável e inscrição na WABA. Ative a variante de coexistência se quiser oferecer esse recurso.
Associe cada cliente, WABA e Phone Number ID ao backend correto. Implemente isolamento de dados, revogação de acesso, reconexão e cobrança. Teste em sandbox e depois com uma conversa real autorizada.
Reunião com cada cliente — depois da plataforma pronta
Envie o link do onboarding. O responsável entra com sua própria conta Meta, lê os termos e concede os acessos apresentados.
Ele escolhe ou cria o portfólio e a WABA, informa o nome de exibição e verifica o número, ou segue a variante de coexistência.
Seu backend conclui as operações com os IDs e código retornados. Em um Tech Provider, o cliente adiciona pagamento à WABA; em um Solution Partner, pode haver compartilhamento de linha de crédito.
Confirme o número conectado, os webhooks e a primeira conversa. Entregue ao cliente seus identificadores, responsáveis e instruções de suporte.
Atenção à versão. Na revisão de 13/09/2026, a Meta orienta migrar o Embedded Signup v2 para v4 antes de 08/10/2026. Confira a documentação de versões ao implementar.
Um número Eve já ativo pode atender vários negócios.
Se a empresa só precisa que seus administradores conversem com a Eve por um número compartilhado, ela não precisa ativar sua própria WhatsApp API. O operador cadastra cada remetente, seu papel e o negócio ao qual pode ter acesso.
1. Identificar o contatoRemetente recebido pela Meta: wa_id / from.
2. Consultar a autorizaçãoCadastro controlado de pessoa, empresa e permissões.
3. Encaminhar à Eve certaAgente e dados isolados por negócio.
Um número desconhecido deve passar pelo processo de autorização. Uma mensagem dizendo “sou o dono da empresa X” não concede acesso. Na implementação atual, um remetente pertence a um ambiente de negócio ativo; atender a mesma pessoa em negócios independentes exige um fluxo explícito de seleção autorizado.
Quando cada empresa usa seu próprio número
O roteamento precisa considerar o Phone Number ID de destino e a WABA, além do remetente. Cada destino deve ter suas credenciais, agente, memória e permissões correspondentes.
Nota para quem opera a Eve. O roteador atual foi configurado com um conjunto de credenciais Meta e permite separar negócios por remetente autorizado. Receber vários números ou apps Meta de clientes exige configuração e suporte específicos. Não reutilize a Callback URL existente para uma nova empresa sem preparar e testar esse vínculo.
A arquitetura de roteamento e os controles de acesso acima são orientações da integração Eve; não são etapas executadas automaticamente pela Meta.
06
Quando alguma coisa não funciona.
Comece pelo sintoma e registre horário, ambiente e IDs envolvidos. Ao compartilhar logs, remova tokens, segredos e conteúdo de conversas desnecessário.
O caso de uso WhatsApp ou um ativo não aparece
Confira a conta Meta logada, o portfólio selecionado, seu acesso ao app e à WABA e o tipo/caso de uso do app. Acesso ao portfólio não significa automaticamente permissão em todos os ativos. Antes de criar duplicatas, peça ao dono para conferir a atribuição em Configurações.
Confira DDI, DDD e número; teste se a linha recebe SMS ou chamadas externas. Em ramais e URAs, prepare o encaminhamento para uma pessoa. Respeite o tempo de nova tentativa exibido pela Meta. Repetir pedidos rapidamente pode gerar bloqueio temporário. Se o número já pertence a outra instalação WhatsApp, confirme o fluxo de migração ou coexistência.
O número está verificado, mas continua Pending / Pendente
Separe os estados: posse verificada, registro da API, análise do nome e situação da conta. Consulte status do Phone Number ID. No fluxo manual, execute o registro com o PIN correto após a verificação; na coexistência, confira a conclusão do fluxo. Leia o erro antes de repetir o registro. Se houver análise ou restrição da conta, resolva a pendência correspondente no painel.
Confirme se o servidor usa o token de produção e o app certo. Revise expiração, revogação, permissões e atribuição da WABA ao usuário do sistema. Troque a credencial no cofre e no ambiente correto e atualize a implantação. Se a geração mostrar nenhuma permissão disponível, confira os ativos e o caso de uso antes de gerar outro token.
Confira URL completa, HTTPS válido e ausência de login, proteção de preview ou redirecionamentos no endpoint. O GET deve comparar o Verify Token e devolver hub.challenge com status 200. App Secret e Access Token não são o Verify Token. Olhe os logs do GET no ambiente de produção.
O teste do painel funciona, mas mensagens reais não chegam
Confira o número real contatado, seu Phone Number ID, o campo messages, a inscrição do app na WABA e o modo Live do app. Alguns eventos não são enviados no modo de desenvolvimento. Envie uma nova mensagem após concluir o onboarding. Se nada chegar aos logs, investigue o vínculo Meta; se o evento entrar, siga o processamento interno.
Vercel mostra 503, “Router request failed” ou falha de fila
O evento alcançou o backend, mas a requisição falhou. Abra os detalhes do erro e confira variáveis de produção, Redis/banco, autenticação e publicação na fila. Se houver rejeição do serviço de fila, verifique também o formato de IDs, cabeçalhos e payload. Um teste direto do SDK pode passar sem testar o caminho usado pelo webhook.
Corrija a causa, confirme se o evento já foi persistido e recupere as mensagens com deduplicação. Não retorne 200 apenas para esconder a falha se não houver aceitação durável. A Meta pode tentar entregar novamente.
A API aceitou a resposta, mas ela não apareceu no WhatsApp
Consulte os eventos de status e erros da mensagem enviada. Confira destinatário, número de origem, janela de 24 horas, aprovação/categoria do modelo, conta de pagamento e restrições da conta. “Aceito” pela API e “entregue” são estados diferentes; valide no aparelho do destinatário.
Identifique se é Messenger pessoal, Business app ou Cloud API de um provedor. Para preservar o Business app, avalie coexistência; para outro provedor, use o procedimento de migração com o dono e os responsáveis de origem/destino. Não exclua contas, desconecte provedores nem reinicie o PIN para tentar atalhar uma migração.
Meu app está Live, mas não consigo cadastrar clientes externos
Confira o onboarding como provedor, a verificação da empresa e o App Review. Em produção, o Embedded Signup só apresenta permissões aprovadas para acesso avançado. Usuários com papel de teste ou desenvolvimento não representam clientes externos reais.
Nenhum problema encontrado. Tente “número”, “token” ou “webhook”.
07
Entregue uma operação que funciona.
O checklist lateral acompanha preparação, ativação manual e entrega. Nos caminhos alternativos, marque apenas o que se aplica; a contagem organiza o trabalho e não certifica uma aprovação da Meta.
Modelo de ficha para copiar
Copie para o registro privado do cliente. O texto abaixo é um modelo fixo; este documento não salva dados de empresas.
FICHA DE ATIVAÇÃO — WHATSAPP CLOUD API
Empresa:
Responsável da empresa:
Implementador / contato de suporte:
Data da ativação:
Caminho: manual / coexistência / Embedded Signup / Eve compartilhada
ID do portfólio:
App ID:
WABA ID:
Phone Number ID:
Telefone com DDI:
Callback URL / ambiente:
Agente ou negócio de destino:
Referência ao item do cofre (NÃO colar segredos):
Validade do token / responsável pela renovação:
Responsável pelo faturamento:
Status do número:
Estado de verificação / publicação / nome:
Data e resultado do teste real de recebimento:
Teste de continuidade e isolamento:
Pendências e próximos responsáveis:
Não registrar aqui: access token, App Secret, Verify Token, PIN ou código SMS.
A ativação termina no celular do usuário.
O número está conectado. O evento chega. O agente certo responde. E a pessoa confirma que recebeu.
08
Todos os links, em um só lugar.
Links oficiais para executar o processo e conferir mudanças. Alguns painéis exigem login e seleção do portfólio. Na impressão, os endereços completos aparecem abaixo de cada link.
Abra o arquivo em um navegador e compartilhe a cópia HTML. O conteúdo funciona sem conexão; os links externos precisam de internet. O checklist é local e não acompanha o arquivo quando ele é enviado a outra pessoa.
Use “Imprimir / salvar PDF” para uma versão com os detalhes expandidos e URLs completas. Para uma cópia mais limpa, desative “Cabeçalhos e rodapés” na janela de impressão. Ao atender outra empresa, reinicie o checklist. As instruções resumem as fontes oficiais; em caso de mudança de interface, siga a documentação vinculada.