WhatsApp API
Send Meta-approved template messages from your own WhatsApp Business Account. The official Business Platform, not a grey-route bot.
Auth: mbs_ scoped tokens
WhatsApp lives under
/api/v1/ and requires an mbs_ token with WhatsApp scopes. See Authentication. Responses use the { success, data, error } envelope.How it fits together
- Connect an account: your WABA credentials (phone number ID, WABA ID, access token) connect once; templates sync automatically.
- Templates: created and reviewed with Meta; their live review status is mirrored here. Only approved templates can send.
- Send: pick a template, supply recipients and variable values; delivery and read receipts stream back.
The portal and the API share the same accounts: anything you see under WhatsApp in your dashboard is returned by the API, and vice versa.
List your accounts
GEThttps://api.mobilesasa.com/api/v1/whatsapp/accounts
Returns every WhatsApp Business Account on your team. The uuid on each account is the account_uuid you pass when sending and when listing templates.
# Paste your token once (it starts with mbs_):
export MOBILESASA_TOKEN="mbs_your_token_here"
curl "https://api.mobilesasa.com/api/v1/whatsapp/accounts" \
-H "Authorization: Bearer $MOBILESASA_TOKEN"Response
{
"success": true,
"data": {
"accounts": [
{
"uuid": "9f6e2a1c-…",
"name": "Main line",
"phone_number_id": "1093857629",
"msisdn": "254700000001",
"waba_id": "204817593",
"status": true,
"template_count": 4,
"created_at": "2026-07-10T09:30:00Z"
}
]
}
}See an account you did not connect?
Some teams have a number provisioned for them by Mobile Sasa instead of connecting their own WABA. That account works on the API exactly like a self-connected one: fetch it here, use its
uuid as the account_uuid in sends, and list its templates the same way. You do not need to connect anything else to use it.Connect a WhatsApp Business Account
POSThttps://api.mobilesasa.com/api/v1/whatsapp/accounts
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | A label for this account (shown in listings). |
| phone_number_id | string | Yes | Meta phone number ID from the WhatsApp Business Platform. |
| waba_id | string | Yes | Your WhatsApp Business Account ID. |
| api_key | string | Yes | A permanent Meta access token for the WABA. |
| msisdn | string | No | The display number, for your own reference. |
| app_id | string | No | Meta app ID, if you scope tokens per app. |
# Paste your token once (it starts with mbs_):
export MOBILESASA_TOKEN="mbs_your_token_here"
curl -X POST https://api.mobilesasa.com/api/v1/whatsapp/accounts \
-H "Authorization: Bearer $MOBILESASA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Main line",
"phone_number_id": "1093857629",
"waba_id": "204817593",
"api_key": "EAAG…"
}'Connecting triggers an immediate template sync from Meta. Disconnect an account with DELETE /api/v1/whatsapp/accounts/{uuid}.