Every Twilio SMS has a Status value which describes the current state of the message. When sending SMS here is the typical sequence of Status values:
acceptedWhen you specify the "MessagingServiceSid" parameter in the API request,
acceptedwill be the first status Twilio returns, indicating that Twilio accepts the request and will soon determine the optimal 'From' phone number for the message.
queuedFor messages initiated with the "MessagingServiceSid" parameter,
queuedis the status Twilio returns when a phone number is allocated. Messages without the use of Messaging Service are created with a status of
queued, indicating your request to send a message was successful and the message is queued to be sent out.
sendingA short time later Twilio starts the process of dispatching your message to the nearest upstream carrier in the SMS network.
sentOnce the nearest upstream carrier has accepted the message for delivery to the SMS network, the status is updated to
deliveredTwilio has received confirmation of message delivery from the upstream carrier, and, where available, the destination handset. The status is updated to
receivedAll inbound messages will have this status, indicating the message was received by one of your Twilio numbers.
failedThe upstream provider did not accept the message and hence delivery fails. Check out the possible reasons here.
undeliveredTwilio has received a delivery receipt indicating that the message was not delivered. This can happen for a number of reasons including carrier content filtering, availability of the destination handset, etc.
delivered, or even
undelivered, you will be charged for the message. On the other hand, if a message is marked as
failed(which in most cases indicates that the upstream provider did not accept the message at all), you will not be charged.