Create a WhatsApp template

Submits a new template to Meta for approval on the given channel and records it in Lodgestory. The response carries the Meta submission (id + initial status, usually PENDING) and the stored template. Approval/rejection later arrives via the template.status_updated webhook event, and the template becomes sendable through the messaging API once APPROVED. For IMAGE/VIDEO/DOCUMENT headers, first call the media endpoint to obtain a header_handle. Use POSITIONAL placeholders ({{1}}, {{2}}) — this API defaults parameter_format to POSITIONAL, because NAMED-format templates cannot be sent through the messaging API.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required
Query Params
string
required

The WhatsApp Official channel id (from GET /api/wp-crm/channels)

Body Params
string
required
length ≤ 512

Template name — lowercase with underscores

string
enum
required

Template category. Locked once submitted.

Allowed:
string
required
Defaults to en_US

Meta language code

components
array of arrays
required

Template components. BODY is required; HEADER, FOOTER and BUTTONS are optional. Media headers (IMAGE/VIDEO/DOCUMENT) need example.header_handle from the media endpoint. See the request examples for complete structures.

components*
string
enum
Defaults to POSITIONAL

Placeholder style. Defaults to POSITIONAL ({{1}}, {{2}}) — NAMED templates cannot be sent through the messaging API.

Allowed:
number
30 to 2592000

Time-to-live in seconds for messages sent with this template — 300 for short-lived codes, 86400 for a day, 604800 for a week.

Response
201

Template submitted and stored. Returns { metaTemplate, dbTemplate }. Use dbTemplate.organisationWpChannelTemplateMessagesId as the templateId for the update endpoint — metaTemplate.id is Meta's own id and is not accepted there. metaTemplate.status is the initial review status (normally PENDING).

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here!