Skip to content

Call permission request message template

Updated: Jun 24, 2026

Call permission request templates allow you to request permission to call WhatsApp users. They include a required body component and a call permission request component. When a WhatsApp user receives the message, they can grant or deny your business permission to call them.

You can categorize call permission request templates as either MARKETING or UTILITY. This page demonstrates creating and sending a call permission request template with the MARKETING category. See Call permission request templates for a utility example.

A call permission request template message in WhatsApp showing the body text with the first_name parameter resolved to Pablo, and an annotated callout pointing to the call permission request component

Limitations

  • Only templates categorized as MARKETING or UTILITY can include a call permission request component.
  • You must include body text, and it must not be empty.
  • You can't combine the call permission request component with other interactive components.

Create a call permission request template

Use the Message Templates API to create a call permission request template.

Request syntax

curl -X POST \
  'https://graph.facebook.com/v25.0/<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "<TEMPLATE_NAME>",
    "language": "<TEMPLATE_LANGUAGE>",
    "category": "<CATEGORY>",
    "parameter_format": "named",
    "components": [
      {
        "type": "body",
        "text": "<BODY_TEXT>",
        "example": {
          "body_text_named_params": [
            {
              "param_name": "<PARAM_NAME>",
              "example": "<EXAMPLE_PARAM_VALUE>"
            }
          ]
        }
      },
      {
        "type": "call_permission_request"
      }
   ]
}'

Request parameters

PlaceholderDescriptionExample value
<ACCESS_TOKEN> StringRequired. System token or business token.EAAA...
<API_VERSION> StringOptional. Graph API version.v25.0
<BODY_TEXT> StringRequired. Body text string. Supports named parameters in {​{parameter_name}​} format. Maximum 1024 characters.Hi {​{first_name}​}, as a Lucky Shrub VIP, get a first look at our rare new succulents before anyone else. Can we give you a quick call?
<CATEGORY> EnumRequired. Template category. Must be MARKETING or UTILITY.MARKETING
<EXAMPLE_PARAM_VALUE> StringRequired if body text uses named parameters. Example value for the named parameter.Pablo
<PARAM_NAME> StringRequired if body text uses named parameters. Name of the parameter, matching the placeholder in the body text.first_name
<TEMPLATE_LANGUAGE> EnumRequired. Template language and locale code.en_US
<TEMPLATE_NAME> StringRequired. Template name. Maximum 512 characters.vip_early_access_call
<WHATSAPP_BUSINESS_ACCOUNT_ID> StringRequired. WhatsApp Business account ID.106540352242922

Example request

curl -X POST \
  'https://graph.facebook.com/v25.0/106540352242922/message_templates' \
  -H 'Authorization: Bearer EAAJB...' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "vip_early_access_call",
    "language": "en_US",
    "category": "MARKETING",
    "parameter_format": "named",
    "components": [
      {
        "type": "body",
        "text": "Hi {​{first_name}​}, as a Lucky Shrub VIP, get a first look at our rare new succulents before anyone else. Can we give you a quick call?",
        "example": {
          "body_text_named_params": [
            {
              "param_name": "first_name",
              "example": "Pablo"
            }
          ]
        }
      },
      {
        "type": "call_permission_request"
      }
   ]
}'

Example response

{  
  "id": "546151681022936",  
  "status": "PENDING",  
  "category": "MARKETING"  
}

Send a call permission request template

Use the Messages API to send an approved call permission request template in a template message.

Request syntax

curl -X POST \
  'https://graph.facebook.com/v25.0/<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "messaging_product": "whatsapp",
    "recipient_type": "individual",
    "to": "<WHATSAPP_USER_PHONE_NUMBER>",
    "type": "template",
    "template": {
      "name": "<TEMPLATE_NAME>",
      "language": {
        "policy": "deterministic",
        "code": "<TEMPLATE_LANGUAGE_CODE>"
      },
      "components": [
        {
          "type": "body",
          "parameters": [
            {
              "type": "text",
              "parameter_name": "<PARAM_NAME>",
              "text": "<PARAM_VALUE>"
            }
          ]
        }
      ]
    }
}'

Request parameters

PlaceholderDescriptionExample value
<ACCESS_TOKEN> StringRequired. System token or business token.EAAA...
<API_VERSION> StringOptional. Graph API version.v25.0
<PARAM_NAME> StringRequired if the template body uses named parameters. Name of the parameter to replace in the template body.first_name
<PARAM_VALUE> StringRequired if the template body uses named parameters. Value to substitute for the named parameter.Pablo
<TEMPLATE_LANGUAGE_CODE> EnumRequired. Template language and locale code.en_US
<TEMPLATE_NAME> StringRequired. Name of the template to send.vip_early_access_call
<WHATSAPP_BUSINESS_PHONE_NUMBER_ID> StringRequired. WhatsApp business phone number ID.106540352242922
<WHATSAPP_USER_PHONE_NUMBER> StringRequired. WhatsApp user phone number.+16505551234

Example request

curl -X POST \
  'https://graph.facebook.com/v25.0/106540352242922/messages' \
  -H 'Authorization: Bearer EAAJB...' \
  -H 'Content-Type: application/json' \
  -d '{
    "messaging_product": "whatsapp",
    "recipient_type": "individual",
    "to": "+15551234567",
    "type": "template",
    "template": {
      "name": "vip_early_access_call",
      "language": {
        "policy": "deterministic",
        "code": "en_US"
      },
      "components": [
        {
          "type": "body",
          "parameters": [
            {
              "type": "text",
              "parameter_name": "first_name",
              "text": "Pablo"
            }
          ]
        }
      ]
    }
}'

Example response

{  
  "messaging_product": "whatsapp",  
  "contacts": [  
    {  
      "input": "+15551234567",  
      "wa_id": "15551234567"  
    }  
  ],  
  "messages": [  
    {  
      "id": "wamid.HBgLMTMyMzI4NjU2NzgVAgARGBJBQzRBRDBEMDEwQzVBM0M0QkIA",  
      "message_status": "accepted"  
    }  
  ]  
}

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About