Skip to content

Glossary drawing · Graph API & SDKs

Business Management API

Also called: Meta Business Management API · Business Manager API · business_management API

Note 1 —The Graph API layer for business portfolios: system users, their tokens, asset assignment, client WABAs and credit-line sharing above WhatsApp itself.

Term
Business Management API
Abbreviation
—
Category
Graph API & SDKs
Level
Expert
Reviewed
Sheet no.
GLO-API-052
Drawn by
InfiQ Glossary

Drawing 1 · Interactive

Trace how a portfolio hands out WhatsApp access

7 / 7
Business portfolio/{BUSINESS_ID}
System user/system_users
App installed/applications
Access token/access_tokens
Owned WABAowned list
Assigned user/assigned_users
WhatsApp callstemplates, numbers
Credit line/extendedcredits
Client WABAshared with you
  • Business portfolio to System user: create
  • System user to App installed: install
  • App installed to Access token: generate
  • Business portfolio to Owned WABA: owns
  • Owned WABA to Assigned user: add user
  • Access token to WhatsApp calls: Bearer
  • Assigned user to WhatsApp calls: tasks
  • Business portfolio to Credit line: owns
  • Credit line to Client WABA: attach

Hop 7 of 7

Assigned userWhatsApp callstasks

Arrives at WhatsApp calls — templates, numbers.

The objects the Business Management API manages and the calls that join them. Follow the packet from the portfolio to a working token and an assigned WABA; the bottom row is the partner credit-line path.

Hop 7 of 7: Assigned user to WhatsApp calls — tasks.

What is the Business Management API?

The Business Management API is the part of Meta's Graph API that manages a business portfolio (still called Meta Business Manager in many guides) and the identities and assets inside it. Where most WhatsApp calls act on a WhatsApp Business Account (WABA) or a phone number, these calls act on the layer above: the portfolio node /{BUSINESS_ID}, the WABAs it owns (/{BUSINESS_ID}/owned_whatsapp_business_accounts), the WABAs clients have shared with it (/{BUSINESS_ID}/client_whatsapp_business_accounts), its system users (/{BUSINESS_ID}/system_users), the apps installed for them and the tokens they issue. It is the same API Meta uses for ad accounts, Pages and catalogues; WhatsApp is one family of assets among several.

For WhatsApp teams the most useful calls are about identity. POST /{SYSTEM_USER_ID}/applications installs your app for a system user; POST /{SYSTEM_USER_ID}/access_tokens, with business_app, scope and an appsecret_proof, generates a system user access token, and set_token_expires_in_60_days=true makes it a 60-day token instead of a never-expiring one. Expiring tokens are refreshed through /oauth/access_token with grant_type=fb_exchange_token and revoked with /oauth/revoke, which gives you rotation without downtime. Asset assignment, POST /{WABA_ID}/assigned_users?user=…&tasks=['MANAGE'], decides which system user may act on which WABA and how much it may do.

The name invites confusion with the WhatsApp Business Management API, and the difference is the level. The WhatsApp Business Management API manages WhatsApp objects (message templates, phone numbers, analytics, subscribed apps) and needs whatsapp_business_management. The Business Management API manages the portfolio, its people and its partners, and portfolio-level calls need business_management, a permission Meta describes as rarely needed because the same work can be done in Meta Business Suite. Solution Partners also meet it in credit-line sharing (/{BUSINESS_ID}/extendedcredits and whatsapp_credit_sharing_and_attach), where a partner's credit line is attached to a client's WABA. Customers onboarded through Embedded Signup show up here as client WABAs, but the per-customer business integration system user access token comes from the signup code exchange, not from this API.

Key takeaways

  • The Business Management API is the Graph API layer for the business portfolio itself: system users, their tokens, assets and partners.
  • It sits above WhatsApp: the WhatsApp Business Management API handles templates and numbers, this one handles who can reach them.
  • Portfolio-level calls need the business_management permission, which Meta says most WhatsApp integrations rarely need.
  • System user tokens come from POST /{SYSTEM_USER_ID}/access_tokens, as never-expiring or 60-day tokens you refresh and revoke.
  • Assign a WABA to a system user with POST /{WABA_ID}/assigned_users, using an admin system user's token and tasks such as MANAGE or DEVELOP.

Design intent

Why does the Business Management API matter?

Clicking through Business Settings works for one WABA and one integration. It breaks down for an enterprise running 30 WABAs across brands, an agency handing accounts back to clients, or a partner provisioning tokens for every new environment. The Business Management API turns those chores into code: an inventory of every WABA and who can act on it, system users created with only the tasks they need, tokens that rotate on a schedule, and offboarding that removes access in one reviewed script instead of a dozen manual clicks someone forgets.

Implementation

The Business Management API in code

# WABAs your portfolio owns
curl "https://graph.facebook.com/v26.0/{BUSINESS_ID}/owned_whatsapp_business_accounts?fields=id,name" \
-H "Authorization: Bearer {ADMIN_SYSTEM_USER_TOKEN}"
# WABAs clients have shared with you (for example through Embedded Signup)
curl "https://graph.facebook.com/v26.0/{BUSINESS_ID}/client_whatsapp_business_accounts?fields=id,name" \
-H "Authorization: Bearer {ADMIN_SYSTEM_USER_TOKEN}"
# The portfolio's system users
curl "https://graph.facebook.com/v26.0/{BUSINESS_ID}/system_users" \
-H "Authorization: Bearer {ADMIN_SYSTEM_USER_TOKEN}"

