What Are SMS Delivery Reports — and Why They Matter
A delivery report tells you the outcome of every SMS you send — delivered to handset, failed, DND-filtered, or still pending. Without delivery reports, you are sending blind.
An SMS delivery report is the confirmation trail from the telecom network back to your platform — confirming whether each SMS you sent was actually delivered to the recipient's handset, failed at the network level, was filtered because the number is DND-registered, or is still in transit. Without delivery reports, bulk SMS is a black box — you know you sent messages, but you have no visibility into how many actually reached customers.
Delivery reports serve three critical business purposes. First, operational accuracy — knowing which customers did not receive your OTP, appointment reminder, or dispatch alert enables your team to trigger fallback communication (a call, a WhatsApp, a retry) before the customer is impacted. Second, campaign ROI measurement — knowing your actual delivered reach (not just the numbers you uploaded) gives you an accurate denominator for calculating conversion rates, cost per delivered SMS, and campaign effectiveness. Third, compliance audit trail — for banks, NBFCs, healthcare providers, and government entities required to maintain records of customer communication, delivery logs with timestamps provide the evidence required for regulatory audits.
Fivo SMS delivery reports are available through three channels: the real-time web dashboard (live counts updating as the campaign sends), downloadable CSV export (available within minutes of campaign completion), and API webhook callbacks (delivery status pushed to your application the moment each message is delivered or fails). All three are included at no additional charge.
Illustrative dashboard — numbers shown for reference only
Understanding the Four Delivery Statuses
Every SMS in every campaign is assigned one of four statuses. Understanding what each means helps you act correctly on your report data.
✅ Delivered
The SMS was successfully delivered to the recipient's handset and a delivery confirmation was received from the telecom operator. This is the definitive confirmation that the customer's phone received the message. For OTP and Transactional SMS, a "Delivered" status means the customer can now read and act on the message. Note: "Delivered" confirms network delivery to the handset — it does not confirm the recipient has read the message (SMS has no read receipt standard).
🚪 DND Filtered
The recipient's mobile number is registered on the TRAI NCPR DND (Do Not Disturb) list and the campaign was a Promotional SMS. Fivo SMS scrubs DND numbers from Promotional campaigns before sending — DND-filtered numbers never receive the message and are not charged. You are only billed for numbers outside DND. Transactional SMS (OTP, alerts) is exempt from DND filtering and is never blocked for this reason.
🔴 Failed
The SMS could not be delivered after all routing attempts. Common reasons: invalid or non-existent mobile number, handset permanently switched off or unreachable for an extended period beyond operator retry window, number ported to a network with routing issues, or operator-level rejection. Failed numbers should be reviewed — permanently invalid numbers should be removed from your database. Fivo SMS provides the specific failure reason code where available from the operator.
⏳ Pending
The SMS has been submitted to the telecom operator but a final delivery confirmation has not yet been received. Pending typically means the handset is temporarily switched off, out of coverage, or the operator's delivery retry window is still active. Most Pending messages resolve to Delivered within a few hours as the handset comes back online. A small percentage may eventually move to Failed if the handset remains unreachable past the operator's retry timeout (usually 24–72 hours).
Three Ways to Access Your Delivery Reports
📊 Real-Time Web Dashboard
Monitor every campaign live from your Fivo SMS web panel — watch the Delivered, Failed, DND, and Pending counts update in real time as the campaign sends across the network. The dashboard shows overall campaign progress as a percentage bar, a live feed of per-number status updates, and summary statistics per operator (Jio, Airtel, Vi, BSNL). No page refresh required — the dashboard auto-updates throughout delivery. Available for both Transactional and Promotional campaigns.
- Live counts updated continuously
- Progress bar — % delivered in real time
- Per-operator breakdown
- Filterable by status (delivered / failed / DND)
📄 Downloadable CSV Report
Download the full per-number delivery report as a CSV file — available within minutes of campaign completion, or for in-progress campaigns at any point during sending. The CSV contains every recipient number, their delivery status, delivery timestamp (for delivered numbers), operator name, and failure reason code (for failed numbers). Import directly into your CRM, billing system, or analytics platform for ROI analysis, customer segmentation, or follow-up campaign targeting.
💻 API Webhook Callbacks
For application-integrated SMS — OTP, order alerts, payment confirmations — register a webhook callback URL in your Fivo SMS account to receive real-time delivery status pushed to your application the moment each SMS is delivered or fails. No polling required. Your application receives an HTTP POST with the message ID, recipient number, status, timestamp, and operator. Use callbacks to trigger fallback flows: if an OTP fails to deliver, your app immediately fires a voice OTP; if a dispatch alert fails, your support system flags the order for manual outreach.
- Instant HTTP POST on delivery / failure
- Message ID, number, status, timestamp
- No polling — push architecture
- Trigger fallback flows automatically
How Different Businesses Use Delivery Reports
🏭 Banks & Fintech — Compliance Audit
RBI mandates transaction alert SMS for all debits above ₹5,000. Delivery logs with timestamps provide the audit evidence required to demonstrate compliance — each transaction alert is logged with message ID, mobile number, delivery status, and exact delivery timestamp. In case of a customer dispute ("I didn't receive the alert"), the delivery report is the first line of evidence for the bank's compliance team.
- Delivery timestamp per transaction alert
- 90-day archive for RBI audit access
- Failed alerts flagged for manual review
🛍 E-Commerce — ROI Measurement
For a Diwali sale campaign sent to 1,00,000 opted-in customers, the delivery report shows 86,000 delivered, 11,000 DND-filtered, 1,900 failed, and 2,100 pending. The marketer now knows the actual delivered reach was 86,000 — not 1,00,000. Cost per delivered SMS is accurately calculated. Revenue attributed to the campaign divided by 86,000 gives the true CPR (Cost Per Reached Customer), enabling accurate campaign ROI and budget justification for the next campaign.
- Accurate delivered reach count
- True cost per delivered message
- Failed numbers removed from future lists
🔑 SaaS & Fintech — OTP Fallback
A payment gateway sends login OTP via SMS. The API webhook callback confirms delivery in under 5 seconds for 98.5% of numbers. For the 1.5% where the SMS fails — invalid number, handset off — the webhook failure callback triggers an automatic voice OTP call within the same session, keeping the authentication flow intact. Without real-time webhook delivery reporting, failed OTPs result in dead-end user experiences and abandoned transactions.
- Webhook fires on delivery or failure
- App triggers voice OTP on SMS failure
- Zero dead-end authentication flows
🏥 Healthcare — No-Show Reduction
A hospital sends appointment reminders the evening before. The delivery report shows 94 patients received the SMS and 6 failed (handsets off). The front-desk team is automatically notified of the 6 failed deliveries and makes a quick call to those patients — converting potential no-shows into confirmed attendances. Delivery report data directly feeds into the hospital's no-show management workflow.
🚚 Logistics — Delivery Dispute Resolution
A customer claims they never received an "out for delivery" SMS and disputes the delivery attempt. The logistics company pulls the delivery report showing the SMS was delivered to the customer's registered number at 9:14 AM — well before the delivery attempt at 10:30 AM. The delivery timestamp is the evidence that resolves the dispute. Without delivery reports, such disputes are impossible to resolve objectively.
📈 CRM & Marketing — List Hygiene
After every campaign, the marketer downloads the CSV report and imports Failed numbers into the CRM as "invalid mobile." Over three consecutive campaigns, numbers that consistently fail are flagged for removal from the active database — improving future campaign deliverability, reducing wasted spend, and maintaining list hygiene. DND-filtered numbers are tagged for Transactional-only communication going forward.
Delivery Report Features — Fivo SMS Platform
🕑 90-Day Report Archive
All delivery reports are stored and accessible for 90 days from the campaign date. Access any past campaign's full delivery data — summary counts or per-number CSV — from the Fivo SMS dashboard at any time within the archive window. Essential for businesses with monthly compliance reporting cycles, quarterly audits, or delayed dispute resolution timelines where historic delivery evidence may be required weeks after the campaign.
👥 Per-Operator Breakdown
The delivery dashboard breaks down delivery rates by telecom operator — Jio, Airtel, Vodafone Idea, and BSNL — so you can identify if a particular network is experiencing routing issues for your Sender ID or template. A delivery rate of 98% on Jio and Airtel but 72% on BSNL immediately flags a BSNL-specific issue that Fivo SMS can investigate and reroute. Operator-level visibility is critical for high-volume enterprise senders.
⏳ Pending Resolution Tracking
Pending SMS — where the handset is temporarily unreachable — are tracked through the operator's retry window (typically 24–72 hours). As Pending messages resolve to Delivered or Failed, the report updates automatically. You receive a notification when a campaign's Pending count drops to zero — the signal that all outstanding delivery confirmations have been received and the report is finalised.
📄 Failure Reason Codes
The CSV report and API callback include the specific failure reason code for every Failed SMS — where available from the telecom operator. Common codes: Invalid Number (the mobile number does not exist on any Indian network), Unreachable (handset off or out of coverage beyond retry window), Barred (number has been deactivated), DLT Rejection (template mismatch — requires DLT review). See: DLT Error Codes Reference
🔌 API Polling & Webhooks
Two API delivery report access methods: polling (GET request to the Fivo SMS API with your campaign or message ID returns current status) and webhooks (push callbacks — Fivo SMS POSTs to your URL the moment each message status changes). For most application use cases, webhooks are preferred as they eliminate polling overhead and provide real-time status without your application having to repeatedly query the API.
📊 Campaign Comparison
Compare delivery performance across multiple campaigns from the Fivo SMS dashboard — delivery rate trends over time, DND-filtered percentage by campaign (a rising DND rate indicates your database needs refreshing with new opt-ins), operator-wise delivery consistency, and failed number rates. Campaign comparison data helps marketing teams identify which audience segments, send times, and Sender IDs consistently produce the best delivery outcomes.
FAQs — SMS Delivery Reports
Get Full Delivery Visibility with Fivo SMS
📞 Contact Fivo SMS
Sector 63, Noida, UP — 201301
Know Exactly Who Got Your SMS — Start with Fivo SMS
Real-time delivery dashboard, per-number CSV reports, API webhooks, 90-day archive, and failure reason codes — full delivery visibility for every campaign, at no extra charge.
Get Started Today Bulk SMS Service DLT Registration Guide