WhatsApp Founders

Área de membros

Carregando guias que economizam semanas de tentativa e erro…

Guia técnico

Como otimizar o onboarding da API oficial usando Embedded Signup

Menos abandono no cadastro do cliente: o fluxo que engrena e os pontos em que a pessoa desiste, para você cortar fricção de verdade.

Tem a senha deste guia ou da comunidade? A da comunidade vale para todos os materiais.

Quero fazer parte e receber esse tipo de conteúdo

Como otimizar o onboarding da API oficial usando Embedded Signup

Reduza fricção no cadastro de clientes na Cloud API: Embedded Signup, permissões e primeiras mensagens em minutos.

Última atualização: 30 de março de 2026

Para a visão em um único diagrama com todos os passos da implantação (BM, verificação, coexistência, templates), abra o Mapa de implantação Meta.

Visão geral do fluxo

O Embedded Signup permite que o seu cliente conecte o número de WhatsApp à sua plataforma sem sair da sua interface. O fluxo completo, quando bem implementado, leva menos de 5 minutos.

flowchart LR A["CTA Conectar"] --> B["Facebook Login"] B --> C{"Tem BM?"} C -->|Sim| D["Escolhe BM"] C -->|Não| E["Cria BM"] D --> F["WABA"] E --> F F --> G["Número"] G --> H["SMS / voz"] H --> I["Callback + code"] I --> J["Backend grava token"]

Visão geral das etapas

O Embedded Signup permite que o seu cliente conecte o número de WhatsApp à sua plataforma sem sair da sua interface. As etapas seguem a mesma numeração do mapa geral de onboarding: as etapas 1–3 (CNPJ, BM, Verificação) são pré-requisitos cobertos no material principal. Antes de iniciar, o tech provider precisa montar o app e adicionar o produto WhatsApp (setup único).

