Transactional Updates via WhatsApp
Order confirmations, shipping tracking, appointment reminders, and payment receipts — delivered through WhatsApp, where industry reports put open rates near 98%.
✦ 14-day free trial · Your own WhatsApp Business number · Meta bills messages directly
Timely Transactional Updates
Make sure customers get critical updates when they need them. Send order tracking notifications, digital receipts and appointment reminders as Meta-approved Utility templates from your own system through one API call, and get delivery and read status back by webhook.
- Delivery and read status for every message, by webhook
- Rich media attachments including PDFs and interactive buttons
- Sent on Meta's official WhatsApp Business Platform from your own number
Keep Your Customers Informed
-
Order Updates
Send order confirmations, processing status, and delivery notifications automatically.
-
Shipping Alerts
Real-time shipping tracking updates with live location links and estimated delivery times.
-
Appointment Reminders
Reduce no-shows with automated appointment reminders including confirm/reschedule buttons.
-
Payment Receipts
Send instant payment confirmations and digital receipts with transaction details.
WhatsApp Utility vs. SMS Transactions vs. Email Updates
Compare the delivery success and formatting capabilities for critical transactional messages.
| Capability | WhatsApp Utility | SMS Transactions | Email Updates |
|---|---|---|---|
| Delivery & Read Status | ✓ (Delivered and read, by webhook) | Delivery reports only | Opens via tracking pixel (often blocked) |
| Document Attachments | ✓ (PDF invoices, QR code tickets) | ✗ (Text links only) | ✓ (File attachments) |
| Interactive Buttons | ✓ (Quick-reply / Track order) | ✗ (Static copy) | ✓ (HTML layout tags) |
| Message Cost | Meta's utility rate on every delivered message, billed to your WABA — including inside an open 24-hour window | Charged per SMS segment | Varies by database size |
Send order and shipping updates from your system
curl -X POST https://waba-api.startmessaging.com/api/v1/messages \
-H "Authorization: Bearer sm_live_your_api_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042-shipped" \
-d '{
"to": "+919812345678",
"type": "template",
"template": {
"name": "shipping_update",
"language": "en_US",
"parameters": [
{
"text": "Asha"
},
{
"text": "#1042"
},
{
"text": "Friday"
}
],
"buttonParameters": [
{
"index": 0,
"subType": "url",
"text": "ORD-1042"
}
]
},
"clientReference": "order-1042"
}' const res = await fetch('https://waba-api.startmessaging.com/api/v1/messages', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.SM_API_KEY,
'Content-Type': 'application/json',
'Idempotency-Key': 'order-1042-shipped',
},
body: JSON.stringify({
"to": "+919812345678",
"type": "template",
"template": {
"name": "shipping_update",
"language": "en_US",
"parameters": [
{
"text": "Asha"
},
{
"text": "#1042"
},
{
"text": "Friday"
}
],
"buttonParameters": [
{
"index": 0,
"subType": "url",
"text": "ORD-1042"
}
]
},
"clientReference": "order-1042"
}),
});
const { data } = await res.json();
console.log(data.id, data.status); import os, requests
res = requests.post(
'https://waba-api.startmessaging.com/api/v1/messages',
headers={
'Authorization': f"Bearer {os.environ['SM_API_KEY']}",
'Idempotency-Key': 'order-1042-shipped',
},
json={
"to": "+919812345678",
"type": "template",
"template": {
"name": "shipping_update",
"language": "en_US",
"parameters": [
{
"text": "Asha"
},
{
"text": "#1042"
},
{
"text": "Friday"
}
],
"buttonParameters": [
{
"index": 0,
"subType": "url",
"text": "ORD-1042"
}
]
},
"clientReference": "order-1042"
},
)
data = res.json()['data']
print(data['id'], data['status']) <?php
$body = <<<'JSON'
{
"to": "+919812345678",
"type": "template",
"template": {
"name": "shipping_update",
"language": "en_US",
"parameters": [
{
"text": "Asha"
},
{
"text": "#1042"
},
{
"text": "Friday"
}
],
"buttonParameters": [
{
"index": 0,
"subType": "url",
"text": "ORD-1042"
}
]
},
"clientReference": "order-1042"
}
JSON;
$ch = curl_init('https://waba-api.startmessaging.com/api/v1/messages');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('SM_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: order-1042-shipped',
],
CURLOPT_POSTFIELDS => $body,
]);
$data = json_decode(curl_exec($ch), true)['data'];
echo $data['id'] . ' ' . $data['status']; Utility Messages — FAQ
What qualifies as a utility message on WhatsApp?
Utility messages are transactional notifications directly related to an existing customer action or request. Examples include order confirmations, shipping updates, appointment reminders, payment receipts, account alerts, and booking confirmations. These messages must be sent using pre-approved templates.
How are utility message costs calculated?
Meta charges for every delivered utility template, billed directly to your own WhatsApp Business Account. Since 1 October 2026 that includes utility templates sent inside an open 24-hour window, which used to be free. Free-form service replies to a customer who wrote to you are free up to a monthly allowance per number, then charged. StartMessaging charges a flat CRM subscription only — no per-message markup, no wallet. Utility rates are set by Meta and vary by the recipient's country.
Can utility messages include file attachments?
Yes. You can attach PDFs (like invoices or receipts), images (like QR codes or tickets), and other document formats to your utility template messages. These files must be hosted online and passed as media parameters via our API or dashboard.
How long does template approval take for utility messages?
Meta reviews templates; most decisions arrive quickly, but timing is set by Meta. Once a template is approved, you can use it straight away from the dashboard or the API.
What is the difference between a utility and service message?
Utility messages are business-initiated notifications templates used for transactional updates. Service messages are user-initiated conversations, where a customer messages your business first, starting a 24-hour window where you can reply with free-form messages without templates. Meta charges every delivered utility template, even inside that window; service replies are free up to a monthly allowance per number.
Automate Your Transactional Updates
14-day free trial. Connect your own WhatsApp Business number in minutes.