Meta Tech Provider

Un número.La app y la API, al mismo tiempo.

Coexistence es el modo oficial de Meta para ejecutar la app WhatsApp Business y la Cloud API en un mismo número a la vez. El equipo sigue atendiendo desde el teléfono, con los mismos chats y el mismo historial, mientras el software envía y recibe en esa misma línea.

Empezar prueba gratis7 días gratis. No se cobra nada hasta que termine la prueba.
+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
Ambas superficies ven el mismo hilo. Lo que envía la API aparece en la app, y lo que el equipo escribe en la app llega como un evento smb_message_echoes, así que el software nunca responde encima de una persona que ya respondió.
No guardamos mensajesBusiness App + Cloud APIMCP para Claude y ChatGPTEn vivo en 2 minutos

La elección que existía, y ya no

Coexistence no es una API nueva. Es la eliminación de una bifurcación que impedía a casi cualquier negocio pequeño automatizar nada.

AntesUn número, una elección
Conservar la app

El equipo atiende desde el teléfono. Nada se puede automatizar, integrar ni medir.

Sin API
Migrar a la API

El software alcanza el número. La app Business deja de funcionar en él y el equipo cambia de herramienta.

Sin app
AhoraUn número, ambos
One number
WhatsApp Business appCloud API

Meta conecta la Cloud API a un número que la app WhatsApp Business sigue usando. Ambas superficies quedan activas en la misma línea, y cada una ve lo que la otra envía.

Quién opera un número así

Dos grupos, que quieren cosas opuestas del mismo recurso, y por eso la conexión importa más que cualquier panel encima de ella.

Conserva el teléfonoUn negocio con un número

Un equipo pequeño, un número impreso en una furgoneta o un escaparate, y noches respondiendo las mismas cuatro preguntas. No están reemplazando a nadie. Quieren que las confirmaciones, los recordatorios y la primera respuesta fuera de horario ocurran sin una persona, mientras el teléfono sigue sirviendo para todo lo demás.

Muchos números, una cuentaUna agencia, consultoría o desarrollador

Muchos clientes, cada uno con un número que nadie puede migrar ni tocar. Necesitan que esos números sean alcanzables por los sistemas que construyen, y añadir el siguiente sin una llamada comercial. Coexistence es la única vía oficial hacia un número que el personal del cliente sigue atendiendo a mano.

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 qué se opera un número así

  • Conservar el número que ya está impreso en furgonetas, recibos y la web, y el flujo de trabajo móvil a su alrededor.
  • Añadir envío por API, procesamiento de webhooks y plantillas sin mover a nadie a una herramienta nueva.
  • Mantener el tráfico de mensajes fuera de la bandeja compartida de un proveedor, para que las conversaciones no vivan en la plataforma de otra empresa.
  • Dar a una agencia una forma de tener muchos números de clientes en una cuenta, cada uno conectado en el Business Portfolio del propio cliente.

Elegibilidad y límites prácticos

  • El número debe estar ya activo en la app WhatsApp Business. Un número en WhatsApp normal hay que moverlo allí primero.
  • Compartir el historial de chats es una decisión única del onboarding y no se puede cambiar después.
  • Los chats de grupo quedan fuera de la API en números Coexistence, en cualquier proveedor.
  • El dispositivo principal necesita actividad periódica. Meta desconecta tras unos catorce días sin ella.
  • Las rutas de verificación y distintivo de Meta difieren para números Coexistence, y la disponibilidad regional cambia con su política.
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.

Qué enrutamos hacia ti, y qué nos quedamos

Meta permite que una app sobrescriba dónde entrega sus webhooks una cuenta de WhatsApp Business. Apuntamos ese override a tu URL, lo que divide los eventos en dos.

Entregados directo a tu endpointLa ruta de mensajes. Nunca pasa por nosotros.
  • messagesTodo lo que un cliente envía al número
  • smb_message_echoesLo que tu equipo envía desde la app WhatsApp Business
