June 21, 2026
WhatsApp Coexistence: why we had to become a Meta Tech Provider
Our goal seemed perfectly reasonable: have the same WhatsApp number attended by both a bot (to guide the product design) and a human (for the personal touch when needed). In WhatsApp that has a name: Coexistence.
What we didn’t expect was what we found when we tried it.
Coexistence is NOT self-serve
You can connect a new number to the WhatsApp API yourself, in minutes. But connecting a number you already use in the WhatsApp Business app — without losing it on your phone — is a different story. For that you need the Coexistence flow, and that flow is only available through a BSP or by becoming a Meta Tech Provider.
There’s no “enable Coexistence” button. We tried: the number stayed as
platform_type: ON_PREMISE, the webhook received nothing, and we spent hours debugging
something that simply wasn’t possible via the direct route.
The real options
- A dedicated new number on the API. Free, minutes, but you lose your brand number and the bot lives apart from the human (cold UX).
- A BSP (like 360dialog). They give you a “thin layer”, but it’s a proxy: your backend calls their endpoint, you pay a monthly fee, and you duplicate your secret in another cloud.
- Becoming a Tech Provider yourself. More work ahead, but you keep your number, pay no toll… and you build the capability to, one day, offer the service to other shops.
We chose the third. If you’re going to build the “thin layer” anyway, better make it yours.
What being a Tech Provider involves
It’s not a click. It’s a series of gates:
- Business verification with Meta (hours for us, not days).
- App Review: videos demonstrating each permission (
whatsapp_business_messaging,whatsapp_business_management), use-case descriptions written by hand (AI-generated ones get rejected), and test API calls whose data takes up to 24h to register. Timeline: up to ~20 days. - Access Verification: a second process, separate from App Review, confirming you really operate as a tech provider. ~5 days. Without it, calls to other businesses’ accounts are rejected with an error.
- Embedded Signup: the web flow a shop uses to connect its WhatsApp. For Coexistence, the
trick is
extras.featureType = "whatsapp_business_app_onboarding"(the oldcoexistencevalue is deprecated). - Coexistence-specific webhooks (
history,smb_app_state_sync,smb_message_echoes) and a 24h window to sync history after connecting.
The lesson
What looked like “flipping a switch” turned out to be two Meta reviews in parallel, your own onboarding flow, and an irreversible onboarding as a tech provider.
And here’s the nuance that changes everything: that friction isn’t a flaw, it’s the barrier. That’s why a business that wants to offer “design your product over WhatsApp” will rather connect to a platform that has already walked through all those gates, instead of walking through them itself.
That platform, for us, is Taituri.
— The Taituri team