An official Meta capability

Coexistence, properly explained.

One WhatsApp number, two clients: the Business app on a phone and the Cloud API in your stack. Here is exactly how it works, what imports, and where the limits are — including the ones that would change your mind.

What coexistence actually is

Coexistence is a Meta feature that lets one WhatsApp business phone number be driven by two things at the same time: the WhatsApp Business app on the owner's phone, and the Cloud API, through a partner application like ours. It went generally available for solution providers in February 2025.

It is not a workaround, a session hack or an unofficial client. Onboarding uses Meta's own Embedded Signup flow for businesses that already have a WhatsApp Business app account — the number is already registered, so the registration step is skipped entirely.

Meta keeps the two sides in sync, in four directions:

  • Messages Cosend sends through the Cloud API appear in the app on the phone.
  • Messages the owner sends from the app are mirrored to us as message-echo webhooks, so the inbox is never missing half a conversation.
  • Inbound customer messages arrive as webhooks and show up in the app.
  • The app's address book is mirrored to us, and up to 180 days of chat history can be imported once.
One number, two clients The WhatsApp Business app and Meta's Cloud API drive the same number, and the Cloud API connects to your stack — your endpoint, an n8n workflow or an AI agent. WhatsApp Business app on the phone, unchanged Meta Cloud API same number, same history Your stack inbox · endpoint · n8n · AI every message reaches both sides

What you keep

Five things, and they are the ones that usually stop a business from adopting an API at all:

  • Your number. Not ported, not resold, not re-registered.
  • Your phone. The WhatsApp Business app stays installed and keeps working on the same number, at the same time as the API.
  • Your chats. Existing conversations stay where they are.
  • Your Meta billing relationship. Meta invoices your WhatsApp Business Account directly, at Meta's rates. Nobody resells your messages to you.
  • Your catalog and your business profile. These live in the app and coexistence does not change them. What the API can do with a catalog is a different question, and it is answered in the table below.

The 180-day import, and its one shot

During onboarding the owner taps Confirm in the app, and Meta begins streaming prior conversations to us in three phases — day 0 to 1, day 1 to 90, then day 90 to 180 — with a progress figure as it goes.

It runs once. One attempt per onboarding cycle, and it must complete within 24 hours of onboarding or the connection has to be offboarded and started again. That is Meta's constraint, not ours, and it is the single most consequential sentence on this page: if the import is missed, recovering it means disconnecting in the app and re-running the whole flow.

New conversations are unaffected either way. History is worth having and it is not a blocker — a connection with no imported history sends, receives and automates exactly as well as one with it.

The limits, stated plainly

Coexistence is good and it is bounded. These are Meta's constraints rather than ours, and we would rather you knew them before you built on them.

Every row below says which of the two surfaces it applies to, because almost everything written about coexistence gets this wrong. There is the app on the phone, which keeps working — that is the whole promise — and there is the Cloud API on the same number, which is where the limits live. “Catalogs are not supported” is the classic example: true of the API, false of the app, and a retailer who reads the flat version leaves for no reason.

Coexistence limits: the surface each applies to, its value, and what it means in practice.
Limit Applies to Value What it means
History import Cloud API 180 days Messages sent or received in the 180 days before onboarding import into Cosend. Older chats stay on the phone, where they still work.
Import window Cloud API 24 hours, once The sync runs once per onboarding and must complete within 24 hours of it. There is no second attempt — reconnecting means disconnecting first.
Send throughput Cloud API 20 messages / second Per number, fixed. Coexistence numbers cannot be upgraded to a higher tier, so a large campaign is bounded by arithmetic rather than by budget.
Unique recipients Cloud API 250 → 2,000 / 24 h Meta’s messaging limit for a new business portfolio, which binds long before the send rate does. It rises with sustained quality.
Media in imported chats Cloud API 14 days Media attached to imported messages is retrievable only for messages sent within 14 days of onboarding. Older attachments import as text placeholders.
Group chats Cloud API Not available Groups are not synced to the API and are excluded from the import, so they never reach Cosend. They are untouched in the app.
Catalog and product messages Cloud API Cannot send Your catalog and business profile keep working in the app. The API cannot send catalog messages on a coexistence number.
The catalog, the business profile, the number The app Unchanged Coexistence’s promise is that the phone is untouched, and this is that promise rather than a list Meta publishes — see the note below the table.

On the last row, plainly: Meta documents what the Cloud API can and cannot do on a coexistence number, and does not publish a feature-by-feature list of what the app keeps. Everything above the last row is from Meta's own documentation. The last row is coexistence's promise, which we have not seen Meta enumerate — so if one specific app feature is the reason you are here, ask us before you rely on it and we will find out rather than guess.

Throughput cannot be raised on a coexistence number: the upgrade path that exists for ordinary Cloud API numbers is unavailable here. Twenty a second is 72,000 an hour in theory, but the unique-recipient limit above binds long before that does — so plan a campaign against recipients, not against seconds.

What changes, and on which side

The honest half of the page. Three of these are things the API cannot do; four are things that genuinely change on the phone, and those are the ones that surprise people on day one if nobody says them out loud beforehand.

Voice and video calls Cloud API
Cosend cannot place or receive WhatsApp calls on a coexistence number, so there is no call feature in the product. If your business runs on voice, the API is not where you will get it.
Group chats and Channels Cloud API
Not synced, not supported, and excluded from the history import.
View-once and live location Cloud API
Neither crosses to the API side.
Broadcast lists The app
Existing lists become read-only on the phone. Promotional sends move to approved marketing templates, which cost money per message and need review.
The app’s own messaging tools The app
Quick replies, away messages, greeting messages and label automations stop working in the app. Cosend reimplements greeting, away and quick replies in the free tier, because onboarding that removes features is not onboarding.
Disappearing messages The app
Turned off for one-to-one chats after onboarding. Worth telling anyone who chose that setting deliberately.
Linked devices The app
Companion apps are unlinked at onboarding and can be re-linked afterwards — except Windows and WearOS, which are not supported at all. Expect to sign back in to WhatsApp Web.

Why a connection drops, in Meta's own words

When a coexistence link ends, Meta tells us why. There are six reasons, and each one has a different fix — which is why we show you the fix rather than the error code:

The six coexistence disconnection reasons and what to do about each.
Reason What it means, and what to do
PRIMARY_INACTIVITY The WhatsApp Business app has not been opened on the phone recently. Open it, then reconnect.
COMPANION_INACTIVITY A linked device went inactive. Open WhatsApp Business on the phone and reconnect.
CHANGE_NUMBER The WhatsApp number changed. Connect the new number to carry on.
USER_RE_REGISTERED The number was re-registered on WhatsApp, which ends the API connection. Reconnect to resume.
BUSINESS_DOWNGRADE The account was downgraded from WhatsApp Business. Switch back, then reconnect.
ACCOUNT_DISCONNECTED The connection was removed from the WhatsApp Business app’s own settings.

The first of those is the one that catches people: if the phone stops opening the WhatsApp Business app, the link eventually ends. Meta names the reason but does not publish a threshold, so we do not quote one — we infer liveness from the message traffic we already receive and warn you when a number has gone quiet, rather than asking you to remember a countdown.

Whatever the reason, sends stop immediately, the inbox stays readable, and the history stays where it is.

Where to go next

One connection is free — the API, the webhook routing and the shared inbox, with no card and no trial clock.