SendyStack
Templates

Create & manage WhatsApp templates

Templates are the Meta-approved messages you can send to start a conversation. Each goes through Meta's automated review.

Endpoints

GET/internal/templatesDashboard Onlydashboard session

List every template in your workspace with its approval status, body, and variable schema.

Requires an authenticated dashboard session — your wac_live_ API key cannot call this endpoint. Use it from inside the dashboard, or wrap it behind your own server.

POST/internal/templatesDashboard Onlyowner / admin / developer

Create and submit a new template to Meta for review. Returns once Meta acknowledges the submission.

Requires an authenticated dashboard session — your wac_live_ API key cannot call this endpoint. Use it from inside the dashboard, or wrap it behind your own server.

POST/internal/templates/:name/submit-draftDashboard Onlyowner / admin / developer

Re-submit an edited draft (body, header, footer, examples, or buttons changed).

Requires an authenticated dashboard session — your wac_live_ API key cannot call this endpoint. Use it from inside the dashboard, or wrap it behind your own server.

Template body rules

  • Body uses sequential {{1}}, {{2}}, … placeholders.
  • A placeholder can't be the first or last character of the body.
  • Two placeholders can't be adjacent — separate them with static text.
  • bodyExamples must contain one sample per placeholder, in order.
  • Header text is single-line, max 60 chars, at most one placeholder.
  • Footer text is max 60 chars, no placeholders.
  • Maximum 2 buttons. Type URL or PHONE_NUMBER.

Create a template

POST /internal/templates
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "name": "welcome_onboarding",
  "category": "UTILITY",
  "language": "en_US",
  "body": "Hi {{1}}, welcome to {{2}}! Reply YES to start.",
  "bodyExamples": ["Dominic", "SendyStack"],
  "headerText": "Welcome",
  "footer": "Reply STOP to opt out.",
  "buttons": [
    { "type": "URL", "text": "Open app", "url": "https://app.sendystack.com" }
  ]
}

Approval status

  • PENDING — submitted, awaiting Meta's decision.
  • APPROVED — ready to broadcast. Most submissions land here within minutes.
  • REJECTED — Meta flagged a policy issue; the rejection reason is visible in the dashboard.
  • PAUSED — quality dropped too low (too many user blocks); fix or refresh and resubmit.