Checking Message Status

You can check the status of an outbound message any time after it has been sent.


Visit Sending Messages to learn more about sending an SMS message.


Checking Outbound Message Status

You can check the delivery status of a message with a single call to the Atmosphere® Messaging API.



For EU numbers, GET to


For all other numbers, GET to


This API method requires an Authorization Token. Learn more about the Authorization token in Atmosphere® API Authentication.


ParameterData TypeRequiredDescription
refidstringrequiredThe refid of the message returned by calling the send method.

Request Example

    "refid": SM5AC09A610001006568100005C32E9D",

200 OK

    "code": 200,
    "RCC_en": "Queued",
    "RCC": 0

    "code": 200,
    "RCC_en": "Processing",
    "RCC": 2031

    "code": 200,
    "RCC_en": "Sent",
    "RCC": 10000

    "code": 200,
    "RCC_en": "DLR:Delivered",
    "RCC": 210000

401 Unauthorized

    "detail": "unauthorized"

    "error": "token has expired"

Response Variable Values


VariableAvailable Values

DLR: Delivered

Response Codes


Response CodeDescription
200MDR Returned
401Authorization token has expired or invalid
404Record not found


Messages sent through the Atmosphere® Messaging API are queued for quick and reliable delivery to the destination carrier and ultimately to the end-user’s phone.


The message’s lifecycle is as follows:


  1. Message queued for delivery
  2. Message delivered to the mobile carrier
  3. Message delivered to end-customer
  4. In some cases, message delivery may fail due to carrier SPAM filters or other carrier-specific restrictions


There may be delays in delivery a message to the end-customer due to:


  • Throttling enforced by IntelePeer to improve message delivery
  • Throttling or SPAM controls enforced by the mobile carrier
  • The end customers handset being out of service area, turned off, or in airplane mode


import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;

public class MdrStatus {
    public static void main(String... args) throws Exception {
        final String url = "";
        final String AUTH_TOKEN = "INSERT_AUTH_TOKEN_HERE";
        final String REFID = "INERT_REFID_HERE";    HttpClient httpclient = HttpClientBuilder.create().build();
    HttpPost httpPost = new HttpPost(url);

    // add header
    httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
    httpPost.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + AUTH_TOKEN);

    // Data to be posted
    List urlParameters = new ArrayList();
    urlParameters.add(new BasicNameValuePair("refid", REFID));

    // add data to post
    httpPost.setEntity(new UrlEncodedFormEntity(urlParameters));

    // execute post
    HttpResponse response = httpclient.execute(httpPost);

    // show post results
    System.out.println("nSending 'POST' request to URL : " + url);
    System.out.println("Post parameters : " + httpPost.getEntity());
    System.out.println("Response Code : " + 

    BufferedReader rd = new BufferedReader(
                    new InputStreamReader(response.getEntity().getContent()));

    StringBuffer result = new StringBuffer();
    String line = "";
    while ((line = rd.readLine()) != null) {