Multi-product message templates | Developer Documentation
Multi-product message templates
Updated: Mar 3, 2026
This document describes multi-product message (“MPM”) templates, their uses, and how to use them.
MPM templates are marketing templates that allow you to showcase up to 30 products from your ecommerce catalog, organized in up to 10 sections, in a single message.

Customers can browse products and sections within the message, view details for each product, add and remove products from their cart, and submit their cart to place an order. Orders are then sent to you via a webhook.

See our help center article About Multi-product message templates on WhatsApp for common use cases and tips on how to make the most of MPM templates.
Requirements
In order to create and use MPM templates you must have an ecommerce product catalog, with inventory, connected to your WhatsApp Business Account. See the Cloud API Commerce guide.
Limitations
Creating MPM templates
Request syntax
curl -X POST "https://graph.facebook.com/v23.0/<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates" \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "name": "<NAME>", "category": "<CATEGORY>", "language": "<LANGUAGE>", "components": [<COMPONENTS>] }'
Request parameters
| | |
| ||
| | |
| |
Components
components[ { "type": "HEADER", "format": "TEXT", "text": "<HEADER_TEXT>", /* Example required if header uses a variable */ "example": { "header_text": [ "<HEADER_EXAMPLE_TEXT>" ] } }, { "type": "BODY", "text": "<BODY_TEXT>", /* Example required if body uses variables */ "example": { "body_text": [ [ "<BODY_EXAMPLE_TEXT>" ] ] } }, { "type": "FOOTER", "text": "<FOOTER_TEXT>" }, { "type":"BUTTONS", "buttons": [ { "type": "MPM", "text": "View items" } ] } ]
Request parameters
| | |
| | |
| | |
| | |
| |
Response
{ "id": "<ID>", "status": "<STATUS>", "category": "MARKETING" }
Response parameters
| | |
| | |
Example request
curl 'https://graph.facebook.com/v25.0/102290129340398/message_templates' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"name": "abandoned_cart",
"language": "en_US",
"category": "MARKETING",
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Forget something, {{1}}?",
"example": {
"header_text": [
"Pablo"
]
}
},
{
"type": "BODY",
"text": "Looks like you left these items in your cart, still interested? Use code {{1}} to get 10% off!",
"example": {
"body_text": [
[
"10OFF"
]
]
}
},
{
"type":"BUTTONS",
"buttons": [
{
"type": "MPM",
"text": "View items"
}
]
}
]
}'
Sample response
{ "id": "546151681022936", "status": "PENDING", "category": "MARKETING" }
Webhooks
Webhook syntax
{ "object": "whatsapp_business_account", "entry": [ { "id": "<ENTRY.ID>", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "<DISPLAY_PHONE_NUMBER>", "phone_number_id": "<PHONE_NUMBER_ID>" }, "contacts": [ { "profile": { "name": "<NAME>" }, "wa_id": "<WA_ID>" } ], "messages": [ { "from": "<FROM>", "id": "<MESSAGES.ID>", "timestamp": "<TIMESTAMP>", "type": "order", "order": { "catalog_id": "<CATALOG_ID>", "product_items": [ { "product_retailer_id": "<PRODUCT_RETAILER_ID>", "quantity": <QUANTITY>, "item_price": <ITEM_PRICE>, "currency": "<CURRENCY>" } ] } } ] }, "field": "messages" } ] } ] }
Webhook contents
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
Sample webhook
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "contacts": [ { "profile": { "name": "Pablo Morales" }, "wa_id": "16505551234" } ], "messages": [ { "from": "16505551234", "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTMxNzA1QzNENEI4ODY0OTY2MAA=", "timestamp": "1683223069", "type": "order", "order": { "catalog_id": "1537566713439863", "product_items": [ { "product_retailer_id": "n6k6x0y7oe", "quantity": 1, "item_price": 99.99, "currency": "USD" } ] } } ] }, "field": "messages" } ] } ] }
Sending MPM template messages
Components

Request syntax
curl -X POST "https://graph.facebook.com/v23.0/<BUSINESS_PHONE_NUMBER_ID>/messages" \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ -H "Content-Type: application/json" \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<TO>", "type": "template", "template": { "name": "<NAME>", "language": { "code": "<CODE>" }, "components": [ { "type": "header", "parameters": [ { "type": "text", "text": "<HEADER_TEXT>" } ] }, { "type": "body", "parameters": [ { "type": "text", "text": "<BODY_TEXT>" } ] }, { "type": "button", "sub_type": "mpm", "index": 0, "parameters": [ { "type": "action", "action": { "thumbnail_product_retailer_id": "<THUMBNAIL_PRODUCT_RETAILER_ID>", "sections": [ { "title": "<TITLE>", "product_items": [ { "product_retailer_id": "<PRODUCT_RETAILER_ID_1>" }, { "product_retailer_id": "<PRODUCT_RETAILER_ID_2>" } // ... Add up to 30 product items per section ] } // ... Add up to 10 section objects as needed ] } } ] } ] } }'
Request parameters
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
Response
{ "messaging_product": "whatsapp", "contacts": [ { "input": "<INPUT>", "wa_id": "<WA_ID>" } ], "messages": [ { "id": "<ID>" } ] }
Response parameters
| | |
| | |
| |
Example request
curl 'https://graph.facebook.com/v25.0/106540352242922/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "16505551234",
"type": "template",
"template": {
"name": "abandoned_cart",
"language": {
"code": "en_US"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "text",
"text": "Pablo"
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "10OFF"
}
]
},
{
"type": "button",
"sub_type": "mpm",
"index": 0,
"parameters": [
{
"type": "action",
"action": {
"thumbnail_product_retailer_id": "2lc20305pt",
"sections": [
{
"title": "Popular Bundles",
"product_items": [
{
"product_retailer_id": "2lc20305pt"
},
{
"product_retailer_id": "nseiw1x3ch"
}
]
},
{
"title": "Premium Packages",
"product_items": [
{
"product_retailer_id": "n6k6x0y7oe"
}
]
}
]
}
}
]
}
]
}
}'
Example response
{ "messaging_product": "whatsapp", "contacts": [ { "input": "16505551234", "wa_id": "16505551234" } ], "messages": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJDOEI3ODgxNzQzMjJBQTdEQTcA" } ] }