Skip to main content

Checkout Button Templates

Updated: Nov 3, 2025 Checkout button templates are marketing templates that can showcase one or more products along with corresponding checkout buttons that WhatsApp users can use to make purchases without leaving the WhatsApp client.

Single Products

Checkout button templates can show a single product image or video header, along with message body text, message footer, a single checkout button, and up to 9 quick-reply buttons. WhatsApp users who tap the button will see details of the order: Users can proceed by selecting shipping information provided by you (if you know their information and supplied it in the send message payload)… … or can add their own shipping information:

Enabling coupons, realtime inventory and pricing updates

Enabling coupons, realtime inventory and pricing updates is currently in beta and only available to India businesses and WhatsApp users with an India country calling code. Please reach out to [email protected] to know more. To enable coupons, realtime inventory and pricing updates, you can set up a checkout endpoint that can exchange data in real time to update the order on the WhatsApp client. It enables businesses to receive the shipping address and offers coupons based on the order and allows users to apply the coupon. It also enables businesses to validate inventory and serviceability on the order before the user completes the checkout. Setting up the checkout endpoint consists of the following steps and it’s the same method that WhatsApp Flows endpoint uses to share the data with WhatsApp clients. Create a key pair and upload and sign the public key using the Cloud API. Setup the endpoint Implement Payload Encryption/Decryption Link the checkout endpoint with payment configuration Implement checkout endpoint logic

Set up the endpoint

WhatsApp client makes a HTTPS request to exchange the data with the business endpoint. You should make sure the endpoint is configured probably to accept the request and link the endpoint url with the payment configuration:
Your server must be enabled to receive and process POST requests, use HTTPS and have a valid TLS/SSL certificate installed. This certificate does not have to be used in payload encryption/decryption.

Implement Encryption/Decryption

The body of each request contains the encrypted payload and has the following form:

Sample endpoint request syntax

After processing the decrypted request, create a response and encrypt it before sending it back to the WhatsApp client. Encrypt the payload using the AES key received in the request and send it back as a Base64 string. You can refer to examples of how to decrypt and encrypt. If a request can not be decrypted, the endpoint should return HTTP 421 response status code (see Business Endpoint Error Codes for more details).

Sample Endpoint Response

The business should have payment gateway based payment configuration and reach out to [email protected] to enable the WhatsApp business account for checkout endpoint linking with with payment configuration. Prior to linking the checkout endpoint, you should create a payment configuration and link with the payment gateway account. We advise you to use the linked payment configuration only with checkout button template integration. You can achieve the endpoint linking with payment configuration by following Onboarding API’s - Link data endpoint

Implement checkout endpoint logic

WhatsApp checkout endpoint integration inherits the ‘data_exchange’ similar to Flows and supports a set of subactions based on the user interaction and passes the relevant information in each of these actions to allow businesses to provide user specific coupons and enable businesses to update the pricing information accordingly. We have created a checkout endpoint example in Node.js that you can clone (remix) on Glitch to create your own endpoint and quickly prototype your checkout logic. Follow the instructions in the README.md file to get started. Using Glitch is entirely optional. You can clone the example code from Glitch and run it in any environment you prefer. Upon completing the above steps, when business sends the checkout template with the linked payment configuration, WhatsApp enables the coupons, realtime inventory and pricing updates and allows users to apply coupons and share shipping addresses. When enabled the Apply a savings offer will appear in the order summary screen Image User can click on Apply a savings offer to explore the coupons, at this point WhatsApp makes get_coupons request to fetch the list coupons based on the passed order and user phone number information. Image When the user tries to apply a coupon, WhatsApp makes apply_coupon and allow businesses to update the order or item pricing based on the selected coupon. Image Similar to coupons, user can share the shipping address by clicking on Add shipping address and select the addresses saved with the businesses or add new address. WhatsApp makes apply_shipping request when user tries to submit the address and allow businesses to check inventory and logistics based on the address provided. ImageImage Users can then continue to place the order using their preferred payment method set up in the WhatsApp client: Once the order is processed, a payment webhook is triggered.

Multiple Products

You can create a media card carousel template that showcases up to 10 products in a card carousel, each with their own checkout button. To do this, simply create a media card carousel template as you normally would, but replace one of the buttons with a checkout button, and make sure that it is the first button in the card. Checkout buttons in media card carousel templates trigger the same order and payment flow as checkout buttons in templates that showcase a single product.

Checkout Buttons

Each checkout button in a template must correspond to a single product. Checkout buttons, when creating a template, must have the following non-customizable syntax:
Note that this is simply a button definition. The actual details about the product that maps to this button are included when you send the template in a template message. For example:
If you are sending a media card carousel template (which can have two or more products), each checkout button must be defined in the template, and the item details that map to each button must be included when sending the template.

Creating Checkout Button Templates

Use the POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates endpoint to create a template that uses a checkout button.

Request Syntax

Post Body

The post body below is for a checkout button template that shows a single button. See the Media Card Carousel Templates document to see carousel template post body syntax.

Post Body Parameters

Example Request

This example request creates a checkout button template with a single image message header, message body text that uses two variables, a footer, a single checkout button, and a quick-reply button.

Sending Checkout Button Templates

Once your checkout button template or carousel template has been approved, you can send it in a template message.

Request Syntax

Use the POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages endpoint to send an approved checkout button template or carousel template to a WhatsApp user.

Post Body

This post body syntax is for a checkout button template. See Sending Media Card Carousel Templates for media card carousel template post body payload syntax.

Post Body Parameters

Example Request

The following sample request and responses are only supported with Enabling coupons, realtime inventory and pricing updates feature and it is currently in beta and only available to India businesses and WhatsApp users with an India country calling code. Please reach out to [email protected] to know more.

Get Coupons - Endpoint Sample Request

Get Coupons - Endpoint Sample Response

Apply Coupon - Endpoint Sample Request

Apply Coupon - Endpoint Sample Response

Remove Coupon - Endpoint Sample Request

Remove Coupon - Endpoint Sample Response

Apply Shipping - Endpoint Sample Request

Apply Shipping - Endpoint Sample Response

Did you find this page helpful? Thumbs up icon Thumbs down icon ON THIS PAGE Single Products Enabling coupons, realtime inventory and pricing updates Set up the endpoint Implement Encryption/Decryption Sample endpoint request syntax Sample Endpoint Response Link the checkout endpoint with payment configuration Implement checkout endpoint logic Multiple Products Checkout Buttons Creating Checkout Button Templates Request Syntax Post Body Post Body Parameters Example Request Sending Checkout Button Templates Request Syntax Post Body Post Body Parameters Example Request Get Coupons - Endpoint Sample Request Get Coupons - Endpoint Sample Response Apply Coupon - Endpoint Sample Request Apply Coupon - Endpoint Sample Response Remove Coupon - Endpoint Sample Request Remove Coupon - Endpoint Sample Response Apply Shipping - Endpoint Sample Request Apply Shipping - Endpoint Sample Response