We are making changes to the WhatsApp Business Platform pricing model. See Pricing Updates on the WhatsApp Business Platform.
You have multiple ways to share products with your customers.
Catalog messages are messages that allow you to showcase your product catalog entirely within WhatsApp.
Catalog messages display a product thumbnail header image of your choice, custom body text, a fixed text header, a fixed text sub-header, and a View catalog button.
When a customer taps the View catalog button, your product catalog appears within WhatsApp.
You must have inventory uploaded to Meta in an ecommerce catalog connected to your WhatsApp Business Account.
Use the WhatsApp Business Phone Number > Messages endpoint to send a catalog message.
POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/messages
{ "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<TO>", "type": "interactive", "interactive" : { "type" : "catalog_message", "body" : { "text": "<BODY_TEXT>" }, "action": { "name": "catalog_message", /* Parameters object is optional */ "parameters": { "thumbnail_product_retailer_id": "<THUMBNAIL_PRODUCT_RETAILER_ID>" } }, /* Footer object is optional */ "footer": { "text": "<FOOTER_TEXT>" } }
Placeholder | Description | Sample Value |
---|---|---|
String | Required. Text to appear in the message body. Maximum 1024 characters. |
|
String | Optional. Text to appear in the message footer. Maximum 60 characters. |
|
String | Optional. Item SKU number. Labeled as Content ID in the Commerce Manager. The thumbnail of this item will be used as the message's header image. If the |
|
String | Customer phone number. |
|
curl 'https://graph.facebook.com/v17.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": "catalog_message", "body": { "text": "Hello! Thanks for your interest. Ordering is easy. Just visit our catalog and add items to purchase." }, "action": { "name": "catalog_message", "parameters": { "thumbnail_product_retailer_id": "2lc20305pt" } }, "footer": { "text": "Best grocery deals on WhatsApp!" } } }'
{ "messaging_product": "whatsapp", "contacts": [ { "input": "+16505551234", "wa_id": "16505551234" } ], "messages": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI0ODVEREUwQzEzQkVBRjQ1RUUA" } ] }
Catalog template messages are template messages containing a button that, when tapped, displays your product catalog within WhatsApp.
See Catalog Templates to learn how to create and send these templates.
You can send a link to your entire product catalog by assembling a wa.me link and including it in a standard text message. When sending a text message, you can use the optional preview_url
set to true
to have the message render a set of product catalog thumbnails of any URL in the message body
string.
Note that if you disable the catalog, wa.me links and the View Catalog button in catalog link messages will display a Invalid catalog link message when tapped.
To assemble wa.me link, append your business phone number, including country code, to the end of the following string:
https://wa.me/c/
For example:
https://wa.me/c/15555455657
Checkout button templates allow India-based businesses to showcase one or more products that WhatsApp users in India (with India country calling codes) can purchase, without having to leave the WhatsApp client.
See Checkout Button Templates to learn how to create and send these templates.
Media card carousel template messages allow you to send a single text message accompanied by a set of up to 10 cards in a horizontally scrollable view:
See Media Card Carousel Templates to learn how to create and send these templates.
Multi-Product Message (MPM) template messages present product information for up to 30 products from your ecommerce catalog, organized customizable by sections.
See Multi-Product Message Templates to learn how to create and send MPM templates.
Product card carousel template messages allow you to send a single text message accompanied by a set of up to 10 product cards in a horizontally scrollable view.
See Product Card Carousel Templates to learn how to create and send these templates.
Both Multi-Product Messages and Single-Product Messages are types of interactive messages.
Multi-Product message example: | Single-Product message example: |
Menu triggered when user clicks on Start Shopping: | Product Detail Page example: |
Customers that receive Multi- and Single-Product Messages can perform 3 main actions:
If your customer has multiple devices linked to their account, the Multi-Product and Single-Product Messages will be synced between devices. However, the shopping cart is local to each specific device. See Shopping Cart Experience for details.
Currently, these types of messages can be received in the following platforms:
If the customer's app version does not support Multi- or Single-Product Messages, they will instead receive a message explaining that they were unable to receive a message because they are using an outdated version of WhatsApp. We will also send you a webhook notification indicating the message was unable to be delivered due to the customer using an outdated version of WhatsApp.
Multi-Product Messages and Single-Product Messages can be:
Multi-Product Messages and Single-Product Messages cannot be:
Unlike product messages sent via the WhatsApp Business app, messages sent via the Cloud API currently do not display a shopping cart icon in the chat thread header.
You may need to update properties of items in your catalog. Depending on the updated property, this is how we handle any messages mentioning that product:
Updated Property | Update Process |
---|---|
Product's price, title, description, and image. |
|
Availability change |
|
After viewing products, a customer can add them to their shopping cart and send that cart to you. For the purposes of commerce on WhatsApp, a shopping cart:
Customers can add up to 99 units of each single catalog item to a shopping cart, but there is no limit on the number of distinct items that can be added to a cart.
Once a cart has been sent, no edits can be made. Customers can send a new cart if they need new items, or would like to change their order. You cannot send carts to customers.
Both Multi- and Single-Product Messages lend themselves best to user experiences that are simple and personalized, where it's a better experience to guide the customer to a subset of items most relevant to them, rather than browsing your full inventory.
Combining the features with navigation tools like NLP, text search or List Messages and Reply Buttons to get to what the customer is looking for fast.
Populated dynamically so can be personalized to the customer or situation. For example, you can show a Multi-Product Message of a customer’s most frequently ordered items.
A performant channel for driving orders, during testing businesses had an average 7% conversion of Multi-Product Messages sent to carts received.
Interactive messages do not require templates or pre-approvals. They are generated in real-time and will always reflect the latest item details, pricing and stock levels from your inventory.
Multi-Product Messages are best for guiding customers to a specific subset of your inventory, such as:
Single-Product Messages are best for guiding customers to one specific item from your inventory, offering quick responses from a limited set of options, such as:
Both features can also be used as part of a human agent flow, however you need to build the tooling to allow the human agent to generate a Multi-Product Message or Single-Product Message in thread.
Before sending product messages, follow the get started best suited for your needs:
All API calls mentioned in this guide must be authenticated with an access token. Developers can authenticate their API calls with the access token generated in the App Dashboard > WhatsApp > API Setup panel. Solution Partners must authenticate themselves with an access token with the whatsapp_business_messaging permission.
To send a Single-Product Message, assemble an interactive
object of type product
with the following components:
Required Components | Optional Components |
---|---|
|
|
See Messages, Interactive Object for full information. By the end of the process, the interactive object should look something like this:
{ "messaging_product": "whatsapp", "recipient_type": "individual", "to": "PHONE_NUMBER", "type": "interactive", "interactive": { "type": "product", "body": { "text": "BODY_TEXT" }, "footer": { "text": "FOOTER_TEXT" }, "action": { "catalog_id": "CATALOG_ID", "product_retailer_id": "ID_TEST_ITEM_1" } } }
To send a Multi-Product Message, assemble an interactive
object of type product_list
with the following components:
Required Components | Optional Components |
---|---|
|
|
See Messages, Interactive Object for full information. By the end of the process, the interactive object should look something like this:
{ "messaging_product": "whatsapp", "recipient_type": "individual", "to": "PHONE_NUMBER", "type": "interactive", "interactive": { "type": "product_list", "header":{ "type": "text", "text": "HEADER_CONTENT" }, "body": { "text": "BODY_CONTENT" }, "footer": { "text": "FOOTER_CONTENT" }, "action": { "catalog_id": "CATALOG_ID", "sections": [ { "title": "SECTION_TITLE", "product_items": [ { "product_retailer_id": "PRODUCT-SKU" }, { "product_retailer_id": "PRODUCT-SKU" }, ... ] }, { "title": "SECTION_TITLE", "product_items": [ { "product_retailer_id": "PRODUCT-SKU" }, { "product_retailer_id": "PRODUCT-SKU" }, ... ] } ] } } }
If none of the items provided in the API calls above matches a product from your product catalog, an error message is sent and the Multi- or Single-Product Message is not sent to the user.
For Multi-Product Message, at least one item from the products list must match an item from your product catalog. In this case:
Once the interactive object is complete, append the other parameters that make a message: recipient_type
, to
, messaging_product
, and type
. Remember to set the type
to interactive
.
curl -X POST https://graph.facebook.com/v21.0
/FROM_PHONE_NUMBER/messages \
-H 'Authorization: Bearer ACCESS_TOKEN' \
- d '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "PHONE_NUMBER",
"type": "interactive",
"interactive": {
// INTERACTIVE OBJECT GOES HERE
}'
For all available parameters, see Reference, Messages.
Send a POST request to the /PHONE_NUMBER_ID/messages
endpoint with the JSON object you have assembled in steps 1 and 2. If your message is sent successfully, you get the following response:
{ "messaging_product": "whatsapp", "contacts": [{ "input": "PHONE_NUMBER", "wa_id": "WHATSAPP_ID", }] "messages": [{ "id": "wamid.ID", }] }
Single-Product Message (SPM) template messages present a single product from your ecommerce catalog, accompanied by a product image, product title, and product price (all pulled from your product within your catalog), along with customizable body text, optional footer text, and an interactive View button.
See Single-Product Message Templates to learn how to create and send SPM templates.