WhatsApp Coexistence for Developers: Webhook Routing and Providers Compared (2026)
For developers, the decisive questions are where inbound webhooks land, how messages typed in the Business App reach your system, and whether you can synchronize existing history. Meta fixes throughput at 20 messages per second for every coexistence number.
Dualhook is the direct-routing option in this comparison: Meta sends message-path webhooks to your endpoint through Webhook Override, and Dualhook does not store their message or media content. Inbox products are a better fit when you want agents to work inside the provider.
Methodology and an important eligibility correction
We checked Meta's current coexistence documentation and each provider's first-party documentation on 30 August 2026. Pricing below is the provider's platform fee, not Meta's messaging charge. Dualhook publishes this comparison and is one of the options, so the architectural trade-offs are stated explicitly.
Coexistence is not a self-service switch inside an ordinary Meta app. Meta requires the onboarding party to already be a Solution Partner or Tech Provider, use Embedded Signup with session logging, and operate a webhook callback that can digest the additional coexistence fields. Businesses normally meet that gate by choosing an eligible provider.
How coexistence delivers data to your backend
Subscribe to three additional webhook fields:
history: up to 180 days of one-to-one messages, delivered in ordered phase/chunk webhooks. Groups are excluded. Media asset IDs are sent separately only for media from the 14 days before onboarding.smb_app_state_sync: WhatsApp contacts and later contact changes from the Business App.smb_message_echoes: new messages the business sends from the Business App or a supported companion device after onboarding.
Direction matters. Customer-to-business traffic arrives throughmessages. A staff member typing in the Business App produces smb_message_echoes. A workflow that listens only for messages will miss those human replies.
History synchronization is one-shot and time-boxed
Contacts and history must each be requested within 24 hours of onboarding, and each request can run only once. If you miss the window, Meta requires offboarding and a fresh Embedded Signup. With a no-storage route such as Dualhook, keep your receiver healthy because Dualhook cannot replay payloads it never stored.
Meta's current feature table also says message edit and revoke are supported for one-to-one chats, and its smb_message_echoes reference documents edit and revoke payloads. Some provider help tables still repeat the older limitation; Meta is the authority used here.
n8n, Make, and custom webhook integrations
- Native node: use a provider or platform node when its event model matches what you need. N8n also provides a WhatsApp Business Cloud node and WhatsApp Trigger.
- Generic webhook:receive raw Meta payloads in an n8n Webhook node, Make Custom Webhook, or your own application. Your receiver must answer Meta's
hub.challengeverification request. - HTTP API: send through Graph API or a provider REST API while keeping inbound traffic on your preferred webhook route.
N8n documents a single registered webhook per Meta app, so switching between test and production trigger URLs can overwrite the other registration. Treat that as a deployment concern, not a coexistence failure.
WhatsApp Coexistence options for developers compared
Last verified 30 August 2026. “Direct” describes the inbound message-path webhook, not every management or outbound operation.
| Option | Inbound route | App echoes | Existing history | Storage model | Published entry |
|---|---|---|---|---|---|
| Dualhook | Meta → your endpoint | Direct to your endpoint | Meta history webhooks direct to you | No message-content storage | $12/month for 1 connection |
| Meta Cloud API direct | Direct to your endpoint | You implement handling | You implement the one-time sync | Your infrastructure | $0 provider fee; partner status required |
| 360dialog | Configurable provider webhook | Documents smb_message_echoes | Sync supported | BSP/Cloud API architecture | $59/number/month |
| Gupshup | Provider callback | Forwards Meta coexistence events | One-time sync UI | Provider platform; region chosen at onboarding | Usage-based; from $0.001/message plus region-based Meta fees |
| respond.io | Provider inbox | Visible, but does not trigger automation | Not currently supported | Centralized inbox storage | $79 annual or $99 monthly |
| WATI | Provider inbox | Synced into the team inbox | Provider advertises chat synchronization | Centralized inbox storage | $59 annual or $69 monthly |
Ranked recommendations by developer use case
1. Dualhook: your backend should receive the webhooks
Best for a team that already has a backend, CRM, or product workflow. Webhook Override sends messages,history, smb_message_echoes, andsmb_app_state_sync from Meta to your endpoint. Dualhook handles onboarding and operations without becoming a message archive or shared inbox.
Choose something else if you need an agent inbox, broadcast UI, or chatbot builder. Direct routing also means your receiver owns durability for the one-time history stream.
2. Meta direct: your organization already has partner status
This gives maximum control and no provider subscription, but it is not an ordinary business's self-service option. You own Embedded Signup, session logging, token lifecycle, the 24-hour sync sequence, offboarding, and monitoring.
3. 360dialog: a conventional BSP route
360dialog has detailed coexistence documentation and configurable webhook delivery. It suits teams that want a BSP relationship or partner platform rather than Dualhook's lighter direct-routing model.
4. Gupshup: self-serve coexistence with usage-based pricing
Gupshup uses usage-based pricing starting at $0.001 per message, plus Meta's destination-based fees. Non-MM Lite marketing messages also carry a 6% markup over Meta's fee. That markup is $0.000708 when the applicable Meta marketing rate is $0.0118. Gupshup also flags Meta-side inconsistencies involving history, contact sync, and message echoes, so test the complete flow.
5. respond.io or WATI: the provider inbox is the product
Both are appropriate when agents should work in a centralized interface. Respond.io explicitly says its echo messages do not trigger automation and that coexistence history import is not currently supported. WATI starts at $59 per month billed annually or $69 monthly; respond.io starts at $79 annually or $99 monthly. WATI describes Growth as 10,000 API calls per month with no webhooks, Pro as 200,000 API calls with limited webhooks, and Business as 20 million API calls with extensive webhooks.
Developer decision framework
- Confirm that the onboarding provider is eligible with Meta.
- Decide whether your backend or a provider inbox owns the conversation record.
- Make your receiver durable before starting the one-time sync.
- Handle messages and smb_message_echoes as different directions.
- Test unsupported companion-device behavior and error 131060.
- Move to API-only if the fixed 20 mps ceiling is insufficient.
Frequently asked questions
What webhook fires when someone replies in the Business App?
A message sent by the business from the WhatsApp Business App or a supported companion device triggers smb_message_echoes. A customer-to-business message continues to arrive in the normal messages webhook field.
Can any developer enable WhatsApp Coexistence directly?
No. Meta requires the onboarding party to already be a Solution Partner or Tech Provider and to use Embedded Signup with session logging. A business can use a provider such as Dualhook rather than becoming a partner itself.
What is the throughput limit for a coexistence number?
Meta fixes throughput at 20 messages per second for numbers that use the WhatsApp Business App and Cloud API together. A provider's higher-throughput plan does not raise that coexistence limit.
How long do I have to request contact and history sync?
Meta gives the onboarding party 24 hours after onboarding. Contact and history synchronization can each be initiated only once; if the window is missed, the business must be offboarded and complete Embedded Signup again.
How much WhatsApp Business App history can be synchronized?
Meta documents up to 180 days of one-to-one message history. Group chats are excluded, and media asset IDs are provided only for media messages sent within 14 days of onboarding.
Can messages be edited or revoked under coexistence?
Yes. Meta's current feature table says Message Edit/Revoke is supported for one-to-one chats. Older provider tables that still say otherwise are stale.