Skip to main content
spm One catalog product with photo, name and price, plus the button that opens it.

How it works

The template is approved once, with no product at all: the header goes with format: PRODUCT, which is a placeholder. The product — photo, name and price — comes from the catalog at send time, identified by catalog_id and product_retailer_id. It is the model for answering about a specific item: the same approved template serves any product in the account.

At creation and at send time

Fields in this model

The SPM label is the most confusing case: on the same pt_BR template, Meta demands Ver for SPM and View items, in English, for MPM. There is no language rule; both were measured in rejections.

Full JSON

Two JSON payloads: one creates the template, and Meta approves it once. The other sends the message, and goes on every dispatch, with that send’s values in the variables marked with braces.

1. Create the template

POST /whatsapp/businesses/{wabaId}/templates — see API reference.

2. Send it once approved

POST /v1/channels/{channelId}/messages — see Send template.

What Meta rejects here

  • A label other than the required one, with code 2388153.
  • A body over 160 characters.
  • A text or media header in place of PRODUCT.