Outbound messages: 


Could be in any of the following states: Queued, Sent, Failed, Delivered, Undelivered.


All outbound messages are initially Queued => Plivo accepted the message from a user and will make an attempt to send the message to a carrier.


A message is marked as "Failed" if an internal error occurs before the message is passed on to downstream carriers. The user will not be charged.

A message is marked as "Sent" when the message is successfully passed on to downstream carrier. The user will be charged in this scenario.

The message is marked "Delivered" or "Undelivered" based on the delivery receipt received from the carrier. The user will be charged in this scenario.

Note that delivery receipts are not universally supported across countries, number types and mobile networks. The final status of a message may remain as sent in cases where delivery receipts are not received.


Delivery report is not supported for the U.S. and Canada due to regulations.



Inbound messages


Could be in any of the following states: Received, Delivered, Undelivered.


All inbound messages are initially marked as "Received"

If the Plivo phone number on which the message was received is associated with an Application, and the application has a valid message_url configured, then the message is forwarded to that url. The message is marked as Delivered on a successful response from the message_url, else it is marked Undelivered.