Connecting takes two calls with a human step between them
WhatsApp cannot be provisioned headlessly, and that is Meta’s rule rather than ours: the merchant has to complete an Embedded Signup popup in a real browser.1
Read the popup parameters
app_id and config_id are public by design — a browser needs them to open
Meta’s dialog and they authorise nothing without the secret we never send. Open
the popup in your own admin UI.If server_ready is false, stop: this deployment has no Meta app configured,
and the popup would open and immediately fail.2
Exchange the code, server-side
The popup hands the browser a short-lived Set
code. Post it back from your server.coexistence: true when the number also stays live on the WhatsApp Business
App. We start Meta’s required contacts and history sync for you — Meta gives you
24 hours from onboarding, so do not defer this call.Meta’s own consent dialog names the app, so the merchant sees ImpelLabs
during signup. This is the one place the white label leaks. Per-partner Meta
apps would fix it and would push App Review onto every partner. Tell your
merchants to expect it rather than letting them discover it in a demo.
Connecting does not start the assistant
A newly connected number arrivespending. Inbound messages are recorded, a
lead is created, webhooks fire — and nothing replies.
assistant_id binds the number to it, so “turn the AI on” is one
call. {"on": false} pauses again — credentials kept, inbound still recorded.
Activating a number that nothing will answer on is a 400 no_binding
rather than a silent success: a silent success there is a merchant waiting for
replies that can never arrive. Pass force: true if you mean it.
Reconnecting a released number returns it to pending, not to answering.
Nobody has said the assistant should resume.
Once a number is live, see Numbers for
managing more than one, and
Conversations for sending.
