The previews on the model pages are approximations of how the message lands on the device, so you can see the shape before creating it. The final drawing is WhatsApp’s and changes between app versions.
Twelve models are closed structures, with fields and buttons Meta fixes. The thirteenth, the custom message, is the open one: free text, whatever buttons you want, with no catalog or payment strings attached. When in doubt, it’s that one.
Which to use
Data at send time is the column that saves the most rework. It says what does not go in at creation because it changes on every dispatch — and that is why the same approved template serves different campaigns.
By use
Custom message
The open model. Free text with variables, header and buttons
Access code
OTP with copy code, one tap or zero tap
Commerce
Catalog
Opens the account’s full catalog
Single product
One product, with photo, name and price
Multi-product
Showcase with sections, assembled at send time
Checkout button
The invitation to pay
Order details
The invoice, with Pix or a payment link
Promotion
Coupon
Copyable discount code
Limited time offer
Offer badge with a countdown
Carousel
Media carousel
2 to 10 cards with image or video
Product carousel
Cards coming from the catalog
Others
Template Library
Meta’s ready-made model, no review
Call permission
Permission to call on WhatsApp
What holds for all of them
- The model cannot change after creation, and neither can the name or the language.
- Every template starts as
PENDINGand becomesAPPROVEDorREJECTED. Use Sync templates to force a status update. - The fields common to every model are in Template fields; what Meta rejects is in Validation.
- Each model’s payload lives on its own page, and only there. The playground in the API reference builds an empty body from the schema, for you to paste yours into.