Set Up a New Child Business Manager

The 2-tier Business Manager solution was originally designed so that each user access token could only create one child Business Manager. However, the user can now create multiple child Business Managers as long as a primary page is set on each child Business Manager.

Create a Child Business Manager

Using the user access token, create one or more child Business Managers.

Example — Returns a child Business Manager ID

curl \
  -F 'id=<Parent_Business_Manager_ID>' \
  -F 'name=Advertisers child BM (recommend naming similar to page)' \
  -F 'vertical=OTHER' \ // Specify the Business vertical
  -F 'shared_page_id=<PAGE_ID_FROM_USER>' \  //Optional parameter but needed if you want to publish ads promoting this page
                                             //Note: the user must be an admin of the BM that owns this page if this page is owned
  -F 'page_permitted_tasks=["ADVERTISE", "ANALYZE"]' \
  -F 'timezone_id=1' \
  -F 'access_token=<USER_Personal_Access_Token>' \
  -F 'appsecret_proof=<APP_SECRET>' \
  https://graph.facebook.com/<API_VERSION>/<PARENT_BM_Id>/owned_businesses

Response:

{
    “ID” : “12312812123132”  //store this child business manager ID and associate to user
}

Creating Multiple Child Business Managers per User

If the user wants to create multiple child Business Managers, the primary_page must be set on existing child Business Managers. Make another POST call to set the primary_page of the existing Child Business Manager:

curl \
  -F 'primary_page=<PAGE_ID>' \
  -F 'access_token=<USER_Personal_Access_Token>' \
  -F 'appsecret_proof=<APP_SECRET>' \
  https://graph.facebook.com/<API_VERSION>/<BM_ID>

When creating another child Business Manager, shared_page_id must be set. The shared_page_id cannot be a primary page on any of the existing child Business Managers.

Set Up Payment Method

To pay for the child Business Manager advertisements, we recommend to using a line of credit.

Option 1: Line of Credit


Step 1. Open a line of credit. Contact your Facebook representative and open a LOC within that Business Manager if does not already exist. The line of credit will display as a payment method in your parent Business Manager.

Step 2. Accept Line of Credit Legal Terms.

  1. Open Business Manager > Business Settings > Payment Methods.
  2. Click Credit Settings and click on Legal Terms. Accept the legal terms.

Step 3. Fetch the line of credit ID and share with child Business Manager

  1. Go to your parent Business Manager and Business Settings > Payment Methods. click on the Payment method. Store the PARENT_BM_Line_Of_Credit_ID from the URL. The URL looks something like this:
    https://business.facebook.com/settings/payment-methods/<PARENT_BM_Line_Of_Credit_ID>?business_id=<BUSINESS_ID>
  2. Use this parent Business Manager line of credit ID in the API call below to share the line of credit ID from the parent to the child Business Manager. The amount is optional.
    curl \
      -F 'receiving_business_id=<CHILD_BUSINESS_MANAGER_ID>' \
      -F 'amount=<OPTIONAL_PARAMETER>' \  
      -F 'access_token=<Parent_BM_Admin_System_User_Access_Token>' \
      -F 'appsecret_proof=<APP_SECRET>' \ 
      https://graph.facebook.com/<API_VERSION>/<PARENT_BM_Line_Of_Credit_ID>/owning_credit_allocation_configs

If you don't specify an amount, your line of credit is equally divided among your child Business Managers.

If you specify an amount only, that portion of your line of credit is assigned to the child Business Manager.


Get the Child System User Token

Under the child Business Manager, use this API call to create a system user and fetch the access token. This token is used for all subsequent calls to the child Business Manager for creating or managing ads for this user.

curl \
  -F 'id=<CHILD_BUSINESS_MANAGER>' \
  -F 'app_id=<App_ID>' \
  -F 'scope=ads_management,business_management' \
  -F 'access_token=<Parent BM Admin System User Access Token>' \
  -F 'appsecret_proof=<APP_SECRET>' \
  https://graph.facebook.com/<API_VERSION>/<CHILD_BUSINESS_MANAGER_ID>/access_token

Fetch the System User's ID

Once you get the access token, you can use it to figure out the app scoped user ID. This is important to keep for storage later on.

curl -G \
  -d 'access_token=<Child BM System User Access Token>' \
  -d 'appsecret_proof=<APP_SECRET>' \
  https://graph.facebook.com/<API_VERSION>/<CHILD_BM_ID>/system_users

Get the Funding Source ID (LOC)

  1. Fetch the new funding source in the child Business Manager. For this example, use this funding source later when creating an ad account.
  2. curl -G \
      -d 'fields=id,max_balance' \
      -d 'access_token=<Child BM Admin System User Access Token>' \
      -d 'appsecret_proof=<APP_SECRET>' \
      https://graph.facebook.com/<API_VERSION>/<CHILD_BUSINESS_MANAGER_ID>/extendedcredits
    Alternatively, you can fetch the funding source by going to your child Business Manager and selecting Payments > click Credit Line Payment method. This populates the URL with a payment parameter as follows:
    payment-methods/<CHILD_PAYMENT_METHOD_ID>?business_id=
  3. Store this payment method ID for later use.

Create a New Ad Account with the Default Funding Source

Use the payment method ID from the child Business Manager as the funding_id parameter.

funding_id cannot be updated after the ad account has been created.

curl \
  -F 'name=Advertisers Ad Account' \
  -F 'currency=USD' \
  -F 'timezone_id=1' \
  -F 'end_advertiser=<PAGE_ID>' \
  -F 'media_agency=NONE' \
  -F 'partner=NONE' \
  -F 'funding_id=<PAYMENT_METHOD_ID(from above)>' \
  -F 'access_token=<Child BM Admin System User Access Token>' \
  -F 'appsecret_proof=<APP_SECRET>' \
  https://graph.facebook.com/<API_VERSION>/CHILD_BM_ID/adaccount

Add the System User as an Admin to the New Ad Account

Add the system user as an admin to the new ad account under the child Business Manager:

curl \
  -F 'user=<SYSTEM_USER_ID(from above)>' \
  -F 'tasks=MANAGE,ADVERTISE,ANALYZE' \
  -F 'business=<CHILD_BM_ID>' \
  -F 'access_token=<Child BM Admin System User Access Token>' \
  -F 'appsecret_proof=<APP_SECRET>' \
  https://graph.facebook.com/<API_VERSION>/<act_ACCOUNT_ID>/assigned_users

Congratulations! This is the final step in setting up a Business Manager to create and manage child businesses.

Find Child Business Managers

To find all child Business Manager IDs, run the following command to filter by client’s app scoped user ID:

curl -i -X GET \
  -F 'access_token=<ACCESS_TOKEN>' \
  -F 'appsecret_proof=<APP_SECRET>' \
"https://graph.facebook.com/<API_VERSION>/<parent_bm_id>/owned_businesses?client_user_id=<Client’s app scoped user ID>

Find the App scoped user ID with /me?fields=ids_for_apps (client user access token).

Next Steps

The next topics include additional features/actions you can use to augment your Business Manager experience.