How to Enable Meta Business Agent on a BSP-Managed WhatsApp Number

Enable Meta Business Agent on a BSP-managed WhatsApp number by completing seven steps in Meta’s developer tools: accepting the MBA Terms of Service in WhatsApp Manager, setting up billing, creating a system user with Admin role, assigning your app and WABA to that user, generating a BISU token with the required permissions, subscribing your app to the WABA, and subscribing to the webhook fields that route conversations between the agent and your application. For a broader look at the product, see the complete guide to Meta Business Agent.

Key Takeaways

  • Meta Business Agent setup on a BSP-managed number requires seven discrete steps, each dependent on the previous one completing successfully.
  • The BSP or Tech Provider must accept the Tech Provider Terms of Service in the Facebook Developer Portal before MBA API calls will succeed.
  • MBA requires a BISU token scoped to both whatsapp_business_messaging and whatsapp_business_management permissions; a token missing either permission returns a 401 Unauthorized error.[1]
  • The Onboarding API call (POST /{entity_id}/agent_onboarding) is a required step before configuring the agent through the Settings endpoint.[2]
  • Test with ai_audience set to ALLOWLISTED_ONLY before going live. No payment method is required during testing.[3]

What Are the Prerequisites for Enabling Meta Business Agent on a BSP-Managed Number?

Before starting the setup, gather three IDs and confirm your phone number is eligible. You need a WhatsApp Business Account (WABA) ID from WhatsApp Manager, a Business Portfolio ID from Meta Business Suite, and an App ID from the Facebook Developer Portal.[1] The app must have the whatsapp_business_messaging permission granted.

The phone number must meet all six eligibility conditions.[4] It must be in a supported vertical with a valid business category. All verticals are supported except Finance, Government, Health, Alcohol, Gambling, over-the-counter drugs, and matrimony services. The number must be managed through Cloud API, including through a Solution Partner or Embedded Signup. Neither the WABA nor its owning business can be restricted or banned. The business must be in a country authorized for MBA and must meet trust and verification requirements.

Confirm eligibility programmatically with GET /{phone_number_id}/agent_eligibility using the X-API-Version: 2.0.0 header.[4] For the full list of conditions, see the eligibility checklist.

Accept the MBA Terms of Service

Accept the MBA Terms of Service in WhatsApp Manager by navigating to the correct WABA and opening the Meta Business Agent tab. This tab appears only if at least one phone number in the WABA is eligible.[1] Select the eligible numbers and complete the acceptance. The agent is not enabled after this step.

For BSP-managed numbers, two acceptances are required. The client accepts the MBA Terms of Service in WhatsApp Manager. The BSP or Tech Provider must separately accept the Tech Provider Terms of Service by registering as a Tech Provider in the Facebook Developer Portal.[1] Meta Business Agent rejects API calls until both are recorded.

Setting Up Billing for Meta Business Agent

Set up a payment method in Meta’s Billing Hub before turning the agent on for production traffic. Messages are not delivered unless the account has a payment method attached.[1] Navigate to business.facebook.com/latest/billing_hub/ and add a payment method for the Business Portfolio associated with the WABA.

Enabling the agent with ai_audience set to ALLOWLISTED_ONLY does not require a payment method.[3] A payment method is required only when expanding to EVERYONE.

Create and Configure a System User

Create a system user with the Admin role in Meta Business Suite, then assign both the app and the WABA to that user. MBA API requests authenticate as a system user.[1] If a suitable system user already exists, skip to asset assignment.

Go to Meta Business Suite (business.facebook.com/settings/), open Settings, select System users under Users, click + Add, enter a name, select the Admin role, and click Create system user.

To assign assets, select the system user, click the three-dot menu, and click Assign Assets. Select Apps, find the app, and enable the checkbox. Then find the WABA, enable the checkbox, and click the slider next to View and manage phone numbers. Click Assign Assets to save.

If you manage multiple WABAs and need help configuring system users across them, talk to 360Dialog about streamlining the process through a single partner integration.

Generating a BISU Token with the Required Permissions

Generate a Business Integration System User (BISU) token for the system user. A BISU token lets your platform act on behalf of multiple client WABAs under a single credential.[1] Meta documents two token options: a standard system user token for direct integrators, and a BISU token for Solution Partners and Tech Providers.

