Skip to main content

Onboarding

Updated: Dec 10, 2025 Marketing Messages API for WhatsApp (formerly known as Marketing Messages Lite API) is now generally available. Onboarding to the Marketing Messages API for WhatsApp (MM API for WhatsApp) is a low-effort upgrade to sending marketing messages with optimizations on Cloud API. See the directions below to onboard your business, whether you integrate with the API directly or work with a partner. When a business registers for the MM API for WhatsApp, read-only Ad accounts are created that are linked to each of the marketing templates that exist under their business portfolio. These linked accounts allow a business to: fetch their MM API for WhatsApp insights from the Marketing API “Insights API” to view the same These read-only ad accounts are kept in sync with any changes to marketing templates, so that any changes to marketing templates are reflected in the linked ad entity. Follow the steps below to Onboard to MM API for WhatsApp.

Eligibility requirements

In order to use the Marketing Messages API for WhatsApp (MM API for WhatsApp), a business must comply with applicable legal, vertical and content restrictions (country dependent) outlined in WhatsApp Business Messaging Policies. In addition, the following requirements must be met: WABA is active and not restricted from messaging due to any violations WABA tax country is not in sanctioned regions Owner Business country is not in sanctioned regions MM API for WhatsApp will continuously update vertical eligibility and policies to comply with various policies and regulations internationally, so these requirements may change.

Check WABA onboarding status and eligibility

Use the GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> endpoint and request the marketing_messages_onboarding_status field to check the MM API for WhatsApp eligibility status of a WABA. Eligible WABAs have this field set to ELIGIBLE. If this value is set to ONBOARDED, it means the business customer WABA has already been onboarded. See the GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> reference for all possible values and their meanings. Example request
curl 'https://graph.facebook.com/v24.0/25002526842541/?fields=marketing_messages_onboarding_status' \
    -H 'Authorization: Bearer EAAAl...'
Example response
\{
  "marketing_messages_onboarding_status": "ELIGIBLE",
  "id": "25002526842541"
}
You can also use the GET /<BUSINESS_PORTFOLIO_ID>/client_whatsapp_business_accounts endpoint with the following filtering to get a list of all eligible WABAs that have been shared with you. Request syntax
GET /&lt;BUSINESS_PORTFOLIO_ID&gt;/client_whatsapp_business_accounts
  ?filtering=[\
    {\
      'field':'marketing_messages_onboarding_status',\
      'operator':'IN',\
      'value':['ELIGIBLE']\
    }\
  ]
Example request
curl -g 'https://graph.facebook.com/v24.0/19502398688333/client_whatsapp_business_accounts?filtering=[{'field':'marketing_messages_onboarding_status','operator':'IN','value':['ELIGIBLE']}]' \
    -H 'Authorization: Bearer EAAAj...'
Example response
\{
  "data": [\
    {\
      "id": "46302397361990",\
      "name": "San Andreas Roofing",\
      "timezone_id": "1",\
      "message_template_namespace": "93d3e793_8a4f_49c4_b903_fd72aac80f71"\
    }\
  ]
}

Checking eligibility status (alternative)

This field will be deprecated in version 24.0. We recommend using the marketing_messages_onboarding_status field instead. You can use the GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> endpoint and request the marketing_messages_lite_api_status field to get eligibility status, but this field will be deprecated at a future date, so we recommend using the method above instead.
GET /&lt;WHATSAPP_BUSINESS_ACCOUNT_ID&gt;?fields=marketing_messages_lite_api_status
For partner-managed WABAs, businesses can find eligible WABAs using the following endpoint:
GET /&lt;BUSINESS_ID&gt;/client_whatsapp_business_accounts?fields=marketing_messages_lite_api_status
See the GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> reference for a list of returnable values and their meanings.

If you want to check ToS and intent request status for the business manager

Use the GET /<BUSINESS_PORTFOLIO_ID>/ endpoint and request the marketing_messages_onboarding_status field to check the MM API for WhatsApp eligibility status. Permission business_management

Example request

curl "https://graph.facebook.com/v24.0/52002526842524351/?fields=marketing_messages_onboarding_status" \
-H 'Authorization: Bearer EAAAl...'

Example response

\{
  "marketing_messages_onboarding_status":
   {
      "status": "TERM_OF_SERVICE_SIGNED"
      "time": "2025-10-07"
   }
}
Use the GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> endpoint and request the owner_business_info field to check the onboarding status of the WABA. Permissions whatsapp_business_management whatsapp_business_messaging

Example request

curl GET "https://graph.facebook.com/v24.0/69843579834234?fields=owner_business_info" \
-H 'Authorization: Bearer EAAAl...'

Example response

\{
  "owner_business_info": {
    "name": "WhatsApp PaidSend Testing",
    "id": "&lt;BM_ID&gt;",
    "marketing_messages_onboarding_status": {
     "status": "TERM_OF_SERVICE_SIGNED" | "REQUEST_SENT" | "NOT_STARTED"
     "time": "2025-08-13"
    }
  },
}

Register a phone number on Cloud API

In order to send a message via MM API for WhatsApp, a business phone number must also be registered on Cloud API. MM API for WhatsApp and Cloud API are used together on the same phone number: Cloud API allows a business to send Authentication, Service, Utility, and non-Optimized Marketing template messages and freeform messages, and receive inbound messages from consumers on a business phone number. MM API for WhatsApp allows a business to send marketing messages with optimizations, over the same phone number as is registered on Cloud API. WhatsApp Business phone numbers that are not registered on Cloud API cannot be used with MM API for WhatsApp. If a business phone number is already registered on Cloud API, phone number verification is not required when registering for MM API for WhatsApp, as no new phone numbers are registered during the MM API for WhatsApp registration process. Existing Phone Numbers remain registered on Cloud API, and will now be eligible to use MM API for WhatsApp in addition to and simultaneously with Cloud API for sending marketing messages.

