Get template
Retrieve one message template variant by name.
Meta stores one template per name + language, so a name identifies a family of variants,
each with its own Meta id. Pass language to address one variant. Without it, a name with a
single variant resolves to that variant; a name with several returns 409 ambiguous_template
with details.languages. A bare language (es) matches a single regional variant (es_ES);
if the family has several regional variants for it, that is also a 409. A full code (es_ES)
must match exactly. Variants in PENDING_DELETION are not part of the family.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Template name (the family).
Query Parameters
WhatsApp account ID
Language code of the variant (e.g. en_US, es, pt_BR). Required when the family has several languages.
Response Body
application/json
application/json
application/json
application/json
{ "success": true, "template": { "id": "string", "name": "string", "status": "string", "category": "string", "language": "string", "components": [ {} ], "message_send_ttl_seconds": 0, "rejected_reason": "string", "quality_score": {} }}Create template
Create a new message template. Supports two modes: Custom template: Provide components with your own content. Submitted to Meta for review (can take up to 24h). Library template: Provide library_template_name instead of components to use a pre-built template from Meta's template library. Library templates are pre-approved (no review wait). You can optionally customize parameters and buttons via library_template_body_inputs and library_template_button_inputs. Browse available library templates at: https://business.facebook.com/wa/manage/message-templates/
Update template
Update one variant's components and/or its message_send_ttl_seconds. Name, language and category cannot change after creation. Meta stores one template per **name + language**, so a name identifies a family of variants, each with its own Meta id. Pass `language` to address one variant. Without it, a name with a single variant resolves to that variant; a name with several returns `409 ambiguous_template` with `details.languages`. A bare language (`es`) matches a single regional variant (`es_ES`); if the family has several regional variants for it, that is also a 409. A full code (`es_ES`) must match exactly. Variants in `PENDING_DELETION` are not part of the family. Meta only allows editing templates in `APPROVED`, `REJECTED` or `PAUSED` state; an approved template can be edited once per 24 hours and up to 10 times per 30 days. A component update sends the variant back to Meta for review, so the `status` returned here is normally `PENDING`; a TTL-only update keeps an APPROVED variant approved. The final outcome arrives on the `whatsapp.template.status_updated` webhook (which carries the variant's `templateId` and `language`). A variant already in `PENDING` cannot be edited again until Meta finishes reviewing it.