Meta Tech Provider

Um número.O aplicativo e a API, ao mesmo tempo.

Coexistence é o modo oficial da Meta para rodar o aplicativo WhatsApp Business e a Cloud API em um único número ao mesmo tempo. A equipe continua atendendo pelo celular, com as mesmas conversas e o mesmo histórico, enquanto o software envia e recebe na mesma linha.

Começar teste grátis7 dias grátis. Nada é cobrado até o teste terminar.
+1 415 555 0188
WhatsApp Business appThe team answers from the phone, as before
Cloud APIYour systems, or an AI assistant, on the same line
As duas superfícies veem a mesma conversa. O que a API envia aparece no aplicativo, e o que a equipe digita no aplicativo chega como um evento smb_message_echoes, então o software nunca responde por cima de um humano que já respondeu.
Não guardamos mensagensBusiness App + Cloud APIMCP para Claude e ChatGPTNo ar em 2 minutos

A escolha que existia, e não existe mais

Coexistence não é uma API nova. É a remoção de uma bifurcação que impedia quase todo negócio pequeno de automatizar qualquer coisa.

AntesUm número, uma escolha
Manter o aplicativo

A equipe atende pelo celular. Nada pode ser automatizado, integrado ou medido.

Sem API
Migrar para a API

O software alcança o número. O aplicativo Business para de funcionar nele e a equipe muda de ferramenta.

Sem app
AgoraUm número, os dois
One number
WhatsApp Business appCloud API

A Meta conecta a Cloud API a um número que o aplicativo WhatsApp Business continua usando. As duas superfícies ficam ativas na mesma linha, e cada uma enxerga o que a outra envia.

Quem opera um número assim

Dois grupos, querendo coisas opostas do mesmo recurso, e é por isso que a conexão importa mais que qualquer painel em cima dela.

Mantém o celularUm negócio com um número

Uma equipe pequena, um número impresso numa van ou numa fachada, e noites respondendo as mesmas quatro perguntas. Não estão substituindo ninguém. Querem que confirmações, lembretes e a primeira resposta fora do horário aconteçam sem um humano, enquanto o celular continua servindo para todo o resto.

Muitos números, uma contaUma agência, consultoria ou desenvolvedor

Muitos clientes, cada um com um número que ninguém pode migrar ou tocar. Precisam que esses números sejam alcançáveis pelos sistemas que constroem, e precisam adicionar o próximo sem uma reunião comercial. Coexistence é a única rota oficial para um número que a equipe do cliente ainda atende na mão.

How a number ends up on both, and where the message events go

