The Messaging API allows you to communicate with customers across SMS, WhatsApp, Messenger and RCS.
You can send:
- Text messages
- Media messages (WhatsApp, Messenger & RCS)
- WhatsApp template-based messages (approved by Meta)
- Personalised messages using injected fields
SMS, WhatsApp (non-template), Messenger and RCS all support personalisation using injected_fields, allowing you to insert dynamic values into your message content.
WhatsApp Template Messages use template parameters, which correspond to the placeholders defined in your Meta-approved template. These parameters must be supplied in order and match the template structure.
Most integrations follow a simple pattern:
- Send a message
- Receive a
message_id - Check message status
Different channels support different message types and behaviours:
| Channel | Text | Media | Approval Template | Personalisation | Delivery Receipts | Read Receipts | Outbound Allowed |
|---|---|---|---|---|---|---|---|
| SMS | ✅ | ❌ | ❌ | ✅ injected fields | ✅ (where supported by carrier) | ❌ | ✅ |
| ✅ | ✅ | ✅ (Meta-approved) | ✅ injected fields / template parameters | ✅ delivered | ✅ read | ✅ (template required) | |
| Messenger | ✅ | ✅ | ❌ | ✅ injected fields | ✅ delivered | ✅ read | ❌ inbound first |
| RCS | ✅ | ✅ incl. rich cards | ❌ | ✅ injected fields | ✅ delivered | ✅ read | ✅ |
| Channel | Initiation Rule | Notes |
|---|---|---|
| SMS | Business may send freely | Supports personalisation via injected fields |
| Business may initiate only with an approved template | Free-form messages allowed for 24 hours after customer messages | |
| Messenger | Cannot initiate outbound | Customer must message first |
| RCS | Business may initiate | Sent from your verified RCS agent. Supports media, rich cards, carousels and suggested replies. Templates not supported |
WhatsApp supports two message modes, each with specific rules and personalisation options.
Used when the customer messages first.
- No template required
- Free-form text and media allowed
- Valid for 24 hours from the customer’s last message
- Supports personalisation using
injected_fields - Behaves similarly to SMS from an API perspective
Example use cases: confirmations, replies, follow-ups.
Used when the business wants to start a conversation.
- Must be approved by Meta
- Categorised for billing: Marketing, Utility & Authentication
- Required for outbound initiation
- Personalisation is done using template parameters, not injected_fields
- Can include structured media and interactive elements
Example:
{
"template": {
"name": "order_update",
"parameters": ["Alex", "12345"]
}
}Once the customer replies, the session becomes free-form again for 24 hours.
WhatsApp applies different rules depending on who starts the conversation.
Free-form messages are allowed for 24 hours after the customer’s last message.
You must use an approved WhatsApp Template.
Once the customer responds, the 24-hour window resets.
All channels support personalised messages.
You can inject values into message text using {{placeholders}} and passing them via injected_fields.
Example:
{
"channel": "sms",
"to": "+447123456789",
"message_type": "text",
"text": "Hi {{name}}, your order {{order}} is on the way.",
"injected_fields": {
"name": "Alex",
"order": "12345"
}
}WhatsApp Template Messages use template parameters, which must match the template placeholders exactly.
- Send a message → Full message payload reference
- Managing Templates → WhatsApp Templates
- RCS → Getting Started – RCS
- Delivery tracking → Delivery Receipts & Message Status
- Customer replies → Inbound Messages & Replies
- Webhooks → Webhook Quick-Start