What is the WhatsApp Business Management API?
The WhatsApp Business Management API is the part of Meta's Graph API that manages WhatsApp Business Platform assets rather than conversations. Through it you read and update a WhatsApp Business Account (WABA), list and configure its phone numbers, create, edit and track the review status of every message template, pull messaging and pricing analytics, and connect apps to the account's webhooks. It shares the host, versioning and tokens of the rest of Graph API — https://graph.facebook.com/v26.0/… with a bearer token — and needs the whatsapp_business_management permission.
Its surface is organised around two nodes. The WABA node, /{WABA_ID}, exposes account fields such as name, currency, timezone_id and message_template_namespace, plus edges: message_templates for the Template Management API calls, phone_numbers for the numbers it owns, subscribed_apps for webhook delivery and assigned_users for the system users that can reach it. Analytics come through fields such as analytics and pricing_analytics and the template_analytics edge. The phone number node, /{PHONE_NUMBER_ID}, exposes number fields (display_phone_number, verified_name, quality_rating, name_status, throughput), settings such as two-step verification, and QR code messages on /{PHONE_NUMBER_ID}/message_qrdls.
Three APIs are easy to confuse. The Cloud API sends and receives: POST /{PHONE_NUMBER_ID}/messages, media, and the webhooks that carry inbound messages and statuses. The WhatsApp Business Management API configures the WhatsApp objects those messages depend on. The Business Management API sits one level higher, managing business portfolios, system users and how assets are shared with partners. A typical integration uses all three, often through one system user access token holding the matching permissions.
Key takeaways
- The WhatsApp Business Management API is the set of Graph API calls that configure WhatsApp assets: WABAs, numbers, templates, analytics and subscriptions.
- It does not send messages; sending and receiving belong to the Cloud API's /{PHONE_NUMBER_ID}/messages endpoint and webhooks.
- Most calls hang off /{WABA_ID}: message_templates, phone_numbers, subscribed_apps, assigned_users and analytics fields.
- Calls need a token holding whatsapp_business_management for that WABA; portfolio-level calls also need business_management.
- It is not the Business Management API, which manages business portfolios, system users and asset sharing above the WABA.
Which endpoint handles each job?
Only agents with the required skill are eligible; the least busy of them wins.
Incoming · 0 left
- All 10 conversations have been routed.
Conversation 10 of 10 · Skills-based
Read monthly spend by category(needs analytics)goes toWABA analytics
Skills: needs analytics, and only WABA analytics has it.
message_templates
2 of 3 open
- templates
- Create Diwali offer templateneeds templates
- List rejected templatesneeds templates
phone_numbers
2 of 3 open
- numbers
- Find the new number's IDneeds numbers
- Check number quality ratingneeds numbers
subscribed_apps
1 of 2 open
- webhooks
- Subscribe new WABA to webhooksneeds webhooks
- Full
WABA analytics
2 of 2 open
- analytics
- Pull last week's delivered countsneeds analytics
- Read monthly spend by categoryneeds analytics
- Full
Cloud API /messages
2 of 2 open
- sending
- Send order-shipped templateneeds sending
- Reply to a customerneeds sending
Business Management API
1 of 2 open
- portfolio
- Add a system userneeds portfolio
Waiting · 0
- Nobody waiting: every conversation found an agent.
| Strategy | Routed | Waiting | Skill mismatches |
|---|---|---|---|
| Skills-based | 10 | 0 | 0 |
| Round-robin | 10 | 0 | 5 |
Conversation 10 of 10, Read monthly spend by category: Skills: needs analytics, and only WABA analytics has it.
Why does the WhatsApp Business Management API matter?
Messaging is only half of a WhatsApp integration. Before the first send, someone has to find the right phone number ID, check the number's quality and display-name status, subscribe the app to webhooks and get templates approved; afterwards, someone has to report on delivered volume and spend. WhatsApp Manager handles that for one account. Platforms serving many businesses, or teams that want templates and settings in version control, need the same operations in code — and that is what this API provides.
Key facts at a glance
The WhatsApp Business Management API: key facts and limits
- Host
- graph.facebook.com, current version v26.0
- Permission
- whatsapp_business_management
- Main nodes
- /{WABA_ID} and /{PHONE_NUMBER_ID}
- Key edges
- message_templates, phone_numbers, subscribed_apps, assigned_users
- Template creation cap
- 100 per WABA per hour
- Usage header
- X-Business-Use-Case-Usage
- Does not
- Send or receive messages (that is the Cloud API)
How does the WhatsApp Business Management API work?
Get a management token
Use a system user access token, or a partner's business integration token, that holds
whatsapp_business_managementfor the WABA. Addbusiness_managementonly for portfolio-level calls.Discover the account's numbers
GET /{WABA_ID}/phone_numbersreturns each number'sid,display_phone_number,verified_nameandquality_rating. Thatidis the phone number ID you send from.Connect webhooks
POST /{WABA_ID}/subscribed_appssubscribes your app so the account's events reach your callback URL.Manage templates
Create, list, edit and delete on
/{WABA_ID}/message_templatesand/{TEMPLATE_ID}. Review results arrive on themessage_template_status_updatewebhook.Report on usage
Read
analyticsorpricing_analyticson the WABA with a start, an end and a granularity to reconcile delivered volume and cost.Respect rate limits
Management calls count against the business use case rate limit (BUC) for each app and WABA. Watch the
X-Business-Use-Case-Usageresponse header and back off when it nears its limits.
The WhatsApp Business Management API in code
# Account fieldscurl -G "https://graph.facebook.com/v26.0/{WABA_ID}" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-d "fields=name,currency,timezone_id,message_template_namespace"# Phone numbers it ownscurl -G "https://graph.facebook.com/v26.0/{WABA_ID}/phone_numbers" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-d "fields=id,display_phone_number,verified_name,quality_rating,throughput"# Subscribe this app to the account's webhookscurl -X POST "https://graph.facebook.com/v26.0/{WABA_ID}/subscribed_apps" \-H "Authorization: Bearer {ACCESS_TOKEN}"# Approved templates, 50 per pagecurl -G "https://graph.facebook.com/v26.0/{WABA_ID}/message_templates" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-d "fields=name,language,status,category" \-d "status=APPROVED" -d "limit=50"
Every call here needs whatsapp_business_management for this WABA; none of them sends a message.
Example: Onboarding a clinic chain in Hyderabad
A Hyderabad health-tech platform onboards a chain of 50 clinics, each with its own WABA, through Embedded Signup. For every new account, its onboarding worker calls GET /{WABA_ID}/phone_numbers to store the phone number ID and quality rating, POST /{WABA_ID}/subscribed_apps to receive webhooks, and creates the platform's standard appointment templates on message_templates in English, Hindi and Telugu. A nightly job reads pricing_analytics for each WABA to bill the clinics accurately. None of this sends a message; the Cloud API takes over when the first reminder goes out.
Common wrong turns
Common mistakes with the WhatsApp Business Management API
Looking for a send call
There is no send endpoint on
/{WABA_ID}. Messages go to/{PHONE_NUMBER_ID}/messageson the Cloud API.Using a messaging-only token
A token with only
whatsapp_business_messagingfails management calls with a permissions error (code 200). Addwhatsapp_business_managementto tokens that manage.Polling for changes
Polling templates and numbers burns rate limit. Subscribe to
message_template_status_update,phone_number_quality_update,account_updateand related webhook fields instead.Reading only the first page
List edges are paginated. Follow
paging.nextuntil it disappears, or audits silently miss templates and numbers.Mixing up the two management APIs
System users, portfolio assets and partner sharing are Business Management API calls on the business ID and need
business_management; WhatsApp objects live on the WABA.
Good practice
Best practices for the WhatsApp Business Management API
- Cache phone number IDs and WABA metadata; they rarely change.
- Request only the
fieldsyou need for smaller responses and fewer surprises across versions. - Keep the Graph API version in one configuration value and upgrade it deliberately.
- Log
fbtrace_idfrom errors so Meta support can trace a failing management call.