- Sending a single SMS
- Creating an SMS campaign
Supported Delivery Statuses
The following internal processing states do not generate callback notifications:
QUEUEDPROCESSINGSCHEDULEDBUFFERED
Event Types
Each callback includes an event type representing the delivery milestone that occurred.Configuring a Callback URL
Single SMS
SMS Campaign
Example Callback Payload
Payload Fields
Event Metadata
Message Object
Delivery Lifecycles
Successful Delivery
Failed Delivery
Expired Message
Rejected Message
HTTP Requirements
Your callback endpoint should:- Accept HTTP POST requests
- Return a successful
2xxresponse - Be publicly accessible
- Support HTTPS
- Process notifications idempotently
Idempotency
Callback notifications should be treated as idempotent. Although every callback contains a uniqueeventId, your application should safely handle duplicate deliveries without creating duplicate records or triggering duplicate business actions.
A common approach is to store previously processed eventId values and ignore duplicates.
Best Practices
- Validate incoming callback payloads before processing.
- Log callback deliveries for troubleshooting.
- Store delivery events for auditing and analytics.
- Process callbacks asynchronously where possible.
- Return a
2xxresponse immediately after accepting the notification. - Use the Message Status API when historical delivery data is required.
Message Status API
If you need to retrieve the latest delivery information on demand, use the Message Status API.Related Resources
Message Status API
Retrieve the latest delivery status for a message.
Delivery Statuses
Learn about the SMS delivery lifecycle and status definitions.