Browse guides

CTA URL Buttons

How to send an interactive CTA (Call-to-Action) URL button message on the WhatsApp Cloud API — a button that opens a website when tapped.

On this page

A CTA URL button message shows a single tappable button that opens a URL in the phone's browser when tapped. Unlike reply buttons (which send data back to your server), a CTA button just opens a link. Use it for "Pay Now", "Track Order", "Visit Website", or any action that takes the customer to a webpage.

Sending a CTA URL button#

json
{
  "messaging_product": "whatsapp",
  "to": "919959623255",
  "type": "interactive",
  "interactive": {
    "type": "cta_url",
    "header": {
      "type": "text",
      "text": "Your order is ready!"
    },
    "body": {
      "text": "Click below to complete your payment."
    },
    "footer": {
      "text": "Secure payment powered by Razorpay"
    },
    "action": {
      "name": "cta_url",
      "parameters": {
        "display_text": "Pay Now",
        "url": "https://yourstore.com/pay/order-1023"
      }
    }
  }
}

Fields#

FieldRequiredDescription
action.nameyesAlways "cta_url"
action.parameters.display_textyesButton label (max 20 characters)
action.parameters.urlyesThe URL that opens when tapped
headernoOptional — supports text, image, video, document
footernoOptional text below the button

Real-world use cases#

  • Pay Now → links to a payment gateway
  • Track Order → links to a shipment tracking page
  • View Invoice → links to a hosted PDF or invoice page
  • Book Appointment → links to a booking form

Frequently asked#

What is the difference between a CTA button and a reply button?

A CTA button opens a URL in the browser — nothing comes back to your server. A reply button sends the button's id to your webhook when tapped. Use CTA for links; use reply buttons for bot interactions.

Can I add an image above the CTA button?

Yes. Add a header object with "type": "image" and the image URL.

How many CTA URL buttons can I add?

Only one per message. For multiple links, use a list message or send the links in the body text.

Gotchas & common mistakes#

Still stuck? Open a support ticket and our team will help.