Delivery and read receipts allow you to receive feedback from OpenMarket with the status of an RCS message sent to an end user's handset.
When sending an RCS message using the Invoke API, a requestID is created uniquely identifying that RCS message. Within a single requestID you can have one or more RCS types. For example, you might send an RCS message that includes both text and media types. If delivery and/or read receipts are provisioned, you will receive at least one receipt containing the message delivery status type and at least one receipt for the read status. Depending on a type's receipt delivery or read status, you might receive additional receipts showing those status changes. For example, a delivery receipt might be returned for an RCS message with both text and media types. The receipt indicates that the text type was DELIVERED or SUCCEEDED. However, the delivery status of the media type might currently be unknown; in this case the returned receipt shows PENDING. You will then receive an additional delivery receipt when the status changes from PENDING to either SUCCEEDED, FAILED, or TIMED_OUT. Similarly, this applies to read receipts as well.
For the description of delivery and read receipt parameters, including statuses, see RCS Delivery and Read Receipt Parameters and Examples.
Before receiving delivery and read receipts
You must first be provisioned by OpenMarket for delivery and read receipts and have provided an endpoint to which they are sent. You can provide a single endpoint for both receipt types or provide separate endpoints for each receipt type.
No error codes are returned for failed delivery or read receipt messages, but instead one of the following statuses is returned for each message contained within the requestID: SUCCEEDED, PENDING, FAILED, or TIMED_OUT. See Delivery and Read Receipt Parameters for more information about these statuses. OpenMarket does not receive additional details from a carrier for PENDING, FAILED, or TIMED_OUT statuses. To obtain further details about these statuses, contact your carrier. You will receive delivery receipts when a message status changes. If a message status is PENDING for 72 hours, the status changes to TIMED_OUT and attempts to return a delivery receipt will stop.
Note: If a message is in a PENDING state, no other status will be returned for that message until the status changes to either SUCCEEDED, FAILED, or TIMED_OUT. In addition, if a single RCS type is sent, and the status of that single message is PENDING, no delivery or read receipt is returned until the status changes to either SUCCEEDED, FAILED, or TIMED_OUT. A delivery receipt for a message in a PENDING state is only returned if that message is part of a requestID containing multiple RCS message types.
Delivery receipt functionality described here applies only to RCS messages. If you use SMS fallback in the Invoke API, provisioning will set up delivery receipts using the HTTP Global SMS API delivery receipt functionality. See Receive a Delivery Receipt for information about how delivery receipts are processed for SMS fallback. Please note that only JSON is supported.