Once a template is approved, use it to send messages via Send template message.
Template categories
Every template must belong to one of three categories:| Category | Description |
|---|---|
MESSAGE_TEMPLATE_GROUP_CATEGORY_MARKETING | Promotional messages, offers, product launches. |
MESSAGE_TEMPLATE_GROUP_CATEGORY_UTILITY | Transactional messages — order confirmations, shipping updates, account alerts. |
MESSAGE_TEMPLATE_GROUP_CATEGORY_AUTHENTICATION | OTP and verification codes. |
Template components
A template is built fromtemplate_components — an ordered list of component objects. Each component is one of: header, body, footer, or button.
Header
Template headers support four types:| Type | Description |
|---|---|
TYPE_IMAGE | Image header. Provide an example image URL to speed up approval. |
TYPE_VIDEO | Video header. Provide an example video URL. |
TYPE_DOCUMENT | Document header. Provide an example document URL. |
TYPE_TEXT | Text header. Supports one variable ({{1}}). |
Body
The main text of the template. Supports variables using{{N}} syntax — {{1}}, {{2}}, {{3}}, etc., numbered sequentially from 1 to 15.
Footer
Optional plain text displayed below the body. Does not support variables.Buttons
Up to 3 buttons per template. Three types are supported:| Type | Description |
|---|---|
quickReply | Sends the button text as a message when tapped. Can trigger automated responses. |
url | Opens a URL in the customer’s browser. Supports one dynamic suffix variable. Do not use shortened URLs (e.g. bit.ly) — WhatsApp automatically rejects them. |
phoneNumber | Dials a phone number directly. |
Carousel templates
Carousel templates display multiple cards in a horizontally scrollable format. Each card has its own header image, body text, and buttons. Create a carousel template by including acarousel component in template_components. See Create template for the full payload structure.
Approval process
After you submit a template via the Create template endpoint, Meta reviews it automatically. Templates are typically approved within 5 minutes but can take up to 24 hours. The template status starts asMESSAGE_TEMPLATE_STATUS_PENDING and transitions to approved or rejected.
Check the current status of your templates at any time using Get templates.
Media size limits apply to template headers. See Meta’s media documentation for the full list of constraints.
Next steps
Create template
Submit a new template to Meta for review.
Send template message
Use an approved template to send a message.