Paginate with the cursors in each response's paging object when the lists are long.

Operating sequence

How does the Business Management API work?

  1. Get portfolio-level access

    Use a token from an admin system user that holds business_management for portfolio calls. Keep this identity for provisioning scripts only, never for sending messages.

  2. Inventory your assets

    List the WABAs you own with GET /{BUSINESS_ID}/owned_whatsapp_business_accounts and those shared with you with GET /{BUSINESS_ID}/client_whatsapp_business_accounts, then GET /{BUSINESS_ID}/system_users for the identities.

  3. Install the app and issue tokens

    Call POST /{SYSTEM_USER_ID}/applications with business_app, then POST /{SYSTEM_USER_ID}/access_tokens with the permissions the service needs and an appsecret_proof. Prefer 60-day tokens so rotation is routine.

  4. Assign WABAs with the right tasks

    Grant each system user only the WABAs it needs through POST /{WABA_ID}/assigned_users: MANAGE for full control, DEVELOP for developer access, or granular tasks such as MANAGE_TEMPLATES.

  5. Rotate, audit and offboard

    Refresh tokens with fb_exchange_token, deploy, then revoke the old one. Review assigned_users per WABA regularly and remove access with DELETE when a service, agency or partner leaves.

Specifications

The Business Management API: key facts and limits

Acts on
Business portfolio, system users, apps, assets, partners
Portfolio permission
business_management (rarely needed for messaging)
Owned WABAs
GET /{BUSINESS_ID}/owned_whatsapp_business_accounts
Shared WABAs
GET /{BUSINESS_ID}/client_whatsapp_business_accounts
Issue a token
POST /{SYSTEM_USER_ID}/access_tokens
Token lifetimes
Never-expiring, or 60 days (set_token_expires_in_60_days)
Assign a WABA
POST /{WABA_ID}/assigned_users with tasks (MANAGE, DEVELOP…)
Credit Line API limit
5,000 requests per hour

Failure modes

Common mistakes with the Business Management API

  • Calling it for WhatsApp objects

    Templates, phone numbers and analytics belong to the WhatsApp Business Management API and need whatsapp_business_management. A token with only business_management cannot create a template.

  • Granting business_management everywhere

    Portfolio access in a sending service turns a leaked token into control of the whole portfolio, and unneeded permissions are a common App Review rejection reason. Keep it in one provisioning identity.

  • Assigning assets with a regular system user

    Adding users to a WABA needs an admin system user's token. A regular (EMPLOYEE) system user can act only on what it was given and cannot hand out access.

  • Non-expiring tokens nobody rotates

    Meta suggests 60-day tokens because a leaked never-expiring token stays valid indefinitely. If you keep non-expiring ones, rotate them on a schedule anyway.

  • Running audits in a tight loop

    assigned_users sits under the per-WABA business use case limit of 200 calls an hour, or 5,000 for an active WABA. Spread large audits out and read the usage header.

Example: A quarterly access audit at a Gurugram consumer group

A Gurugram consumer-goods group runs 14 brands on 30 WABAs. Its quarterly audit script lists the owned WABAs, then reads assigned_users for each and compares the result with an approved list in Git. The run flags a system user named after a former campaign agency that still holds MANAGE on four brand WABAs, and a template-sync service holding MANAGE where MANAGE_TEMPLATES would do. After sign-off, the script removes the agency's assignments with DELETE, reassigns the sync service with the narrower task, refreshes the sender's 60-day token, deploys it and revokes the old one. The whole review takes an afternoon and leaves a diff the security team can read.

Recommended practice

Best practices for the Business Management API

  • Keep the approved map of system users, WABAs and tasks in Git and let the audit script report any drift.
  • Name system users after their job (wa-sender-prod, wa-templates-sync) so a review can tell what each one is for.
  • Use granular tasks such as MANAGE_TEMPLATES instead of MANAGE when a service needs only one kind of access.
  • Remove an agency's or partner's assignments on the day the contract ends, then rotate any token they could have seen.

Business Management API FAQs

What is the difference between the Business Management API and the WhatsApp Business Management API?+
The Business Management API manages the portfolio layer: system users, tokens, asset assignment and partners. The WhatsApp Business Management API manages WhatsApp objects inside a WABA, such as templates, phone numbers and analytics, and needs a different permission.
Do I need the business_management permission to use the WhatsApp Cloud API?+
Usually not. Sending needs whatsapp_business_messaging and template or number management needs whatsapp_business_management; business_management is for programmatic portfolio work, which Meta says most integrations rarely need.
How do I generate a system user access token through the API?+
Install your app for the system user with POST /{SYSTEM_USER_ID}/applications, then call POST /{SYSTEM_USER_ID}/access_tokens with business_app, scope and appsecret_proof. Add set_token_expires_in_60_days=true for a 60-day token you can refresh.
How do I give a system user access to a WhatsApp Business Account by API?+
Call POST /{WABA_ID}/assigned_users with the system user's ID and a tasks list such as ['MANAGE'] or ['DEVELOP'], using an admin system user's token. GET on the same edge shows who is assigned and with which tasks.

See InfiQ pricing

Put Business Management API to work

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.