Four steps. The only one that touches the phone is a scan, and the one that decides your architecture is the first.

  1. Have the endpoint ready before onboarding starts

    Meta verifies a destination before it will deliver to it. It calls your URL with a GET carrying hub.mode=subscribe, your hub.verify_token and a hub.challenge, and your endpoint has to echo the raw challenge back.

    The destination must be HTTPS, and a verify token is mandatory. We validate both before the call is made, so a malformed URL fails at our door rather than looking connected and delivering nothing.

    Needs
    An HTTPS endpoint that echoes hub.challenge on Meta's GET
    Time
    About a minute
    You get
    A destination Meta can verify the moment the number connects
    Nothing is connected yet. This decides where messages will land.
    Provider in the pathStored on their servers
    Meta
    Their platformReceives and stores messages
    YouA copy, on their schedule
    EasyCoexistenceConfig only
    Meta
    Your endpointNot yet verified
    UsWe set the route, we are not on it
  2. Run Meta's Embedded Signup and scan in the app

    Meta's own popup opens. You pick the Business Portfolio, the WhatsApp Business Account and the number already registered in the WhatsApp Business app, then approve the connection on the phone by scanning a code.

    This is also where you choose whether to share existing chat history. It is a one time onboarding decision and cannot be changed later. The Business app keeps working the moment the scan completes.

    Needs
    Access to the Business Portfolio, and the phone with the number
    Time
    Two to three minutes
    You get
    The Cloud API attached to a number the app is still using
    The second surface appears. The first one is not removed.
    After a migrationOne surface
    The number
    Cloud API onlyBusiness app dead on this number
    After CoexistenceTwo surfaces
    The number
    WhatsApp Business appSame chats and history
    Cloud APIOn the same line
  3. Point the message events at your own system

    Meta lets an app override where a given WhatsApp Business Account's webhooks are delivered. We set that override to your URL, which moves the two message path fields, messages and smb_message_echoes, straight from Meta to you.

    We keep the operational fields, because those are what monitoring is made of: account_update, phone_number_quality_update, account_alerts, account_review_update, business_capability_update and phone_number_name_update. So the dashboard stays useful while conversation content never touches us.

    Needs
    The endpoint from step one, now verified by Meta
    Time
    Applied as soon as onboarding completes
    You get
    Messages delivered Meta to you, with us off the message path
    Which events go where once the override is active.
    Operational eventsDelivered to us
    account_updateConnection state changes
    phone_number_quality_updateQuality and throughput
    account_review_updateReview outcomes
    Message pathDelivered to you
    messagesEverything a customer sends
    smb_message_echoesWhat the team sends from the app
    Your serverDirectly, never through us
  4. Keep it alive, and survive a reconnection

    Meta disconnects a Coexistence number after roughly fourteen days without activity on the primary device. That disconnection is reconnectable, and we record it as its own state rather than treating it as a customer leaving.

    The part that catches people is what a disconnection does to the route. Meta stores the destination as an override on our app's subscription to the account, so a PARTNER_REMOVED uninstalls the app and takes the override with it. Reconnecting restores sending and monitoring, but not your destination. We put it back automatically, because the first number that hit this rule reconnected fine and silently stopped delivering to the customer's server.

    Needs
    The app opened on the primary device from time to time
    Time
    Ongoing
    You get
    A connection that is watched, and a route that survives a reconnect
    What a reconnection restores by itself, and what has to be put back.
    Restored by MetaAutomatic
    SendingThe Cloud API works again
    Operational eventsMonitoring resumes
    Lost with the appHas to be reapplied
    Your webhook overrideUninstalled with the app
    Message delivery to youSilently stops
    We reapply itOn every reconnection

Por que times operam um número assim

  • Manter o número que já está impresso em veículos, recibos e site, e o fluxo de trabalho no celular ao redor dele.
  • Adicionar envio por API, processamento de webhook e templates sem mover ninguém para uma ferramenta nova.
  • Manter o tráfego de mensagens fora da caixa compartilhada de um provedor, para que as conversas não fiquem na plataforma de outra empresa.
  • Dar a uma agência uma forma de manter muitos números de clientes em uma conta, cada um conectado no Business Portfolio do próprio cliente.

Elegibilidade e limites práticos

  • O número precisa já estar ativo no aplicativo WhatsApp Business. Um número no WhatsApp comum precisa ser movido para lá antes.
  • Compartilhar o histórico de conversas é uma escolha única feita durante o onboarding e não pode ser alterada depois.
  • Conversas em grupo ficam fora da API em números Coexistence, em qualquer provedor.
  • O aparelho principal precisa de atividade periódica. A Meta desconecta após cerca de catorze dias sem ela.
  • Caminhos de verificação e selo da Meta são diferentes para números Coexistence, e a disponibilidade regional muda conforme a política da Meta.
Free text0 to 24 hours after their last messageTemplate onlyafter that, until they write again
The clock restarts every time the customer sends something. This is the rule that breaks integrations in production, because testing always happens seconds after a message, when free text still works.

O que roteamos para você, e o que ficamos

A Meta permite que um app sobrescreva onde uma conta do WhatsApp Business entrega seus webhooks. A gente aponta esse override para a sua URL, o que divide os eventos em dois.

Entregues direto no seu endpointO caminho das mensagens. Nunca passa por nós.
  • messagesTudo que um cliente envia para o número
  • smb_message_echoesO que sua equipe envia pelo aplicativo WhatsApp Business
Entregues para nósO caminho operacional. É disso que o monitoramento é feito.
  • account_updateEstado da conexão: removida, offboarded, reconectada, restrita
  • phone_number_quality_updateMudanças de qualidade e throughput
  • account_alertsAlertas que a Meta levanta contra a conta
  • account_review_updateResultados de uma revisão da Meta
  • business_capability_updateMudanças de limite de mensagens e capacidades
  • phone_number_name_updateAprovações e rejeições de nome de exibição