MBA requires a BISU token scoped to both whatsapp_business_messaging and whatsapp_business_management permissions; a token missing either permission returns a 401 Unauthorized error.[5] This is the most common failure point during setup. Verify both permissions are selected before generating the token.

Include the X-API-Version: 2.0.0 header on every MBA API request.[1] Requests without this header default to version 1.0.0, where the Skills endpoint is unavailable.

360Dialog’s partner support team can verify your token configuration before you run into a 401 wall.

Subscribe to the Required Webhook Fields

Subscribe your app to the WABA and configure the three required webhook fields that connect your app to the conversation pipeline.[1]

First, subscribe the app to the WABA. In the Graph API Explorer, select the app, choose Get App Token, select the Business Portfolio and WABA, then send POST /{WABA_ID}/subscribed_apps. Verify with GET /{WABA_ID}/subscribed_apps.

Second, subscribe to webhook fields in the Facebook Developer Portal. Open the app, navigate to the WhatsApp tab, and open Configuration. Subscribe to three fields: messages, standby, and messaging_handovers.[1]

These fields establish conversation routing between MBA and your application. MBA acts as the primary responder. Your partner app receives consumer messages on the standby webhook while the agent holds control, and on the messages webhook when your app holds control. The messaging_handovers webhook fires on every control change. Your partner app takes control by sending a message to the conversation or by calling Thread Control with the take action (restricted to the configured escalation partner). To return control, call Thread Control with the release action. Stopping message sends does not release control; the release endpoint must be called explicitly.

For a deeper look at conversation routing changes, see what changes for your BSP integration. As a BSP managing WhatsApp API infrastructure for client accounts, 360Dialog, an Official Meta Solution Partner, supports the full MBA enablement path for numbers managed through its platform.

If your platform is ready for the MBA setup, get API access to start building on 360Dialog’s WhatsApp API infrastructure.

Configuring the Agent’s Knowledge, Skills, and Connectors

Configure the agent through three API stages: Onboard, Configure, and Operate. The minimum to enable the agent is calling the Onboarding endpoint, then the Settings endpoint.[1]

Start with the Onboarding API: send POST /{entity_id}/agent_onboarding with an empty body for WhatsApp.[2] This returns an agent_id and creates the agent configuration. Until this call succeeds, every other MBA endpoint reports that no agent exists for the entity.

After onboarding, configure knowledge through the dedicated endpoints: Skills (system instructions), Business info (hours, locations, policies), FAQs, Websites (URLs for the agent to crawl), Files (uploaded knowledge sources), Connectors (external API definitions), and Connector tools.[1] Product catalog is managed separately in Meta Commerce Manager.

Configure handoff behavior through the Settings endpoint. The handoff.enabled boolean controls whether the agent releases thread control after a handoff message. The message_selection field supports three modes: CUSTOM (business supplies the message), AGENT (AI composes per conversation), and DEFAULT (fixed standard message).[3]

Testing Meta Business Agent Before Going Live

Test with a restricted audience before exposing the agent to real customers. The correct sequence is: add test consumers to the allowlist, set ai_audience to ALLOWLISTED_ONLY, then enable the agent.[1] Enabling the agent before restricting the audience exposes it to live conversations.

Add test phone numbers by calling POST /{entity_id}/agent_config/allowlist with consumer_phone_number in E.164 format.[1] List entries with GET and remove with DELETE on the same endpoint.

Enable the agent by calling PUT /{entity_id}/agent_config/settings with rollout.enabled set to true.[3] Meta also provides an Agent Test API at /{entity_id}/agent_test that sends test messages through the full pipeline synchronously, without requiring the agent to be enabled and without billing the tokens consumed.[5]

Before switching ai_audience to EVERYONE, confirm webhook subscriptions with GET /{WABA_ID}/subscribed_apps, verify settings with GET /{entity_id}/agent_config/settings, attach a payment method in Billing Hub, and validate handoff logic by triggering an escalation through the Agent Test API.[1] Monitor the Agent Insights endpoint to review which knowledge sources and skills the agent uses during test conversations. Disabling the agent stops responses on all active threads; re-enabling makes it respond to new threads only.[3]

