Meta / WhatsApp Business
This guide connects WhatsMine to the official WhatsApp Business Platform (Meta Cloud API). Setup has two parts: you (the admin) configure the Meta App once, then each customer connects their own WhatsApp number in a few clicks.
Part 1 — Create your Meta App (admin, one-time)
You need a Meta for Developers app of type Business, with the WhatsApp product and Embedded Signup configured.
- Go to developers.facebook.com → My Apps → Create App → Business.
- Add the WhatsApp product to the app.
- Add Facebook Login for Business, and create an Embedded Signup configuration — this gives you a Configuration ID.
- Add your platform's domain to the app's Allowed Domains for the JavaScript SDK.
- Provide your Privacy Policy and Terms URLs (WhatsMine serves these at
/privacyand/terms). - Request Advanced Access for
whatsapp_business_management,whatsapp_business_messagingandbusiness_management, and set the app Live.
From the app dashboard, note your App ID, App Secret and Configuration ID.
Part 2 — Enter the credentials in WhatsMine (admin)
Location: Admin → Integrations → Meta App
📸 Screenshot: The Meta App integration form in the admin panel.
| Field | Value |
|---|---|
| App ID | Your Meta App ID. |
| App Secret | Your Meta App Secret. |
| Webhook Verify Token | A token of your choosing (used for Messenger/Instagram). |
| Config ID (WhatsApp) | The Embedded Signup Configuration ID for WhatsApp. |
| Config ID (Social) | (Optional) the config ID for Instagram/Messenger embedded signup. |
| System User Token | (Optional) for manual setup and connection tests. |
Save, then enable the integration. Make sure APP_URL is your public HTTPS domain.
Part 3 — How customers connect (no admin action)
Once your Meta App is configured, your customers connect their own WhatsApp number themselves:
- In the app, the customer goes to Channel Setup and clicks Connect WhatsApp.
- A Meta pop-up guides them to select their WhatsApp Business Account and phone number.
- WhatsMine automatically:
- exchanges the secure authorisation code for an access token,
- subscribes the app to their account,
- registers the webhook (
/webhooks/whatsapp/global) — no manual webhook setup needed, - syncs their phone numbers and approved templates.
That's it — the number shows as Connected. See the WhatsApp user guide.
Webhooks
| Connection type | Webhook URL | Verify token |
|---|---|---|
| Embedded signup (recommended) | https://your-domain.com/webhooks/whatsapp/global | Auto-derived; auto-registered. |
| Manual setup | https://your-domain.com/webhooks/whatsapp/{token} | Per-account token shown in the UI. |
For embedded signup, the webhook is registered for you. For manual setups, add the displayed URL + token in the Meta App dashboard under Webhooks, subscribing to the messages, message_template_status_update and account/phone update fields.
All webhook calls are verified with an HMAC-SHA256 signature against your App Secret. In production, a missing App Secret causes webhooks to be rejected.
Requirements checklist
- [ ] Meta App (Business) with WhatsApp + Facebook Login for Business
- [ ] Embedded Signup configuration created → Config ID copied
- [ ] App ID, App Secret, Config ID entered in Admin → Integrations and enabled
- [ ] App is Live with Advanced Access approved
- [ ]
APP_URLis public HTTPS - [ ] Queue worker running the
whatsappqueue (so inbound messages process)
Queue worker required for inbound messages
Incoming WhatsApp messages are processed by a background job on the whatsapp queue. Make sure your queue worker includes it: php artisan queue:work --queue=whatsapp,default See Deployment.
Troubleshooting
- Messages not arriving? Check the webhook is registered in the Meta dashboard, the queue worker is running the
whatsappqueue, andAPP_URLis HTTPS. Customers can use Re-register webhook on their connected account. - Connect button missing? The Meta App integration must be enabled in admin and the Config ID set.
- Can't send outside 24h? That's expected — use an approved template.
➡️ Next: Messenger & Instagram.