Skip to main content
From zero to first dispatch in the queue: create the template, enable the channels you need, and call POST /v1/templates/send. Management (templates:*) and send (per-channel scopes) are different permission families.

In short

  • A template does not need all channels, enable only what you use.
  • On send, channels must be a subset of enabled channels.
  • 202 response = queued. Delivery → each channel’s webhooks. Meta approval → template.* webhooks.
Context: Introduction. Scopes: API Key scopes. Official WhatsApp: Official Meta templates.

Before you start

  • Management: templates:create (create), templates:read (list)
  • Send: scope for each channel used (sms:send, email:send, whatsapp:send, …)
  • WhatsApp: active instance. Email: verified domain. Push: app. Voice: ACTIVE number
  • Auth: Authorization: Bearer sk_live_... or x-api-key
  • Base URL: https://api.notifique.dev

1. Create template

1A, Via dashboard

  1. Templates → New template
  2. Enable channels (SMS, email, WhatsApp, …)
  3. Write content with {{variables}} and save
For official WhatsApp: after create, use Sync or Publish to Meta on the official instance, full guide.

1B, Via API

Scope: templates:create.
Expected response: 201 with enabledChannels (e.g. ["email","sms"]). Other channel payloads: Variables and CRUD.

2. Send by template

Scopes in this example: sms:send, email:send.
Expected response: 202
Response includes messageIds with IDs for all created sends (all channels).

WhatsApp in the same template

Include whatsapp in channels and whatsapp.from (if no workspace default):
Official line: template must be linked/approved on Meta (WHATSAPP_OFFICIAL, APPROVED). See Official Meta templates.

Push, Voice, Instagram, and WhatsApp Call

  • Push: channels: ["push"] + push.from + device IDs in to
  • Voice: channels: ["voice"] + voice.from + phone numbers with + prefix in to (e.g. +5511999887766)
  • Instagram: channels: ["instagram"] + instagram.from (if no default) + peer id or @username in to
  • WhatsApp Call: channels: ["whatsapp_call"] + whatsapp_call.from + E.164 phone in to

3. Track results


Next steps