Overview
Send WhatsApp messages, templates and trigger automations.
Beyond the commerce ingestion API, Kanal exposes a messaging API to send WhatsApp messages and templates, trigger automations, and read your account info.
These endpoints require an active subscription. A team without one gets
403 { "error": "Team has no active subscription" } on every call.
Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /api/v1/messages/send | Send a free-form message |
POST | /api/v1/templates | Send a template message |
GET | /api/v1/get_templates | List approved templates |
POST | /api/v1/automations/{webhook_id} | Trigger an automation |
POST | /api/v1/me | Account info |
Auth
Same as the rest of the API — Authorization: Bearer <key> (see
Authentication). The key resolves to the WhatsApp
business number it was created under; you don't pass a store_id here.
Free-form vs. template
WhatsApp only allows free-form messages inside an open 24-hour customer service window (the contact messaged you in the last 24h). To message a contact first (outbound), you must use an approved template. See Send a message for the window rules.
Idempotency
POST /api/v1/messages/send and POST /api/v1/templates accept an optional
Idempotency-Key header — replaying the same key short-circuits and does not
re-send. The commerce (store) endpoints do not use this header; they are
idempotent on the natural key (store_id, external_id) instead. See
Idempotency.