360Dialog clients get dedicated partner support through every step of the MBA setup, from token configuration to go-live. Get API access to start building.

Frequently Asked Questions

Can I Use Meta Business Agent with a BSP-Managed Number?

Yes. Meta Business Agent works with numbers managed through a BSP or Tech Provider, as long as the number uses Cloud API. The BSP or Tech Provider must accept the Tech Provider Terms of Service in the Facebook Developer Portal, and the BISU token must include both whatsapp_business_messaging and whatsapp_business_management permissions.

Does Meta Business Agent Work in All Verticals?

MBA supports all verticals except Finance, Government, Health, Alcohol, Gambling, over-the-counter drugs, and matrimony services. The phone number must also have a valid business category set in WhatsApp Manager. Confirm eligibility by calling GET /{phone_number_id}/agent_eligibility with the X-API-Version: 2.0.0 header before starting the setup process.

What Happens If the BISU Token Is Missing a Permission?

A BISU token that lacks either the whatsapp_business_messaging or whatsapp_business_management permission returns a 401 Unauthorized error on MBA API calls. Regenerate the token with both permissions selected. This is the most common failure point during MBA setup, so verify both scopes before making any API request.

Do I Need to Set Up Billing Before Testing?

Enabling the agent with ai_audience set to ALLOWLISTED_ONLY does not require a payment method. A payment method is required only when switching ai_audience to EVERYONE for production traffic. The Agent Test API at /{entity_id}/agent_test also sends test messages without billing the tokens consumed.

What Is the Difference Between the Release, Pass, and Take Thread Control Actions?

The release action returns control from the partner app to MBA. The pass action transfers control to the escalation partner, or to MBA when control_pass.target_role is set to ai_agent. The take action is restricted to the configured escalation partner and takes control of the conversation directly.

Sources

[1] “Get started,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/get-started.

[2] “Agent Onboarding,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/reference/onboard/agent-onboarding.

[3] “Agent Settings,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/reference/onboard/agent-settings.

[4] “Overview,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/overview.

[5] “Quickstart,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/quickstart.

Enable Meta Business Agent on a BSP-managed WhatsApp number by completing seven steps in Meta’s developer tools: accepting the MBA Terms of Service in WhatsApp Manager, setting up billing, creating a system user with Admin role, assigning your app and WABA to that user, generating a BISU token with the required permissions, subscribing your app to the WABA, and subscribing to the webhook fields that route conversations between the agent and your application. For a broader look at the product, see the complete guide to Meta Business Agent.

Key Takeaways

  • Meta Business Agent setup on a BSP-managed number requires seven discrete steps, each dependent on the previous one completing successfully.
  • The BSP or Tech Provider must accept the Tech Provider Terms of Service in the Facebook Developer Portal before MBA API calls will succeed.
  • MBA requires a BISU token scoped to both whatsapp_business_messaging and whatsapp_business_management permissions; a token missing either permission returns a 401 Unauthorized error.[1]
  • The Onboarding API call (POST /{entity_id}/agent_onboarding) is a required step before configuring the agent through the Settings endpoint.[2]
  • Test with ai_audience set to ALLOWLISTED_ONLY before going live. No payment method is required during testing.[3]

What Are the Prerequisites for Enabling Meta Business Agent on a BSP-Managed Number?

Before starting the setup, gather three IDs and confirm your phone number is eligible. You need a WhatsApp Business Account (WABA) ID from WhatsApp Manager, a Business Portfolio ID from Meta Business Suite, and an App ID from the Facebook Developer Portal.[1] The app must have the whatsapp_business_messaging permission granted.

The phone number must meet all six eligibility conditions.[4] It must be in a supported vertical with a valid business category. All verticals are supported except Finance, Government, Health, Alcohol, Gambling, over-the-counter drugs, and matrimony services. The number must be managed through Cloud API, including through a Solution Partner or Embedded Signup. Neither the WABA nor its owning business can be restricted or banned. The business must be in a country authorized for MBA and must meet trust and verification requirements.

Confirm eligibility programmatically with GET /{phone_number_id}/agent_eligibility using the X-API-Version: 2.0.0 header.[4] For the full list of conditions, see the eligibility checklist.

