GET /v1/templates.
Status
Status changes are not pushed to API consumers. If you create templates programmatically,
poll
GET /v1/templates
rather than assuming a submission cleared review.
Placeholders
Placeholders in the body are numbered{{1}}, {{2}}, and so on. You fill them with
templateParams, in order:
مرحباً {{1}}، تم حل تذكرتك رقم {{2}}. that sends “مرحباً Ahmed، تم حل تذكرتك رقم 4821.”
The count must match exactly. Two placeholders and one parameter fails the send — it does
not fall back to an empty string.
Only the body takes parameters here. A template whose header or buttons contain
variables cannot be sent through this API — rebuild it with a static header.
Buttons
Templates can carry buttons, and the type decides whether the template stays sendable:
Quick-reply taps come back as ordinary inbound messages, so anything already reading
GET /v1/conversations/{id}/messages
picks them up with no extra work.
Meta template library
Meta publishes pre-written, pre-approved templates for common cases — order updates, appointment reminders, delivery notifications. Importing one is much faster than writing your own and waiting on review. In Linkiasoft, open the template builder and choose Import from library. Pick the library template, supply the sample values it asks for, and submit. Because the copy is already Meta-approved, these skip review entirely rather than sitting inPENDING.
Category
Categorize honestly. Meta re-categorizes templates it judges miscategorized, and
marketing content sent as
UTILITY risks the template being paused.
When a send fails
Checkerror_reason on the message:

