Using the SMS Gateway API, Automating Delivery Report Collection

This blog post has been superseded with our website documentation


If you are using the API / Gateway to send bulk SMS you can collect your delivery reports from the server, which is a good way of removing bad numbers from your data.

Delivery Reports and the API

It is important to understand the difference between getting a “failure”  (or success) message at the API/Gateway and a delivery report. The HTTP GET response from the gateway only confirms that the number and message appear to be in the correct format this does not mean that the number exists.  Delivery reports confirm to you what has actually happened to the message, the following outcomes are possible: “DELIVERED”,”REJECTED”,”FAILED” and no report at all.

  • “REJECTED” means that the message was rejected by the relevant operator and did not attempt to deliver it.
  • “FAILED” probably means that the number does exist (or at least not anymore).
  • “DELIVERED” message received on the handset.

Occasionally we don’t received a delivery report at all, this can be down to a failure at the operator end due to high load or other problems.

Delivery Report Collection Methods

Method 1

See our RESTful services which offer a comprehensive and simplified method to collect your delivery reports. We recommend that you use this approach.

Method 2

Push notification. We can push the delivery reports via a GET request to a url of your choice. Just log into your account and go to “settings” => “api settings” .

Parameter Data Type Info
id INT the unique message id
delivered_date UNIX TIME STAMP approximate time the message was delivered
processed_date UNIX TIME STAMP our processing date
status DELIVERED | FAILED (STRING) the outcome of the message report
msisdn INT the mobile number of the recipient