Accept the MBA Terms of Service

Accept the MBA Terms of Service in WhatsApp Manager by navigating to the correct WABA and opening the Meta Business Agent tab. This tab appears only if at least one phone number in the WABA is eligible.[1] Select the eligible numbers and complete the acceptance. The agent is not enabled after this step.

For BSP-managed numbers, two acceptances are required. The client accepts the MBA Terms of Service in WhatsApp Manager. The BSP or Tech Provider must separately accept the Tech Provider Terms of Service by registering as a Tech Provider in the Facebook Developer Portal.[1] Meta Business Agent rejects API calls until both are recorded.

Setting Up Billing for Meta Business Agent

Set up a payment method in Meta’s Billing Hub before turning the agent on for production traffic. Messages are not delivered unless the account has a payment method attached.[1] Navigate to business.facebook.com/latest/billing_hub/ and add a payment method for the Business Portfolio associated with the WABA.

Enabling the agent with ai_audience set to ALLOWLISTED_ONLY does not require a payment method.[3] A payment method is required only when expanding to EVERYONE.

Create and Configure a System User

Create a system user with the Admin role in Meta Business Suite, then assign both the app and the WABA to that user. MBA API requests authenticate as a system user.[1] If a suitable system user already exists, skip to asset assignment.

Go to Meta Business Suite (business.facebook.com/settings/), open Settings, select System users under Users, click + Add, enter a name, select the Admin role, and click Create system user.

To assign assets, select the system user, click the three-dot menu, and click Assign Assets. Select Apps, find the app, and enable the checkbox. Then find the WABA, enable the checkbox, and click the slider next to View and manage phone numbers. Click Assign Assets to save.

If you manage multiple WABAs and need help configuring system users across them, talk to 360Dialog about streamlining the process through a single partner integration.

Generating a BISU Token with the Required Permissions

Generate a Business Integration System User (BISU) token for the system user. A BISU token lets your platform act on behalf of multiple client WABAs under a single credential.[1] Meta documents two token options: a standard system user token for direct integrators, and a BISU token for Solution Partners and Tech Providers.

MBA requires a BISU token scoped to both whatsapp_business_messaging and whatsapp_business_management permissions; a token missing either permission returns a 401 Unauthorized error.[5] This is the most common failure point during setup. Verify both permissions are selected before generating the token.

Include the X-API-Version: 2.0.0 header on every MBA API request.[1] Requests without this header default to version 1.0.0, where the Skills endpoint is unavailable.

360Dialog’s partner support team can verify your token configuration before you run into a 401 wall.

Subscribe to the Required Webhook Fields

Subscribe your app to the WABA and configure the three required webhook fields that connect your app to the conversation pipeline.[1]

First, subscribe the app to the WABA. In the Graph API Explorer, select the app, choose Get App Token, select the Business Portfolio and WABA, then send POST /{WABA_ID}/subscribed_apps. Verify with GET /{WABA_ID}/subscribed_apps.

Second, subscribe to webhook fields in the Facebook Developer Portal. Open the app, navigate to the WhatsApp tab, and open Configuration. Subscribe to three fields: messages, standby, and messaging_handovers.[1]

These fields establish conversation routing between MBA and your application. MBA acts as the primary responder. Your partner app receives consumer messages on the standby webhook while the agent holds control, and on the messages webhook when your app holds control. The messaging_handovers webhook fires on every control change. Your partner app takes control by sending a message to the conversation or by calling Thread Control with the take action (restricted to the configured escalation partner). To return control, call Thread Control with the release action. Stopping message sends does not release control; the release endpoint must be called explicitly.

For a deeper look at conversation routing changes, see what changes for your BSP integration. As a BSP managing WhatsApp API infrastructure for client accounts, 360Dialog, an Official Meta Solution Partner, supports the full MBA enablement path for numbers managed through its platform.

If your platform is ready for the MBA setup, get API access to start building on 360Dialog’s WhatsApp API infrastructure.

Configuring the Agent’s Knowledge, Skills, and Connectors

Configure the agent through three API stages: Onboard, Configure, and Operate. The minimum to enable the agent is calling the Onboarding endpoint, then the Settings endpoint.[1]

