Москва  +7 (495) 120-8115 (с 10 до 18)

Проверить статус отправленных сообщений

Мы настоятельно рекомендуем использовать бесплатную опцию api callback для более быстрого и удобного получения статусов сообщений. Она позволяет вам не запрашивать многократно статус сообщений - они будут автоматически отправляться на ваш сервер в реальном времени.

Если у вас есть необходимость вручную проверить статус отправленных вами сообщений, то вы можете отправить следующие запросы на наш сервер.

Примеры запроса

https://sms.ru/sms/status?api_id=[зарегистрируйтесь, чтобы получить api_id]&sms_id=000000-000001,000000-000002,000000-000003&json=1

Пример ответа

При включенном параметре json=1:

{
    "status": "OK", // Запрос выполнен успешно (нет ошибок в авторизации, проблем с отправителем, итд...)
    "status_code": 100, // Успешный код выполнения
    "sms": {
        "000000-000001": {
            "status": "OK", // Статус получен успешно.
            "status_code": 103, // Код статуса
            "cost": 0.50, // Стоимость
            "status_text": "Сообщение доставлено" // Текст статуса
        },
        "000000-000002": {
            "status": "OK", // Статус получен успешно.
            "status_code": 104, // Код статуса
            "cost": 0.50, // Стоимость
            "status_text": "Не может быть доставлено: время жизни истекло" // Текст статуса
        },
        "000000-000003": {
            "status": "ERROR", // Возможные варианты: OK или ERROR.
            "status_code": -1, // Код ошибки
            "status_text": "Сообщение не найдено" // Текст ошибки
        }
    } ,
    "balance": 4122.56 // Ваш баланс после отправки
}

Без json:

100 // запрос выполнен успешно
103 // статус первого сообщения
104 // статус второго сообщения
-1 // статус третьего сообщения

Параметры

Параметр Обязательный Описание
sms_id да Идентификатор сообщения, полученный при использовании метода sms/send. Можно указать несколько идентификаторов через запятую (до 100 штук за раз).
json=1 рекомендуется Данный параметр вызывает ответ сервера в формате JSON, в котором предоставлено больше данных об отправленных сообщениях

Авторизация осуществляется при помощи:

Параметр Обязательный Описание
api_id да Авторизацию по вашему уникальному ключу (api_id). Этот способ авторизации - самый удобный и приведен в примере выше. Ваш api_id вы можете найти на главной странице личного кабинета: [зарегистрируйтесь, чтобы получить api_id]

или

Параметр Обязательный Описание
login да Ваш номер телефона (логин): 79255070602
password да Пароль (безопасность гарантируется при использовании https)

Пример на PHP (со включенным модулем curl)

Мы настоятельно рекомендуем использовать нашу библиотеку под PHP. Данный код указан только в качестве простого примера.

$ch = curl_init("https://sms.ru/sms/status");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    "api_id" => "[зарегистрируйтесь, чтобы получить api_id]",
    "sms_id" => "000000-000001,000000-000002,000000-000003", // До 100 штук за раз
    "json" => 1 // Для получения более развернутого ответа от сервера
));
$body = curl_exec($ch);
curl_close($ch);

$json = json_decode($body);
if ($json) { // Получен ответ от сервера
    print_r($json); // Для дебага
    if ($json->status == "OK") { // Запрос выполнился
        foreach ($json->sms as $sms_id => $data) { // Перебираем массив сообщений
            if ($data->status == "OK") { // Статус сообщения получен
                echo "ID сообщения: $sms_id ";
                echo "Код статуса сообщения: $data->status_code ";
                echo "Текст статуса сообщения: $data->status_text ";
                echo "Стоимость сообщения: $data->cost ";
                echo "";
            } else { // Ошибка в получении статуса
                echo "ID сообщения: $sms_id ";
                echo "Код ошибки: $data->status_code ";
                echo "Текст ошибки: $data->status_text ";
                echo "";
            }
        }
    } else { // Запрос не выполнился (возможно ошибка авторизации, параметрах, итд...)
        // Код ошибки: $json->status_code
        // Текст ошибки: $json->status_text
    }
} else { // Запрос не выполнился Не удалось установить связь с сервером

}

Пример на PHP без curl

Мы настоятельно рекомендуем использовать нашу библиотеку под PHP. Данный код указан только в качестве простого примера.

$body = file_get_contents("https://sms.ru/sms/status?api_id=[зарегистрируйтесь, чтобы получить api_id]&sms_id=000000-000001,000000-000002,000000-000003&json=1");

$json = json_decode($body);
print_r($json); // Для дебага
// Для разбора $json можно использовать кусок кода из предыдущего примера.

Пример на Perl

#!/usr/bin/perl
use LWP::Simple;
use HTTP::Request::Common qw(POST);

$ua = LWP::UserAgent->new;
my $req = POST 'https://sms.ru/sms/status',
[
api_id => '[зарегистрируйтесь, чтобы получить api_id]',
sms_id => '000000-000001,000000-000002,000000-000003',
];
print $ua->request($req)->as_string;

Пример на curl

Если вы используете curl под Windows. То знак \ перед знаками ? и & необходимо убрать.

curl https://sms.ru/sms/send\?api_id=[зарегистрируйтесь, чтобы получить api_id]\&sms_id=000000-000001,000000-000002,000000-000003

Значения кодов

Код Значение
-1 Сообщение не найдено
100 Запрос выполнен или сообщение находится в нашей очереди
101 Сообщение передается оператору
102 Сообщение отправлено (в пути)
103 Сообщение доставлено
104 Не может быть доставлено: время жизни истекло
105 Не может быть доставлено: удалено оператором
106 Не может быть доставлено: сбой в телефоне
107 Не может быть доставлено: неизвестная причина
108 Не может быть доставлено: отклонено
110 Сообщение прочитано
200 Неправильный api_id
201 Не хватает средств на лицевом счету
202 Неправильно указан получатель
203 Нет текста сообщения
204 Имя отправителя не согласовано с администрацией
205 Сообщение слишком длинное (превышает 8 СМС)
206 Будет превышен или уже превышен дневной лимит на отправку сообщений
207 На этот номер нет маршрута для доставки сообщений
208 Параметр time указан неправильно
209 Вы добавили этот номер (или один из номеров) в стоп-лист
210 Используется GET, где необходимо использовать POST
211 Метод не найден
212 Текст сообщения необходимо передать в кодировке UTF-8 (вы передали в другой кодировке)
213 Указано более 100 номеров в списке получателей
220 Сервис временно недоступен, попробуйте чуть позже
230 Превышен общий лимит количества сообщений на этот номер в день
231 Превышен лимит одинаковых сообщений на этот номер в минуту
232 Превышен лимит одинаковых сообщений на этот номер в день
300 Неправильный token (возможно истек срок действия, либо ваш IP изменился)
301 Неправильный пароль, либо пользователь не найден
302 Пользователь авторизован, но аккаунт не подтвержден (пользователь не ввел код, присланный в регистрационной смс)
303 Код подтверждения неверен
304 Отправлено слишком много кодов подтверждения. Пожалуйста, повторите запрос позднее
305 Слишком много неверных вводов кода, повторите попытку позднее
500 Ошибка на сервере. Повторите запрос.
901 URL неверный (не начинается на http://)
902 Обработчик не найден (возможно был удален ранее)

Последнее обновление: 08 Сентября 2017 в 23:53

Бесплатный номер по России  +7 (800) 222-60-95