Endpoint
Request body
string
required
Unique lowercase, underscore-separated name, e.g.
order_shipped.string
required
One of
marketing, utility, or authentication.string
required
BCP-47 language code, e.g.
en, hi.string
required
Template body text. Use
{{1}}, {{2}} etc. for variables. Not required for authentication category.array
Optional array of buttons.
Response
string
Internal identifier for this template (a UUID) — use it to check status or as
template_id in Send Templates.string
pending_review immediately after submission.Response
Checking status
Response
status is one of pending, approved, rejected, paused, or deleted. If rejected, rejection_reason has Meta’s explanation.
You can also list every template on the account:
{ "templates": [...] } with the same fields, newest first.
Register a
template.status webhook to be notified the moment Meta reviews it, rather than polling — see Webhooks. Review typically takes minutes to a few hours, occasionally up to 24 hours.