Endpoint
Request body
Unique lowercase, underscore-separated name, e.g.
order_shipped.One of
marketing, utility, or authentication.BCP-47 language code, e.g.
en, hi.Template body text. Use
{{1}}, {{2}} etc. for variables. Not required for authentication category.Optional array of buttons.
Response
Internal identifier for this template (a UUID) — use it to check status or as
template_id in Send Templates.pending_review immediately after submission.cURL
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.