templates

Submit template

Submit a WhatsApp template for Meta approval through a connected WABA.

Only approved templates can be used for outbound WhatsApp sends.

name must match ^[a-z0-9_]+$ (lowercase letters, numbers and underscores only); category is one of marketing, utility, authentication; language defaults to en_US.

Optional footer (≤60 chars) and up to 3 buttons, each { type: "url", text, url }, { type: "phone", text, phone } or { type: "quick_reply", text }.

channel_id chooses which connected WhatsApp number submits the template; omit it to use the workspace's connected number.

The template is returned flat (fields at the top level), matching GET /api/v1/templates/{id}.

Category is what the message does: utility only for updates about something the customer already has, with no promotional wording (Meta rejects it or moves it to marketing), marketing for anything promotional, authentication for codes. Number variables {{1}}, {{2}} and on, in order with none skipped.

The API creates templates without a header (a body, with an optional footer and buttons). A template with a DOCUMENT header (a statement or an invoice) is made in the dashboard, then sent with document on POST /api/v1/messages or document_source on a campaign. A body carrying a header field (any field whose name starts with header, in any case: header, header_format, headerFormat) answers 422 template_kind_unsupported with details.field naming it, and nothing is created.

post/api/v1/templates

Request

  • Base URL: https://app.blueticked.com
  • URL: https://app.blueticked.com/api/v1/templates
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

A unique key (e.g. a UUID) that makes a POST safe to retry: replaying the same key within 24h returns the original result instead of acting twice.

Request body

namestring required
category'marketing' | 'utility' | 'authentication' required
languagestring
bodystring required
footerstring nullable
channel_idstring uuid nullable

Response

Success

idstring uuid required
namestring required
category'marketing' | 'utility' | 'authentication' required
languagestring required
status'draft' | 'pending' | 'approved' | 'rejected' | 'paused' | 'disabled' required
request_idstring required

Example response

{
  "id": "7af1270d-94ba-4661-9fc4-0d3852469977",
  "name": "order_update_v1",
  "language": "en_US",
  "request_id": "req_b2e3d610e10f1b07468721ee98f0e1d2"
}

Changes

No recorded changes to this operation across all 1 revision of this API.