Single-product message templates | Developer Documentation
Single-product message templates
Updated: Mar 3, 2026
This document describes single-product message (SPM) templates, their uses, and how to use them.
SPM templates are marketing templates that allow you to 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.

WhatsApp users can tap the button to see details about the product, and can add or remove the product from the WhatsApp shopping cart:

If the WhatsApp user adds the product to the cart and submits an order, you will be notified via webhook and the user will see that an order has been placed:

Users who place an order are also able to use the View details button to see information about the order:

Limitations
Catalogs
You must have an ecommerce product catalog, with inventory, connected to your WhatsApp Business Account. See the Cloud API Commerce guide to learn more about connecting a catalog to your account.
Webhooks
Creating SPM templates
Request syntax
curl 'https://graph.facebook.com/<API_VERSION>/<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <ACCESS_TOKEN>' \ -d ' { "name": "<TEMPLATE_NAME>", "language": "<TEMPLATE_LANGUAGE>", "category": "marketing", "parameter_format": "<PARAMETER_FORMAT>", "components": [ { "type": "header", "format": "product" }, { "type": "body", "text": "<CARD_BODY_TEXT>", <!-- Example parameter values required, if body text contains parameters --> "example": { "body_text_named_params": [ { "param_name": "<PARAMETER_NAME>", "example": "<PARAMETER_EXAMPLE>" }, <!-- Additional parameters would follow --> ] } }, { "type": "footer", "text": "<CARD_FOOTER_TEXT>" }, { "type": "buttons", "buttons": [ { "type": "spm", "text": "View" } ] } ] }'
Request parameters
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
Example request
curl 'https://graph.facebook.com/v25.0/161311403722088/message_templates' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"name": "spm_template_named_params",
"language": "en_US",
"category": "marketing",
"parameter_format": "named",
"components": [
{
"type": "header",
"format": "product"
},
{
"type": "body",
"text": "Use code {{code}} to get {{percent}} off our newest succulent!",
"example": {
"body_text_named_params": [
{
"param_name": "code",
"example": "15OFF"
},
{
"param_name": "percent",
"example": "15%"
}
]
}
},
{
"type": "footer",
"text": "Offer ends September 22, 2024"
},
{
"type": "buttons",
"buttons": [
{
"type": "spm",
"text": "View"
}
]
}
]
}'Sending single-product template messages
Request syntax
curl 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PHONE_NUMBER_ID>/messages' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <ACCESS_TOKEN>' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<WHATSAPP_USER_PHONE_NUMBER>", "type": "template", "template": { "name": "<TEMPLATE_NAME>", "language": { "code": "<TEMPLATE_LANGUAGE>" }, "components": [ { "type": "header", "parameters": [ { "type": "product", "product": { "product_retailer_id": "<PRODUCT_ID>", "catalog_id": "<CATALOG_ID>" } } ] }, { "type": "body", "parameters": [ { "type": "text", "parameter_name": "<PARAMETER_NAME>", "text": "<PARAMETER_VALUE>" }, <!-- Additional parameter values would follow, if required by template --> ] } ] } }'
Request parameters
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
Example request
curl 'https://graph.facebook.com/v25.0/179776755229976/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "16505551234",
"type": "template",
"template": {
"name": "spm_template_named_params",
"language": {
"code": "en_US"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "product",
"product": {
"product_retailer_id": "nqryix03ez",
"catalog_id": "194836987003835"
}
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"parameter_name": "code",
"text": "25OFF"
},
{
"type": "text",
"parameter_name": "percent",
"text": "25%"
}
]
}
]
}
}'