Transactional SMS
Transactional SMS API — alerts your customers actually receive
Order confirmations, dispatch updates, payment receipts, EMI reminders, appointment alerts. Transactional SMS is the messaging nobody notices until it breaks. BrookTel delivers it over DLT-approved routes with throughput for peak-hour bursts and an audit trail for every single message.
Designed for high-volume, non-negotiable messaging
- Bulk endpoint for fan-out sends, plus scheduling for time-windowed alerts
- Delivery webhooks with per-message status and failure reason
- Idempotent send semantics so a retried request does not double-send
- Full ledger of every message and wallet debit, exportable for finance
- Analytics broken down by campaign, template and status
Getting the DLT category right
India's DLT framework splits non-promotional SMS into categories, and picking the wrong one is the single most common cause of blocked traffic. The short version:
| Category | Use it for | DND scrubbing |
|---|---|---|
| Transactional | OTPs and banking transaction alerts | Exempt |
| Service implicit | Order updates, payment receipts, reminders for an existing relationship | Exempt |
| Service explicit | Content the user opted in to but did not transact for | Scrubbed against consent |
| Promotional | Offers, launches, marketing | Scrubbed against DND |
Typical transactional flows
- E-commerce: order placed, packed, shipped, out for delivery, delivered
- Fintech and banking: debit and credit alerts, EMI due, payment received
- Logistics: pickup scheduled, delivery OTP, failed-attempt notice
- Healthcare and services: appointment booked, reminder, reschedule
- SaaS and utilities: invoice generated, payment failed, plan expiring
Handle delivery receipts with a webhook
app.post('/webhooks/brooktel', (req, res) => {
// Acknowledge fast; process asynchronously.
res.sendStatus(200);
const { messageId, status, failureReason, deliveredAt } = req.body;
queue.add('sms-status', {
messageId,
status, // queued | sent | delivered | failed
failureReason, // populated only when status === 'failed'
deliveredAt,
});
});Frequently asked questions
What is the difference between transactional and promotional SMS?
Transactional SMS is triggered by something the customer did — a purchase, a login, a payment — and is exempt from DND scrubbing under India's DLT rules. Promotional SMS is marketing, and is scrubbed against DND and consent registries. They require separate DLT templates and behave differently at the operator.
Can transactional SMS be sent 24x7?
Genuine transactional and service-implicit traffic is not restricted to the promotional sending window. Promotional SMS is time-restricted. Do not send marketing content on a transactional template to bypass this — it is the fastest way to lose your header.
What throughput can you handle?
The platform is built for peak-hour bursts, and throughput on your account is set against your plan and expected volume. If you are planning a large fan-out — a flash sale, an EMI cycle, a festival campaign — tell us the numbers in advance and we will size it.
Do you provide delivery reports for audit?
Yes. Every message has a persistent record with status, timestamps, failure reason and the wallet debit against it, visible in analytics and exportable.