WhatsApp Business: the official API
DMWire connects a number on the official WhatsApp Business Platform (Cloud API) that runs on your own Meta app. Your agent answers within WhatsApp's 24 hour window and sends approved templates outside it.
This is the official API, on a number registered to your business. It is a different way in from WhatsApp, which links an everyday WhatsApp number like a browser. Meta bills your own WhatsApp Business Account for the messages; DMWire never sits in the billing.
What you need
From developers.facebook.com and WhatsApp Manager:
- A Meta app with the WhatsApp product, connected to your business portfolio.
- The App ID and App Secret (App settings, Basic).
- A system user access token for the app, with
whatsapp_business_messagingandwhatsapp_business_management. Create it under Business settings, Users, System users, and give the system user the app and the WhatsApp Business Account as assets. A token that never expires saves you reconnecting. - The WhatsApp Business Account ID (WhatsApp, API setup).
- A phone number on that account. If the account holds several, its phone number ID.
Connect
Ask your agent to "connect my WhatsApp Business number" with these values, or call connect_whatsapp_business:
curl -X POST https://api.dmwire.ai/v1/channels/whatsapp-business \
-H "X-API-Key: $DMWIRE_API_KEY" -H "Content-Type: application/json" \
-d '{"app_id":"...","app_secret":"...","access_token":"...","waba_id":"..."}'DMWire checks the values with Meta, subscribes your app to the account's webhook, and registers and switches on the number, in one call. The answer:
status:connected, orpendingwith adetailnaming what Meta has not confirmed yet. Finish that step, then callverify_whatsapp_business.phone_number,phone_number_id,waba_id.webhook_urlandverify_token, withwebhook_subscribed. When it isfalse, paste both under WhatsApp, Configuration, Webhook in your app and subscribe tomessages.
Refusals: invalid_credentials (400) when Meta rejects the values, phone_number_required (409, with phone_numbers to pick from) when the account holds several numbers, phone_number_not_on_waba (400) for a phone number ID that is not on it. The secret and the token are never returned.
get_whatsapp_business_status shows the stored connection; disconnect_whatsapp_business removes it. The dashboard has a connect screen for this too.
Sending inside the 24 hour window
Within 24 hours of the person's last message, your agent sends a normal message with send_message, addressed by to.phone (international format) or to.contact_id: text, plus at most one media_url.
Outside the window (or to someone who never wrote), the send is refused with outside_window (409) and template_required: true. Then only an approved template goes out.
Templates
| Tool | What it does |
|---|---|
list_templates | Your templates on the WhatsApp Business Account, with their approval status |
create_template | Submits a new template to Meta for review (name, language, body with {{1}} placeholders, category) |
delete_template | Deletes a template by name |
send_template | Sends an approved template |
curl -X POST https://api.dmwire.ai/v1/messages/template \
-H "X-API-Key: $DMWIRE_API_KEY" -H "Content-Type: application/json" \
-d '{"to":{"phone":"+31612345678"},"template":{"name":"order_update","language":"en_US","variables":["Anna","#1042"]}}'variables fills {{1}}, {{2}} in order, or takes an object keyed by placeholder. components sends Meta's own components array as is. Refusals: invalid_template (400) for a malformed name, language or variables, and template_not_supported (422) on a channel without templates. Meta decides on approval, usually within minutes; a template it has not approved fails at Meta.
Limits on WhatsApp Business
| Limit | Value |
|---|---|
| Numbers per DMWire account | 1 |
| Messages you send per day (early access) | 50 |
| New contacts per day (early access) | 10 |
| Messages to one person who has not replied | 3, then DMWire waits for their reply |
Meta sets its own messaging limits per number on top of these, and pauses templates that people block or report.
Meta's rules
Your number is bound by Meta's WhatsApp Business terms and messaging policy: people must have agreed to hear from you before you send them a template, and Meta's terms restrict what AI assistants may do on the platform. An agent that answers for your own business, and hands over to a person when asked, is the use they expect.
Last checked against the live service on 2026-10-17.