SMS Delivery Reports

When sending a message through TotalSend, you have the option to track the delivery of these messages.

If using HTTP, you need to add two additional fields to your request, as below.

  • report_url – The HTTP URL for us to request when the status changes.
  • report_mask – Which status messages you would like to receive

So what is the report_mask ?

The report mask is what is known as a bit mask field indicating which status messages you want to receive.

What are the different delivery status codes?

  • 1 – Delivered
  • 2 – Undelivered
  • 4 – Queued at network
  • 8 – Sent to network
  • 16 – Failed at network

How do I calculate the report mask ?

To calculate the report mask, you need to pick the status codes you  want to receive, and then add them together, voila! That’s your report  mask.

For example: I want to receive whether my message was delivered or failed. (1, 2 and 16).

report_mask = 1 + 2 + 16 = 19

So in your next request, send report_mask=19 and we’ll send you these status’ messages where applicable.

Seems simple enough, what about getting some extra data in the request?

We provide you with some extra fields which you can specify and we’ll  replace them for you before we send the messages back to your server.

  • %d – the status code (see above) of the message

Give me an example

Ok, so we want to send a message, and receive status reports to our server when the message is delivered, or fails.

Our request parameters will look like this


Example Value

Hello there, we are testing delivery reports!

The resulting URL (once we encode the data) for the request will look like this:
view raw