Developer comparison

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.

By Dualhook editorial teamTechnical review: Dualhook engineering

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

  1. 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.
  2. 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.challenge verification request.
  3. 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.

OptionInbound routeApp echoesExisting historyStorage modelPublished entry
DualhookMeta → your endpointDirect to your endpointMeta history webhooks direct to youNo message-content storage$12/month for 1 connection
Meta Cloud API directDirect to your endpointYou implement handlingYou implement the one-time syncYour infrastructure$0 provider fee; partner status required
360dialogConfigurable provider webhookDocuments smb_message_echoesSync supportedBSP/Cloud API architecture$59/number/month
GupshupProvider callbackForwards Meta coexistence eventsOne-time sync UIProvider platform; region chosen at onboardingUsage-based; from $0.001/message plus region-based Meta fees
respond.ioProvider inboxVisible, but does not trigger automationNot currently supportedCentralized inbox storage$79 annual or $99 monthly
WATIProvider inboxSynced into the team inboxProvider advertises chat synchronizationCentralized 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

  1. Confirm that the onboarding provider is eligible with Meta.
  2. Decide whether your backend or a provider inbox owns the conversation record.
  3. Make your receiver durable before starting the one-time sync.
  4. Handle messages and smb_message_echoes as different directions.
  5. Test unsupported companion-device behavior and error 131060.
  6. 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.