flowchart TD SETUP["Setup do Tech Provider
(Criar app + Produto WhatsApp)"] --> E4["4 · Preparação do WhatsApp"] E4 --> E6["6 · Conexão via
Embedded Signup"] E6 --> E7["7 · Templates"] E7 --> E8["8 · Operação"]

Setup do Tech Provider

Estes passos são feitos uma vez pelo tech provider, antes de onboardar clientes. Não correspondem a uma etapa numerada do mapa: são pré-requisitos da plataforma.

Criar app no Meta for Developers

Acesse developers.facebook.com e crie um app do tipo Business.

  • Tipo do app: Business (não "Consumer" ou "Gaming")
  • Vincule à BM verificada
  • Defina o nome do app (aparece para o cliente no Embedded Signup)

Edge case app: app tipo errado ou BM errada vinculada gera erros no fluxo de login e permissões. Revise Business settings do app e dono da BM antes do primeiro Embedded Signup com cliente.

Permissões obrigatórias

PermissãoPara quê serveNecessita App Review?
whatsapp_business_managementGerenciar WABA, números e templatesSim
whatsapp_business_messagingEnviar e receber mensagensSim
business_managementAcesso à Business Manager do clienteSim

Dica: Solicite todas as permissões de uma vez no App Review. Submissões separadas atrasam a aprovação e podem gerar inconsistências.

Adicionar produto WhatsApp

No painel do app, adicione o produto WhatsApp. Isso cria automaticamente uma WABA (WhatsApp Business Account) vinculada à sua BM.

  • A WABA é criada automaticamente sob a BM que é dona do app
  • Configure o display name da WABA (aparece para o destinatário)
  • Configure um método de pagamento na WABA (cartão de crédito ou créditos pré-pagos): obrigatório para enviar mensagens em produção

Edge case cobrança: o cartão/método da API do WhatsApp (conversas) é independente do pagamento de anúncios Facebook/Instagram. Cada número/WABA pode exigir cadastro próprio; cartão internacional em USD é o cenário mais comum.

Configurar webhooks

Webhooks são como a API avisa seu servidor sobre mensagens recebidas, status de entrega, etc. Configure antes do primeiro Embedded Signup com cliente.

  • Configure uma URL HTTPS pública no seu servidor
  • Implemente o endpoint de verificação (GET com challenge)
  • Assine os campos do webhook: messages (mensagens recebidas e status de entrega) e message_template_status_update (status de aprovação de templates)
  • Teste com a ferramenta de teste do painel da Meta

Evite em produção: usar ngrok (ou túnel equivalente) como URL fixa do webhook. Para testes locais funciona; em produção o túnel pode cair ou mudar e você perde eventos. Prefira servidor com HTTPS válido e endpoint estável.

Edge cases webhook: valide X-Hub-Signature-256 com o app secret (rejeite payload sem assinatura válida). Timeouts ou 200 lento podem fazer a Meta reenfileirar ou desativar entregas: responda rápido e processe trabalho pesado fora da thread do request.

flowchart TD TP1["Acessar developers.facebook.com"] --> TP2["Criar app tipo Business"] TP2 --> TP3["Vincular à BM verificada"] TP3 --> TP4["App Review (permissões)"] TP4 --> TP5["Adicionar produto WhatsApp"] TP5 --> TP6["Configurar webhook HTTPS"] TP6 --> TP7["Configurar pagamento (USD)"] TP7 --> TP8(["Pronto para Embedded Signup
com clientes"])

Etapa 4: Preparação do WhatsApp

Corresponde à Etapa 4 do mapa de onboarding (estágio WAB). O número de telefone do cliente precisa estar pronto antes da conexão.

flowchart TD START{"Número novo ou
já no WhatsApp?"} -->|Chip novo| DEDIC["Linha dedicada"] START -->|Já no WhatsApp Business| COEX_Q{"Manter app no celular
+ API?"} START -->|Em outra API
Z-API / Evolution / BSP| DESCON["Desconectar no app
aguardar 24h+"] COEX_Q -->|Sim| ELEG{"Elegível?
7+ dias no WAB"} COEX_Q -->|Não| API["API / Embedded Signup"] ELEG -->|Sim| COEX["Coexistência
QR Code"] ELEG -->|Não| WAIT["Usar número mais tempo
no Business App"] WAIT --> ELEG DESCON --> API DEDIC --> API COEX --> VERIFY["SMS / voz / PIN ou QR"] API --> VERIFY VERIFY --> OK(["Número OK"])

Edge cases número: erro "já registrado em uma conta WhatsApp" → desvincule do provedor/BSP anterior no celular e aguarde alguns minutos; se persistir após API não oficial, pode levar semanas de uso estável no Business App. Coexistência exige WhatsApp Business (versão recente), não o app pessoal. PIN: excesso de tentativas → esperar ~12h antes de novo ciclo. Número bloqueado ou limite de telefones na WABA → tratar pelo Gerenciador do WhatsApp / suporte Meta.

Coexistência (QR Code)

A coexistência mantém o WhatsApp Business App no celular e a API oficial no mesmo número, vinculados por QR Code (requisitos e prazos de elegibilidade mudam; o mapa completo detalha passo a passo).

  • O número continua ativo no WhatsApp Business no celular
  • Tráfego pela API segue regras e cobrança da plataforma; uso pelo app segue políticas do app
  • Útil quando o escritório não quer perder o app no telefone nem o histórico elegível à importação

Etapa 6: Conexão via Embedded Signup

Corresponde à Etapa 6 do mapa (estágio Conexão). No fluxo direto o cliente faz Coexistência via QR Code; no Embedded Signup, a conexão acontece via Facebook Login na sua plataforma.

Simulação interativa do fluxo

A recriação abaixo foi feita pela WhatsApp Founders para fins didáticos: ela não é uma tela da Meta, não se conecta a nenhum serviço e não coleta dados. Serve para você reconhecer, etapa por etapa, o que o seu cliente vê ao clicar em "Conectar". Navegue com Avançar / Voltar, troque o portfólio empresarial no dropdown, ou escolha "Conectar um app do WhatsApp Business" para ver o caminho de coexistência via QR Code.

O fluxo real só acontece em domínio da Meta. Ao implementar, o Embedded Signup abre uma janela em facebook.com. Se um cliente seu vir essa tela em qualquer outro endereço, ou se alguém pedir o código de verificação dele por telefone, e-mail ou mensagem, é golpe.

Simulação didática do fluxo de Embedded Signup
Simulação educativa. Esta tela é uma recriação didática feita pela WhatsApp Founders. Não é a Meta, não é o Facebook, não coleta nem envia nenhum dado.
Diálogo da Meta (recriado)
Ativos de negócios
Dados da empresa
Número de telefone
Verificar número
QR Code
Tela 1: ativos de negócios compartilhados com a sua plataforma

Você pode usar ativos existentes ou criar outros.

M Verificado
Selecione uma conta do WhatsApp Business
Criar uma conta do WhatsApp Business
Conectar um app do WhatsApp Business


Recriação didática do diálogo de Embedded Signup, feita pela WhatsApp Founders. Não é a Meta, não é o Facebook, nenhum campo é editável e nenhum dado é coletado ou enviado.

Inicializando o Facebook Login

O fluxo começa com o Facebook Login Dialog. O SDK do Facebook JS precisa ser carregado na página.

Onde criar o config_id: No Meta App Dashboard, vá em Facebook Login > Settings e crie uma configuração. O config_id gerado é o que você usa no código abaixo.

FB.login(function(response) {
  if (response.authResponse) {
    const code = response.authResponse.code;
    // Envie o code para seu backend
    // para trocar por um System User Access Token
  } else {
    // Usuário cancelou ou erro no login
    console.error('Embedded Signup cancelado ou falhou');
  }
}, {
  config_id: 'SEU_CONFIG_ID',
  response_type: 'code',
  override_default_response_type: true,
  extras: {
    setup: {
      // Pré-preencha dados do cliente se tiver
      business: { name: 'Nome da Empresa' }
    },
    // Para clientes que já têm WABA e só querem conectar:
    // feature_type: 'only_waba_sharing'
  }
});

Importante: Use response_type: 'code' e troque o code por um token no backend. Nunca exponha tokens no frontend.

feature_type: 'only_waba_sharing': Use esta opção quando o cliente já tem uma WABA criada e só quer compartilhá-la com a sua plataforma. Pula a criação de BM e WABA, reduzindo fricção.

Trocando o code por token

No seu backend, faça a troca do authorization code por um access token de longa duração. Use sempre a versão mais recente da Graph API:

GET https://graph.facebook.com/v22.0/oauth/access_token
  ?client_id={app-id}
  &client_secret={app-secret}
  &code={code-received}

Versionamento: Substitua v22.0 pela versão mais recente da Graph API. Versões são depreciadas a cada ~2 anos. Consulte a documentação de versões.

Reduzindo abandono

flowchart TD A["Abandono alto"] --> B{"Onde para?"} B -->|Login Meta| C["CTA claro + por quê"] B -->|BM| D["Pré-preencher empresa"] B -->|SMS| E["Formato E.164 + dicas"] B -->|Erro| F["Mensagens específicas"] C --> G(["Medir funil"]) D --> G E --> G F --> G

Pontos críticos de abandono

  1. Momento do login Facebook: muitos clientes hesitam. Explique que é necessário para conectar o WhatsApp oficialmente e que você não terá acesso ao Facebook pessoal.
  2. Seleção/criação da BM: clientes com múltiplas BMs se confundem. Se possível, pré-selecione a BM correta.
  3. Verificação do número: o código SMS pode atrasar. Ofereça a opção de verificação por ligação como fallback imediato.
  4. Erros de permissão: se o usuário não é admin da BM, o fluxo falha silenciosamente. Detecte isso verificando o campo response.authResponse e mostre mensagem clara: "Você precisa ser administrador do Business Manager para conectar o WhatsApp."

UX que funciona

  • Mostre um stepper visual com as etapas do processo
  • Adicione um vídeo curto (30s) mostrando o fluxo completo
  • Tenha um chat de suporte disponível durante o onboarding
  • Envie e-mail com instruções antes do cliente iniciar

Etapa 7: Templates

Corresponde à Etapa 7 do mapa (estágio Templates). Templates são mensagens pré-aprovadas pela Meta, obrigatórios para iniciar conversas fora da janela de 24h.

Boas práticas para aprovação rápida

  • Use linguagem clara e profissional
  • Inclua o nome da empresa no template
  • Evite linguagem promocional agressiva
  • Sempre inclua uma forma de opt-out (para templates de marketing)
  • Use variáveis nomeadas ({{nome}}, {{pedido_id}}) com exemplos realistas ao submeter
flowchart LR T1["Criar template"] --> T2["Submeter à Meta"] T2 --> T3{"Status"} T3 -->|OK| T4["Usar em produção"] T3 -->|Rejeitado| T5["Corrigir + resubmit"] T3 -->|Pausado| T6["Quality rating"] T5 --> T2 T6 --> T2

Edge cases templates: conteúdo promocional em categoria utilidade → rejeição. Variáveis sem exemplos realistas atrasam análise. Quality rating baixo ou feedback negativo pode pausar o template ou afetar o número: corrija copy e segmentação antes de escalar volume.

Dica de founder: Crie um template genérico de boas-vindas antes do onboarding e use-o imediatamente após a conexão. Isso dá ao cliente a sensação de que "já está funcionando".

Etapa 8: Operação

Corresponde à Etapa 8 do mapa (estágio Operação). Após o Embedded Signup, o número está conectado mas ainda não pode enviar mensagens proativas. Passos finais:

  1. Registrar o número: POST /{phone-number-id}/register
  2. Usar template aprovado: envie a primeira mensagem via POST /{phone-number-id}/messages
  3. Monitorar quality rating: números novos começam no tier de 250 mensagens/24h: escala automaticamente com rating verde

Checklist de go-live

ItemStatusObservação
App tipo Business vinculado à BM verificadaObrigatórioTipo errado ou BM errada = erros no Embedded Signup
Produto WhatsApp adicionado + pagamentoObrigatórioCartão USD na WABA para envios em produção
App aprovado no App ReviewObrigatórioSubmeta com screenshots e vídeo do fluxo
Webhook recebendo eventosObrigatórioURL HTTPS estável; valide X-Hub-Signature-256
Token de sistema configuradoObrigatórioUse System User token, nunca User token
Template de boas-vindas aprovadoRecomendadoCrie antes do primeiro onboarding
Error handling implementadoRecomendadoTrate pelo menos os 5 erros mais comuns
Analytics no funil de signupRecomendadoMeça cada etapa para otimizar
Fluxo testado com conta realObrigatórioTeste com um número que não está na API

Resumo: edge cases por etapa

EtapaSituaçãoAção típica
Setup · AppTipo errado / BM erradaRevise Business settings do app; vincule BM verificada correta.
Setup · Produto WhatsAppPagamento ausenteCadastrar cartão USD na WABA; independente de anúncios FB/IG.
Setup · WebhooksTimeout / assinatura inválidaResponder rápido; validar X-Hub-Signature-256; evitar ngrok em produção.
4 · Preparação WhatsAppOutra API / PIN bloqueado / coex inelegívelDesconectar + 24h; esperar ~12h para PIN; 7+ dias no WAB para coexistência.
6 · Conexão (Embedded Signup)Abandono / permissão insuficienteCTA claro; pré-preencher BM; mensagem de admin obrigatório.
7 · TemplatesRejeição / pausaCategoria correta; exemplos realistas; melhorar quality rating.
8 · OperaçãoTier travado / rating baixoAquecer volume; monitorar quality rating.

Botões +/− ou roda do mouse: zoom · arrastar: mover · teclas + e − também ajustam o zoom · no telefone, use Compartilhar para enviar o link do material