Skip to main content
POST
Create a WhatsApp template and submit it to Meta for review; answers its id and status (PENDING until Meta decides). Then poll whatsapp.templates.show with the id until the status is APPROVED or REJECTED.

Authorizations

Authorization
string
header
required

An account token from Settings › Account API in the Tawked console: Authorization: Bearer tk_acct_…

Headers

Idempotency-Key
string

One per intended change (1 to 128 printable ASCII characters): a retry with the same key and the same request answers the stored 2xx with Idempotent-Replayed: true, for 24 hours. A 428 approval_required is never stored: send the approved request again with the same key or none. An answer that carried a secret shown once is never kept: its replay answers 409 idempotency_secret_not_replayable with the id of what it made.

Required string length: 1 - 128

Path Parameters

application
string
required

An application's id (a UUID); list them with applications.applications.list.

Pattern: ^(?:[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12})$

Body

application/json
category
enum<string>
required
Available options:
UTILITY,
MARKETING,
AUTHENTICATION
language
enum<string>
required
Available options:
ar,
en,
en_US,
en_GB,
ur,
hi,
bn,
tl,
id,
fr
name
string
required
Maximum string length: 512
Pattern: ^[a-z0-9_]+$
autofill_text
string | null

Only when category is AUTHENTICATION. Not when otp_type is COPY_CODE.

Maximum string length: 25
Pattern: ^[^\r\n]*$
body
string

Not when category is AUTHENTICATION.

Maximum string length: 1024
buttons
object[]

Not when category is AUTHENTICATION.

Maximum array length: 10
code_expiry_minutes
integer

Only when category is AUTHENTICATION.

Required range: 1 <= x <= 90
examples
object

Not when category is AUTHENTICATION.

Not when category is AUTHENTICATION.

Maximum string length: 60
Pattern: ^[^\r\n]*$
header
string | null

Not when category is AUTHENTICATION.

Maximum string length: 60
Pattern: ^[^\r\n]*$
header_format
enum<string> | null

Not when category is AUTHENTICATION.

Available options:
TEXT,
IMAGE,
DOCUMENT
header_sample
string | null

Not when category is AUTHENTICATION. Only when header_format is IMAGE or DOCUMENT.

Maximum string length: 255
message_send_ttl_seconds
integer | null

Only when category is AUTHENTICATION.

Required range: 30 <= x <= 900
otp_type
enum<string>

Only when category is AUTHENTICATION.

Available options:
COPY_CODE,
ONE_TAP,
ZERO_TAP
package_name
string

Only when category is AUTHENTICATION. Not when otp_type is COPY_CODE.

Maximum string length: 224
Pattern: ^[A-Za-z][A-Za-z0-9_]*(\.[A-Za-z][A-Za-z0-9_]*)+$
security_recommendation
boolean

Only when category is AUTHENTICATION.

signature_hash
string

Only when category is AUTHENTICATION. Not when otp_type is COPY_CODE.

Pattern: ^[A-Za-z0-9+\/]{11}$
zero_tap_terms_accepted
boolean

Only when category is AUTHENTICATION. Only when otp_type is ZERO_TAP.

Response

Created.

data
object
required