Skip to main content

Interactive Call-to-Action URL Button Messages

Updated: Nov 3, 2025 WhatsApp users may be hesitant to tap raw URLs containing lengthy or obscure strings in text messages. In these situations, you may wish to send an interactive call-to-action (CTA) URL button message instead. CTA URL button messages allow you to map any URL to a button so you don’t have to include the raw URL in the message body.

Request syntax

Endpoint: POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages
curl 'https://graph.facebook.com/&lt;API_VERSION&gt;/&lt;WHATSAPP_BUSINESS_PHONE_NUMBER_ID&gt;/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;",
  "type": "interactive",
  "interactive": {
    "type": "cta_url",

    <!-- If using document header, otherwise omit -->
    "header": {
      "type": "document",
      "document": {
        "link": "&lt;ASSET_URL&gt;"
      }
    },

    <!-- If using image header, otherwise omit -->
    "header": {
      "type": "image",
      "image": {
        "link": "&lt;ASSET_URL&gt;"
      }
    },

    <!-- If using text header, otherwise omit -->
    "header": {
      "type": "text",
      "text": "&lt;HEADER_TEXT&gt;"
      }
    },

    <!-- If using video header, otherwise omit -->
    "header": {
      "type": "video",
      "video": {
        "link": "&lt;ASSET_URL&gt;"
      }
    },

    "body": {
      "text": "&lt;BODY_TEXT&gt;"
    },
    "action": {
      "name": "cta_url",
      "parameters": {
        "display_text": "&lt;BUTTON_LABEL_TEXT&gt;",
        "url": "&lt;BUTTON_URL&gt;"
      }
    },

    <!-- If using footer text, otherwise omit -->
    "footer": {
      "text": "&lt;FOOTER_TEXT&gt;"
    }
  }
}'

Request parameters

PlaceholderDescriptionExample Value
&lt;ACCESS_TOKEN&gt;
String
Required.
System token or business token.
EAAAN6tcBzAUBOZC82CW7iR2LiaZBwUHS4Y7FDtQxRUPy1PHZClDGZBZCgWdrTisgMjpFKiZAi1FBBQNO2IqZBAzdZAA16lmUs0XgRcCf6z1LLxQCgLXDEpg80d41UZBt1FKJZCqJFcTYXJvSMeHLvOdZwFyZBrV9ZPHZASSqxDZBUZASyFdzjiy2A1sippEsF4DVV5W2IlkOSr2LrMLuYoNMYBy8xQczzOKDOMccqHEZD
&lt;API_VERSION&gt;
String
Optional.
Graph API version.
v24.0
&lt;ASSET_URL&gt;
String
Required if using a header with a media asset.
Asset URL on a public server.
https://www.luckyshrub.com/assets/lucky-shrub-banner-logo-v1.png
&lt;BODY_TEXT&gt;
String
Required.
Body text. URLs are automatically hyperlinked.
Maximum 1024 characters.
Tap the button below to see available dates.
&lt;BUTTON_LABEL_TEXT&gt;
String
Required.
Button label text. Must be unique if using multiple buttons.
Maximum 20 characters.
See Dates
&lt;BUTTON_URL&gt;Required.
URL to load in the device’s default web browser when tapped by the WhatsApp user.
https://www.luckyshrub.com?clickID=kqDGWd24Q5TRwoEQTICY7W1JKoXvaZOXWAS7h1P76s0R7Paec4
&lt;FOOTER_TEXT&gt;
String
Required if using a footer.
Footer text. URLs are automatically hyperlinked.
Maximum 60 characters.
Dates subject to change.
&lt;HEADER_TEXT&gt;
String
Required if using a text header.
Header text.
Maximum 60 characters.
New workshop dates announced!
&lt;WHATSAPP_BUSINESS_PHONE_NUMBER_ID&gt;
String
Required.
WhatsApp business phone number ID.
106540352242922
&lt;WHATSAPP_USER_PHONE_NUMBER&gt;
String
Required.
WhatsApp user phone number.
+16505551234

Example request

curl 'https://graph.facebook.com/v24.0/106540352242922/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
\{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "+16505551234",
  "type": "interactive",
  "interactive": {
    "type": "cta_url",
    "header": {
      "type": "image",
      "image": {
        "link": "https://www.luckyshrub.com/assets/lucky-shrub-banner-logo-v1.png"
      }
    },
    "body": {
      "text": "Tap the button below to see available dates."
    },
    "action": {
      "name": "cta_url",
      "parameters": {
        "display_text": "See Dates",
        "url": "https://www.luckyshrub.com?clickID=kqDGWd24Q5TRwoEQTICY7W1JKoXvaZOXWAS7h1P76s0R7Paec4"
      }
    },
    "footer": {
      "text": "Dates subject to change."
    }
  }
}'

Example Response

\{
  "messaging_product": "whatsapp",
  "contacts": [\
    {\
      "input": "+16505551234",\
      "wa_id": "16505551234"\
    }\
  ],
  "messages": [\
    {\
      "id": "wamid.HBgLMTY0NjcwNDM1OTUVAgARGBI1RjQyNUE3NEYxMzAzMzQ5MkEA"\
    }\
  ]
}
Did you find this page helpful? Thumbs up icon Thumbs down icon ON THIS PAGE Request syntax Request parameters Example request Example Response