Every SMS submitted through Zeckta progresses through a delivery lifecycle.
Statuses can be retrieved using the Message Status API and are reflected in campaign reports, delivery analytics, and webhook notifications.
Message Lifecycle
queued
↓
processing
↓
submitted
↓
sent
↓
delivered
Messages may also transition into terminal states:
failed
expired
undeliverable
rejected
Status Reference
Internal Processing
| Status | Description |
|---|
queued | Message has been accepted and is waiting to be processed. |
processing | Message is currently being prepared for delivery. |
scheduled | Message is scheduled for future delivery and has not yet entered processing. |
Gateway & Carrier Processing
| Status | Description |
|---|
submitted | Message has been accepted by the messaging gateway for delivery. |
buffered | Message is temporarily buffered by the carrier or gateway pending delivery. |
sent | Message has been successfully dispatched toward the destination network. |
Final States
| Status | Description |
|---|
delivered | Delivery to the recipient handset has been confirmed. |
failed | Delivery failed and will not be retried automatically. |
expired | The carrier validity period expired before delivery could be completed. |
undeliverable | The destination network or handset could not accept the message. |
rejected | The message was rejected before delivery processing completed. |
Terminal States
The following statuses are considered final:
delivered
failed
expired
undeliverable
rejected
Once a message reaches a terminal state, no further delivery updates will be generated.
Checking Message Status
Retrieve the latest status using:
GET /v1/messaging/sms/messages/{messageId}
Example response:
{
"success": true,
"data": {
"messageId": "f35f37e3-7db4-469d-a55e-17c9cbd1f681",
"status": "delivered"
}
}
Webhook Events
Webhook notifications are emitted when a message reaches significant delivery milestones.
| Event | Associated Status |
|---|
MESSAGE_SUBMITTED | submitted |
MESSAGE_SENT | sent |
MESSAGE_DELIVERED | delivered |
MESSAGE_FAILED | failed |
MESSAGE_UNDELIVERABLE | undeliverable |
MESSAGE_EXPIRED | expired |
MESSAGE_REJECTED | rejected |
The following statuses do not generate webhook events:
queued
processing
scheduled
buffered
Delivery status availability depends on carrier support, destination network capabilities, and regional regulations.