SMS Status
Track delivery status in real-time with comprehensive provider feedback, error analysis, and webhook integration for automated status updates.
Real-time Tracking
Get live delivery status updates with timestamp precision down to the second
Detailed Error Codes
Provider-level error messages for failed deliveries with actionable insights
Delivery Analytics
Track delivery rates, response times, and failure patterns per message
Webhook Integration
Receive automatic status updates via webhooks without polling
Authentication Required
Avg Delivery Time
2.3s
Last 24 hours
Success Rate
97.5%
Last 7 days
Failed Messages
124
Last 24 hours
Webhook Latency
150ms
p95
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| messageId | string | Yes | Unique identifier returned from send SMS endpoint (format: exa_api_*) |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| includeHistory | boolean | No | Include full status history timeline (default: false) |
| webhookStatus | boolean | No | Include webhook delivery status (default: false) |
Message Lifecycle
queued
10:30:00
sent
10:30:01
delivered
10:30:03
Response
{"success": true,"data": {"messageId": "exa_api_123456789_abc123def","status": "delivered","recipient": "233555539152","senderId": "YourBrand","segments": 1,"cost": 1,"submittedAt": "2024-01-15T10:30:00Z","lastUpdatedAt": "2024-01-15T10:30:05Z","deliveredAt": "2024-01-15T10:30:05Z","errorCode": null,"errorMessage": null,"provider": "mtn_ghana","network": "MTN"}}
Delivery Status Legend
Message accepted and waiting for processing
Message forwarded to mobile network
Successfully delivered to recipient device
Delivery failed - see error code for details
Message expired before delivery (48hr timeout)
Rejected by carrier - invalid number or blocked
Error Code Reference
| Code | Message | Resolution |
|---|---|---|
| E001 | Invalid destination number | Verify phone number format |
| E002 | Network temporarily unavailable | Retry with exponential backoff |
| E003 | Insufficient credits | Top up account balance |
| E004 | Message expired | Resend the message |
| E005 | Recipient phone is off | Message will be retried for 48h |
| E006 | Number is on DND list | Cannot send to this number |
Check Status Live
https://api.sendexa.co/v1/sms/status/exa_api_123456789_abc123defCode Examples
curl -X GET 'https://api.sendexa.co/v1/sms/status/exa_api_123456789_abc123def?includeHistory=true' \-H 'Authorization: Basic YOUR_BASE64_CREDENTIALS'
Webhook Configuration
Automatic Status Updates
Configure webhooks in your dashboard to receive real-time status updates without polling. Webhooks are sent for every status change with a signed payload for verification.
Webhook Events
- sms.queuedMessage accepted
- sms.sentForwarded to carrier
- sms.deliveredSuccessfully delivered
- sms.failedDelivery failed
Retry Policy
- 5 retry attempts
- Exponential backoff
- 48 hour expiry
Best Practices for Status Tracking
- Use webhooks instead of polling for real-time updates and reduced API calls
- Implement exponential backoff when polling to avoid rate limits
- Store messageId and status history for audit and reporting purposes
- Set up alerts for failed messages with error code E002 (network issues)
- Use includeHistory parameter for debugging delivery delays
- Verify webhook signatures to ensure payload authenticity