Docs

Templates

Message templates are pre-approved formats you can send at any time, including outside the 24-hour window.

GET/v1/templates— List templates (?status&category&q)
POST/v1/templates— Create (and optionally submit to Meta)
GET/v1/templates/{id}
PATCH/v1/templates/{id}
DELETE/v1/templates/{id}
POST/v1/templates/sync— Pull the latest from Meta

The template object

json
{
  "id": "3c7d…",
  "name": "order_shipped",
  "language": "en",
  "category": "UTILITY",
  "status": "APPROVED",
  "rejected_reason": null,
  "quality_score": "GREEN",
  "parameter_format": "POSITIONAL",
  "meta_template_id": "1234567890",
  "components": [
    { "type": "HEADER", "format": "IMAGE", "example": { "header_handle": ["https://…"] } },
    { "type": "BODY", "text": "Hi {{1}}, your order {{2}} has shipped!",
      "example": { "body_text": [["Ananya", "#48213"]] } },
    { "type": "FOOTER", "text": "Acme Store" },
    { "type": "BUTTONS", "buttons": [
      { "type": "URL", "text": "Track order", "url": "https://acme.in/t/{{1}}", "example": ["https://acme.in/t/48213"] }
    ] }
  ],
  "updated_at": "2026-11-11T10:42:00Z"
}

components uses Meta's template component schema, so anything you build in Engage maps 1:1 to WhatsApp Manager.

Creating a template

Parameters
  • namestringrequired
    Lowercase letters, numbers and underscores; up to 512 characters.
  • languagestringrequired
    Locale code such as en, en_US, hi.
  • categoryenumrequired
    MARKETING · UTILITY · AUTHENTICATION
  • parameter_formatenumrequired
    POSITIONAL ({{1}}) or NAMED ({{first_name}}).
  • componentsarrayrequired
    Header, body, footer, buttons, carousel components with examples.
  • submitbooleanrequired
    Submit to Meta for review now. false saves a draft.

Limits

ComponentLimit
Header text60 characters, at most 1 variable
Body1,024 characters; variables need sample values and can't be adjacent or at the very start/end
Footer60 characters, no variables
ButtonsUp to 10 total; up to 2 URL buttons, 1 phone number, 1 copy code
Quick-reply button text25 characters
CarouselUp to 10 cards; each card has the same structure
Coupon codeUp to 20 characters

Statuses

StatusMeaning
DRAFTSaved in Engage, not yet submitted
PENDINGIn Meta review — usually minutes, up to 24 hours
APPROVEDReady to send
REJECTEDSee rejected_reason; edit and resubmit
PAUSEDPaused by Meta for low quality; resumes automatically or after edits
DISABLEDDisabled by Meta after repeated quality issues
Subscribe to the template.status webhook to be notified when Meta approves, rejects or pauses a template.