Receiving a Delivery Report

Receiving a Delivery Report

Once a message has been sent to Gateway, we will attempt to send you at least one delivery report where this is available. We will attempt to deliver these notifications to the delivery report URL you provided in MyMessageCloud. Check out Getting Started With Gateway if you missed this step.

The delivery report will consist of the following variables:

Variable Type Description

action

String

The type of notification being sent. In the case of SMS delivery reports, this field will always be mp_report.

id

String

The unique message number. This will be the same value as the id parameter you provided us with in Sending a Message.

message_id

String

This field is the same as id but has been maintained for backwards compatibility.

number

String

The telephone number of the consumer to whom you are sending the message.

report

String

The status of the delivery report. A full list of statuses has been provided in the table below.

reason_id

String

The ID returned to us by the network operator. This can be useful to find out more about the status of the message but is network specific.

See below for an example:

Array
(
    [action] => mp_report
    [id] => 123456789
    [message_id] => 123456789
    [number] => 44700000000
    [report] => DELIVERED
    [reason_id] => 000
)

Interim and Final Delivery Report Statuses

There are two types of delivery report: interim and final.

It is important to remember that delivery reports can arrive in at your endpoint in any order. As such you will need to ensure that final statuses are not overwritten by interim reports.

Interim delivery reports provide you with updates on the status of your message while being delivered. For example, when we pass the message to the network operator we will provide you with an ACKNOWLEDGED delivery report. This delivery report is intended to be overwritten by a final status like DELIVERED or REJECTED.

Delivery Reports Explained

Report Description Final Status?

DELIVERED

The transaction was completed successfully. If a billed message was sent then the end user was charged.

NO_CREDIT

Delivery of the message failed because the end user did not have sufficient credit to complete the transaction at this time.

FAILED

The transaction could not be completed.

VALIDITY_EXPIRED

The message could not be delivered to the end user as the validity period expired. An SMS message is stored temporarily in the SMS center/network operator if the recipient mobile phone is unavailable, e.g. off / out of reception/flight mode / any other reason that the phone can't be contacted. Once deleted from the network's temporary store, the SMS message will no longer be available for dispatch to the recipient mobile phone (even if it becomes online). Mobile networks only store text messages for a limited time as there is a limit to available space in which to store the messages.

REJECTED

The transaction was rejected by the operator. You must not continue to send charges to the end user.

INVALID_MSISDN

The transaction could not be completed as the MSISDN was malformed or does not exist. You must not continue to send charges to the end user.

ACKNOWLEDGED

The transaction has been acknowledged for delivery by the operator. This is a transient state and may be succeeded by further reports.

UNKNOWN

The transaction could not be categorised as the operator or handset returned an undocumented status.

OPERATOR_ERROR

The transaction could not be completed as there was an error with the operator.

If you choose not to store the delivery reports, the above statuses can be found in the MyMessageCloud control panel where you can log in to your account and then select Billing > Transactions > Search Transactions from the main menu.

Next:  Receiving a Message