There are three distinct stages an outbound message sent via API will go through:
Plivo accepted the message from a user and will make an attempt to send the message to a carrier.
sent: Plivo successfully sent the message to the carrier. The user is charged.
failed: Plivo was unable to send the message to the carrier. The user is notcharged.
3. Delivery Report*
delivered: the message was successfully delivered.
undelivered: the carrier was not able to deliver the message.
rejected: the carrier rejected the message due to some regulations.
Delivery report is not supported for the U.S. and Canada due to regulations.