Entregados a nosotrosLa ruta operativa. De esto está hecho el monitoreo.
  • account_updateEstado de la conexión: removida, offboarded, reconectada, restringida
  • phone_number_quality_updateCambios de calidad y throughput
  • account_alertsAlertas que Meta levanta contra la cuenta
  • account_review_updateResultados de una revisión de Meta
  • business_capability_updateCambios de límite de mensajes y capacidades
  • phone_number_name_updateAprobaciones y rechazos del nombre visible

Si un número no tiene override configurado, sus eventos de mensaje caen en nuestro callback por defecto, donde el handler los descarta sin persistirlos. Eso está garantizado en código y no prometido en una política: no existe una ruta de almacenamiento que el contenido de las conversaciones pueda tomar.

La regla de los catorce días, y lo que rompe que nadie menciona

Meta desconecta una conexión Coexistence tras unos catorce días sin actividad en el dispositivo principal. Es reconectable, así que lo guardamos como estado propio en lugar de contarlo como un cliente que se fue.

La consecuencia cara viene después. El destino de tus mensajes no es un ajuste del número, es un override en la suscripción de nuestra app a la cuenta de WhatsApp Business. Una desconexión desinstala la app, y el override se va con ella. Reconectas, el envío vuelve, el monitoreo vuelve, y los mensajes dejan de llegar a tu servidor sin que nada reporte un error.

Nosotros reaplicamos el override en cada reconexión. Ese comportamiento existe porque ocurrió: un número topó con esta regla, reconectó limpio y dejó de entregar en silencio.

Un handshake que falla en ese momento, porque tu servidor estaba caído o el token cambió, queda registrado en la línea de tiempo de la conexión y el destino se conserva en vez de descartarse, así que guardarlo otra vez lo arregla.

Qué se rompe en silencio, y cómo lo detectamos

La app WhatsApp Business sigue funcionando en casi todos los fallos de abajo, y por eso nadie se entera. Estos son los que vigilamos, y cómo.

El número fue desconectadoWebhook, autoritativo

Detectado desde el webhook account_update de Meta, en concreto PARTNER_REMOVED, en lugar de inferirlo de un campo que pasa a falso. Deliberadamente no leemos is_on_biz_app para esto, porque es legítimamente falso en números que no son Coexistence y provocaba desconexiones falsas.

La conexión quedó inactiva catorce díasEstado propio

La regla de inactividad del dispositivo principal de Meta. Es reconectable, así que se registra como estado propio y no como un cliente que se fue, y reconectar restaura envío y monitoreo.

Tu ruta de webhook desapareció al reconectarReaplicado automáticamente

El destino vive como override en la suscripción de nuestra app a la cuenta, así que una desconexión lo desinstala. El envío vuelve al reconectar y la entrega a tu servidor no. Lo reaplicamos cada vez, porque a un número le pasó exactamente esto: reconectó limpio y dejó de entregar en silencio.

El token de acceso dejó de funcionarDos tokens, una respuesta

Guardamos el token del cliente y nuestro System User token contra la misma cuenta. Cuando uno es rechazado, el otro lee la cuenta y resuelve cuál de los dos se rompió, así que un token revocado deja de parecer un número perdido.

La calidad bajóConsultado

Consultada a Meta periódicamente. Una calificación RED marca la conexión como degradada, y calidad, tier de mensajería y nivel de throughput se guardan en cada comprobación, así que un declive es visible antes de costar un envío.

Conectar un número y vigilar un número son productos distintos. El segundo es la razón de que este exista.

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.

Preguntas frecuentes

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.

¿Listo para empezar?

Configura WhatsApp Coexistence en minutos, no en meses. La app sigue funcionando en el teléfono.

Empezar prueba gratis7 días gratis. No se cobra nada hasta que termine la prueba.

Sigue leyendo

Qué es WhatsApp Coexistence