Start with the Onboarding API: send POST /{entity_id}/agent_onboarding with an empty body for WhatsApp.[2] This returns an agent_id and creates the agent configuration. Until this call succeeds, every other MBA endpoint reports that no agent exists for the entity.

After onboarding, configure knowledge through the dedicated endpoints: Skills (system instructions), Business info (hours, locations, policies), FAQs, Websites (URLs for the agent to crawl), Files (uploaded knowledge sources), Connectors (external API definitions), and Connector tools.[1] Product catalog is managed separately in Meta Commerce Manager.

Configure handoff behavior through the Settings endpoint. The handoff.enabled boolean controls whether the agent releases thread control after a handoff message. The message_selection field supports three modes: CUSTOM (business supplies the message), AGENT (AI composes per conversation), and DEFAULT (fixed standard message).[3]

Testing Meta Business Agent Before Going Live

Test with a restricted audience before exposing the agent to real customers. The correct sequence is: add test consumers to the allowlist, set ai_audience to ALLOWLISTED_ONLY, then enable the agent.[1] Enabling the agent before restricting the audience exposes it to live conversations.

Add test phone numbers by calling POST /{entity_id}/agent_config/allowlist with consumer_phone_number in E.164 format.[1] List entries with GET and remove with DELETE on the same endpoint.

Enable the agent by calling PUT /{entity_id}/agent_config/settings with rollout.enabled set to true.[3] Meta also provides an Agent Test API at /{entity_id}/agent_test that sends test messages through the full pipeline synchronously, without requiring the agent to be enabled and without billing the tokens consumed.[5]

Before switching ai_audience to EVERYONE, confirm webhook subscriptions with GET /{WABA_ID}/subscribed_apps, verify settings with GET /{entity_id}/agent_config/settings, attach a payment method in Billing Hub, and validate handoff logic by triggering an escalation through the Agent Test API.[1] Monitor the Agent Insights endpoint to review which knowledge sources and skills the agent uses during test conversations. Disabling the agent stops responses on all active threads; re-enabling makes it respond to new threads only.[3]

360Dialog clients get dedicated partner support through every step of the MBA setup, from token configuration to go-live. Get API access to start building.

Frequently Asked Questions

Can I Use Meta Business Agent with a BSP-Managed Number?

Yes. Meta Business Agent works with numbers managed through a BSP or Tech Provider, as long as the number uses Cloud API. The BSP or Tech Provider must accept the Tech Provider Terms of Service in the Facebook Developer Portal, and the BISU token must include both whatsapp_business_messaging and whatsapp_business_management permissions.

Does Meta Business Agent Work in All Verticals?

MBA supports all verticals except Finance, Government, Health, Alcohol, Gambling, over-the-counter drugs, and matrimony services. The phone number must also have a valid business category set in WhatsApp Manager. Confirm eligibility by calling GET /{phone_number_id}/agent_eligibility with the X-API-Version: 2.0.0 header before starting the setup process.

What Happens If the BISU Token Is Missing a Permission?

A BISU token that lacks either the whatsapp_business_messaging or whatsapp_business_management permission returns a 401 Unauthorized error on MBA API calls. Regenerate the token with both permissions selected. This is the most common failure point during MBA setup, so verify both scopes before making any API request.

Do I Need to Set Up Billing Before Testing?

Enabling the agent with ai_audience set to ALLOWLISTED_ONLY does not require a payment method. A payment method is required only when switching ai_audience to EVERYONE for production traffic. The Agent Test API at /{entity_id}/agent_test also sends test messages without billing the tokens consumed.

What Is the Difference Between the Release, Pass, and Take Thread Control Actions?

The release action returns control from the partner app to MBA. The pass action transfers control to the escalation partner, or to MBA when control_pass.target_role is set to ai_agent. The take action is restricted to the configured escalation partner and takes control of the conversation directly.

Sources

[1] “Get started,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/get-started.

[2] “Agent Onboarding,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/reference/onboard/agent-onboarding.

[3] “Agent Settings,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/reference/onboard/agent-settings.

[4] “Overview,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/overview.

[5] “Quickstart,” Meta for Developers, accessed September 14, 2026, https://developers.facebook.com/documentation/meta-business-agent/quickstart.