For solution providers

If you are a solution provider onboarding your end businesses, refer to onboard business customers.

Onboarding business customers

You can instruct your business customers to have someone with full control to the business portfolio to accept the Terms of Service and onboard MM API for WhatsApp via WhatsApp Manager. Open WhatsApp Manager > Overview. In the Alerts section, click Accept terms to get started for Marketing Messages API for WhatsApp. Follow the steps to finish signing MM API for WhatsApp Terms of Service. Your business customers should be able to start sending messages via MM API for WhatsApp. If you are unable to access your WhatsApp Manager, find your business portfolio admin here.

For business customers without a partner

If your business directly integrates with Cloud API without a partner, follow the instructions below to accept the Terms of Service and onboard to MM API for WhatsApp. Navigate to the App Dashboard > WhatsApp > Quickstart panel. On the Quickstart page, locate the “Improve ROI with Marketing Messages API for WhatsApp” card and click the “Get started” button. Click on “Continue to integration guide” to accept the Terms of Service

Sharing event activity

Once your business is onboarded, message status events (delivery status, read, clicked) will automatically be shared with Meta as part of event activity. Meta does not sell your or your subscribers’ data; this data is used solely to optimize the performance of marketing campaigns.

Manage via WhatsApp Account settings

If you wish to disable sharing event activity, toggle it off via WhatsApp Business account setting.

Configure via API

You can also customize sharing event activity on a per-message basis by including the <message_activity_sharing> parameter and setting it to a boolean (True/False) in the marketing_messages API call payload. The API call overrides the default account configuration for your WhatsApp Business account. Use the POST /&lt;WHATSAPP_BUSINESS_PHONE_NUMBER_ID&gt;/marketing_messages endpoint to send a message to a WhatsApp user.

Request syntax

curl 'https://graph.facebook.com/&lt;API_VERSION&gt;/&lt;WHATSAPP_BUSINESS_PHONE_NUMBER_ID&gt;/marketing_messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer &lt;ACCESS_TOKEN&gt;' \
-d '
\{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "&lt;WHATSAPP_USER_PHONE_NUMBER&gt;",
  "message_activity_sharing": "&lt;BOOLEAN&gt;",
  "type": "<MESSAGE_TYPE",
  "<MESSAGE_TYPE":"&lt;MESSAGE_CONTENTS&gt;"
}

Receive MM API for WhatsApp Terms of Service signed webhook (Preferred)

Note: The ToS event value will be available from September 8th, 2025. Refer to the legacy webhook below. When the MM API for WhatsApp Terms of Service (ToS) is signed for a business, a new account_update webhook will be sent for each WhatsApp Business Account (WABA) under your business portfolio. The webhook indicates that the WABA’s business has successfully accepted the MM API for WhatsApp ToS. When the webhook is triggered, your WABA will be allowed to send messages through MM API for WhatsApp. You can use the included business portfolio ID and WABA ID to verify compliance and begin sending messages, or trigger subsequent onboarding actions as needed. This webhook is the preferred webhook to track MM API for WhatsApp onboarding and eligibility status.
\{
  "object": "whatsapp_business_account",
  "entry": [\
    {\
      "id": "&lt;SOLUTION_PROVIDER_BUSINESS_ID&gt;",\
      "time": "&lt;WEBHOOK_TIMESTAMP&gt;",\
      "changes": [\
        {\
          "field": "account_update",\
          "value": {\
            "event": "MM_LITE_TERMS_SIGNED",\
            "waba_info": {\
              "owner_business_id": "&lt;BUSINESS_PORTFOLIO_ID&gt;",\
              "waba_id": "&lt;WABA_ID&gt;"\
            }\
          }\
        }\
      ]\
    }\
  ]
}

Receive onboarding completion webhook (Legacy)

Once you have completed onboarding and linked Ad accounts have been set up, an account_update webhook will be sent for each WABA under your business portfolio to indicate that onboarding has successfully completed. This webhook contains the ID of the read-only Ad account that each WABA is linked to, for use when calling Insights APIs. Note: This webhook is considered legacy for MM API for WhatsApp onboarding. Please use the MM API for WhatsApp Terms of Service signed webhook. Important: The ad_account_linked webhook event will no longer be fired since partners will not receive access to ad accounts.
\{
  "object": "whatsapp_business_account",
  "entry": [\
    {\
      "id": "&lt;WABA_ID&gt;",\
      "time": "&lt;WEBHOOK_TIMESTAMP&gt;",\
      "changes": [\
        {\
          "field": "account_update",\
          "value": {\
            "event": "AD_ACCOUNT_LINKED",\
            "waba_info": {\
              "waba_id": "&lt;WABA_ID&gt;",\
              "ad_account_id": "&lt;AD_ACCOUNT_ID&gt;",\
              "owner_business_id": "&lt;BUSINESS_PORTFOLIO_ID&gt;"\
            }\
          }\
        }\
      ]\
    }\
  ]
}
Did you find this page helpful? Thumbs up icon Thumbs down icon ON THIS PAGE Eligibility requirements Check WABA onboarding status and eligibility Checking eligibility status (alternative) If you want to check ToS and intent request status for the business manager Example request Example response Example request Example response Register a phone number on Cloud API For solution providers Onboarding business customers For business customers without a partner Sharing event activity Manage via WhatsApp Account settings Configure via API Request syntax Receive MM API for WhatsApp Terms of Service signed webhook (Preferred) Receive onboarding completion webhook (Legacy)