WhatsApp Message Templates
Create, submit, and send pre-approved WhatsApp message templates.
To protect users from spam, Meta requires businesses to use Message Templates when initiating a conversation or responding outside the 24-hour window. Templates must be approved by Meta before they can be sent.
Template categories
When creating a template, choose one of the following categories:
| Category | Use case |
|---|---|
| Marketing | Promotions, product announcements, abandoned cart reminders |
| Utility | Order updates, appointment reminders, account alerts |
| Authentication | One-time passwords (OTP) for login and account security |
Choosing the wrong category is one of the most common reasons for rejection. Make sure the content matches the category.
Create and send a template
Create the template
Go to Settings → Templates in the dashboard and click Create Template. Fill in the following fields:
| Field | Notes |
|---|---|
| Name | Lowercase letters, numbers, and underscores only. e.g. order_confirmation |
| Category | Marketing, Utility, or Authentication |
| Language | Select the language for this template |
| Header | Optional. Text (up to 60 chars) or Media (Image, Document, Video) |
| Body | Main message content (max 1,024 chars). Use {{1}}, {{2}} etc. for dynamic variables |
| Footer | Optional small text (max 60 chars) |
| Buttons | Optional. Quick Reply (up to 3) or Call to Action (up to 2) |
Submit for review
Click Submit for Review. Meta typically reviews templates within 2–24 hours. Track the status in Settings → Templates:
| Status | Description |
|---|---|
Pending | Under review by Meta |
Approved | Ready to send |
Rejected | Meta declined the template — see common rejection reasons below |
Paused | Temporarily disabled due to low quality reports from users |
Disabled | Permanently disabled due to repeated quality issues |
You cannot edit a template once it is submitted. If you find an error, create a new template with a different name. Repeatedly submitting rejected templates can negatively impact your WhatsApp Business Account quality rating.
Send via the API
Once approved, use POST /v1/messages/templates. The quickest way to build the correct payload is to call GET /v1/templates and copy the send_example field directly into your request.
See Messages API → Send a template message for full examples in Node.js, Python, PHP, Go, and Ruby.
{
"to": "+254712345678",
"template_name": "order_confirmation",
"language": "en",
"components": [
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Jane" },
{ "type": "text", "text": "ORD-12345" }
]
}
]
}Common rejection reasons
Best practices
Keep messages concise — WhatsApp users prefer short, actionable content. Personalise with variables where possible, as templates with personalised content have higher engagement rates. Avoid aggressive marketing language, which leads to rejections and low quality ratings.