WhatsApp Business Platform
WhatsApp Business Platform
Business Messaging
WhatsApp Business Platform
Resources

Payment Request CTA Templates (Brazil)

Updated: Apr 29, 2026

WhatsApp Business Messaging API: Payment Request CTA Button (Brazil)

This feature is currently being rolled out and may not yet be available for your WhatsApp Business Account. If you do not see this option, it will be enabled for your account soon.

Overview

Payment request CTA buttons enable merchants in Brazil to request payments from customers through template messages on WhatsApp, without requiring order details API integration. Merchants simply embed Pix, Boleto, or Payment Link information in their message templates, allowing customers to pay directly from the conversation.

Key Benefits

  • Simplified Integration Payment codes (Pix, Boleto, Payment Link) can be embedded in templates with minimal API complexity.
  • Flexible Payment Requests Choose any supported payment method and customize payment details.
  • Flexible Button Combinations Payment request buttons can be combined with other button types within a message template, allowing businesses to offer a variety of actions—not limited to payments—in a single message.
  • Multiple Payment Options Businesses can include up to three payment request buttons in a message, each supporting a different payment method. This enables customers to choose their preferred payment option directly from the conversation.

Supported Payment Methods

  • Pix Dynamic Code
  • Boleto
  • Payment Link

Creating a Payment Request Template on WhatsApp Manager

To create a template with payment request CTA, business needs a business portfolio with a WhatsApp Business Account.
In WhatsApp Manager > Account tools:
  1. Click on create template
  2. Select Utility or Marketing category to see the Default template format option.
  3. Select Default template format, and click Next
  4. Enter the desired template name and supported locale
    • Depending on the number of locales selected there will be an equal number of template variants and businesses need to fill in the template details in respective locale.
  5. Fill in template components such as Header, Body and optional footer text.
    • For the Header, you can choose one of three media types: Text, Image or Document. Choose Document if you want to send PDF files in the header of this template.
  6. Add a button of type ‘Request Payment’ from the Buttons menu.
  7. Select ‘Pix’, ‘Boleto’, or ‘Payment Link’ from the Payment Type dropdown menu. Enter a sample value in the provided field.
    Note: The value entered is for demonstration purposes only. The actual code or URI will be unique to each customer interaction and will be included in the send payload.
Image
  1. Click submit.
  2. Once submitted, templates will be categorized as per the guidelines and undergo the approval process.
  3. The template will be approved or rejected after the template components are verified by the system.
    • If business believe the category determined is not consistent with our template category guidelines, please confirm there are no common issues that leads to rejections and if you are looking for further clarification you may request a review of the template via Business Support . Once approved template status will be changed to ACTIVE
    • Please be informed that template’s status can change automatically from ACTIVE to PAUSED or DISABLED based on customer feedback and engagement. We recommend that you monitor status changes and take appropriate actions whenever such change occurs.

Sending Payment Request Messages

The following image shows examples of payment request template messages rendered in WhatsApp, with Pix, Boleto, and Payment Link buttons respectively.
Three examples of payment request CTA template messages in WhatsApp showing Pix, Boleto, and Payment Link buttons

Endpoint

POST /{PHONE_NUMBER_ID}/messages

Request body

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "<PHONE_NUMBER>",
  "type": "template",
  "template": {
    "name": "<TEMPLATE_NAME>",
    "language": {
      "code": "<LANGUAGE>"
    },
    "components": [
      {
        "type": "button",
        "sub_type": "payment_request",
        "index": "0",
        "parameters": [
          {
            "type": "action",
            "action": {
              "payment_request": {
                "payment_setting": {
                  "type": "boleto",
                  "boleto": {
                    "digitable_line": "03399026944140000002628346101018898510000008848"
                  }
                }
              }
            }
          }
        ]
      },
      {
        "type": "button",
        "sub_type": "payment_request",
        "index": "1",
        "parameters": [
          {
            "type": "action",
            "action": {
              "payment_request": {
                "payment_setting": {
                  "type": "pix_dynamic_code",
                  "pix_dynamic_code": {
                    "code": "00020101021226700014br.gov.bcb.pix2548pix.example.com..."
                  }
                }
              }
            }
          }
        ]
      },
      {
        "type": "button",
        "sub_type": "payment_request",
        "index": "2",
        "parameters": [
          {
            "type": "action",
            "action": {
              "payment_request": {
                "payment_setting": {
                  "type": "payment_link",
                  "payment_link": {
                    "uri": "https://my-payment-link-url"
                  }
                }
              }
            }
          }
        ]
      }
    ]
  }
}

Example response

{
  "messaging_product": "whatsapp",
  "contacts": [
    {
      "input": "<PHONE_NUMBER>",
      "wa_id": "<PHONE_NUMBER>"
    }
  ],
  "messages": [
    {
      "id": "wamid.HBgNNTUxMTk4Nzg2NjI5NRUCABEYEjUxOTBGNEU0RDA2MjdCMUVBOQA=",
      "message_status": "accepted"
    }
  ]
}

Parameters

Buttons Object

Field Name Optional? Type Description
type
Required
String
Must be PAYMENT_REQUEST for payment messages.
text
Required
String
The button label. Must be Copy Pix code for pix_dynamic_code, Copy Boleto code for boleto, or Open payment link for payment_link.
payment_setting
Required
Payment configuration object.

Payment Setting

Field Name Optional? Type Description
type
Required
String
One of pix_dynamic_code, payment_link, boleto.
One of the following objects: pix_dynamic_code, payment_link, boleto.
Required
Object
Payment instructions which will be displayed to buyers during the checkout process.

Dynamic Pix code object

Field NameOptional?TypeDescription
pix_dynamic_code
Required
String
The dynamic Pix code which will be copied by the buyer.

Payment link object

Field NameOptional?TypeDescription
uri
Required
String
The Payment Link’s uri which will be opened in the web browser, when user taps on the Payment Link CTA button.

Boleto object

Field NameOptional?TypeDescription
digitable_line
Required
String
The Boleto digital line / code which will be copied to the clipboard, when user taps on the Boleto CTA button.
Did you find this page helpful?
Thumbs up icon
Thumbs down icon