Skip to main content

SMS Status Codes

Complete reference for SMS delivery status codes returned by the Exotel SMS API.

Intermediate Statuses​

These statuses indicate the SMS is still being processed:

CodeStatusDescription
21010queuedSMS is queued for sending
21015sendingSMS is being sent to the operator
21020submittedSMS has been submitted to the operator

Success Statuses​

CodeStatusDescription
20005DELIVERED_TO_HANDSETSMS delivered to the recipient's phone
20006DELIVERED_TO_OPERATORSMS delivered to the operator (handset confirmation pending)

Failure Statuses​

CodeStatusDescription
23005FAILED_DNDRecipient is on Do Not Disturb (DND) registry
23010FAILED_INVALID_NUMBERPhone number is invalid or does not exist
23015FAILED_SPAMMessage flagged as spam by the operator
23020FAILED_BLACKLISTEDRecipient number is blacklisted
23072FAILED_INVALID_SENDERSender ID is not approved or registered
23080FAILED_DLT_SCRUBBINGMessage blocked by DLT scrubbing
23081FAILED_DLT_ENTITYDLT entity ID is invalid or not registered
23082FAILED_DLT_TEMPLATEDLT template ID mismatch or not approved
23083FAILED_DLT_CONSENTDLT consent not found for recipient

HTTP Error Codes​

CodeDescription
400Bad request — missing or invalid parameters
401Authentication failed — invalid API key or token
403Forbidden — account suspended or insufficient permissions
429Rate limit exceeded — max 200 requests/minute
500Internal server error — retry the request

Status Flow​

queued → sending → submitted → DELIVERED_TO_OPERATOR → DELIVERED_TO_HANDSET
→ FAILED_* (any failure status)
note

DLT-related failures (23080–23083) are specific to India and occur when DLT registration, template, or consent requirements are not met. Ensure your DLT entity and templates are properly registered before sending.