Se um número não tem override definido, seus eventos de mensagem caem no nosso callback padrão, onde o handler os descarta sem persistir. Isso é garantido em código e não prometido em política: não existe caminho de armazenamento para conteúdo de conversa seguir.

A regra dos catorze dias, e o que ela quebra que ninguém menciona

A Meta desconecta uma conexão Coexistence após cerca de catorze dias sem atividade no aparelho principal. É reconectável, então guardamos isso como estado próprio em vez de contar como cliente que foi embora.

A consequência que custa caro vem depois. O destino das suas mensagens não é uma configuração do número, é um override na assinatura do nosso app à conta do WhatsApp Business. Uma desconexão desinstala o app, e o override vai junto. Você reconecta, o envio volta, o monitoramento volta, e as mensagens param de chegar no seu servidor sem nada reportar erro.

A gente reaplica o override em toda reconexão. Esse comportamento existe porque aconteceu: um número bateu nessa regra, reconectou limpo, e parou de entregar calado.

Um handshake que falha naquele momento, porque seu servidor caiu ou o token mudou, fica registrado na linha do tempo da conexão e o destino é mantido em vez de descartado, então salvar de novo resolve.

O que quebra em silêncio, e como a gente descobre

O aplicativo WhatsApp Business continua funcionando em quase todas as falhas abaixo, e é por isso que ninguém percebe. Estas são as que verificamos, e como.

O número foi desconectadoWebhook, autoritativo

Detectado pelo webhook account_update da Meta, especificamente PARTNER_REMOVED, em vez de inferido de um campo virando falso. A gente deliberadamente não lê is_on_biz_app para isso, porque ele é legitimamente falso em números que não são Coexistence e estava gerando desconexões falsas.

A conexão ficou quieta por catorze diasEstado próprio

A regra de inatividade do aparelho principal da Meta. É reconectável, então fica registrada como estado próprio em vez de como cliente que saiu, e reconectar restaura envio e monitoramento.

Sua rota de webhook sumiu numa reconexãoReaplicado automaticamente

O destino vive como override na assinatura do nosso app à conta, então uma desconexão o desinstala. O envio volta ao reconectar e a entrega no seu servidor não. A gente reaplica o override toda vez, porque um número a quem isso aconteceu reconectou limpo e parou de entregar calado.

O token de acesso parou de funcionarDois tokens, uma resposta

Guardamos o token do cliente e o nosso System User token contra a mesma conta. Quando um é rejeitado, o outro lê a conta e decide qual dos dois realmente quebrou, então um token revogado deixa de parecer um número perdido.

A qualidade caiuConsultado

Consultada da Meta periodicamente. Uma classificação RED marca a conexão como degradada, e qualidade, tier de mensagens e nível de throughput são gravados a cada verificação, então um declínio fica visível antes de custar um envio.

Conectar um número e vigiar um número são produtos diferentes. O segundo é a razão deste existir.

2 minutes

Typical time to connect a number, scanning a code from the WhatsApp Business app.

24 hours

How long a customer reply keeps the session open for free text replies.

20 msg/s

Sending throughput for a Coexistence number, fixed by Meta and not raisable.

6 months

How much chat history Meta syncs to the API when a number first connects.

Perguntas frequentes

Does my team have to stop using the phone?

No. That is the entire point of Coexistence. The WhatsApp Business app keeps working on the same number, with the same conversations, and the API runs alongside it.

Will I lose my existing conversations?

No. They stay in the app, and Meta syncs around six months of history to the API when the number connects, so software has context rather than starting empty.

Can I undo it?

Yes. A number can be disconnected, and the app carries on as it always did. Nothing about the number itself is permanently altered by connecting it.

Is this the same as the unofficial WhatsApp APIs?

No, and the difference decides whether the number survives. Coexistence is Meta's official feature on the Cloud API. Unofficial gateways drive WhatsApp Web as a linked device, which breaks the terms and gets numbers banned.

Pronto para começar?

Configure o WhatsApp Coexistence em minutos, não em meses. O aplicativo continua funcionando no celular.

Começar teste grátis7 dias grátis. Nada é cobrado até o teste terminar.

Continue lendo

WhatsApp Coexistence Explicado