Skip to main content
POST
Create a message template

Authorizations

Authorization
string
header
required

Your Wixzel Voice API key: Authorization: Bearer wv_live_.... Keys are scoped; grant only what the integration needs.

Body

application/json
account_id
string
required
Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

name
string
required

Lowercase letters, digits and underscores.

Pattern: ^[a-z0-9_]{1,512}$
Example:

"visit_reminder"

category
enum<string>
required

UTILITY for confirmations, reminders and updates; MARKETING for offers. Meta may re-categorise it.

Available options:
UTILITY,
MARKETING
body
string
required

The message. Values go in as {{1}}, {{2}}, … in order.

Required string length: 1 - 1024
Example:

"Hi {{1}}, a reminder of your visit on {{2}}."

language
string
default:en_US

A WhatsApp language code, e.g. en_US, en, hi, ml.

Pattern: ^[a-z]{2,3}(_[A-Z]{2})?$
Example:

"en_US"

header
string

An optional bold first line, plain text, no placeholders.

Maximum string length: 60
examples
string[]

One sample value per placeholder, in order. Meta needs them to review the template.

Maximum array length: 20
Required string length: 1 - 200
Example:

An optional small grey last line.

Maximum string length: 60

Response

The template, pending Meta’s review

id
string
required
Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

object
enum<string>
required
Available options:
whatsapp_template
account_id
string
required
Pattern: ^[0-9a-f]{24}$
Example:

"6a96a3ead6e886d42462dd3e"

name
string
required
language
string
required
Example:

"en_US"

category
string | null
required

MARKETING, UTILITY or AUTHENTICATION.

Example:

"UTILITY"

status
string | null
required
Example:

"APPROVED"

body
string
required
Example:

"Hi {{1}}, your appointment is on {{2}} at {{3}}."

parameter_count
integer
required

How many values the body takes, in order.

parameter_names
string[]
required

The names of the values, for templates with named parameters.

header_format
string | null
required
synced_at
string<date-time>
required

ISO 8601, always UTC.

Example:

"2026-09-01T12:00:00.000Z"