Интеграция с сервисом (API)

API позволяет рассылать сообщения через ваши проекты и сервисы по протоколам HTTP/HTTPS, SMTP и SMPP. Готовые библиотеки на разных языках программирования подключаются к вашему проекту и помогают отправлять сообщения из любого места с помощью одной команды. Для упрощенной авторизации вместо пары логин и пароль можно использовать специальный API-ключ.


HTTP/HTTPS SMTP SMPP SOAP OMS SMS-команды Библиотеки и примеры кода

ОТПРАВКА СООБЩЕНИЙ

Отправка SMS-сообщения

Комментарии в SMS-сообщениях

Отправка на группу номеров

Отправка HLR-запроса

Отправка e-mail сообщения

Отправка голосового сообщения (звонок)

Отправка viber-сообщения

Отправка сообщения в Telegram

Отправка сообщения в чат-бот Telegram

Использование префиксов при отправке сообщений

Управление шаблонами сообщений

Управление шаблонами операторов

Виртуальная отправка (режим тестирования)

Уведомления о событиях

УПРАВЛЕНИЕ РАССЫЛКАМИ

СТАТУСЫ СООБЩЕНИЙ

ПРОВЕРКА СОСТОЯНИЯ БАЛАНСА

УПРАВЛЕНИЕ КОНТАКТАМИ

УПРАВЛЕНИЕ КЛИЕНТАМИ

УПРАВЛЕНИЕ ИМЕНАМИ ОТПРАВИТЕЛЕЙ (SENDER ID)

ПОЛУЧЕНИЕ ДАННЫХ

РАЗНОЕ

HTTP/HTTPS протокол

Адрес резервного сервера: www2.m.smsc.ru.

Отправка сообщений

Отправка SMS-сообщения

Для отправки SMS необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>
Для получения стоимости SMS необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&cost=1
Для отправки SMS с передачей параметров в формате json в теле запроса необходимо вызвать методом POST адрес: https://smsc.ru/rest/send/
Описание параметров, передаваемых Серверу :

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
phonesНомер или разделенный запятой или точкой с запятой список номеров мобильных телефонов в международном формате, на которые отправляется сообщение. Номера могут передаваться без знака "+". Если номер передан без знака "+", то он может быть исправлен автоматическим форматированием и приведен к правильному международному формату. Таким образом, некоторые ошибки при вводе номеров телефонов могут быть исправлены автоматически. Для отключения автоисправления передайте номер со знаком "+".
Также можно отправлять сообщение на группу номеров, указав специальный код "G<номер группы>". Сообщение будет отправлено на все номера, принадлежащие данной группе. Для e-mail сообщения передается список e-mail адресов получателей. Для telegram в качестве получателя сообщения возможно указание ника абонента или его ID в виде #ID.
mesТекст отправляемого сообщения. Максимальный размер – 1000 символов. Сообщение при необходимости будет разбито на несколько SMS, отправленных абоненту и оплаченных по отдельности. Размер одного SMS – 160 символов в латинице или 70 символов в кириллице. При разбивке сообщения на несколько SMS в каждую часть добавляется заголовок для объединения частей в одно сообщение на телефоне получателя, и максимальная длина становится 67 для кириллицы и 153 для латинских букв. В текст сообщения можно добавлять комментарии, предназначенные для просмотра отправителем истории в личном кабинете.
Дополнительные параметры
idИдентификатор сообщения. Назначается Клиентом. Служит для дальнейшей идентификации сообщения. Если не указывать, то будет назначен автоматически. Не обязательно уникален. Идентификатор представляет собой 32-битное число в диапазоне от 1 до 2147483647, либо строку длиной до 40 символов, состоящую из латинских букв, цифр и символов ".-_".
senderИмя отправителя, отображаемое в телефоне получателя. Разрешены английские буквы, цифры, пробел и некоторые символы. Длина – 11 символов или 15 цифр. Все имена регистрируются в личном кабинете на данной странице.
translitПризнак того, что сообщение необходимо перевести в транслит.
0 (по умолчанию) – не переводить в транслит.
1 – перевести в транслит в виде "translit".
2 – перевести в транслит в виде "mpaHc/Ium".
tinyurlАвтоматически сокращать ссылки в сообщениях. Позволяет заменять ссылки в тексте сообщения на короткие для сокращения длины, а также для отслеживания количества переходов на этой странице.
0 (по умолчанию) – оставить ссылки в тексте сообщения без изменений.
1 – сократить ссылки.
timeВремя отправки SMS-сообщения абоненту.
Форматы:
  1. DDMMYYhhmm или DD.MM.YY hh:mm.
  2. h1-h2. Задает диапазон времени в часах. Если текущее время меньше h1, то SMS-сообщение будет отправлено абоненту при наступлении времени h1, если текущее время попадает в промежуток от h1 до h2, то сообщение будет отправлено немедленно, в другом случае отправка будет выполнена на следующий день при достижении времени h1. Данная функция, например, полезна для того, чтобы не допустить получение SMS-сообщений абонентами в ночное время.
  3. 0ts, где ts – timestamp, время в секундах, прошедшее с 1 января 1970 года.
  4. +m. Задает относительное смещение времени от текущего в минутах. Символ + должен кодироваться как %2B в http-запросе.
Если time = 0 или указано уже прошедшее время, то сообщение будет отправлено немедленно.
tzЧасовой пояс, в котором задается параметр time. Указывается относительно московского времени. Параметр tz может быть как положительным, так и отрицательным. Если tz равен 0, то будет использован московский часовой пояс, если же параметр tz не задан, то часовой пояс будет взят из настроек Клиента.
periodПромежуток времени, в течение которого необходимо отправить рассылку. Представляет собой число в диапазоне от 0.1 до 720 часов. Применяется совместно с параметром freq. Данный параметр позволяет растянуть рассылку во времени для постепенного получения SMS-сообщений абонентами.
freqИнтервал или частота, с которой нужно отправлять SMS-рассылку на очередную группу номеров. Количество номеров в группе рассчитывается автоматически на основе параметров period и freq. Задается в промежутке от 1 до 1440 минут. Без параметра period параметр freq игнорируется.
flashПризнак Flash сообщения, отображаемого сразу на экране телефона.
0 (по умолчанию) – обычное сообщение.
1 – Flash сообщение.
binПризнак бинарного сообщения.
0 (по умолчанию) – обычное сообщение.
1 – бинарное сообщение. В http-запросе необходимо закодировать с помощью функции urlencode.
2 – бинарное сообщение, представленное в виде шестнадцатеричной строки (hex).

Бинарное сообщение передается вместе с UDH заголовком в начале в параметре mes, в котором первый байт задает длину заголовка. Чтобы передать бинарное сообщение без UDH заголовка, укажите нулевой байт в начале сообщения (00 в hex).
Для возможности передачи параметров pid и dcs необходимо в конец бинарного сообщения добавить специальную комбинацию "\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки) и затем текст "pid: значение1, dcs: значение2" с точным сохранением пробелов.
pushПризнак wap-push сообщения, с помощью которого можно отправить интернет-ссылку на телефон.
0 (по умолчанию) – обычное сообщение.
1 – wap-push сообщение. В параметре mes необходимо передать ссылку и заголовок через перевод строки.
hlrПризнак HLR-запроса для получения информации о номере из базы оператора без отправки реального SMS.
0 (по умолчанию) – обычное сообщение.
1 – HLR-запрос. Будет выполнен HLR-запрос для каждого номера телефона в списке. Параметр mes не используется.
pingПризнак специального SMS, не отображаемого в телефоне, для проверки номеров на доступность в реальном времени по статусу доставки.
0 (по умолчанию) – обычное сообщение.
1 – ping-sms. Будет отправлено Ping-SMS на каждый номер телефона в списке. Параметр mes не используется.
mmsПризнак MMS-сообщения, с помощью которого можно передавать текст (txt), изображения различных форматов (jpg, gif, png), музыку (wav, amr, mp3, mid) и видео (mp4, 3gp). Файлы передаются в теле http-запроса.
0 (по умолчанию) – обычное сообщение.
1 – MMS-сообщение. Будет отправлено MMS на каждый номер телефона в списке.
mailПризнак e-mail сообщения. Файлы, прикрепляемые к сообщению, передаются методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение.
1 – e-mail сообщение.
socПризнак soc-сообщения, отправляемого пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".
0 (по умолчанию) – обычное сообщение.
1 – soc-сообщение.
viberПризнак viber-сообщения, отправляемого пользователям мессенджера Viber.
0 (по умолчанию) – обычное сообщение.
1 – viber-сообщение.
whatsappПризнак whatsapp-сообщения, отправляемого пользователям мессенджера WhatsApp.
0 (по умолчанию) – обычное сообщение.
1 – whatsapp-сообщение.
tgПри указании значения данного параметра равным 1 будет отправлено telegram-сообщение с кодом подтверждения, переданным в параметре mes.
botИмя бота (telegram), в который необходимо отправить сообщение в формате "@botname_bot".
smsreqПри указании данного параметра, система не будет отображать текст сообщения, отправленного пользователю и выводить предупреждение о необходимости подтверждения номера телефона, если с момента последнего подтверждения прошло больше smsreq дней. Диапазон значений от 10 до 999.
fileurlПолный http-адрес файла для загрузки и передачи в сообщении. Минимальный размер файла составляет 101 байт.
callПризнак голосового сообщения. При формировании голосового сообщения можно передавать как текст, так и прикреплять файлы. Файлы, добавляемые к сообщению, должны передаваться методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение.
1 – голосовое сообщение.
voiceГолос, используемый для озвучивания текста (только для голосовых сообщений).
m – мужской голос.
m2 – мужской голос 2.
m3 (по умолчанию) – мужской голос 3.
m4 – мужской голос 4.
w – женский голос.
w2 – женский голос 2.
w3 – женский голос 3.
w4 – женский голос 4.
При отправке сообщений также возможно указание языка озвучивания текста в виде: "m,en", "w,fr", "w,de" и т.п.
paramРазделенный запятой список параметров для голосового сообщения в формате "param=w,i,n".
Здесь:
  • w – время ожидания поднятия трубки абонентом после начала звонка в секундах. Если в течение указанного времени абонент не поднимет трубку, то звонок уйдет на повтор с ошибкой "абонент занят". Рабочий диапазон значений параметра от 10 до 35, но можно указывать интервал от 0 до 99 (в случае, если значение меньше 10, то оно будет приведено к 10, аналогично для верхней границы).
  • i – интервал повтора, то есть промежуток времени, по истечении которого произойдет повторный звонок (в секундах). Рабочий диапазон параметра от 10 до 3600 (в случае, если значение меньше 10, то оно будет приведено к 10).
  • n – общее количество попыток дозвона. Рабочий диапазон значений от 1 до 9 (0 будет приведен к 1).
При указании значения любого параметра, отличного от возможных, будут использованы значения всех параметров по умолчанию (n = 8, w = 25, i от 3 до 14 секунд по нарастающей), кроме сообщений рекламного характера.
subjТема MMS или e-mail сообщения. При отправке e-mail указание темы, текста и адреса отправителя обязательно. Для MMS обязательным является указание темы или текста. Если не указать тему MMS, то в ее качестве будет использовано имя отправителя, переданное в запросе или используемое по умолчанию.
charsetКодировка переданного сообщения, если используется отличная от кодировки по умолчанию windows-1251. Варианты: utf-8 и koi8-r.
costПризнак необходимости получения стоимости рассылки.
0 (по умолчанию) – обычная отправка.
1 – получить стоимость рассылки без реальной отправки.
2 – обычная отправка, но добавить в ответ стоимость выполненной рассылки.
3 – обычная отправка, но добавить в ответ стоимость и новый баланс Клиента.
fmtФормат ответа сервера об успешной отправке.
0 – (по умолчанию) в виде строки (OK - 1 SMS, ID - 1234).
1 – вернуть ответ в виде чисел: ID и количество SMS через запятую (1234,1), при cost = 2 еще стоимость через запятую (1234,1,1.40), при cost = 3 еще новый баланс Клиента (1234,1,1.40,100.50), при cost = 1 стоимость и количество SMS через запятую (1.40,1).
2 – ответ в xml формате.
3 – ответ в json формате.
listСписок номеров телефонов и соответствующих им сообщений, разделенных двоеточием или точкой с запятой и представленный в виде:
phones1:mes1
phones2:mes2
...
Строки разделяются через символ новой строки (%0A). В качестве phones можно указать несколько номеров телефонов через запятую. Если в сообщении mes требуется передать символ новой строки, то укажите его через \n. В случае невозможности корректировки текста мультистрокового сообщения возможно включение специального режима для передачи такого типа сообщений. Для этого необходимо дополнительно передавать в запросе параметр nl, равный 1.
В случае необходимости передачи разных имен отправителей (и, возможно, различных часовых поясов абонентов (работает только для запросов, в которых параметр time представлен в виде DDMMYYhhmm или DD.MM.YY hh:mm)) для разных сообщений можно использовать следующий формат передачи:
sender1,tz1|phones1:mes1
sender2,tz2|phones2:mes2
...
В данном случае параметр tz является необязательным.
Параметр list позволяет выполнять множественную рассылку с разными сообщениями на несколько телефонов одним http-запросом. Сообщениям в запросе присваивается единый идентификатор. Весь параметр должен быть закодирован с помощью функции urlencode.
validСрок "жизни" SMS-сообщения. Определяет время, в течение которого оператор будет пытаться доставить сообщение абоненту. Диапазон от 1 до 24 часов. Также возможно передавать время в формате чч:мм в диапазоне от 00:01 до 24:00.
maxsmsМаксимальное количество SMS, на которые может разбиться длинное сообщение. Слишком длинные сообщения будут обрезаться так, чтобы не переполнить количество SMS, требуемых для их передачи. Этим параметром вы можете ограничить максимальную стоимость сообщений, так как за каждое SMS снимается отдельная плата.
imgcodeЗначение буквенно-цифрового кода, введенного с "captcha" при использовании антиспам проверки. Данный параметр должен использоваться совместно с параметром userip.
useripЗначение IP-адреса, для которого будет действовать лимит на максимальное количество сообщений с одного IP-адреса в сутки, установленный в настройках личного кабинета в пункте "Лимиты и ограничения".
errПризнак необходимости добавления в ответ сервера списка ошибочных номеров.
0 (по умолчанию) – не добавлять список (обычный ответ сервера).
1 – в ответ добавляется список ошибочных номеров телефонов с соответствующими статусами.
opПризнак необходимости добавления в ответ сервера информации по каждому номеру.
0 (по умолчанию) – не добавлять список (обычный ответ сервера).
1 – в ответ добавляется список всех номеров телефонов с соответствующими статусами, значениями mcc и mnc, стоимостью, и, в случае ошибочных номеров, кодами ошибок.
ppОсуществляет привязку Клиента в качестве реферала к определенному ID партнера для текущего запроса.
При передаче данного параметра в виде "pp=<ID партнера>" Клиент с логином login временно становится рефералом партнера с ID <ID партнера>. Отчисления по партнерской программе будут сделаны именно для текущего запроса, постоянной привязки не происходит. Данный параметр позволяет временно устанавливать Клиента в качестве реферала из своих сервисов и программ, где нет возможности зарегистрировать Клиента по реферальной ссылке.


Обязательными параметрами являются login, psw, phones и mes либо login, psw и list.

После принятия и обработки данных Сервер возвращает Клиенту подтверждение с указанием результата обработки.

Все параметры, которые содержат специальные символы (плюс, пробел и т.д.), должны быть закодированы при помощи функции urlencode для передачи в HTTP-запросе.

Отправка сообщений. Ответ сервера и коды ошибок

Сервер отправляет ответ в виде строки:

Если произошла ошибка, то ответ будет одним из следующих:

При fmt = 0:
  • ERROR = N (описание) – для ошибок 1,2,4,5,9;

  • ERROR = N (описание), ID - <id сообщения> – для ошибок 3,6,7,8.
При fmt = 1:
  • 0,-N – для ошибок 1,2,4,5,9;
  • <id сообщения>,-N – для ошибок 3,6,7,8.
При fmt = 2:
  • Для ошибок 1,2,4,5,9:

    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • Для ошибок 3,6,7,8:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    <id>id сообщения</id>
    </result>
При fmt = 3:
  • Для ошибок 1,2,4,5,9:
    {
    "error": "описание",
    "error_code": N
    }

  • Для ошибок 3,6,7,8:
    {
    "error": "описание",
    "error_code": N,
    "id": <id сообщения>
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Недостаточно средств на счете Клиента.
4IP-адрес временно заблокирован из-за частых ошибок в запросах. Подробнее
5Неверный формат даты.
6Сообщение запрещено (по тексту или по имени отправителя). Также данная ошибка возникает при попытке отправки массовых и (или) рекламных сообщений без заключенного договора.
7Неверный формат номера телефона.
8Сообщение на указанный номер не может быть доставлено.
9Отправка более одного одинакового запроса на передачу SMS-сообщения либо более пяти одинаковых запросов на получение стоимости сообщения в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешной обработки запроса возвращается строка следующего вида:
  • при cost = 0 и fmt = 0: OK - <n> SMS, ID - <id>

  • при cost = 1 и fmt = 0: <cost> (<n> SMS)

  • при cost = 2 и fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>

  • при cost = 3 и fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>, BALANCE - <balance>

  • при cost = 0 и fmt = 1: <id>,<n>

  • при cost = 1 и fmt = 1: <cost>,<n>

  • при cost = 2 и fmt = 1: <id>,<n>,<cost>

  • при cost = 3 и fmt = 1: <id>,<n>,<cost>,<balance>

  • при cost = 0 и fmt = 2:
    <result>
    <id>id</id>
    <cnt>n</cnt>
    </result>

  • при cost = 1 и fmt = 2:
    <result>
    <cost>cost</cost>
    <cnt>n</cnt>
    </result>

  • при cost = 2 и fmt = 2:
    <result>
    <id>id</id>
    <cnt>n</cnt>
    <cost>cost</cost>
    </result>

  • при cost = 3 и fmt = 2:
    <result>
    <id>id</id>
    <cnt>n</cnt>
    <cost>cost</cost>
    <balance>balance</balance>
    </result>

  • при cost = 0 и fmt = 3:
    {
    "id": <id>,
    "cnt": <n>
    }

  • при cost = 1 и fmt = 3:
    {
    "cost": "<cost>",
    "cnt": <n>
    }

  • при cost = 2 и fmt = 3:
    {
    "id": <id>,
    "cnt": <n>,
    "cost": "<cost>"
    }

  • при cost = 3 и fmt = 3:
    {
    "id": <id>,
    "cnt": <n>,
    "cost": "<cost>",
    "balance": "<balance>"
    }

  • при op = 1 и fmt = 0 или 1, информация добавляется в конец обычного вывода с новой строки:
    <phone>,<mccmnc>,<cost>,<status>,<error>

  • при op = 1 и fmt = 2, в ответ добавляется массив:
    <phones>
    <phone mccmnc="mccmnc" cost="cost" status="status" error="error">phone</phone>
    ...
    </phones>

  • при op = 1 и fmt = 3, в ответ добавляется массив:
    "phones": [{
    "phone": "<phone>",
    "mccmnc": "<mccmnc>",
    "cost": "<cost>",
    "status": "<status>",
    "error": "<error>"
    },
    ...
    ]

Где:
<n> – это количество отправленных SMS, вычисляемое как количество SMS в сообщении, умноженное на количество получателей.
<id> – идентификатор сообщения, переданный Клиентом или назначенный Сервером автоматически.
<cnt> – количество частей (при отправке SMS-сообщения) либо количество секунд (при голосовом сообщении (звонке)).
<balance> – новый баланс Клиента.
<phone> – номер телефона.
<mccmnc> – числовой код страны абонента плюс числовой код оператора абонента.
<cost> – стоимость SMS-сообщения.
<status> – код статуса SMS-сообщения.
<error> – код ошибки в статусе.

Сервер не принимает более одного одинакового запроса на отправку SMS-сообщений в течение минуты для защиты от ошибок и зацикливаний в программе на стороне Клиента для того, чтобы снизить нагрузку и не расходовать средства Клиента, а также не допустить многократной отправки сообщения одному абоненту.

Сервер также блокирует отправку более 50 сообщений одному абоненту, которые были отправлены с перерывом между сообщениями менее 60-ти секунд, для защиты от флуда и лишнего списания средств со счета Клиента, так как многие операторы не пропускают большое количество сообщений одному абоненту за короткий промежуток времени.

Примеры отправки сообщений

Примеры:

Обычное сообщение:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello! https://smsc.ru/sys/send.php?login=alex&psw=123
&list=79999999999:Hello!%0A79999999999:Hello\nworld!

Flash сообщение в кодировке "utf-8" от отправителя "ivan", переведенное в транслит, которое должно быть доставлено абоненту 01.01.2012 г. в 00:00:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello%20world!
&translit=1&time=0101120000&flash=1&sender=ivan
&charset=utf-8

Бинарное EMS сообщение с текстом "Hello, World!", в котором слово "World" выделено курсивом и подчеркнуто:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999
&mes=050A0307056048656C6C6F2C20576F726C6421&bin=2

Бинарное WAP-push сообщение, передающее ссылку на сайт "http://wap.ru/":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999
&mes=0605040B8423F0DC0601AE02056A0045C60C037761702E72752F0001037761702E7275000101&bin=2

WAP-push сообщение в текстовом виде, передающее ссылку на сайт "http://wap.ru" с заголовком "WAP.RU":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999
&mes=http://wap.ru%0AWAP.RU&push=1

Комментарии в SMS-сообщениях

При отправке SMS-сообщений можно добавлять в конец текста любой комментарий, уточняющий либо дополняющий SMS-сообщение для отправителя. Данный текст не будет отправляться абонентам и влиять на стоимость SMS и доступен для просмотра и фильтрации в списке отправленных сообщений в личном кабинете.

Для добавления комментария необходимо в конце текста SMS-сообщения, предназначенного для отправки, указать специальную комбинацию "\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки), и после этого любой текст, который будет считаться комментарием, не будет отправлен абоненту, но отобразится в истории.

Примеры:

Отправка одного сообщения:

Hello!
~~~
Comment
https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999%2C78888888888&mes=Hello!%0A~~~%0AComment
Отправка нескольких сообщений через параметр list:

Hello1!
~~~
Comment1
Hello2!
~~~
Comment2
https://smsc.ru/sys/send.php?login=alex&psw=123&list=79999999999:Hello1!\n~~~\nComment1%0A78888888888:Hello2!\n~~~\nComment2

Отправка на группу номеров

В личном кабинете Клиента при создании или редактировании группы можно указать номер группы для рассылок сообщений. Тогда при отправке сообщения вместо списка телефонов можно будет указывать короткий код в виде "G<номер группы>" или "g<номер группы>", и сообщение будет отправлено на все номера телефонов, принадлежащие данной группе.

Примеры:

Отправка сообщения на все номера телефонов, принадлежащих группам с назначенными номерами 777 и 888:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=G777%2Cg888&mes=Hello!

Отправка HLR-запроса

Вы можете проверять номера телефонов на доступность, отправляя специальный HLR-запрос. В результате выполнения запроса будут получены данные о стране и операторе абонента, о роуминговом операторе при нахождении абонента в чужой сети, а также о статусе абонента (доступен или нет). Абоненты, владельцы проверяемых номеров, не будут получать никаких уведомлений о выполненных проверках их номера.

Выполнение HLR-запроса по HTTP-протоколу выполняется тем же способом, что и отправка SMS-сообщения, при этом в запросе необходимо передать дополнительный параметр hlr=1.

Для отправки HLR-запроса необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&hlr=1
Также доступны и другие параметры, использующиеся для отправки обычных SMS и описанные на данной странице.

Результат HLR-запроса может быть отправлен на URL для приема входящих сообщений и статусов, заданный в настройках в личном кабинете, либо может считываться по запросу статуса отправленного SMS-сообщения.

Пример:
https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&hlr=1

Отправка e-mail сообщения

Для отправки e-mail необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&sender=<sender>&subj=<subj>&mail=1
Если при отправке планируется передача каких-либо файлов, то их необходимо передавать методом POST в теле http(s)-запроса к серверу. Позиции в тексте, в которые планируется вставлять файлы, необходимо обозначать специальным образом в виде "<file n>", где n - номер файла в формируемом списке начиная с единицы. Если не указывать позиции, то соответствующие файлы будут добавляться в конец сообщения.

При создании сообщения можно вставлять в текст http(s)-ссылки ранее загруженных файлов, узнать которые можно в личном кабинете на странице отправки, нажав последовательно ссылки "прикрепить файл" – "Загруженные файлы". Также можно указывать локальные ссылки на загруженные файлы на нашем сервере в виде "<file /upload/files/sms/каталог_загрузки/название_файла>". Для вложений-картинок можно устанавливать атрибуты, например, "<file /upload/files/sms/каталог_загрузки/название_файла width=200 height=400>". Для загрузки файла из внешнего источника можно в запросе передавать дополнительный параметр fileurl, содержащий полный http(s)-адрес файла.

Максимальное количество вложений, передаваемых в запросе, равно 20, и размер каждого вложения не должен превышать 10 Мб. При превышении указанных лимитов будет возвращаться ошибка с кодом 1 (неверные параметры). При отправке каждого письма максимальный общий размер прикрепляемых вложений составляет 15 Мб, вложения, не вмещающиеся в этот размер, будут передаваться ссылкой на наш сайт.

По-умолчанию, в конец текста письма добавляется специальная ссылка для отписки. Для отключения данной ссылки необходимо добавить в любое место текста письма специальный макрос {no_unsub}.

Для e-mail сообщений указание темы, текста и адреса отправителя обязательно.

Примеры отправки e-mail сообщений

Примеры:

Отправка e-mail на адрес "alex@mysite.com" с темой "Privet" и текстом "Hello" от отправителя "alex2@mysite2.com":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=alex%40mysite.com&mes=Hello&subj=Privet&sender=alex2%40mysite2.com&mail=1
Отправка e-mail с темой "Holiday" и двумя фотографиями через библиотеку на основе cURL:

<?php
include "smsc_api.php";
send_sms("alex@mysite.com", "Hello", 0, 0, 0, 8, "alex2@mysite2.com", "subj=Holiday", array("/home/alex/1.jpg", "/home/alex/2.jpg"));
?>

Отправка e-mail с темой "Hello" и фотографией, загруженной ранее на сервер:

<?php
include "smsc_api.php";
send_sms("alex@mysite.com", "Hello, this is my photo &lt;file /upload/files/sms/123abc/photo.jpg width=200 height=400>", 0, 0, 0, 8, "alex2@mysite2.com", "subj=Hello");
?>

Отправка голосового сообщения (звонок)

Для отправки голосового сообщения необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&call=1
При формировании сообщения можно указывать как текст, так и добавлять медиа-файлы форматов wav и mp3.

Если планируется передача файлов, то их необходимо передавать методом POST в теле http(s)-запроса к серверу. Позиции в тексте, в которые планируется вставлять файлы, необходимо обозначать специальным образом в виде "<file n>", где n - номер файла в формируемом списке начиная с единицы. Если не указывать позиции, то соответствующие файлы будут добавляться в конец сообщения.

При создании сообщения можно вставлять в текст http(s)-ссылки ранее загруженных файлов, узнать которые можно в личном кабинете на странице отправки, нажав последовательно ссылки "прикрепить файл" – "Загруженные файлы". Также можно указывать локальные ссылки на загруженные файлы на нашем сервере в виде "<file /upload/files/sms/каталог_загрузки/название_файла>". Для загрузки файла из внешнего источника можно в запросе передавать дополнительный параметр fileurl, содержащий полный http(s)-адрес файла. В этом случае передача в запросе параметра mes необязательна.

Так как телефонные линии не могут идеально проигрывать сложные медиа-файлы, то при формировании отправляемого сообщения передаваемые файлы преобразуются к простому формату.

При отправке голосового сообщения первоначальное время и стоимость рассчитываются приблизительно. После отправки и прослушивания сообщения абонентом продолжительность и стоимость звонка корректируются либо в меньшую сторону (например, если абонент не дослушал сообщение до конца), либо, если длительность сообщения превышает рассчитанную, то разница в секундах указывается в комментарии к сообщению в виде дополнительного времени overtime, которое в том числе отображается в детализации в виде отдельной записи. Также overtime может возникать при использовании голосового меню (IVR).

Максимальное количество вложений, передаваемых в запросе, равно четырем, и размер каждого вложения не должен превышать 5 Мб. При превышении указанных лимитов обрабатываемые вложения будут исключаться.

Для передачи своего номера телефона в качестве имени отправителя необходимо указать его в параметре sender. Указанный номер прежде должен быть добавлен и активирован в личном кабинете на данной странице.

При формировании запроса можно передавать специальный параметр param, в котором задаются некоторые характеристики звонка (более подробно можно ознакомиться в описании). Также дополнительно в запросе можно передать параметр voice, который определяет голос, используемый для озвучивания текста. Данный параметр может принимать следующие значения:
  • voice = m – мужской голос.
  • voice = m2 – мужской голос 2.
  • voice = m3 – мужской голос 3 (по умолчанию).
  • voice = m4 – мужской голос 4.
  • voice = w – женский голос.
  • voice = w2 – женский голос 2.
  • voice = w3 – женский голос 3.
  • voice = w4 – женский голос 4.
При отправке сообщений также возможно указание языка озвучивания текста в виде: "m,en", "w,fr", "w,de" и т.п.

Использование голосового меню (IVR)

Для использования голосового меню необходимо в начале текста сообщения передать текст или голосовой файл с начальными инструкциями для абонента и далее указать макрос, содержащий служебные команды меню {menu: <...>}, где <...> описание параметров голосового меню.

Схематично сообщение с использованием голосового меню, выглядит следующим образом:
СТАРТОВЫЙ ТЕКСТ

{menu: [ТЕКСТ МЕНЮ]
1: ТЕКСТ или КОМАНДА
2
: ТЕКСТ2 или КОМАНДА2
...
}

КОНЕЧНЫЙ ТЕКСТ

После поднятия трубки абоненту озвучивается "СТАРТОВЫЙ ТЕКСТ", далее проигрывается "ТЕКСТ МЕНЮ" с описанием пунктов меню и допустимыми действиями. После нажатия клавиши на цифровой клавиатуре телефона, соответствующей необходимому пункту, абоненту может быть озвучен текст "ТЕКСТ" или выполнена одна или несколько следующих друг за другом "КОМАНД". После выхода из меню озвучивается "КОНЕЧНЫЙ ТЕКСТ".

Описание параметров, используемых в макросе {menu: <...>}:

ПараметрЗначение
*: backВозврат в предыдущее меню.
#: startВозврат в начало меню и повтор "ТЕКСТА МЕНЮ".
0: repeatПовтор выбранного пункта.
n: msgПункт меню, в который попадает абонент при нажатии на клавишу n, где n – номер пункта меню, который может принимать значения от 1 до 9, msg – сообщение или команда. Пункты меню можно дублировать один за одним для выполнения нескольких действий при нажатии на одну клавишу.
nm: msgПодпункт m пункта n меню, в который попадает абонент при нажатии на клавишу m. Может принимать значения от 1 до 9. msg – сообщение или команда. Подпункты меню можно дублировать один за одним для выполнения нескольких действий при нажатии на одну клавишу. Вложенность подпунктов ограничена только размером всего сообщения (1000 символов).

В пунктах и подпунктах можно использовать следующие команды:

КомандаЗначение
urlАдрес http(s)-обработчика Клиента, на который будет передана информация о текущем пункте и времени нахождения абонента в меню.
call:phone wait=n ok:end err:n recordПеренаправление звонка абонента на указанный номер телефона, где обязательным параметром является phone – номер телефона или список номеров телефонов через запятую. Можно указать до 9 номеров. Номера, на которые будет происходить перенаправление звонка абонента необходимо зарегистрировать на данной странице.
Необязательными параметрами являются:
wait=n – время ожидания поднятия трубки абонентом, которому был перенаправлен звонок, где n – время ожидания в секундах. Диапазон возможных значений параметра от 0 до 120. По умолчанию время ожидания поднятия трубки абонентом 120 секунд.
ok:end – после успешного соединения с указанным номером и окончания диалога завершить голосовое меню.
err:n – если дозвониться до указанного номера не удалось, то перейти на шаг или метку n, описанную в теле меню. Метка может принимать значение любого набора латинских букв и цифр.
record – после успешного соединения с указанным номером осуществить запись разговора. Время записи для одного звонка ограничено максимум 30 минутами. Также соединение и запись прерывается спустя 30 секунд тишины со стороны абонентов. Данный параметр указывается последним. Ссылка на запись отображается в истории сообщений под текстом голосового меню.
sms:phone,sender,msgОтправка SMS-сообщения на указанный номер телефона, где phone – номер телефона, sender – имя отправителя, msg – текст сообщения. В качестве номера телефона, а также в тексте сообщения может быть указана специальная переменная $phone, которая при отправке будет заменена на номер телефона абонента, получившего данное голосовое меню.
record: nЗапись фрагмента голосового ответа абонента, которая будет произведена с момента активации до окончания действия команды, где n – время для записи в секундах. По умолчанию (без явного указания времени) запись ограничена 30 секундами. Также запись прерывается после 10 секунд тишины со стороны абонента.
endПризнак выхода из голосового меню. После выхода будет прочитан "КОНЕЧНЫЙ ТЕКСТ".
Примеры:

<?php
$url
= 'https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999,79999999998&call=1&charset=utf-8&mes=';

$msg = 'Здравствуйте!

{menu: Нажмите 1 для первого пункта, 2 для второго пункта, 3 для отправки заявки на обратный звонок, 5 для связи с оператором, решетка для перехода в начало, 0 для повтора, для возврата в предыдущее меню нажмите звёздочку.
*: back
#: start
0: repeat
1: пункт 1, нажмите 1 для подпункта 1, 2 для подпункта 2, 3 для подпункта 3
11: подпункт 1.1
12: подпункт 1.2
13: подпункт 1.3
2: пункт 2, нажмите 1 для подпункта 2.1
21: подпункт 2.1
3: sms:79999999999,Sender,текст
3: end
4: sms:$phone,Sender,Ваш номер: $phone
4: end
5: url
5: call:79999999999,79999999998 wait=10 ok:end err:6
6: call:79999999997 wait=60 ok:end err:callerr record
7: Сейчас начнется запись до 10 секунд
7: record: 10
7: Конец записи
err: неверный номер, нажмите 0 для повтора
callerr: Извините, не удалось дозвониться до оператора, выберите другой пункт или повторите попытку позже}

Всего вам доброго!'
;

echo
file_get_contents($url.urlencode($msg));
?>

Примеры отправки голосовых сообщений

Примеры:

Отправка голосового сообщения с текстом "Hello":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&call=1
Отправка голосового сообщения с текстом "Hello" от номера телефона "79991234567":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&call=1&sender=79991234567
Отправка голосового сообщения с текстом "Hello world", озвученным мужским голосом, с временем ожидания снятия трубки 20 секунд, интервалом повтора 10 секунд и количеством попыток дозвона равным 3:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello%20world&call=1&voice=m&param=20%2C10%2C3
Отправка голосового сообщения с текстом "Hello world", озвученным женским альтернативным голосом:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello%20world&call=1&voice=w2
Отправка голосового сообщения с прикрепленным через параметр fileurl голосовым файлом:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&call=1&fileurl=http://mysite.com/voice.wav
Отправка голосового сообщения с текстом и двумя звуковыми файлами через библиотеку на основе cURL:

<?php
include "smsc_api.php";
send_sms("79999999999", "first file <file 1> and second file <file 2>", 0, 0, 0, 9, false, "", array("/home/alex/1.mp3", "/home/alex/2.wav"));
?>

Отправка viber-сообщения

Для отправки viber-сообщения необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&viber=1

Передача файлов

Передача в сообщении картинки, файла документа или видео возможна одним из следующих способов:
  • в виде полного http(s)-адреса внешнего файла, указанного в тексте сообщения, в формате <file http(s)://...> (только для картинок и файлов документов);
  • методом POST в теле http(s)-запроса к серверу. При данном способе отправки прикрепляемые файлы необходимо обозначить в тексте сообщения специальным образом в виде "<file n>", где n - номер файла в формируемом списке начиная с единицы;
  • добавлением в http(s)-запрос специального дополнительного параметра fileurl, содержащего полный http(s)-адрес передаваемого внешнего файла. При использовании fileurl передача в запросе параметра mes необязательна;
  • при отправке с личного кабинета или через API вставкой в текст сообщения полной http(s)-ссылки ранее загруженного файла, узнать которую можно в личном кабинете на странице отправки, нажав последовательно "прикрепить файл" – "Загруженные файлы".
Прикрепляемый файл по размеру не должен превышать 1 Мб (для API) или 10 Мб (для личного кабинета) и удовлетворять одному из следующих форматов:
  • jpg, jpeg, gif, png – для картинок;
  • doc, docx, rtf, dotx, dot, odf, fodt, odt, txt, info, pdf, xps, eps, pdax, xlsx, xlsm, fods, ods, csv, xltx – для файлов документов;
  • 3gp, m4v, mov, mp4 – для видео.

Добавление кнопки

Для вставки в сообщение кнопки, при нажатии на которую будет происходить открытие браузера и переход на указанный адрес, необходимо добавить в текст сообщения специальный макрос {button,url,text}, где:
<button> – название макроса.
<url> – полный http-адрес ссылки, по которой произойдет переход при нажатии кнопки.
<text> – текст кнопки. Длина текста не может превышать 30 символов.

Для вставки в сообщение кнопки, при нажатии на которую будет происходить вызов абонента по указанному номеру телефона, необходимо добавить в текст сообщения специальный макрос {button,tel:79999999999,text}.

Типы сообщений

Система поддерживает следующие типы viber-сообщений:
  • Только текст – абонент получает текстовое сообщение.
  • Только картинка – абонент получает картинку.
  • Текст+кнопка – абонент получает текстовое сообщение, под которым расположена кнопка. При нажатии на кнопку происходит переход по заданной ссылке.
  • Текст+кнопка+картинка – абонент получает текстовое сообщение, под которым расположены картинка и кнопка. При нажатии на кнопку происходит переход по заданной ссылке.
  • Только файл – абоненту передается файл одного из поддерживаемых форматов.
  • Картинка+видео – абонент получает видео-файл, заставкой к которому является передаваемая картинка.
  • Текст+картинка+видео – абонент получает видео-файл с картинкой-заставкой и указанным текстом.
  • Текст+картинка+видео+кнопка – абонент получает видео-файл с картинкой-заставкой, указанным текстом и кнопкой. При нажатии на кнопку происходит переход по заданной ссылке.
Для настройки программного обеспечения и тестирования отправки viber-сообщений можно использовать наше общее имя отправителя "SMSC" и предопределенные шаблоны:
  • Hello! This is test message
  • Здравствуйте! Это тестовое сообщение
  • Test
  • Тест
  • Test {button,https://m.smsc.ru,site}
  • Тест {button,https://m.smsc.ru,сайт}
  • Picture <file http://m.smsc.ru/im/smsc_logo_tiny.gif>
  • Картинка <file http://m.smsc.ru/im/smsc_logo_tiny.gif>
Как и в шаблонах для операторов здесь действуют общие правила создания сообщений для указанных шаблонов (внизу страницы раскрывающаяся вкладка "Правила регистрации шаблонов").

Примеры отправки viber-сообщений

Примеры:

Отправка viber-сообщения с текстом "Hello":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&viber=1
Отправка viber-сообщения по одному из предопределенных шаблонов для тестирования с текстом "Test", кнопкой "{button,http://smscentre.com,Site}" и картинкой, ранее загруженной в личном кабинете и имеющей адрес "http://smscentre.com/upload/files/sms/1856f97d/6_1.jpg":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=Test+%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2CSite%7D+http%3A%2F%2Fsmscentre.com%2Fupload%2Ffiles%2Fsms%2F1856f97d%2F6_1.jpg
Отправка viber-сообщения по одному из предопределенных шаблонов для тестирования с текстом "test", кнопкой "{button,http://smscentre.com,Site}" и картинкой, расположенной на внешнем ресурсе "https://mysite.com/sms/picture.jpg":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=test+%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2CSite%7D+%3Cfile+https%3A%2F%2Fmysite.com%2Fsms%2Fpicture.jpg%3E
Отправка viber-сообщения по одному из предопределенных шаблонов для тестирования с текстом "test", кнопкой "{button,http://smscentre.com,Site}" и картинкой "https://mysite.com/sms/picture.jpg", переданной через параметр fileurl:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=test+%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2CSite%7D&fileurl=https%3A%2F%2Fmysite.com%2Fsms%2Fpicture.jpg
Отправка viber-сообщения с текстом "Видео и кнопка", кнопкой "{button,http://smscentre.com,Кнопка smsc}", картинкой "http://smscentre.com/upload/files/sms/123456/1.png"и видео "http://smscentre.com/upload/files/sms/123456/1.mp4":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=%C2%E8%E4%E5%EE+%E8+%EA%ED%EE%EF%EA%E0+http%3A%2F%2Fsmscentre.com%2Fupload%2Ffiles%2Fsms%2F123456%2F1.png%0Ahttp%3A%2F%2Fsmscentre.com%2Fupload%2Ffiles%2Fsms%2F123456%2F1.mp4%0A%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2C%CA%ED%EE%EF%EA%E0+smsc%7D

Отправка сообщения в Telegram

Для отправки кода подтверждения в Telegram необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&tg=1
К отправке принимаются только числовые коды длиной от 4 до 8 цифр.

Примеры отправки сообщений в Telegram

Примеры:

Отправка кода подтверждения "123456" на номер "79999999999" в telegram:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=123456&tg=1

Отправка сообщения в чат-бот Telegram

Для отправки сообщения в чат-бот Telegram необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&bot=<@botname_bot>

Примеры отправки сообщений в чат-бот Telegram

Примеры:

Отправка сообщения с текстом "Hello" на номер "79999999999" в telegram-бот "@mybot_bot":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&bot=@mybot_bot
Отправка сообщения с текстом "Здравствуйте" по нику "alex_nick" в telegram-бот "@mybot_bot":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=@alex_nick&mes=Здравствуйте&bot=@mybot_bot
Отправка сообщения с текстом "Hi" по ID 1122334455 в telegram-бот "@mybot_bot":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=#1122334455&mes=Hi&bot=@mybot_bot
Отправка сообщения с текстом "Привет" на номер "79999999999" в telegram-бот "@mybot_bot" с указанием в параметре smsreq количества дней, по истечении которого будет необходимо подтвердить номер телефона SMS-кодом:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Привет&bot=@mybot_bot&smsreq=25

Использование префиксов при отправке сообщений

Для отправки различных типов сообщений можно воспользоваться возможностью указания специальных префиксов в начале или вместо текста сообщения.

Поддерживаемые префиксы:

НазваниеОписание
__CALL__: сообщениеОтправка голосового сообщения (звонка). При отправке голосового сообщения в конце текста можно указать специальную комбинацию "\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки), после которой передать параметр param, определяющий некоторые характеристики звонка (более подробно можно посмотреть в описании). При формировании сообщения можно указывать как текст, так и добавлять медиа-файлы форматов wav и mp3, а также вставлять ранее загруженные файлы. Более подробно по процеccу создания голосового сообщения можно прочитать на данной странице.
__VIBER__: сообщениеОтправка сообщения пользователям мессенджера Viber.
__SOC__: сообщение Отправка сообщения пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".
__MAIL__: сообщение Отправка E-mail сообщения.
__BOT__: сообщение Отправка сообщения пользователям чат-бота Telegram.
__PING__Отправка специального SMS, не отображаемого в телефоне, для проверки номеров на доступность в реальном времени по статусу доставки.
__HLR__Признак HLR-запроса для получения информации о номере из базы оператора без отправки реального SMS. Более подробно по HLR-запросам можно ознакомиться здесь.


Примеры:

Отправка голосового сообщения с текстом "Privet":

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=__CALL__%3A%20Privet
Отправка Ping-SMS:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=__PING__
Отправка HLR-запроса:

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=__HLR__

Управление шаблонами сообщений

Для управления шаблонами сообщений необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды и параметров.

Для создания шаблона: https://smsc.ru/sys/templates.php?add=1&login=<login>&psw=<password>&name=<name>&msg=<msg>
Для изменения шаблона: https://smsc.ru/sys/templates.php?chg=1&login=<login>&psw=<password>&id=<id>
Для удаления шаблона: https://smsc.ru/sys/templates.php?del=1&login=<login>&psw=<password>&id=<id>
Для получения списка шаблонов: https://smsc.ru/sys/templates.php?get=1&login=<login>&psw=<password>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
nameНазвание шаблона.
msgТекст сообщения.
formatФормат сообщения:
пустая строка – не задан.
sms – SMS-сообщение.
flash – Flash-SMS.
bin – Бинарное SMS.
push – Wap-push.
mms – MMS.
call – Звонок.
mail – E-mail.
viber – Viber.
senderИмя отправителя.
fl[1]Использовать для автоподписи.

В случае ошибки Сервер возвращает следующую строку:
  • при fmt = 0:
    ERROR = N (описание)

  • при fmt = 1:
    0,-N

  • при fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • при fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Запись не найдена.
4IP-адрес временно заблокирован.
5Ошибка сохранения или удаления.
9Попытка отправки более трех одинаковых запросов на действия с шаблонами.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:

При создании шаблона:
  • при fmt = 0: ID - <id>

  • при fmt = 1: <id>

  • при fmt = 2:
    <template>
    <id>id</id>
    </template>

  • при fmt = 3:
    {
    "id": <id>
    }

При изменении или удалении шаблона:
  • при fmt = 0, 1: OK

  • при fmt = 2:
    <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }


При запросе списка шаблонов сообщений:
  • при fmt = 0:
    id = <id>, name = <name>, format = <format>, sender = <sender>, flag = <flag>, message = <message>
    ...

  • при fmt = 1:
    <id>,<name>,<format>,<sender>,<flag>,<message>
    ...

  • при fmt = 2:
    <list>
    <template>
    <id>id</id>
    <name>name</name>
    <format>format</format>
    <sender>sender</sender>
    <flag>flag</flag>
    <message>message</message>
    </template>
    ...
    </list>

  • при fmt = 3:
    [{
    "id": <id>,
    "name": "<name>",
    "format": "<format>",
    "sender": "<sender>",
    "flag": <flag>,
    "message": "<message>"
    },
    ...]

Где:
<id> – идентификатор шаблона, назначенный системой автоматически.
<name> – название шаблона.
<format> – формат сообщения.
<sender> – имя отправителя.
<flag> – флаг для шаблона. Установка первого бита флага (fl[1]=1) назначает использование шаблона для автоподписи.
<message> – текст сообщения.

Сервер не принимает более трех одинаковых запросов на действия с шаблонами в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Управление шаблонами операторов

Для управления шаблонами сервисных, транзакционных и других шаблонированных сообщений необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды и параметров.

Для создания шаблона (для всех операторов): https://smsc.ru/sys/op_templates.php?add=1&login=<login>&psw=<password>&sender=<sender>&msg=<msg>&mts_srv=1&mts_auth=1&mts_trn=1&mega_srv=1&mega_auth=1&mega_trn=1&mega_adv=1&bee_srv=1&bee_trn=1&tele2_srv=1&tele2_trn=1&motiv_srv=1&motiv_trn=1&soc=1
Для получения информации о шаблоне (по всем операторам): https://smsc.ru/sys/op_templates.php?get=1&login=<login>&psw=<password>&sender=<sender>&msg=<msg>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
senderИмя отправителя для которого создается шаблон.
msgТекст шаблона.
charsetКодировка текста шаблона, если используется отличная от кодировки по умолчанию windows-1251. Варианты: utf-8 и koi8-r.
mts_srvСоздать шаблон для оператора МТС (сервисные сообщения).
mts_authСоздать шаблон для оператора МТС (авторизационные сообщения).
mts_trnСоздать шаблон для оператора МТС (транзакционные сообщения).
mega_advСоздать шаблон для оператора Мегафон (рекламные шаблонированные сообщения).
mega_srvСоздать шаблон для оператора Мегафон (сервисные (информационные) сообщения).
mega_authСоздать шаблон для оператора Мегафон (авторизационные сообщения).
mega_trnСоздать шаблон для оператора Мегафон (транзакционные сообщения).
bee_srvСоздать шаблон для оператора Билайн (сервисные сообщения).
bee_trnСоздать шаблон для оператора Билайн (транзакционные сообщения).
tele2_srvСоздать шаблон для оператора Теле2 (сервисные сообщения).
tele2_trnСоздать шаблон для оператора Теле2 (транзакционные сообщения).
motiv_srvСоздать шаблон для оператора МОТИВ (сервисные сообщения).
motiv_trnСоздать шаблон для оператора МОТИВ (транзакционные сообщения).
socСоздать шаблон для soc-сообщения, отправляемого пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".

В случае ошибки Сервер возвращает следующую строку:
  • при fmt = 0:
    ERROR = N (описание)

  • при fmt = 1:
    0,-N

  • при fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • при fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более десяти одинаковых запросов на действия с шаблонами.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:

При создании шаблона:
  • при fmt = 0:
    name = <status>, id = <id>
    ...

  • при fmt = 1:
    <name>,<status>,<id>
    ...

  • при fmt = 2:
    <result>
    <template>
    <name>name</name>
    <status>status</status>
    <id>id</id>
    </template>
    ...
    </result>

  • при fmt = 3:
    [{
    "name": <status>,
    "id": <id>
    },
    ...]

При запросе списка шаблонов:
  • при fmt = 0:
    name = <status>, id = <id>
    ...

  • при fmt = 1:
    <name>,<status>,<id>
    ...

  • при fmt = 2:
    <result>
    <template>
    <name>name</name>
    <status>status</status>
    <id>id</id>
    </template>
    ...
    </result>

  • при fmt = 3:
    [{
    "name": <status>,
    "id": <id>
    },
    ...]

Где:
<name> – название оператора и тип сообщений.
<id> – идентификатор шаблона, назначенный системой автоматически.
<status> – статус шаблона, может принимать следующие значения:

для команды add:
-2 – невозможно сохранить указанный шаблон;
-1 – имя отправителя для данного шаблона не найдено или не принято оператором;
1 – шаблон успешно добавлен;

для команды get:
-1 – шаблон для указанного оператора не найден;
0 – ожидает регистрации;
1 – отправлено на регистрацию;
2 – допущено оператором;
3 – не принято оператором;
4 – временно отключено.

Сервер не принимает более десяти одинаковых запросов на действия с шаблонами в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Виртуальная отправка (режим тестирования)

Данный режим работы позволяет протестировать отправку сообщений без реальной передачи операторам. Может быть полезен при первоначальной настройке и тестировании различного программного обеспечения и оборудования. Для включения данного режима необходимо в личном кабинете в пункте "Настройки" в раскрывающемся блоке "Настройки API" установить галочку "Режим тестирования (виртуальная отправка без оплаты)".

При виртуальной отправке все сообщения будут иметь конечный статус "Доставлено", но в процессе отправки сообщения будут проходить все стадии обработки по цепочке "Ожидает отправки" – "Передано оператору" – "Доставлено". Получать статусы сообщений можно как по запросу, так и на свой http-обработчик. Отправлять можно и одиночные сообщения и массовые рассылки. Тестировать при виртуальной отправке возможно различные типы сообщений (SMS, бинарные сообщения, HLR, звонок), кроме e-mail.

Уведомления о событиях

При возникновении определенных событий может потребоваться отправка уведомительных сообщений, содержащих информацию, необходимую для обработки данных событий. Для решения подобных задач можно воспользоваться расширением нашей системы мониторинга, которое позволяет отправлять различные уведомления через наш сервис из внешних систем. Для этого в личном кабинете на странице "Создание группы заданий" требуется создать соответствующую группу, где указать шаблоны уведомлений, типы сообщений, отправляемых при возникновении события, а также контакты для уведомлений (номера телефонов, e-mail адреса, jabber аккаунты).

Для отправки уведомления необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/ping.php?login=<login>&psw=<password>&id=<id>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
idИдентификатор группы заданий (колонка "ID").
nameНазвание правила или сервера в задании. Заменяет макрос {NAME} в тексте уведомления.
hostАдрес или IP проверяемого сервера. Заменяет макрос {HOST}.
infoДополнительная информация о событии. Заменяет макрос {INFO}.
okПри формировании уведомления использовать следующий шаблон:
0 – (по умолчанию) используется шаблон группы заданий, отправляемый при сбое.
1 – используется шаблон группы заданий, отправляемый при восстановлении.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Группа заданий не найдена.
4IP-адрес временно заблокирован.
9Попытка отправки более пяти одинаковых запросов на отправку уведомления в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки.

  • при fmt = 0 и fmt = 1: OK

  • при fmt = 2:
    <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }

Сервер не принимает более пяти одинаковых запросов на отправку уведомления в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Действия с рассылками

Для создания рассылки необходимо вызвать методом GET или POST адрес:
https://smsc.ru/sys/jobs.php?add=1&login=<login>&psw=<password>&name=<name>&phones=<phones>&mes=<message>
Для удаления рассылки необходимо вызвать методом GET или POST адрес:
https://smsc.ru/sys/jobs.php?del=1&login=<login>&psw=<password>&id=<id>
Для отключения рассылки, ожидающей отправки, необходимо вызвать методом GET или POST адрес:
https://smsc.ru/sys/jobs.php?cancel=1&login=<login>&psw=<password>&id=<id>
Для получения информации о конкретной рассылке, необходимо вызвать методом GET или POST адрес:
https://smsc.ru/sys/jobs.php?get=1&login=<login>&psw=<password>&id=<id>
Для получения списка рассылок, необходимо вызвать методом GET или POST адрес:
https://smsc.ru/sys/jobs.php?get_all=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу при создании рассылки (любой из дополнительных параметров применяется к каждому сообщению в рассылке; для работы с e-mail рассылками необходимо в запросе передавать дополнительный параметр mail=1):

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
nameНазвание рассылки.
phonesНомер или разделенный запятой или точкой с запятой список номеров мобильных телефонов в международном формате, на которые отправляется сообщение. Номера могут передаваться без знака "+". Если номер передан без знака "+", то он может быть исправлен автоматическим форматированием и приведен к правильному международному формату. Таким образом, некоторые ошибки при вводе номеров телефонов могут быть исправлены автоматически. Для отключения автоисправления передайте номер со знаком "+".
Также можно отправлять сообщение на группу номеров, указав специальный код "G<номер группы>". Сообщение будет отправлено на все номера, принадлежащие данной группе. Для e-mail сообщения передается список e-mail адресов получателей. Для telegram в качестве получателя сообщения возможно указание ника абонента или его ID в виде #ID.
mesТекст отправляемого сообщения. Максимальный размер – 1000 символов. Сообщение при необходимости будет разбито на несколько SMS, отправленных абоненту и оплаченных по отдельности. Размер одного SMS – 160 символов в латинице или 70 символов в кириллице. При разбивке сообщения на несколько SMS в каждую часть добавляется заголовок для объединения частей в одно сообщение на телефоне получателя, и максимальная длина становится 67 для кириллицы и 153 для латинских букв. В текст сообщения можно добавлять комментарии, предназначенные для просмотра отправителем истории в личном кабинете.
Дополнительные параметры
senderИмя отправителя, отображаемое в телефоне получателя. Разрешены английские буквы, цифры, пробел и некоторые символы. Длина – 11 символов или 15 цифр. Все имена регистрируются в личном кабинете на данной странице.
sender2Данный параметр используется в качестве имени отправителя при автоповторе по SMS в случае недоставки сообщений через первоначальный вариант отправки.
translitПризнак того, что сообщение необходимо перевести в транслит.
0 (по умолчанию) – не переводить в транслит.
1 – перевести в транслит в виде "translit".
2 – перевести в транслит в виде "mpaHc/Ium".
tinyurlАвтоматически сокращать ссылки в сообщениях. Позволяет заменять ссылки в тексте сообщения на короткие для сокращения длины, а также для отслеживания количества переходов на этой странице.
0 (по умолчанию) – оставить ссылки в тексте сообщения без изменений.
1 – сократить ссылки.
timeВремя отправки SMS-сообщения абоненту.
Форматы:
  1. DDMMYYhhmm или DD.MM.YY hh:mm.
  2. h1-h2. Задает диапазон времени в часах. Если текущее время меньше h1, то SMS-сообщение будет отправлено абоненту при наступлении времени h1, если текущее время попадает в промежуток от h1 до h2, то сообщение будет отправлено немедленно, в другом случае отправка будет выполнена на следующий день при достижении времени h1. Данная функция, например, полезна для того, чтобы не допустить получение SMS-сообщений абонентами в ночное время.
  3. 0ts, где ts – timestamp, время в секундах, прошедшее с 1 января 1970 года.
  4. +m. Задает относительное смещение времени от текущего в минутах. Символ + должен кодироваться как %2B в http-запросе.
Если time = 0 или указано уже прошедшее время, то сообщение будет отправлено немедленно.
rptОпределяет периодичность отправки вновь создаваемой рассылки.
0 (по умолчанию) – вручную.
1 – каждый час.
2 – каждый день.
3 – каждый рабочий день.
4 – каждые выходные.
5 – каждую неделю.
6 – каждый месяц.
7 – каждый год.
rptnУстанавливает максимальное количество повторов для отложенной периодической рассылки.
tzЧасовой пояс, в котором задается параметр time. Указывается относительно московского времени. Параметр tz может быть как положительным, так и отрицательным. Если tz равен 0, то будет использован московский часовой пояс, если же параметр tz не задан, то часовой пояс будет взят из настроек Клиента.
periodПромежуток времени, в течение которого необходимо отправить рассылку. Представляет собой число в диапазоне от 0.1 до 720 часов. Применяется совместно с параметром freq. Данный параметр позволяет растянуть рассылку во времени для постепенного получения SMS-сообщений абонентами.
freqИнтервал или частота, с которой нужно отправлять SMS-рассылку на очередную группу номеров. Количество номеров в группе рассчитывается автоматически на основе параметров period и freq. Задается в промежутке от 1 до 1440 минут. Без параметра period параметр freq игнорируется.
flashПризнак Flash сообщения, отображаемого сразу на экране телефона.
0 (по умолчанию) – обычное сообщение.
1 – Flash сообщение.
binПризнак бинарного сообщения.
0 (по умолчанию) – обычное сообщение.
1 – бинарное сообщение. В http-запросе необходимо закодировать с помощью функции urlencode.
2 – бинарное сообщение, представленное в виде шестнадцатеричной строки (hex).

Бинарное сообщение передается вместе с UDH заголовком в начале в параметре mes, в котором первый байт задает длину заголовка. Чтобы передать бинарное сообщение без UDH заголовка, укажите нулевой байт в начале сообщения (00 в hex).
Для возможности передачи параметров pid и dcs необходимо в конец бинарного сообщения добавить специальную комбинацию "\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки) и затем текст "pid: значение1, dcs: значение2" с точным сохранением пробелов.
pushПризнак wap-push сообщения, с помощью которого можно отправить интернет-ссылку на телефон.
0 (по умолчанию) – обычное сообщение.
1 – wap-push сообщение. В параметре mes необходимо передать ссылку и заголовок через перевод строки.
hlrПризнак HLR-запроса для получения информации о номере из базы оператора без отправки реального SMS.
0 (по умолчанию) – обычное сообщение.
1 – HLR-запрос. Будет выполнен HLR-запрос для каждого номера телефона в списке. Параметр mes не используется.
pingПризнак специального SMS, не отображаемого в телефоне, для проверки номеров на доступность в реальном времени по статусу доставки.
0 (по умолчанию) – обычное сообщение.
1 – ping-sms. Будет отправлено Ping-SMS на каждый номер телефона в списке. Параметр mes не используется.
mmsПризнак MMS-сообщения, с помощью которого можно передавать текст (txt), изображения различных форматов (jpg, gif, png), музыку (wav, amr, mp3, mid) и видео (mp4, 3gp). Файлы передаются в теле http-запроса.
0 (по умолчанию) – обычное сообщение.
1 – MMS-сообщение. Будет отправлено MMS на каждый номер телефона в списке.
mailПризнак e-mail сообщения. Файлы, прикрепляемые к сообщению, передаются методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение.
1 – e-mail сообщение.
socПризнак soc-сообщения, отправляемого пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".
0 (по умолчанию) – обычное сообщение.
1 – soc-сообщение.
viberПризнак viber-сообщения, отправляемого пользователям мессенджера Viber.
0 (по умолчанию) – обычное сообщение.
1 – viber-сообщение.
whatsappПризнак whatsapp-сообщения, отправляемого пользователям мессенджера WhatsApp.
0 (по умолчанию) – обычное сообщение.
1 – whatsapp-сообщение.
tgПри указании значения данного параметра равным 1 будет отправлено telegram-сообщение с кодом подтверждения, переданным в параметре mes.
botИмя бота (telegram), в который необходимо отправить сообщение в формате "@botname_bot".
smsreqПри указании данного параметра, система не будет отображать текст сообщения, отправленного пользователю и выводить предупреждение о необходимости подтверждения номера телефона, если с момента последнего подтверждения прошло больше smsreq дней. Диапазон значений от 10 до 999.
fileurlПолный http-адрес файла для загрузки и передачи в сообщении. Минимальный размер файла составляет 101 байт.
mes2Данный параметр задает вариант сообщения для пересылки по SMS в режиме автоматического повтора при недоставке на альтернативные маршруты, например, отправка в мессенджеры. Для включения автоматического повтора необходимо в запросе дополнительно передать флаг fl[5], равный 1.
callПризнак голосового сообщения. При формировании голосового сообщения можно передавать как текст, так и прикреплять файлы. Файлы, добавляемые к сообщению, должны передаваться методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение.
1 – голосовое сообщение.
voiceГолос, используемый для озвучивания текста (только для голосовых сообщений).
m – мужской голос.
m2 – мужской голос 2.
m3 (по умолчанию) – мужской голос 3.
m4 – мужской голос 4.
w – женский голос.
w2 – женский голос 2.
w3 – женский голос 3.
w4 – женский голос 4.
При отправке сообщений также возможно указание языка озвучивания текста в виде: "m,en", "w,fr", "w,de" и т.п.
paramРазделенный запятой список параметров для голосового сообщения в формате "param=w,i,n".
Здесь:
  • w – время ожидания поднятия трубки абонентом после начала звонка в секундах. Если в течение указанного времени абонент не поднимет трубку, то звонок уйдет на повтор с ошибкой "абонент занят". Рабочий диапазон значений параметра от 10 до 35, но можно указывать интервал от 0 до 99 (в случае, если значение меньше 10, то оно будет приведено к 10, аналогично для верхней границы).
  • i – интервал повтора, то есть промежуток времени, по истечении которого произойдет повторный звонок (в секундах). Рабочий диапазон параметра от 10 до 3600 (в случае, если значение меньше 10, то оно будет приведено к 10).
  • n – общее количество попыток дозвона. Рабочий диапазон значений от 1 до 9 (0 будет приведен к 1).
При указании значения любого параметра, отличного от возможных, будут использованы значения всех параметров по умолчанию (n = 8, w = 25, i от 3 до 14 секунд по нарастающей), кроме сообщений рекламного характера.
subjТема MMS или e-mail сообщения. При отправке e-mail указание темы, текста и адреса отправителя обязательно. Для MMS обязательным является указание темы или текста. Если не указать тему MMS, то в ее качестве будет использовано имя отправителя, переданное в запросе или используемое по умолчанию.
charsetКодировка переданного сообщения, если используется отличная от кодировки по умолчанию windows-1251. Варианты: utf-8 и koi8-r.
costПризнак необходимости получения стоимости рассылки.
0 (по умолчанию) – обычная отправка.
1 – добавить в ответ стоимость рассылки.
fmtФормат ответа сервера об успешной отправке.
0 – (по умолчанию) в виде строки (OK - 1 SMS, ID - 1234).
1 – вернуть ответ в виде чисел: ID и количество SMS через запятую (1234,1), при cost = 2 еще стоимость через запятую (1234,1,1.40), при cost = 3 еще новый баланс Клиента (1234,1,1.40,100.50), при cost = 1 стоимость и количество SMS через запятую (1.40,1).
2 – ответ в xml формате.
3 – ответ в json формате.
listСписок номеров телефонов и соответствующих им сообщений, разделенных двоеточием или точкой с запятой и представленный в виде:
phones1:mes1
phones2:mes2
...
Строки разделяются через символ новой строки (%0A). В качестве phones можно указать несколько номеров телефонов через запятую. Если в сообщении mes требуется передать символ новой строки, то укажите его через \n. В случае невозможности корректировки текста мультистрокового сообщения возможно включение специального режима для передачи такого типа сообщений. Для этого необходимо дополнительно передавать в запросе параметр nl, равный 1.
В случае необходимости передачи разных имен отправителей (и, возможно, различных часовых поясов абонентов (работает только для запросов, в которых параметр time представлен в виде DDMMYYhhmm или DD.MM.YY hh:mm)) для разных сообщений можно использовать следующий формат передачи:
sender1,tz1|phones1:mes1
sender2,tz2|phones2:mes2
...
В данном случае параметр tz является необязательным.
Параметр list позволяет выполнять множественную рассылку с разными сообщениями на несколько телефонов одним http-запросом. Сообщениям в запросе присваивается единый идентификатор. Весь параметр должен быть закодирован с помощью функции urlencode.
tplID шаблона, который будет использован в качестве текста сообщения. Для использования шаблона необходимо, чтобы параметр mes был пустым.
validСрок "жизни" SMS-сообщения. Определяет время, в течение которого оператор будет пытаться доставить сообщение абоненту. Диапазон от 1 до 24 часов. Также возможно передавать время в формате чч:мм в диапазоне от 00:01 до 24:00.

Обязательными параметрами являются login, psw, name, phones и mes или login, psw, name и list.

Описание параметров, передаваемых Серверу при удалении, отключении или получении списка рассылок:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
idИдентификатор рассылки. Возвращается Сервером после создания и используется для дальнейшей идентификации рассылки.
Дополнительные параметры
startДата, с которой требуется получить список рассылок. Если данный параметр не указан, возвращает список рассылок за последние 2 месяца, но не более 10. Применяется совместно с параметром get_all. Формат: 'дд.мм.гггг'.
endДата, до которой требуется получить список рассылок. Если данный параметр не указан, то возвращается список рассылок до текущий даты, но не более 10. Применяется совместно с параметром get_all. Формат: 'дд.мм.гггг'.

Обязательными параметрами являются login, psw и id.

После принятия и обработки данных Сервер возвращает Клиенту подтверждение с указанием результата обработки.

Все параметры, которые содержат специальные символы (плюс, пробел и т.д.), должны быть закодированы при помощи функции urlencode для передачи в HTTP-запросе.

Рассылки. Ответ сервера и коды ошибок

Сервер отправляет ответ в виде строки:

Если произошла ошибка, то ответ будет одним из следующих:

При fmt = 0:
  • ERROR = N (описание) – для ошибок 1,2,3,4,5,9.
При fmt = 1:
  • 0,-N – для ошибок 1,2,3,4,5,9.
При fmt = 2:
  • Для ошибок 1,2,3,4,5,9:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>
При fmt = 3:
  • Для ошибок 1,2,3,4,5,9:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Ошибка сохранения записи.
4IP-адрес временно заблокирован из-за частых ошибок в запросах. Подробнее
5Неверный формат даты.
9Отправка более одного одинакового запроса на действия с рассылками в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешной обработки запроса возвращается строка следующего вида:

При создании рассылки:
  • при cost = 0 и fmt = 0: OK, ID - <id>

  • при cost = 1 и fmt = 0: OK, ID - <id>, COST - <cost>

  • при cost = 0 и fmt = 1: <id>

  • при cost = 1 и fmt = 1: <id>,<cost>

  • при cost = 0 и fmt = 2:
    <result>
    <id>id</id>
    </result>

  • при cost = 1 и fmt = 2:
    <result>
    <id>id</id>
    <cost>cost</cost>
    </result>

  • при cost = 0 и fmt = 3:
    {
    "id": <id>
    }

  • при cost = 1 и fmt = 3:
    {
    "id": <id>,
    "cost": "<cost>"
    }

При отключении или удалении рассылки:

  • при fmt = 0,1: OK

  • при fmt = 2:
    <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }

При получении информации о конкретной рассылке (при mail=1 параметр "phones" заменяется на "emails"):

  • при fmt = 0: <id>|<name>|<subject>|<repeat_send>|<repeat_cnt>|<created>|<changed>|<need_date>|<last_sent>|<phones>|<message>|<format>|<validity>|<period>|<frequency>|<status>|<sender_id>

  • при fmt = 1: <id>;<name>;<subject>;<repeat_send>;<repeat_cnt>;<created>;<changed>;<need_date>;<last_sent>;<phones>;<message>;<format>;<validity>;<period>;<frequency>;<status>;<sender_id>

  • при fmt = 2:
    <job>
    <id>id</id>
    <name>name</name>
    <subject>subject</subject>
    <repeat_send>repeat_send</repeat_send>
    <repeat_cnt>repeat_cnt</repeat_cnt>
    <created>created</created>
    <changed>changed</changed>
    <need_date>need_date</need_date>
    <last_sent>last_sent</last_sent>
    <phones>phones</phones>
    <message>message</message>
    <format>format</format>
    <validity>validity</validity>
    <period>period</period>
    <frequency>frequency</frequency>
    <status>status</status>
    <sender_id>sender_id</sender_id>
    </job>

  • при fmt = 3:
    [
    {
    "id": <id>,
    "name": "<name>",
    "subject": "<subject>",
    "repeat_send": <repeat_send>,
    "repeat_cnt": <repeat_cnt>,
    "created": "<created>",
    "changed": "<changed>",
    "need_date": "<need_date>",
    "last_sent": "<last_sent>",
    "phones": "<phones>",
    "message": "<message>",
    "format": <format>,
    "validity": <validity>,
    "period": "<period>",
    "frequency": <frequency>,
    "status": <status>,
    "cost": "<cost>",
    "sms_sent": <sms_sent>,
    "sms_ok": <sms_ok>,
    "sender_id": "<sender_id>"
    }
    ]


При получении списка рассылок (при mail=1 параметр "phones" заменяется на "emails"):

  • при fmt = 0: <id>|<name>|<changed>|<need_date>|<last_sent>|<phones>|<message>|<phones_cnt>|<cost>|<status>|<sender_id>|<format>

  • при fmt = 1: <id>;<name>;<changed>;<need_date>;<last_sent>;<phones>;<message>;<phones_cnt>;<cost>;<status>;<sender_id>;<format>

  • при fmt = 2:
    <sms_jobs>
    <job>
    <id>id</id>
    <name>name</name>
    <changed>changed</changed>
    <need_date>need_date</need_date>
    <last_sent>last_sent</last_sent>
    <phones>phones</phones>
    <message>message</message>
    <phones_cnt>phones_cnt</phones_cnt>
    <cost>cost</cost>
    <status>status</status>
    <sender_id>sender_id</sender_id>
    <format>format</format>
    </job>
    ...
    </sms_jobs>

  • при fmt = 3:
    [
    {
    "id": <id>,
    "name": "<name>",
    "changed": "<changed>",
    "need_date": "<need_date>",
    "last_sent": "<last_sent>",
    "phones": "<phones>",
    "message": "<message>",
    "phones_cnt": <phones_cnt>,
    "cost": "<cost>",
    "status": <status>,
    "sender_id": "<sender_id>",
    "format": <format>,
    "sms_sent": <sms_sent>,
    "sms_ok": <sms_ok>
    },
    ...
    ]

Где:
<id> – идентификатор рассылки, переданный Клиентом или назначенный Сервером автоматически.
<name> – название рассылки.
<subject> – тема (для e-mail рассылок).
<repeat_send> – период повтора.
<repeat_cnt> – количество повторов рассылки.
<created> – дата создания рассылки.
<changed> – дата изменения рассылки.
<need_date> – назначенная дата отправки.
<last_sent> – дата последней отправки.
<phones> (<emails>) – список телефонов (e-mail адресов) получателей сообщений.
<message> – текст сообщения.
<format> – формат сообщения.
<validity> – "время жизни" сообщения.
<period> – интервал отправки сообщений.
<frequency> – частота отправки сообщений.
<status> – статус рассылки.
<sender_id> – имя отправителя.
<phones_cnt> – количество получателей.
<cost> – стоимость рассылки.
<sms_sent> – количество отправленных сообщений.
<sms_ok> – количество доставленных сообщений.

Примеры операций с рассылками

Примеры:

Создание SMS-рассылки:

https://smsc.ru/sys/jobs.php?add=1&login=alex&psw=123&phones=79999999999&name=Privet&mes=Hello!
Создание рассылки с голосовым сообщением:

https://smsc.ru/sys/jobs.php?add=1&login=alex&psw=1234567890&phones=79999999999&call=1&voice=w2&name=Privet&mes=Hello!
Создание рассылки с e-mail сообщением на адрес "alex@mysite.com" с темой "Hi" и текстом "Hello!" от отправителя "alex2@mysite2.com" и названием рассылки "Privet":

https://smsc.ru/sys/jobs.php?add=1&login=alex&psw=123&phones=alex%40mysite.com&mail=1&name=Privet&mes=Hello!&subj=Hi&sender=alex2%40mysite2.com
Создание Viber-рассылки с макросами и автоповтором по SMS (текст SMS отличен от текста Viber-сообщения) на несколько номеров (тексты сообщений необходимо закодировать при помощи функции urlencode):

https://smsc.ru/sys/jobs.php?add=1&login=alex&psw=123&phones=79999999999,78888888888&name=rassilka1&mes={Имя}, это Viber-сообщение&mes2=Это SMS для {Имя}&sender=MyViber&fl[5]=1&viber=1
Удаление созданной рассылки с id равным 701:

https://smsc.ru/sys/jobs.php?del=1&login=alex&psw=123&id=701
Отключение отложенной рассылки с id равным 701:

https://smsc.ru/sys/jobs.php?cancel=1&login=alex&psw=123&id=701

Проверка статуса

Для проверки статуса доставки SMS или e-mail необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/status.php?login=<login>&psw=<password>&phone=<phone>&id=<sms_id>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
phoneНомер телефона или список номеров через запятую при запросе статусов нескольких SMS. При множественном запросе номера в списке должны быть перечислены в порядке, соответствующем идентификаторам сообщений. Для сохранения формата множественного запроса при запросе статуса одного сообщения укажите запятую после номера телефона. Это описание подходит и для e-mail-сообщений.
idИдентификатор сообщения или список идентификаторов через запятую при запросе статусов нескольких сообщений. Для сохранения формата множественного запроса при запросе статуса одного сообщения укажите запятую после идентификатора сообщения.
fmtФормат ответа сервера:
0 – (по умолчанию) в виде строки (Status = 1, check_time = 10.10.2010 10:10:10).
1 – в виде номера статуса и штампа времени через запятую (1,1286524541).
2 – в xml формате.
3 – в json формате.
all0 – (по умолчанию) получить статус сообщения в обычном формате.
1 – получить полную информацию об отправленном сообщении.
2 – добавить в информацию о сообщении данные о стране, операторе и регионе абонента.
charsetКодировка результата запроса, если используется отличная от кодировки по умолчанию windows-1251. Варианты: utf-8 и koi8-r.
del1 – удалить ранее отправленное сообщение. Используется совместно с параметрами phone и id. Более подробно данный параметр описан здесь.

Статусы сообщений. Ответ сервера и коды ошибок

В случае ошибки Сервер возвращает следующую строку:
  • При fmt = 0:
    ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
5Ошибка удаления сообщения.
9Попытка отправки более пяти запросов на получение статуса одного и того же сообщения или более одного массового запроса в течение минуты.
Данная ошибка возникает также при попытке отправки пяти и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:

Ответы для SMS-сообщений:
  • при fmt = 0 и all = 0: Status = <status>, check_time = <last_date>, err = <err>

  • при fmt = 1 и all = 0: <status>,<last_timestamp>,<err>

  • при fmt = 2 и all = 0:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <flag>flag</flag>
    <err>err</err>
    </sms>

  • при fmt = 3 и all = 0:
    {
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "flag": <flag>,
    "err": <err>
    }

  • при fmt = 0 и all = 1:
    Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>, cost = <cost>, sender_id = <sender>, status_name = <status_name>, message = <message>, comment = <comment>, type = <type>

  • при fmt = 1 и all = 1:
    <status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<cost>,<sender>,<status_name>,<message>, <comment>, <type>

  • при fmt = 2 и all = 1:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <flag>flag</flag>
    <err>err</err>
    <send_date>send_date</send_date>
    <send_timestamp>send_timestamp</send_timestamp>
    <phone>phone</phone>
    <cost>cost</cost>
    <sender_id>sender</sender_id>
    <status_name>status_name</status_name>
    <message>message</message>
    <comment>comment</comment>
    <type>type</type>
    <sms_cnt>sms_cnt</sms_cnt>
    </sms>

  • при fmt = 3 и all = 1:
    {
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "flag": <flag>,
    "err": <err>,
    "send_date": "<send_date>",
    "send_timestamp": <send_timestamp>,
    "phone": "<phone>",
    "cost": "<cost>",
    "sender_id": "<sender>",
    "status_name": "<status_name>",
    "message": "<message>",
    "comment": "<comment>",
    "type": <type>,
    "sms_cnt": <sms_cnt>
    }

  • при fmt = 0 и all = 2:
    Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>, mccmnc = <mccmnc>, country = <country>, operator = <operator>, operator_orig= <operator_orig>, region = <region>, cost = <cost>, sender_id = <sender>, status_name = <status_name>, message = <message>, comment = <comment>, type = <type>

  • при fmt = 1 и all = 2:
    <status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<country>,<operator>,<region>,<cost>,<sender>,<status_name>,<message>, <comment>, <type>

  • при fmt = 2 и all = 2:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <flag>flag</flag>
    <err>err</err>
    <send_date>send_date</send_date>
    <send_timestamp>send_timestamp</send_timestamp>
    <phone>phone</phone>
    <cost>cost</cost>
    <sender_id>sender</sender_id>
    <status_name>status_name</status_name>
    <message>message</message>
    <comment>comment</comment>
    <mccmnc>mccmnc</mccmnc>
    <country>country</country>
    <operator>operator</operator>
    <operator_orig>operator_orig</operator_orig>
    <region>region</region>
    <type>type</type>
    <sms_cnt>sms_cnt</sms_cnt>
    </sms>

  • при fmt = 3 и all = 2:
    {
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "flag": <flag>,
    "err": <err>,
    "send_date": "<send_date>",
    "send_timestamp": <send_timestamp>,
    "phone": "<phone>",
    "cost": "<cost>",
    "sender_id": "<sender>",
    "status_name": "<status_name>",
    "message": "<message>",
    "comment": "<comment>",
    "mccmnc": "<mccmnc>",
    "country": "<country>",
    "operator": "<operator>",
    "operator_orig": "<operator_orig>",
    "region": "<region>",
    "type": <type>,
    "sms_cnt": <sms_cnt>
    }
Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<flag> – флаг в виде 2-х байтового числа, содержащий различную информацию о сообщении. Возможны комбинации значений битов разных характеристик. Биты 0-3 (тип сообщения): 0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 – Звонок, 8 – E-mail, 10 – Viber, 12 – Соцсети.
Бит 5 – оплата сообщения со второго баланса. Бит 8 – признак шаблонного сообщения.
Биты 10,9 – тип шаблонного сообщения (00 - сервисное, 01 - транзакционное, 10 - авторизационное, 11 - рекламное).
<err> – код ошибки, если сообщение не было доставлено.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента или e-mail адрес.
<country> – название страны регистрации номера абонента.
<operator> – текущий сотовый оператор абонента.
<operator_orig> – оператор абонента по мобильному коду до портирования номера.
<region> – регион регистрации номера абонента.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.
<comment> – комментарий сообщения.
<mccmnc> – числовой код страны абонента плюс числовой код оператора абонента.
<type> – тип сообщения (0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 – Звонок, 8 – E-mail, 10 – Viber, 12 – Соцсети).
<sms_cnt> – количество частей в SMS-сообщении (либо секунд в голосовом сообщении).

Ответы для HLR-запросов:
  • при fmt = 0 и all = 0:
    Status = <status>, check_time = <check_time>, err = <err>, imsi = <imsi>, msc = <msc>, mcc = <mcc>, mnc = <mnc>, cn = <cn>, net = <net>, rcn = <rcn>, rnet = <rnet>

  • при fmt = 1 и all = 0: <status>,<last_timestamp>,<err>,<imsi>,<msc>,<mcc>,<mnc>,<cn>,<net>,<rcn>,<rnet>

  • при fmt = 2 и all = 0:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <flag>flag</flag>
    <err>err</err>
    <imsi>imsi</imsi>
    <msc>msc</msc>
    <mcc>mcc</mcc>
    <mnc>mnc</mnc>
    <cn>cn</cn>
    <net>net</net>
    <rcn>rcn</rcn>
    <rnet>rnet</rnet>
    </sms>

  • при fmt = 3 и all = 0:
    {
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "flag": <flag>,
    "err": <err>,
    "imsi": "<imsi>",
    "msc": "<msc>",
    "mcc": "<mcc>",
    "mnc": "<mnc>",
    "cn": "<cn>",
    "net": "<net>",
    "rcn": "<rcn>",
    "rnet": "<rnet>"
    }

  • при fmt = 0 и all = 1:
    Status = <status>, check_time = <check_time>, err = <err>, imsi = <imsi>, msc = <msc>, mcc = <mcc>, mnc = <mnc>, cn = <cn>, net = <net>, rcn = <rcn>, rnet = <rnet>, send_date = <send_date>, phone = <phone>, cost = <cost>, sender_id = <sender_id>, status_name = <status_name>, message = <message>, type = <type>

  • при fmt = 1 и all = 1:
    <status>,<last_timestamp>,<err>,<imsi>,<msc>,<mcc>,<mnc>,<cn>,<net>,<rcn>,<rnet>, <send_timestamp>,<phone>,<cost>,<sender_id>,<status_name>,<message>,<type>

  • при fmt = 2 и all = 1:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <flag>flag</flag>
    <err>err</err>
    <imsi>imsi</imsi>
    <msc>msc</msc>
    <mcc>mcc</mcc>
    <mnc>mnc</mnc>
    <cn>cn</cn>
    <net>net</net>
    <rcn>rcn</rcn>
    <rnet>rnet</rnet>
    <send_date>send_date</send_date>
    <send_timestamp>send_timestamp</send_timestamp>
    <phone>phone</phone>
    <cost>cost</cost>
    <sender_id>sender_id</sender_id>
    <status_name>status_name</status_name>
    <message>message</message>
    <type>type</type>
    </sms>

  • при fmt = 3 и all = 1:
    {
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "flag": <flag>,
    "err": <err>,
    "imsi": "<imsi>",
    "msc": "<msc>",
    "mcc": "<mcc>",
    "mnc": "<mnc>",
    "cn": "<cn>",
    "net": "<net>",
    "rcn": "<rcn>",
    "rnet": "<rnet>",
    "send_date": "<send_date>",
    "send_timestamp": <send_timestamp>,
    "phone": "<phone>",
    "cost": "<cost>",
    "sender_id": "<sender>",
    "status_name": "<status_name>",
    "message": "<message>",
    "type": <type>
    }

  • при fmt = 0 и all = 2:
    Status = <status>, check_time = <check_time>, err = <err>, imsi = <imsi>, msc = <msc>, mcc = <mcc>, mnc = <mnc>, cn = <cn>, net = <net>, rcn = <rcn>, rnet = <rnet>, send_date = <send_date>, phone = <phone>, country = <country>, operator = <operator>, region = <region>, cost = <cost>, sender_id = <sender_id>, status_name = <status_name>, message = <message>, type = <type>

  • при fmt = 1 и all = 2:
    <status>,<last_timestamp>,<err>,<imsi>,<msc>,<mcc>,<mnc>,<cn>,<net>,<rcn>,<rnet>, <send_timestamp>,<phone>,<country>,<operator>,<region>,<cost>,<sender_id>,<status_name>,<message>,<type>

  • при fmt = 2 и all = 2:
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <flag>flag</flag>
    <err>err</err>
    <imsi>imsi</imsi>
    <msc>msc</msc>
    <mcc>mcc</mcc>
    <mnc>mnc</mnc>
    <cn>cn</cn>
    <net>net</net>
    <rcn>rcn</rcn>
    <rnet>rnet</rnet>
    <send_date>send_date</send_date>
    <send_timestamp>send_timestamp</send_timestamp>
    <phone>phone</phone>
    <cost>cost</cost>
    <sender_id>sender_id</sender_id>
    <status_name>status_name</status_name>
    <message>message</message>
    <country>country</country>
    <operator>operator</operator>
    <region>region</region>
    <type>type</type>
    </sms>

  • при fmt = 3 и all = 2:
    {
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "flag": <flag>,
    "err": <err>,
    "imsi": "<imsi>",
    "msc": "<msc>",
    "mcc": "<mcc>",
    "mnc": "<mnc>",
    "cn": "<cn>",
    "net": "<net>",
    "rcn": "<rcn>",
    "rnet": "<rnet>",
    "send_date": "<send_date>",
    "send_timestamp": <send_timestamp>,
    "phone": "<phone>",
    "cost": "<cost>",
    "sender_id": "<sender>",
    "status_name": "<status_name>",
    "message": "<message>",
    "country": "<country>",
    "operator": "<operator>",
    "region": "<region>",
    "type": <type>
    }

Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<flag> – флаг в виде 2-х байтового числа, содержащий различную информацию о сообщении. Возможны комбинации значений битов разных характеристик. Биты 0-3 (тип сообщения): 0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 – Звонок, 8 – E-mail, 10 – Viber, 12 – Соцсети.
Бит 5 – оплата сообщения со второго баланса. Бит 8 – признак шаблонного сообщения.
<err> – код HLR-ошибки или статуса абонента (список).
<imsi> – уникальный код IMSI SIM-карты абонента.
<msc> – номер сервис-центра оператора, в сети которого находится абонент.
<mcc> – числовой код страны абонента.
<mnc> – числовой код оператора абонента.
<cn> – название страны регистрации абонента.
<net> – название оператора регистрации абонента.
<rcn> – название роуминговой страны абонента при нахождении в чужой сети.
<rnet> – название роумингового оператора абонента при нахождении в чужой сети.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – название оператора абонента.
<region> – регион регистрации номера абонента.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.
<type> – тип сообщения (для HLR равен 4).

Если сообщение не найдено или находится в архивной базе (значение статуса равно -3), то для fmt = 0,2,3 возвращается код статуса в соответствующем формате. Для fmt = 1 возвращается ответ в формате статуса обычного сообщения.

При множественном запросе статусов:
  • для fmt = 0 и fmt = 1 в результате возвращается список строк, каждая из которых содержит информацию о статусе соответствующего сообщения.
  • для fmt = 2 формат возвращаемых статусов аналогичен формату для одиночных сообщений, при этом весь список статусов заключается в тег "<list>".
  • для fmt = 3 формат также аналогичен формату для одиночных сообщений, статусы перечисляются через запятую, и весь список обрамляется квадратными скобками.
В случае множественного запроса статусов при значении параметра all = 1 или all = 2 для каждого статуса дополнительно возвращается идентификатор сообщения. При all = 0 дополнительно возвращается идентификатор сообщения и номер телефона.

Коды статусов

Возможные варианты кодов статусов сообщений или HLR-запросов (значения <status>):

КодНазваниеОписание
-3Сообщение не найденоВозникает, если для указанного номера телефона и ID сообщение не найдено.
-2ОстановленоВозникает у сообщений из рассылки, которые не успели уйти оператору до момента временной остановки данной рассылки на странице Рассылки и задания.
-1Ожидает отправкиЕсли при отправке сообщения было задано время получения абонентом, то до этого времени сообщение будет находиться в данном статусе, в других случаях сообщение в этом статусе находится непродолжительное время перед отправкой на SMS-центр.
0Передано операторуСообщение было передано на SMS-центр оператора для доставки.
1ДоставленоСообщение было успешно доставлено абоненту.
2ПрочитаноСообщение было прочитано (открыто) абонентом. Данный статус возможен для e-mail-сообщений, имеющих формат html-документа.
3ПросроченоВозникает, если время "жизни" сообщения истекло, а оно так и не было доставлено получателю, например, если абонент не был доступен в течение определенного времени или в его телефоне был переполнен буфер сообщений.
4Нажата ссылкаСообщение было доставлено, и абонентом была нажата короткая ссылка, переданная в сообщении. Данный статус возможен при включенных в настройках опциях "Автоматически сокращать ссылки в сообщениях" и "отслеживать номера абонентов".
20Невозможно доставитьПопытка доставить сообщение закончилась неудачно, это может быть вызвано разными причинами, например, абонент заблокирован, не существует, находится в роуминге без поддержки обмена SMS, или на его телефоне не поддерживается прием SMS-сообщений.
22Неверный номерНеправильный формат номера телефона.
23ЗапрещеноВозникает при срабатывании ограничений на отправку дублей, на частые сообщения на один номер (флуд), на номера из черного списка, на запрещенные спам фильтром тексты или имена отправителей (Sender ID).
24Недостаточно средствНа счете Клиента недостаточная сумма для отправки сообщения.
25Недоступный номерТелефонный номер не принимает SMS-сообщения, или на этого оператора нет рабочего маршрута.

Запрос статусов сообщений необходимо осуществлять в течение суток с момента отправки. По истечении данного времени сообщения помещаются в архивную базу. В 03:00 по московскому времени переносятся сообщения с конечным статусом, отправленные до 18:00 прошедшего дня. Для возможности получения реальных статусов таких сообщений необходимо обратиться в службу поддержки.

Также сервер не принимает более пяти одинаковых запросов на получение статуса одного и того же сообщения или более одного массового запроса в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Коды ошибок в статусе

Возможные коды ошибок в статусе сообщений или HLR-запросов (значения <err>):

КодНазваниеОписание
0Нет ошибкиАбонент существует и доступен.
1Абонент не существуетУказанный номер телефона не существует.
6Абонент не в сетиТелефон абонента отключен или находится вне зоны действия сети.
11Не подключена услугаОзначает, что абонент не может принять SMS-сообщение. Например, услуга не подключена, или абонент находится в роуминге, где не активирован прием сообщений, или у оператора абонента не налажен обмен SMS с текущим роуминговым оператором. Также это может быть городской номер без приема сообщений.
12Ошибка в телефоне абонентаНе удается доставить сообщение абоненту из-за ошибки в телефонном аппарате или SIM-карте.
13Абонент заблокированВозникает, например, если на счету абонента нулевой или отрицательный баланс, и он находится в роуминге, или заблокирован оператором за продолжительную неуплату либо добровольно самим абонентом. Также данная ошибка может возвращаться при повреждении SIM-карты либо неправильном вводе PIN и PUK-кодов SIM-карты.
21Нет поддержки сервисаАппарат абонента не поддерживает работу с данной услугой (сервисом).
200Виртуальная отправкаДанное уведомление появляется под статусом сообщения в случае отправки сообщения в режиме тестирования (при установленной в настройках галочке "Режим тестирования (виртуальная отправка без оплаты)").
219Замена sim-картыОшибка отправки сообщения в связи с заменой абонентом sim-карты. После физической замены sim-карты абоненту заблокирован прием сообщений от буквенных имен отправителей на 24 часа. Блокировка может быть снята путем пополнения баланса на 100 рублей.
220Переполнена очередь у оператораУказанная ошибка может возникать в случае, когда абонент недоступен для приема SMS, но сообщения продолжают приходить оператору и происходит переполнение внутренней очереди сообщений для данного абонента. В редких случаях возможно появление ошибки в результате сбоя в сети самого оператора или переполнении общей очереди сообщений. Во всех подобных ситуациях система с определенными интервалами несколько раз пытается отправить указанные сообщения повторно.
237Абонент не отвечаетВозникает, если в процессе попытки дозвона абонент не взял трубку.
238Нет шаблонаВозникает, если отправка сообщения возможна только по определенному шаблону, а отправляемое сообщение ему не удовлетворяет.
239Запрещенный ip-адресВозникает при попытке отправки сообщения с ip-адреса, не входящего в список ip-адресов, разрешенных Клиентом для отправки. Также может возникать при попытке отправки сообщения с ip-адреса, ранее не используемого для отправки сообщений и входов в личный кабинет.
240Абонент занятВозникает при передаче голосового сообщения абоненту, если линия занята или абонент отменил вызов.
241Ошибка конвертацииПри преобразовании текста или звукового файла в конечный формат для передачи абоненту голосового сообщения произошла ошибка конвертации звука. Также данная ошибка может возникать при передаче SMS-сообщения отдельными частями, когда оператору переданы не все части.
242Зафиксирован автоответчикОзначает, что во время отправки голосового сообщения на стороне абонента был зафиксирован автоответчик.
243Не заключен договорВозникает при попытке отправки рассылок рекламного или массового характера без заключенного договора.
244Рассылка запрещенаОзначает, что для данного Клиента запрещена отправка массовых и рекламных рассылок, либо в тексте сообщения встретилась запрещенная ссылка.
245Статус не полученВ течение суток статус доставки не был получен от оператора, в этом случае нельзя точно сказать, было сообщение доставлено или нет.
246Ограничение по времениЕсли в личном кабинете в пункте "Настройки" во вкладке "Лимиты и ограничения" установлено "Время отправки" и галочка "запретить отправку в другое время", то при попытке отправки SMS-сообщений в период времени, отличный от указанного в поле "Время отправки", отправка сообщений будет запрещаться с указанием данной ошибки.
247Превышен лимит сообщенийПревышен общий суточный лимит сообщений, указанный Клиентом в личном кабинете в пункте "Настройки".
248Нет маршрутаОзначает, что на данный номер отправка сообщений недоступна в нашем сервисе. Например, ввели несуществующий мобильный код, либо для указанного номера и текста нет рабочего SMS-шлюза.
249Неверный формат номераВозникает, когда мобильный код указанного номера и соответствующая этому коду длина номера неверны.
250Номер запрещен настройкамиНомер попал под ограничения, установленные Клиентом для мобильных номеров в личном кабинете в пункте "Настройки".
251Превышен лимит на один номерПревышен суточный лимит сообщений на один номер. Лимит устанавливается Клиентом в личном кабинете в пункте "Настройки". Также такая ошибка возможна при отправке более 50 сообщений одному абоненту, которые были отправлены с перерывом между сообщениями менее 30 секунд.
252Номер запрещенВозникает, например, при попытке указания Клиентом одного из наших федеральных номеров в качестве получателя SMS-сообщения.
253Запрещено спам-фильтромЕсли текст сообщения содержит нецензурные выражения и оскорбления, призывы отправить sms и некоторые другие запрещенные тексты, то отправка сообщения заблокируется. Также запрещено указывать в качестве отправителя короткие платные номера, номер получателя сообщений, названия операторов, чужих интернет-ресурсов, компаний и государственных организаций.
254Незарегистрированный sender idДанная ошибка возникает при попытке отправки сообщения от незарегистрированного имени отправителя.
255Отклонено операторомОператор отклонил сообщение без указания точного кода ошибки.
Такое бывает, например, когда номер не принадлежит ни одному мобильному оператору, т.е. с несуществующим кодом, либо по какой-то другой причине оператор не может доставить сообщение.

Возможные коды ошибок в статусе e-mail сообщений (значения <err>):

КодНазваниеОписание
0Нет ошибкиПолучатель существует и доступен.
1Адресат не существуетУказанный e-mail адрес не существует.
2Переполнен почтовый ящикПочтовый сервер получателя отклонил сообщение с указанным кодом ошибки.
3Сервер получателя не найденДомен, указанный в качестве почтового сервера, не найден.
4Почтовый ящик заблокированОт почтового сервера получателя вернулась ошибка о невозможности доставки сообщения по причине блокировки ящика.
239Запрещенный ip-адресВозникает при попытке отправки сообщения с ip-адреса, не входящего в список ip-адресов, разрешенных Клиентом для отправки. Также может возникать при попытке отправки сообщения с ip-адреса, ранее не используемого для отправки сообщений и входов в личный кабинет.
245Статус не полученВ течение суток статус доставки не был получен от почтового сервера получателя, в этом случае нельзя точно сказать, было сообщение доставлено или нет.
248Нет маршрутаОзначает, что на данный e-mail адрес отправка сообщений недоступна в нашем сервисе. Например, для указанного адреса и текста нет рабочего e-mail шлюза.
249Неверный формат адресаВозникает, когда ввели некорректный по формату e-mail адрес получателя.
252E-mail адрес запрещенВозникает, например, при нахождении указанного e-mail адреса в черном списке.
253Запрещено спам-фильтромЕсли текст сообщения содержит нецензурные выражения и оскорбления, призывы отправить sms или e-mail и некоторые другие запрещенные тексты, то отправка сообщения заблокируется. Также запрещено указывать в качестве отправителя e-mail адрес получателя сообщения, адреса чужих интернет-ресурсов, компаний и государственных организаций.
254Незарегистрированный отправительДанная ошибка возникает при попытке отправки сообщения от незарегистрированного e-mail адреса отправителя.
255Отклонено сервером получателяПочтовый сервер получателя отклонил сообщение без указания точного кода ошибки.
Такое бывает, например, при возникновении внутренней ошибки сервера, когда он не может обработать сообщение.

Удаление сообщения

Для удаления сообщения необходимо вызвать методом GET или POST скрипт запроса статуса, указав команду del: https://smsc.ru/sys/status.php?del=1&login=<login>&psw=<password>&phone=<phone>&id=<sms_id>
Описание параметров, передаваемых Серверу, и возвращаемых им ошибок аналогичное приведенному для функции запроса статуса.

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0,1: OK

  • при fmt = 2:
    <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }

Удаление сообщений необходимо производить до переноса в архивную базу.

Проверка состояния баланса

Запрос баланса

Для запроса баланса используйте адрес: https://smsc.ru/sys/balance.php?login=<login>&psw=<password>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
curФлаг, указывающий на необходимость добавления в ответ сервера названия валюты Клиента.
fmtФормат ответа сервера:
0 или 1 – (по умолчанию) в виде строки (250.80).
2 – в xml формате.
3 – в json формате.

Баланс. Ответ сервера и коды ошибок

В случае ошибки Сервер возвращает следующую строку:
  • При fmt = 0:
    ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более десяти запросов на получение баланса в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:

При cur = 0:
  • при fmt = 0 или 1: <balance>

  • при fmt = 2: <balance>balance</balance>

  • при fmt = 3:
    {
    "balance": "<balance>"
    }

При cur = 1 и ненулевом кредите:
  • при fmt = 0: <balance> <currency>

  • при fmt = 1: <balance>,<currency>

  • При fmt = 2:
    <result>
    <balance>balance</balance>
    <credit>credit</credit>
    <currency>currency</currency>
    </result>

  • при fmt = 3:
    {
    "balance": "<balance>",
    "credit": "<credit>",
    "currency": "<currency>"
    }
Где:
<balance> – текущее состояние баланса.
<credit> – текущее состояние установленного кредита.
<currency> – валюта Клиента.

Сервер не принимает более десяти запросов на получение баланса в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Действия с контактами и группами

Для управления контактами или группами необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды и параметров.

Для создания контакта: https://smsc.ru/sys/phones.php?add=1&login=<login>&psw=<password>&phone=<phone>&name=<name>
Для создания новой группы: https://smsc.ru/sys/phones.php?add_group=1&login=<login>&psw=<password>&name=<name>
Для изменения номера телефона в контакте: https://smsc.ru/sys/phones.php?chg=1&login=<login>&psw=<password>&phone=<phone>&new_phone=<new_phone>
Для изменения названия группы: https://smsc.ru/sys/phones.php?chg_group=1&login=<login>&psw=<password>&grp=<group_id>&name=<name>
Для переноса контакта в новую группу: https://smsc.ru/sys/phones.php?move_group=1&login=<login>&psw=<password>&grp=<group_id>&phone=<phone>
Для добавления новой группы к контакту: https://smsc.ru/sys/phones.php?move_group=2&login=<login>&psw=<password>&grp=<group_id>&phone=<phone>
Для удаления контакта из группы: https://smsc.ru/sys/phones.php?move_group=3&login=<login>&psw=<password>&grp=<group_id>&phone=<phone>
Для удаления контакта: https://smsc.ru/sys/phones.php?del=1&login=<login>&psw=<password>&phone=<phone>
Для удаления группы: https://smsc.ru/sys/phones.php?del_group=1&login=<login>&psw=<password>&grp=<group_id>
Для вывода списка контактов: https://smsc.ru/sys/phones.php?get=1&login=<login>&psw=<password>
Для вывода списка групп: https://smsc.ru/sys/phones.php?get_group=1&login=<login>&psw=<password>
Для добавления записи в "черный" список: https://smsc.ru/sys/phones.php?add_black=1&login=<login>&psw=<password>&phone=<phone>
Для удаления записи из "черного" списка: https://smsc.ru/sys/phones.php?del_black=1&login=<login>&psw=<password>&phone=<phone>
Для получения элементов "черного" списка: https://smsc.ru/sys/phones.php?get_black=1&login=<login>&psw=<password>

Контакты и группы. Описание параметров

Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
nameНазвание контакта или группы.
grpИдентификатор группы, которой принадлежит создаваемый контакт. Можно привязать контакт сразу к нескольким группам, указав их идентификаторы через запятую.
numНомер группы для рассылок сообщений.
phoneСписок номеров телефонов через любой разделитель (команда add), либо номер телефона (команды move_group, add_black). Используется для операций с номерами телефонов в скрипте phones.php.
mailСписок e-mail адресов через любой разделитель (команда add), либо e-mail адрес (команды move_group, add_black). Используется для операций с e-mail адресами в скрипте mails.php. Формат запросов аналогичен формату для phones.php.
new_phoneНовый список номеров телефонов через любой разделитель (команда chg).
new_mailНовый список e-mail адресов через любой разделитель (команда chg).
lnmФамилия.
fnmИмя.
mnmОтчество.
fioФИО контакта. Данный параметр используется в команде get для получения списка контактов по любому из инициалов (фамилии, имени и (или) отчеству).
searchВыборка контактов для команды get по названию контакта и (или) номеру телефона.
after_idИдентификатор контакта (int_id), начиная с которого необходимо вернуть список контактов (команда get, формат fmt=3), за исключением самого after_id.
bdДата рождения в формате дд.мм.гггг.
myidID контакта, назначенный Клиентом.
cmtКомментарии.
tagsТеги (метки).
phoДругие номера телефонов. По данным номерам рассылка SMS-сообщений не выполняется.
typeТип блокировки (команды add_black):
0 – все сообщения.
1 – массовые рассылки.
2 – одиночные сообщения.
Либо тип группы (команды add_group и get_group):
0 – группа для номеров телефонов.
1 – группа для e-mail адресов.
prev_idГлобальный идентификатор элемента "черного" списка (параметр id в ответе Сервера), назначаемый Сервером автоматически. Используется в команде get_black для запроса элементов "черного списка", добавленных ранее до данного элемента.
cntКоличество записей, возвращаемых в ответе Сервера. Максимальное значение равно 1000.
fmtФормат ответа сервера:
0 – (по умолчанию) в виде строки (ID = 12345).
1 – в виде строки (12345).
2 – в xml формате.
3 – в json формате.

Контакты и группы. Ответ сервера и коды ошибок

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Записи не найдены.
4IP-адрес временно заблокирован.
5Ошибка выполнения операции.
9Попытка отправки более трех одинаковых запросов на операции с группами, контактами или записями "черного" списка в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки.

При создании контакта, группы контактов, записи "черного" списка:
  • при fmt = 0: ID = <id>

  • при fmt = 1: <id>

  • при fmt = 2 (создание контакта, записи "черного" списка):
    <phone>
    <id>id</id>
    </phone>

  • при fmt = 2 (создание группы):
    <group>
    <id>id</id>
    </group>

  • при fmt = 3:
    {
    "id": <id>
    }

Где <id> – идентификатор контакта, группы или записи "черного" списка, назначенный Сервером автоматически.

При изменении или удалении контакта (группы), удалении записи "черного" списка:
  • при fmt = 0,1: OK

  • при fmt = 2: <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }


При запросе списка контактов:
  • при fmt = 0:
    phone = <phone>, name = <name>, group = <group>, first_name = <first_name>, last_name = <last_name>, middle_name = <middle_name>, birthday = <birthday>, id = <id>, comments = <comments>, tags = <tags>, phone_other = <phone_other>
    ...

  • при fmt = 1:
    <phone>,<name>,<group>,<first_name>,<last_name>,<middle_name>,<birthday>,<id>,<comments>,<tags>,<phone_other>
    ...

  • при fmt = 2:
    <list>
    <contact>
    <phone>phone</phone>
    <name>name</name>
    <group>group</group>
    <first_name>first_name</first_name>
    <last_name>last_name</last_name>
    <middle_name>middle_name</middle_name>
    <birthday>birthday</birthday>
    <id>id</id>
    <comments>comments</comments>
    <tags>tags</tags>
    <phone_other>phone_other</phone_other>
    </contact>
    ...
    </list>

  • при fmt = 3:
    [{
    "phone": "<phone>",
    "name": "<name>",
    "group": <group>,
    "first_name": "<first_name>",
    "last_name": "<last_name>",
    "middle_name": "<middle_name>",
    "birthday": "<birthday>",
    "id": "<id>",
    "comments": "<comments>",
    "tags": "<tags>",
    "phone_other": "<phone_other>"
    },
    ...]

Где:
<phone> – список номеров телефонов через любой разделитель. Для e-mail адресов заменяется на <mail>.
<name> – название контакта.
<group> – идентификатор группы, к которой принадлежит контакт.
<first_name> – имя.
<last_name> – фамилия.
<middle_name> – отчество.
<birthday> – дата рождения в формате дд.мм.гггг.
<id> – id контакта, назначенный Клиентом.
<comments> – комментарии.
<tags> – теги (метки).
<phone_other> – другие номера телефонов. По данным номерам рассылка сообщений не выполняется. Для e-mail адресов заменяется на <mail_other>.

При запросе списка групп:
  • при fmt = 0:
    id = <id>, name = <name>, number = <number>, cnt = <cnt>
    ...

  • при fmt = 1:
    <id>,<name>,<number>,<cnt>
    ...

  • при fmt = 2:
    <list>
    <group>
    <id>id</id>
    <name>name</name>
    <number>number</number>
    <cnt>number</cnt>
    </group>
    ...
    </list>

  • при fmt = 3:
    [{
    "id": <id>,
    "name": "<name>",
    "number": <number>,
    "cnt": "<cnt>"
    },
    ...]

Где:
<id> – идентификатор группы, назначенный Сервером при создании.
<name> – название группы.
<number> – номер группы для рассылок.
<cnt> – количество контактов в группе.

При запросе элементов "черного" списка:
  • при fmt = 0:
    id = <id>, phone = <phone>, type = <type>, comment = <comment>
    ...

  • при fmt = 1:
    <id>,<phone>,<type>,<comment>
    ...

  • при fmt = 2:
    <list>
    <record>
    <id>id</id>
    <phone>phone</phone>
    <type>type</type>
    <comment>comment</comment>
    </record>
    ...
    </list>

  • при fmt = 3:
    [{
    "id": <id>,
    "phone": "<phone>",
    "type": <type>,
    "comment": "<comment>"
    },
    ...]

Где:
<id> – идентификатор элемента, назначенный Сервером при создании.
<phone> – номер телефона (или <email> при запросе "черного" списка e-mail).
<type> – тип блокировки: 0 – все сообщения, 1 – массовые рассылки, 2 – одиночные сообщения.
<comment> – комментарии.

Примеры операций с контактами

Примеры:

Создание контакта с именем "Contact", принадлежащего группе с ID = 321:

https://smsc.ru/sys/phones.php?add=1&login=alex&psw=123&phone=79999999999&name=Contact&grp=321
Создание группы с именем "Group":

https://smsc.ru/sys/phones.php?add_group=1&login=alex&psw=123&name=Group
Изменение имени контакта с номером телефона "79999999999" на новое имя "Contact1":

https://smsc.ru/sys/phones.php?chg=1&login=alex&psw=123&phone=79999999999&name=Contact1
Изменение названия группы с ID = 321 на новое название "Group1":

https://smsc.ru/sys/phones.php?chg_group=1&login=alex&psw=123&grp=321&name=Group1
Удаление контакта с номером телефона "79999999999":

https://smsc.ru/sys/phones.php?del=1&login=alex&psw=123&phone=79999999999
Удаление группы с ID = 321:

https://smsc.ru/sys/phones.php?del_group=1&login=alex&psw=123&grp=321
Получение списка контактов, принадлежащих группе с ID = 321:

https://smsc.ru/sys/phones.php?get=1&login=alex&psw=123&grp=321
Получение данных контакта с номером телефона "79999999999":

https://smsc.ru/sys/phones.php?get=1&login=alex&psw=123&phone=79999999999
Получение списка всех групп:

https://smsc.ru/sys/phones.php?get_group=1&login=alex&psw=123
Добавление телефона "79999999999" в "черный" список с блокировкой только массовых рассылок:

https://smsc.ru/sys/phones.php?add_black=1&login=alex&psw=123&phone=79999999999&type=1
Удаление телефона "79999999999" из "черного" списка:

https://smsc.ru/sys/phones.php?del_black=1&login=alex&psw=123&phone=79999999999

Сервер не принимает более трех одинаковых запросов в течение минуты на операции с группами, контактами или записями "черного" списка для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Перечень доступных операций

Для создания или изменения субклиента необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды и параметров.

Создание субклиента: https://smsc.ru/sys/users.php?add=1&login=<login>&psw=<password>&user=<user>&password=<password2>
Изменение настроек субклиента: https://smsc.ru/sys/users.php?chg=1&login=<login>&psw=<password>&user=<user>&fio=<fio>
Изменение баланса субклиента: https://smsc.ru/sys/users.php?pay=1&login=<login>&psw=<password>&user=<user>&sum=<sum>
Получение статистики по субклиентам c независимым балансом: https://smsc.ru/sys/users.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&reseller=1
Получение статистики по одному субклиенту: https://smsc.ru/sys/users.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&user=<sub_login>
либо: https://smsc.ru/sys/users.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&user_id=<id>
Получение подробной статистики по субклиентам с независимым балансом: https://smsc.ru/sys/users.php?get_stat_all=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&reseller=1

Субклиенты. Описание параметров

Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
userЛогин субклиента.
pswcТекущий пароль субклиента.
passwordНовый пароль субклиента. Длина должна быть не менее 8 символов, и выполняться 3 из условий: буквы, цифры, разный регистр, символы.
sumСумма, перечисляемая клиенту с главного аккаунта в валюте главного аккаунта.
balance2Флаг, устанавливающий возможность использования электронного баланса для зачислений, списаний и получения статистики по сообщениям.
site_idID сайта, которому будет принадлежать создаваемый субклиент.
new_loginНовый логин субклиента при изменении.
typeТип учетной записи.
0 (по умолчанию) – независимые тариф и баланс.
1 – тариф главного аккаунта, независимый баланс.
2 – тариф и баланс главного аккаунта.
3 – баланс главного аккаунта, независимый тариф.
4 – дополнительный логин главного аккаунта.
emailОсновной адрес электронной почты.
fl[9]Флаг, устанавливающий возможность пересылки входящих SMS на e-mail.
email2Альтернативный адрес электронной почты для пересылки входящих SMS.
phoneОсновной номер телефона.
fl[8]Флаг, устанавливающий возможность пересылки входящих SMS на телефон.
phone2Альтернативный номер телефона для пересылки входящих SMS.
startНачальная дата в периоде, за который запрашивается статистика. Формат: 'дд.мм.гггг'.
endКонечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
user_idИдентификатор субклиента, назначаемый сервером автоматически при создании.
resellerТипы субклиентов.
0 или отсутствует – cубклиенты, использующие баланс главного аккаунта.
1 – субклиенты с независимым балансом.
hide_deletedСкрыть статистику по удаленным субклиентам.
0 или отсутствует – вывести статистику по всем субклиентам.
1 – скрыть статистику по удаленным субклиентам.
mycurФлаг, позволяющий выводить статистику в валюте главного аккаунта.
fioИнициалы (фамилия, имя, отчество) или название компании.
propsПоле "Другие реквизиты" субклиента.
cntrНомер договора.
tariffТекущий тарифный план. Субклиенту можно установить тарифный план не выше тарифного плана Клиента. Параметр может принимать следующие значения:
0 (по умолчанию) – 1 тариф (от 1 р.).
1 – 2 тариф (от 1000 р.).
...
8 – 9 тариф (от 100000 р.).
mintrfМинимальный тариф. Определяет минимальное значение тарифа субклиента независимо от суммы платежа.
currВалюта расчетов субклиента. Используется в командах add и chg. Может принимать следующие основные значения:
1 – российский рубль;
2 – доллар США;
3 – евро;
4 – украинская гривна;
5 – казахстанский тенге.
tzЧасовой пояс. По умолчанию устанавливается часовой пояс Клиента. Возможные значения:
0 – GMT-12.
...
12 – GMT+00
...
24 – GMT+12.
senderИмя отправителя (Sender ID) по умолчанию.
sender2Резервное имя отправителя.
fl[29]Флаг, определяющий возможность использования списка отправителей Клиента (главного аккаунта).
fl2[9]Флаг, разрешающий использование более дорогих маршрутов для гарантированной доставки сообщений.
fl2[24]Флаг, позволяющий отправлять сначала через дешевые маршруты, при недоставке повторять через дорогие (кроме массовых рассылок).
fl2[12]Флаг запрещает отправку сообщений с автоматической заменой имени отправителя.
fl2[13] Флаг отключает добавление имени отправителя в текст сообщений без удорожания в случае автозамены.
nbБаланс для уведомлений. При достижении указанной суммы будут отправляться уведомления на e-mail субклиента.
ktmДанный параметр устанавливает количество дней для хранения отправленных сообщений, по истечении которых SMS-сообщения будут автоматически удаляться из истории.
fmtsСписок телефонных кодов, на которые разрешена отправка сообщений.
notesКомментарии главного аккаунта. Недоступны субклиенту.
fl2[23]Запрет массовых и рекламных рассылок.
fl[26]Разрешение использования списка контактов главного аккаунта.
fl2[8]Флаг, устанавливающий расширенный режим личного кабинета.
fl[16]Включить распознавание автоответчиков при звонках.
fl2[31]Разрешить использование шаблонов главного аккаунта.
Дополнительные параметры для настройки доступа к сервису
fl3[20]Флаг, позволяющий отключить подтверждение доступа с новых IP-адресов при входе.
phСписок телефонов или номеров групп через запятую для выполнения рассылок по SMS-командам.
fl[27]Запретить изменения настроек субклиентом.
fl[28]Запретить оплаты субаккаунтом.
fl[6]Запретить рассылки.
fl2[1]Скрыть сообщения для субклиента.
fl2[10]Заблокировать субаккаунт.
Дополнительные параметры для лимитов и ограничений
dlimОбщий лимит SMS за день. Определяет максимальное количество отправляемых за сутки сообщений.
plimЛимит на один номер. Устанавливает максимальное количество отправляемых за сутки сообщений на один номер телефона.
tlimЛимит на номер и текст. Устанавливает максимальное количество отправляемых за сутки сообщений с одним текстом на один номер телефона.
ilimЛимит с одного IP-адреса. Задает максимальное количество отправляемых за сутки сообщений с одного IP-адреса.
tmlimДиапазон времени в часах h1-h2, в который разрешено отправлять сообщения. Если текущее время меньше h1, то SMS-сообщение будет отправлено абоненту при наступлении времени h1, если текущее время попадает в промежуток от h1 до h2, то сообщение будет отправлено немедленно, в другом случае отправка будет выполнена на следующий день при достижении времени h1. Данная функция, например, полезна для того, чтобы не допустить получение SMS-сообщений абонентами в ночное время.
fl2[15]Запретить отправку в другое время, кроме указанного в параметре tmlim, вместо переноса на следующий день.
fl2[16]При использовании параметра tmlim учитывать часовой пояс абонентов.
vldМаксимальный срок доставки сообщений временно недоступным абонентам (мин.).
Дополнительные параметры для автоответов
answАвтоответ на входящие SMS.
answ_callАвтоответ на входящие звонки.
fl2[4]Отключить пересылку звонков (на e-mail, телефон и обработчик).
Дополнительные параметры для настроек API
urlhttp-адрес (URL) скрипта для обработки статусов доставки SMS-сообщений и (или) входящих SMS-сообщений на стороне субклиента. Указанный скрипт будет вызываться Сервером после каждого получения статуса доставки ранее отправленного субклиентом SMS-сообщения и (или) после получения входящего SMS-сообщения от абонента.
fl[10]Включение пересылки статусов сообщений на http-адрес, указанный в параметре url.
fl[11]Включение пересылки входящих SMS-сообщений на http-адрес, установленный в параметре url.
fl[2]Включить SMPP-доступ (предварительно необходимо зарегистрировать IP-адрес через ONLINE-поддержку).
fl[1]Передавать входящие SMS по SMPP-подключению.
fl[23]Отслеживать статусы отдельных SMS-частей.
fl2[27]Режим тестирования (виртуальная отправка без оплаты).
fl[5]Включить контроль за доставкой сообщений.
fl[30]Включение лога API. Позволяет просматривать 20 последних http-запросов. Хранится 10 минут после последнего запроса.
Дополнительные параметры для E-mail2sms
mfl[0]Флаг, позволяющий отключить функцию e-mail2sms.
mphРазделенный запятой список номеров телефонов, на которые будут отправляться сообщения.
mfl[5]Включает возможность указания списка телефонов в теле письма.
mfl[6]Включает возможность указания списка телефонов в адресе письма.
mfl[1]Пересылка письма без темы.
mfl[2]Пересылка письма без текста.
mfl[3]Пересылка письма без обратного адреса (от кого).
mfl[4]Перевод текста письма в транслит.
mh1Начальное значение диапазона времени для отправки входящих писем. Вместе с параметром mh2 определяет диапазон, в течение которого возможна пересылка входящих писем в виде SMS-сообщений.
mh2Конечное значение диапазона времени для отправки входящих писем.
mlenМаксимальная длина сообщения, до которой обрезается входящее письмо при отправке в виде SMS-сообщения (число больше 12 задает максимальную длину сообщения, меньше 12 - количество SMS).

Ответ сервера и коды ошибок

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Записи не найдены.
4IP-адрес временно заблокирован.
5Ошибка выполнения операции.
6Субклиент с указанным логином не существует.
7Указан сублогин, имеющий общий баланс с главным аккаунтом, либо в запросе на операцию с электронным балансом не указан параметр balance2=1.
8Ошибка при сохранении записи.
9Попытка отправки более трех запросов на добавление субклиентов или изменение одного и того же субклиента в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
10Недостаточно средств для зачисления.

В случае успешного запроса Сервер возвращает ответ в виде строки.

При создании субклиента:
  • при fmt = 0: ID = <id>

  • при fmt = 1: <id>

  • при fmt = 2:
    <user
    <id>id</id>
    </user>

  • при fmt = 3:
    {
    "id": <id>
    }

Где <id> – идентификатор субклиента, назначенный Сервером автоматически.

При изменении сублогина:
  • при fmt = 0,1: OK

  • при fmt = 2:
    <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }


При запросе статистики:
  • при fmt = 0 и get_stat = 1:
    login = <login>, sms = <cnt>, credit = <credit>, debit = <debit>, currency = <currency>
    ...

  • при fmt = 0 и get_stat_all = 1:
    login = <login>, description = <description>, operator = <operator>, mccmnc = <mccmnc>, sms = <cnt>, credit = <credit>, debit = <debit>, currency = <currency>
    ...

  • при fmt = 1 и get_stat = 1:
    <login>,<cnt>,<credit>,<debit>,<currency>
    ...

  • при fmt = 1 и get_stat_all = 1:
    <login>,<description>,<operator>,<mccmnc>,<cnt>,<credit>,<debit>,<currency>
    ...

  • при fmt = 2 и get_stat = 1:
    <list>
    <stat>
    <login>login</login>
    <sms>cnt</sms>
    <credit>credit</credit>
    <debit>debit</debit>
    <currency>currency</currency>
    </stat>
    ...
    </list>

  • при fmt = 2 и get_stat_all = 1:
    <list>
    <user login="login">
    <item>
    <description>description</description>
    <operator>operator</operator>
    <mccmnc>mccmnc</mccmnc>
    <sms>cnt</sms>
    <credit>credit</credit>
    <debit>debit</debit>
    <currency>currency</currency>
    </item>
    ...
    </user>
    ...
    </list>

  • при fmt = 3 и get_stat = 1:
    [{
    "login": "<login>",
    "sms": "<cnt>",
    "credit": "<credit>",
    "debit": "<debit>",
    "currency": "<currency>"
    },
    ...]

  • при fmt = 3 и get_stat_all = 1:
    [{
    "login": "<login>",
    "items": [{
    "description": "<description>",
    "operator": "<operator>",
    "mccmnc": "<mccmnc>",
    "sms": "<cnt>",
    "credit": "<credit>",
    "debit": "<debit>",
    "currency": "<currency>"
    },
    ...]
    },
    ...]

Где:
<login> - логин субклиента.
<description> - название операции.
<operator> - название оператора.
<mccmnc> - числовой код страны абонента плюс числовой код оператора абонента
<cnt> - количество сообщений.
<credit> - расход.
<debit> - приход.
<currency> - трехсимвольный код валюты субклиента.

Примеры действий с субклиентами

Примеры:

Создание субклиента с логином "mylogin", паролем "mypassword", номером телефона 79999999999 и разрешением на использование имен отправителей (Sender ID) главного аккаунта:

https://smsc.ru/sys/users.php?add=1&login=alex&psw=123&user=mylogin&password=mypassword&phone=79999999999&fl[29]=1
Изменение логина субклиента с "mylogin" на "mylogin2", типа клиента на "Тариф и баланс главного аккаунта" и установки разрешенных кодов для отправки SMS только по России:

https://smsc.ru/sys/users.php?chg=1&login=alex&psw=123&user=mylogin&password=mypassword&new_login=mylogin2&type=2&fmts=7,-77
Получение статистики по субклиентам, имеющим общий баланс с главным аккаунтом и SMS, отправленные с электронного баланса:

https://smsc.ru/sys/users.php?get_stat=1&login=alex&psw=123&balance2=1
Получение статистики по субклиенту с логином "sub_alex":

https://smsc.ru/sys/users.php?get_stat=1&login=alex&psw=123&user=sub_alex
Получение статистики по независимым субклиентам в валюте главного аккаунта с "01.01.2014" по "01.02.2014":

https://smsc.ru/sys/users.php?get_stat=1&login=alex&psw=123&mycur=1&start=01.01.2014&end=01.02.2014

Сервер не принимает более трех запросов в течение минуты на добавление субклиентов или изменение одного и того же субклиента для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Создание и выгрузка счетов и актов

Для создания нового счета для субклиента необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/documents.php?add_account=1&login=<login>&psw=<password>&user=<user>&sum=<sum> либо: https://smsc.ru/sys/documents.php?add_account=1&login=<login>&psw=<password>&user_id=<user_id>&sum=<sum>
Для выгрузки существующего счета субклиента необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/documents.php?get_account=1&login=<login>&psw=<password>&user=<user>&id=<id> либо: https://smsc.ru/sys/documents.php?get_account=1&login=<login>&psw=<password>&user_id=<user_id>&id=<id>
Для выгрузки существующего акта субклиента необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/documents.php?get_act=1&login=<login>&psw=<password>&user=<user>&id=<id> https://smsc.ru/sys/documents.php?get_act=1&login=<login>&psw=<password>&user_id=<user_id>&id=<id> либо: https://smsc.ru/sys/documents.php?get_act=1&login=<login>&psw=<password>&user=<user>&num=<num> https://smsc.ru/sys/documents.php?get_act=1&login=<login>&psw=<password>&user_id=<user_id>&num=<num>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
userЛогин субклиента, для которого необходимо создать или выгрузить счет. Вместо данного параметра можно использовать параметр user_id.
user_idИдентификатор субклиента, для которого необходимо создать или выгрузить счет. Вместо данного параметра можно использовать параметр user.
sumСумма, на которую необходимо создать счет в валюте Клиента.
serviceНазвание услуги, указываемой при создании счета.
idИдентификатор запрашиваемого счета или акта.
numНомер запрашиваемого акта.

В случае ошибки Сервер возвращает следующую строку:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
5Ошибка создания счета.
6Сублогин не найден.
7Указанный документ не найден.
9Попытка отправки более одного запроса на создание или получение счета или акта в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса на создание счета Сервер возвращает multipart-структуру, включающую в себя 2 части с соответствующими заголовками. Первая часть содержит ответ Сервера в json-формате, содержащий идентификатор и сумму созданного счета, вторая часть включает в себя файл со счетом в pdf-формате.

В случае успешного запроса на получение счета Сервер возвращает файл со счетом в pdf-формате.

В случае успешного запроса на получение акта Сервер возвращает файл с актом в pdf-формате.

Сервер не принимает более одного запроса на создание или изменение счета или акта в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Перечень доступных операций с именами отправителей

Для управления именами отправителей необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды и параметров.

Для получения списка зарегистрированных в личном кабинете и допущенных модератором имен отправителей: https://smsc.ru/sys/senders.php?get=1&login=<login>&psw=<password>
Для добавления нового имени отправителя: https://smsc.ru/sys/senders.php?add=1&login=<login>&psw=<password>&sender=<sender>&cmt=<cmt>
Для изменения имени отправителя: https://smsc.ru/sys/senders.php?chg=1&login=<login>&psw=<password>&sender=<sender>&cmt=<cmt> или https://smsc.ru/sys/senders.php?chg=1&login=<login>&psw=<password>&id=<id>&cmt=<cmt>
Отправка кода подтверждения для цифрового имени отправителя: https://smsc.ru/sys/senders.php?send_code=1&login=<login>&psw=<password>&sender=<sender>
Подтверждение цифрового имени отправителя: https://smsc.ru/sys/senders.php?check_code=1&login=<login>&psw=<password>&sender=<sender>&code=<code>
Для удаления имени отправителя: https://smsc.ru/sys/senders.php?del=1&login=<login>&psw=<password>&sender=<sender> либо https://smsc.ru/sys/senders.php?del=1&login=<login>&psw=<password>&id=<id>
При добавлении или изменении имени отправителя в теле запроса можно передавать файл документа для операторов (свидетельство на товарный знак, сертификат на домен) в формате jpg, tif, pdf, png, zip, rar. Максимальный размер передаваемого файла не должен превышать 3 Мб. Комментарий к документу может быть указан в дополнительном параметре doc_info.

Описание параметров

Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
all0 (по умолчанию) – получить список активированных имен отправителей.
1 – получить полный список имен отправителей.
senderСоздаваемое или удаляемое имя отправителя.
mts_step1 – зарегистрировать платное имя у оператора MTS.
sber_step1 – зарегистрировать бесплатное имя у оператора СберМобайл.
tele21 – зарегистрировать имя у оператора Tele2 по тарифу с бесплатными именами.
motiv1 – зарегистрировать имя у оператора МОТИВ по тарифу с бесплатными именами.
mega_step1 – зарегистрировать платное имя у оператора Мегафон.
bee_step1 – зарегистрировать платное имя у оператора Билайн.
motiv_step1 – зарегистрировать платное имя у оператора MOTIV.
winmob_step1 – зарегистрировать платное имя у оператора Win-Mobile.
volnamob_step1 – зарегистрировать платное имя у оператора Волна мобайл.
tele2_step1 – зарегистрировать платное имя у оператора Tele2.
ua_reg1 – зарегистрировать имя для Украины на пониженный тариф по национальному трафику.
Для данного тарифа необходимо дополнительно передать следующие параметры:
fio – Юридическое название организации (ООО/СПД).
inn – ЕДРПОУ/ИНН.
site – Адрес сайта или ссылка на соц. сеть.
email – E-mail для связи.
address – Фактический адрес.
desc – Описание услуг, предоставляемых отправителем.
subj – Тема (цель информирования).
ua_int1 – зарегистрировать имя для Украины по более высокому тарифу для международного трафика. Для регистрации также необходимо дополнительно передать поля, описанные выше для параметра ua_reg.
by_reg1 – зарегистрировать имя для Беларуси на пониженный тариф по национальному трафику.
Для данного тарифа необходимо дополнительно передать следующие параметры:
by_fio – Название компании.
by_inn – УНП/ИНН.
by_address – Адрес компании.
by_ocup – Сфера деятельности (варианты можно уточнить на данной странице). Нумерация от 1 до 19.
by_type – Тип рассылки (варианты можно уточнить на данной странице). Нумерация от 1 до 3.
by_mes – Пример сообщения.
by_site – Адрес сайта.
by_int1 – зарегистрировать имя для Беларуси по более высокому тарифу для международного трафика. Для регистрации также необходимо дополнительно передать поля, описанные выше для параметра by_reg.
idИдентификатор имени отправителя, назначаемый Сервером автоматически при создании нового имени.
cmtКомментарий, указываемый при создании имени отправителя.
mail1 – добавить e-mail адрес отправителя.
nameКомментарий, связанный с параметром mail (обычно имя владельца e-mail адреса).
codeКод для подтверждения цифрового имени отправителя.
siteАдрес сайта, от которого будут приходить коды для подтверждения цифровых имен отправителей. Данный параметр должен быть ранее добавлен и активирован в качестве Sender ID. Если не указан, то сообщения будут приходить от имени отправителя по умолчанию.
site_nameАдрес сайта, указываемый в тексте сообщения с кодом подтверждения.
userЛогин субклиента, к которому применяется указанная команда.
operators1 – добавить в ответ код статуса имени отправителя у оператора.
from_dateВыбрать имена отправителей начиная с указанной даты, для которых был изменен статус имени у любого из операторов. При указании данного параметра происходит сортировка имен в порядке убывания даты изменения статусов имен. Формат DD.MM.YYYY.
prev_idУникальный идентификатор имени отправителя, назначаемый Сервером автоматически при создании имени. Используется для запроса списка имен, созданных до имени с указанным идентификатором.
cntКоличество имен отправителей возвращаемых при запросе списка имен. Максимальное значение равно 15000.
doc_infoЕсли при создании или изменении имени отправителя в теле запроса будет передан файл документа для операторов, то в данном параметре можно указать описание к переданному файлу.
charsetКодировка передаваемых параметров.
files1 – вернуть в ответе сервера для команды get массив files, содержащий информацию о прикрепленных файлах документов для операторов. Параметр актуален только для форматов fmt=2 или fmt=3.
Массив включает следующие поля:
file – Название файла.
fid – Идентификатор файла в системе.
fstatus – Статус файла (0 - на проверке, 1 - отклонено, 2 - допущено).
fcomment – Комментарий администратора.

Ответ сервера и коды ошибок

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Имя отправителя не найдено.
4IP-адрес временно заблокирован.
5Ошибка сохранения или удаления имени отправителя.
7Неверный формат номера.
8Код подтверждения на указанный номер не может быть доставлен.
9Попытка отправки более трех одинаковых запросов на получение списка доступных имен отправителей или пяти запросов на создание нового имени отправителя в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
10Код уже был отправлен на указанный номер. Повторная попытка возможна через 8 часов.
11Неверный код подтверждения.

В случае успешного запроса Сервер возвращает ответ в виде строки.

При запросе списка имен отправителей:
  • при fmt = 0 и all = 0:
    name = <sender>, id = <id>
    ...

  • при fmt = 1 и all = 0:
    <sender>,<id>
    ...

  • при fmt = 2 и all = 0:
    <list>
    <sender id="<id>">sender</sender>
    ...
    </list>

  • при fmt = 3 и all = 0:
    [{
    "sender": "<sender>",
    "id": <id>
    },
    ...]

  • при fmt = 0 и all = 1:
    name = <sender>, status = <status>, id = <id>
    ...

  • при fmt = 1 и all = 1:
    <sender>,<status>,<id>
    ...

  • при fmt = 2 и all = 1:
    <list>
    <sender status="<status>" id="<id>">sender</sender>
    ...
    </list>

  • при fmt = 3 и all = 1:
    [{
    "sender": "<sender>",
    "status": <status>,
    "id": <id>
    },
    ...]

  • при fmt = 0 и operators = 1:
    name = <sender>, mega_step = <mega_step_status>, bee_step = <bee_step_status>, motiv_step = <motiv_step_status>, sber_step = <sber_step_status>, winmob_step = <winmob_step>, volnamob_step = <volnamob_step>, mts_step = <mts_step_status>, tele2_step = <tele2_step_status>, tele2 = <tele2_status>, ua_reg = <ua_reg_status>, ua_int = <ua_int_status>, mega_int = <mega_int_status>, motiv_int = <motiv_int_status>, mts_int = <mts_int_status>, motiv = <motiv_status>, by_reg = <by_reg_status>, by_int = <by_int_status>, tele2_int = <tele2_int_status>, sber_int = <sber_int_status>, id = <id>
    ...

  • при fmt = 2 и operators = 1:
    <list>
    <sender mega_step="<mega_step_status>" bee_step="<bee_step_status>" motiv_step="<motiv_step_status>" sber_step="<sber_step_status>" winmob_step="<winmob_step_status>" volnamob_step="<volnamob_step_status>" mts_step="<mts_step_status>" tele2_step="<tele2_step_status>" tele2="<tele2_status>" ua_reg="<ua_reg_status>" ua_int="<ua_int_status>" mega_int="<mega_int_status>" motiv_int="<motiv_int_status>" mts_int="<mts_int_status>" motiv="<motiv_status>" by_reg="<by_reg_status>" by_int="<by_int_status>" tele2_int="<tele2_int_status>" sber_int="<sber_int_status>" id="<id>">sender</sender>
    ...
    </list>

  • при fmt = 3 и operators = 1:
    [{
    "sender": "<sender>",
    "mega_step": "<mega_step_status>",
    "mega_int": "<mega_int_status>",
    "bee_step": "<bee_step_status>",
    "motiv": "<motiv_status>",
    "motiv_step": "<motiv_step_status>",
    "motiv_int": "<motiv_int_status>",
    "sber_step": "<sber_step_status>",
    "sber_int": "<sber_int_status>",
    "winmob_step": "<winmob_step_status>",
    "volnamob_step": "<volnamob_step_status>",
    "mts_step": "<mts_step_status>",
    "mts_int": "<mts_int_status>",
    "tele2_step": "<tele2_step_status>",
    "tele2": "<tele2_status>",
    "tele2_int": "<tele2_int_status>",
    "ua_reg": "<ua_reg_status>",
    "ua_int": "<ua_int_status>",
    "by_reg": "<by_reg_status>",
    "by_int": "<by_int_status>",
    "id": "<id>"
    },
    ...]

Где:
<sender> – зарегистрированное и допущенное к использованию имя отправителя.
<mega_step_status>, <mega_int_status>, <bee_step_status>, <motiv_status>, <motiv_step_status>, <motiv_int_status>, <sber_step_status>, <sber_int_status>, <winmob_step_status>, <volnamob_step_status>, <mts_step_status>, <mts_int_status>, <tele2_step_status>, <tele2_status>, <tele2_int_status>, <ua_reg_status>, <ua_int_status>, <by_reg_status>, <by_int_status> – код статуса имени отправителя у соответствующего оператора (0 - ожидает регистрации, 1 - отправлено на регистрацию, 2 - допущено оператором, 3 - не принято оператором, 4 - временно отключено, 5 - недостаточно средств на счете, 8 - необходимы подтверждающие документы, 9 - активация с начала месяца), 255 - допущено, но помечено на снятие с регистрации).
<status> – статус имени отправителя (0 - ожидает модерации, 1 - допущено к использованию, 2 - выключено).
<id> – уникальный идентификатор имени отправителя (назначается Сервером автоматически при создании имени).

Если для какого-либо оператора имя отправителя имеет заменяющий аналог, то при operators = 1 и fmt = 0,2,3 в ответ сервера дополнительно будет включена данная замена.

При добавлении нового имени отправителя:
  • при fmt = 0: ID = <id>

  • при fmt = 1: <id>

  • при fmt = 2:
    <sender>
    <id>id</id>
    </sender>

  • при fmt = 3:
    {
    "sender": <id>
    }

Где:
<id> – идентификатор имени отправителя, назначенный Сервером автоматически.

При изменении имени отправителя, отправке кода, подтверждении и удалении имени отправителя:
  • при fmt = 0, 1: OK

  • при fmt = 2:
    <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }


Примеры действий с именами отправителей

Примеры:

Получение списка имен отправителей:

https://smsc.ru/sys/senders.php?get=1&login=alex&psw=123
Добавление нового имени отправителя:

https://smsc.ru/sys/senders.php?add=1&login=alex&psw=123&sender=my_shop&cmt=test
Отправка кода подтверждения для цифрового имени отправителя:

https://smsc.ru/sys/senders.php?send_code=1&login=alex&psw=123&sender=79999999999
Отправка кода подтверждения цифрового имени отправителя для субклиента "subalex" от имени "mysite.ru":

https://smsc.ru/sys/senders.php?send_code=1&login=alex&psw=123&sender=79999999999&user=subalex&site=mysite.ru
Подтверждение цифрового имени отправителя:

https://smsc.ru/sys/senders.php?check_code=1&login=alex&psw=123&sender=79999999999&code=338824
Удаление имени отправителя:

https://smsc.ru/sys/senders.php?del=1&login=alex&psw=123&sender=my_shop

Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка доступных имен отправителей и пяти запросов на создание нового имени отправителя для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

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

Для получения списка отправленных SMS-сообщений необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/get.php?get_messages=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
startНачальная дата в периоде, за который запрашивается история. Формат: 'дд.мм.гггг'. Максимальный период, за который возможен запрос истории отправленных сообщений, составляет полгода.
endКонечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
phoneНомер или разделенный запятыми список номеров телефонов, для которых необходимо получить историю отправленных SMS-сообщений.
emailE-mail адрес или разделенный запятыми список адресов, для которых необходимо получить историю отправленных e-mail сообщений.
formatПризнак запроса e-mail сообщений.
0 (по умолчанию) – запрос SMS-сообщений.
8 – запрос e-mail сообщений.
cntКоличество возвращаемых в ответе сообщений. Максимальное значение равно 1000.
prev_idГлобальный идентификатор сообщения (параметр int_id в ответе Сервера), назначаемый Сервером автоматически. Используется для запроса списка сообщений, отправленных до сообщения с указанным идентификатором.
fmtФормат ответа Сервера.
0 – (по умолчанию) в виде строки (подробнее можно ознакомиться в описании ниже).
1 – вернуть ответ в виде параметров через запятую.
2 – ответ в xml формате.
3 – ответ в json формате.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Сообщение не найдено.
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение истории исходящих сообщений в течение минуты либо более тридцати запросов в течение часа.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0:
    Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>, mccmnc = <mccmnc>, country = <country>, operator = <operator>, region = <region>, cost = <cost>, sender_id = <sender>, status_name = <status_name>, message = <message>, type = <type>, ID = <id>, int_id = <int_id>, sms_cnt = <sms_cnt>, format = <format>, crc = <crc>
    ...

  • при fmt = 1:
    <status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<mccmnc>,<country>,<operator>,<region>,<cost>,<sender>,<status_name>, <message>,<type>,<id>,<int_id>,<sms_cnt>,<format>,<crc>
    ...

  • при fmt = 2:
    <list>
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <err>err</err>
    <send_date>send_date</send_date>
    <send_timestamp>send_timestamp</send_timestamp>
    <phone>phone</phone>
    <cost>cost</cost>
    <sender_id>sender</sender_id>
    <status_name>status_name</status_name>
    <message>message</message>
    <mccmnc>mccmnc</mccmnc>
    <country>country</country>
    <operator>operator</operator>
    <region>region</region>
    <type>type</type>
    <id>id</id>
    <int_id>int_id</int_id>
    <sms_cnt>sms_cnt</sms_cnt>
    <format>format</format>
    <crc>crc</crc>
    </sms>
    ...
    </list>

  • при fmt = 3:
    [{
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "err": <err>,
    "send_date": "<send_date>",
    "send_timestamp": <send_timestamp>,
    "phone": "<phone>",
    "cost": "<cost>",
    "sender_id": "<sender>",
    "status_name": "<status_name>",
    "message": "<message>",
    "mccmnc": "<mccmnc>",
    "country": "<country>",
    "operator": "<operator>",
    "region": "<region>",
    "type": <type>,
    "id": <id>,
    "int_id": "<int_id>",
    "sms_cnt": <sms_cnt>,
    "format": <format>,
    "crc": <crc>
    ...]

Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<err> – код ошибки, если сообщение не было доставлено.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – название оператора абонента.
<region> – регион регистрации номера абонента.
<type> – тип сообщения.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.
<mccmnc> – мобильный код страны и мобильный код оператора.
<id> – идентификатор сообщения.
<int_id> – глобальный идентификатор сообщения.
<sms_cnt> – количество частей в сообщении.
<format> – формат сообщения.
<crc> – контрольная сумма сообщения.

Примеры:

Получение последних десяти исходящих SMS-сообщений:

https://smsc.ru/sys/get.php?get_messages=1&login=alex&psw=123&cnt=10
Получение последнего исходящего SMS-сообщения, отправленного на номер "79999999999":

https://smsc.ru/sys/get.php?get_messages=1&login=alex&psw=123&phone=79999999999

Сервер не принимает более трех одинаковых запросов в течение минуты либо тридцати запросов в течение часа на получение истории исходящих сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Получение входящих сообщений

Для получения списка входящих сообщений необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/get.php?get_answers=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
cntКоличество возвращаемых в ответе сообщений. Максимальное значение равно 10000.
hourПериод в часах, за который необходимо запросить входящие сообщения. Максимальное количество часов - 168 (7 дней).
after_idИдентификатор сообщения, начиная с которого необходимо вернуть входящие сообщения, за исключением самого after_id.
to_phoneНомер телефона Клиента, на который получены входящие сообщения.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0:
    id = <id>, received = <received>, phone = <phone>, message = <message>, to_phone = <to_phone>, sent = <sent>
    ...

  • при fmt = 1:
    <id>,<received>,<phone>,<to_phone>,<sent>,<message>
    ...

  • при fmt = 2:
    <sms_answers>
    <sms>
    <id>id</id>
    <received>received</received>
    <phone>phone</phone>
    <message>message</message>
    <to_phone>to_phone</to_phone>
    <sent>sent</sent>
    </sms>
    ...
    </sms_answers>

  • при fmt = 3:
    [{
    "id": <id>,
    "received": "<received>",
    "phone": "<phone>",
    "message": "<message>",
    "to_phone": "<to_phone>",
    "sent": "<sent>"
    },
    ...]

Где:
<id> – идентификатор входящего сообщения, назначаемый Сервером автоматически.
<received> – дата получения сообщения Сервером. Формат DD.MM.YYYY hh:mm:ss.
<phone> – номер телефона абонента.
<message> – входящее сообщение.
<to_phone> – номер телефона получателя.
<sent> – дата отправки сообщения. Формат DD.MM.YYYY hh:mm:ss.


Примеры:

Получение списка из 10 первых входящих сообщений за текущие сутки:

https://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123&cnt=10
Получение списка из 15 первых входящих сообщений за последние 48 часов:

https://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123&hour=48&cnt=15
Получение списка из 20 первых входящих сообщений с идентификаторами, большими id="1234567":

https://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123&after_id=1234567&cnt=20

Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка входящих сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Получение статистики

Для получения статистики отправленных сообщений необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/get.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
startНачальная дата в периоде, за который запрашивается статистика. Формат: 'дд.мм.гггг'.
endКонечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
mycurФлаг, позволяющий выводить статистику в текущей валюте Клиента.
balance2Флаг, позволяющий получить статистику по отправленным сообщениям, оплаченным с электронного баланса.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0:
    login = <login>, sms = <cnt>, credit = <credit>, debit = <debit>, currency = <currency>
    ...

  • при fmt = 1:
    <login>,<cnt>,<credit>,<debit>,<currency>
    ...

  • при fmt = 2:
    <list>
    <stat>
    <login>login</login>
    <sms>cnt</sms>
    <credit>credit</credit>
    <debit>debit</debit>
    <currency>currency</currency>
    </stat>
    ...
    </list>

  • при fmt = 3:
    [{
    "login": "<login>",
    "sms": "<cnt>",
    "credit": "<credit>",
    "debit": "<debit>",
    "currency": "<currency>"
    },
    ...]

Где:
<login> - логин Клиента.
<cnt> - количество сообщений.
<credit> - расход.
<debit> - приход.
<currency> - трехсимвольный код валюты.

Примеры:

Получение статистики в текущей валюте Клиента с "01.01.2014" по "01.02.2014" по безналичному балансу:

https://smsc.ru/sys/get.php?get_stat=1&login=alex&psw=123&mycur=1&start=01.01.2014&end=01.02.2014

Сервер не принимает более трех запросов в течение минуты на получение статистики для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Запрос тарифов

Для получения списка тарифов указанного Клиента необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/get.php?get_price=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение списка тарифов в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде набора строк:
  • при fmt = 0:
    zone = <zone>, name = <name>, api = <api>, mass = <mass>, mms = <mms>, hlr = <hlr>, call = <call>
    ...

    при наличии установленных индивидуальных тарифов по определенным операторам к ответу добавляется набор строк:
    mccmnc = <mccmnc>, cost = <cost>
    ...

    mail = <mail>

  • при fmt = 1:
    <zone>,<name>,<api>,<mass>,<mms>,<hlr>,<call>
    ...

    <mccmnc>,<cost>
    ...

    <mail>

  • при fmt = 2:
    <price>
    <zones>
    <zone name="<name>" api="<api>" mass="<mass>" mms="<mms>" hlr="<hlr>" call="<call>">zone</zone>
    ...
    </zones>
    <codes>
    <mccmnc cost="<cost>">mccmnc</mccmnc>
    ...
    </codes>
    <mail>mail</mail>
    </price>

  • при fmt = 3:
    {
    "zones": [{
    "zone": "<zone>",
    "name": "<name>",
    "api": "<api>",
    "mass": "<mass>",
    "mms": "<mms>",
    "hlr": "<hlr>",
    "call": "<call>"
    },
    ...
    {
    ...
    }],
    "codes": [{
    "mccmnc": "<mccmnc>",
    "cost": "<cost>"
    },
    ...
    {
    ...
    }],
    "mail": "<mail>"
    }

Где:
<zone> - тарифная зона.
<name> - название тарифной зоны (оператор, страна и т.п.).
<api> - стоимость SMS при отправке через API.
<mass> - стоимость SMS при отправке через личный кабинет.
<mms> - стоимость MMS-сообщения.
<hlr> - стоимость HLR-запроса.
<call> - стоимость голосового сообщения (звонок).
<mccmnc> - код страны и мобильного оператора, для которого установлен индивидуальный тариф.
<cost> - стоимость сообщения по данному индивидуальному тарифу.
<mail> - стоимость e-mail сообщения.

Примеры:

Получение списка тарифов:

https://smsc.ru/sys/get.php?get_price=1&login=alex&psw=123

Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка тарифов для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Получение информации об операторе

Для получения информации об операторе абонента (кроме портированных номеров) необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/info.php?get_operator=1&login=<login>&psw=<password>&phone=<phone>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
phoneНомер телефона абонента или список номеров через запятую.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Оператор не найден.
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов или любых 100 запросов на получение информации об операторе абонента в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

При успешном запросе Сервер возвращает ответ в виде строки или списка строк при множественном запросе (в этом случае в ответ Сервера добавляется параметр "phone"):

  • при fmt = 0: country = <country>, operator = <operator>, region = <region>, mcc = <mcc>, mnc = <mnc>, tz = <tz>

  • при fmt = 1: <country>,<operator>,<region>,<mcc>,<mnc>,<tz>

  • при fmt = 2:
    <info>
    <country>country</country>
    <operator>operator</operator>
    <region>region</region>
    <mcc>mcc</mcc>
    <mnc>mnc</mnc>
    <tz>tz</tz>
    </info>

    При множественном запросе конструкции <info> заключаются в тег <list>.

  • при fmt = 3:
    {
    "country": "<country>",
    "operator": "<operator>",
    "region": "<region>",
    "mcc": "<mcc>",
    "mnc": "<mnc>",
    "tz": "<tz>"
    }

Где:
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – мобильный оператор абонента.
<region> – регион регистрации номера абонента.
<mcc> – числовой код страны абонента.
<mnc> – числовой код оператора абонента.
<tz> – часовой пояс региона регистрации номера абонента.


Пример:

Получение информации об операторе абонента с номером "79999999999":

https://smsc.ru/sys/info.php?get_operator=1&login=alex&psw=123&phone=79999999999

Сервер не принимает более трех одинаковых запросов в течение минуты на получение информации об операторе абонента для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Сервер также блокирует отправку более 100 запросов в течение минуты на получение данных об операторе для снижения нагрузки на базу данных.

Получение данных о короткой ссылке

Для получения информации о короткой ссылке необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/tinyurls.php?get=1&login=<login>&psw=<password>&link=<link>
или https://smsc.ru/sys/tinyurls.php?get=1&login=<login>&psw=<password>&id=<id>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
linkИсходная полная ссылка.
idИдентификатор короткой ссылки. Назначается автоматически при создании.

Все параметры, которые содержат специальные символы (плюс, пробел, символы кириллицы и т.д.), должны быть закодированы при помощи функции urlencode для передачи в HTTP-запросе.


В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Ссылка не найдена.
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение информации о короткой ссылке в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:

  • при fmt = 0: id = <id>, cnt = <cnt>, cnt_mon = <cnt_mon>, cnt_day = <cnt_day>, cnt_yes = <cnt_yes>, cnt_pmon = <cnt_pmon>, link = <link>

  • при fmt = 1: <id>,<cnt>,<cnt_mon>,<cnt_day>,<cnt_yes>,<cnt_pmon>,<link>

  • при fmt = 2:
    <result>
    <id>id</id>
    <cnt>cnt</cnt>
    <cnt_mon>cnt_mon</cnt_mon>
    <cnt_day>cnt_day</cnt_day>
    <cnt_yes>cnt_yes</cnt_yes>
    <cnt_pmon>cnt_pmon</cnt_pmon>
    <link>link</link>
    </result>

  • при fmt = 3:
    {
    "id": "<id>",
    "cnt": "<cnt>",
    "cnt_mon": "<cnt_mon>",
    "cnt_day": "<cnt_day>",
    "cnt_yes": "<cnt_yes>",
    "cnt_pmon": "<cnt_pmon>",
    "link": "<link>"
    }

Где:
<id> – идентификатор короткой ссылки.
<cnt> – количество всех переходов по короткой ссылке.
<cnt_mon> – количество переходов по короткой ссылке за месяц.
<cnt_day> – количество переходов по короткой ссылке за сегодня.
<cnt_yes> – количество переходов по короткой ссылке за вчера.
<cnt_pmon> – количество переходов по короткой ссылке в предыдущем месяце.
<link> – короткая ссылка.


Пример:

Получение информации о короткой ссылке с id="145142":

https://smsc.ru/sys/tinyurls.php?get=1&login=alex&psw=123&id=145142
Получение информации о короткой ссылке по полной исходной ссылке "mywebsite.ru":

https://smsc.ru/sys/tinyurls.php?get=1&login=alex&psw=123&link=mywebsite.ru

Сервер не принимает более трех одинаковых запросов в течение минуты на получение информации о короткой ссылке для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Подключение выделенных номеров для приема сообщений

Вы можете через специальные команды API получать список свободных выделенных номеров для приема SMS-сообщений и подключать любой номер к своему логину, оплачивая стоимость за остаток дней в текущем месяце. При подключении выделенного номера вы автоматически соглашаетесь с правилами использования таких номеров.

Для получения списка доступных выделенных номеров необходимо вызвать методом GET или POST следующий адрес: https://smsc.ru/sys/receive_phones.php?get=1&login=<login>&psw=<password>
Для подключения выделенного номера необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/receive_phones.php?buy=1&login=<login>&psw=<password>&phone=<phone>
Для изменения признака продления выделенного номера на следующий месяц необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/receive_phones.php?chg=1&login=<login>&psw=<password>&phone=<phone>&noprolong=<noprolong>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
phoneПодключаемый номер.
noprolongПризнак продления выделенного номера на следующий месяц. Данный параметр также возможно указывать при подключении номера в команде buy.
0 (по умолчанию) – включить автоматическое продление номера.
1 – отключить автоматическое продление номера.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Недостаточно средств на счете для аренды номера.
4IP-адрес временно заблокирован.
9Попытка отправки более двух одинаковых запросов на получение списка доступных для аренды номеров или подключение номера, либо изменение свойств выделенного номера в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки.

Для получения списка доступных номеров:
  • при fmt = 0:
    phone = <phone>, type = <type>, cost = <cost>, current_cost = <current_cost>, info = <info>
    ...

  • при fmt = 1:
    <phone>,<type>,<cost>,<current_cost>,<info>
    ...

  • при fmt = 2:
    <list>
    <receive_phone>
    <phone>phone</phone>
    <type>type</type>
    <cost>cost</cost>
    <current_cost>current_cost</current_cost>
    <info>info</info>
    </receive_phone>
    ...
    </list>

  • при fmt = 3:
    [{
    "phone": "<phone>",
    "type": <type>,
    "cost": "<cost>",
    "current_cost": "<current_cost>"
    "info": "<info>"
    },
    ...]

Где:
<phone> – номер телефона.
<type> – тип номера: 1,4 – выделенный виртуальный номер, 2 – номер на услуге SIM-хостинга.
<cost> – стоимость аренды номера за полный месяц.
<current_cost> – стоимость аренды номера за остаток дней до конца текущего месяца.
<info> – название оператора и поддерживаемые типы уведомлений.

Для аренды номера:
  • при fmt = 0: cost = <cost>

  • при fmt = 1: <cost>

  • при fmt = 2:
    <phone>
    <cost>cost</cost>
    </phone>

  • при fmt = 3:
    {
    "cost": "<cost>"
    }

Где:
<cost> – сумма, списанная со счета Клиента за аренду номера.

Для изменения признака продления номера:
  • при fmt = 0,1: OK

  • при fmt = 2:
    <result>OK</result>

  • при fmt = 3:
    {
    "result": "OK"
    }



Примеры:

Получение списка свободных номеров для аренды:

https://smsc.ru/sys/receive_phones.php?get=1&login=alex&psw=123
Подключение номера "79999999999":

https://smsc.ru/sys/receive_phones.php?buy=1&login=alex&psw=123&phone=79999999999
Отключение возможности продления выделенного номера "79999999999" на следующий месяц:

https://smsc.ru/sys/receive_phones.php?chg=1&login=alex&psw=123&phone=79999999999&noprolong=1

Сервер не принимает более двух одинаковых запросов в течение минуты на получение списка свободных для аренды номеров или подключение номера, либо изменение свойств выделенного номера для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Передача статусов и сообщений на обработчик Клиента

В личном кабинете Клиента в "Настройках пользователя" имеется возможность указания http(s)-адреса (URL) скрипта для обработки статусов доставки сообщений, входящих SMS-сообщений, а также служебных сообщений (при использовании услуги "Подтверждение номера с помощью звонка") на стороне Клиента. Указанный скрипт будет вызываться Сервером после каждого получения статуса доставки ранее отправленного Клиентом сообщения, после получения входящего SMS-сообщения от абонента или звонка от абонента (при использовании услуги "Подтверждение номера с помощью звонка").

В адресе обработчика можно указать параметр charset для выбора кодировки передаваемых параметров: ?charset=utf-8
?charset=koi8-r
?charset=windows-1251
По умолчанию используется кодировка windows-1251.

Также в адресе обработчика статусов и входящих сообщений можно передавать параметр fmt для указания формата возвращаемых параметров. Возможные значения: fmt=2 (для формата xml) и fmt=3 (для формата json). При передаче параметра fmt кодировка koi8-r не используется.

Для защиты передаваемых данных от подмены в адресе обработчика дополнительно можно указать любой из параметров md5, sha1, crc32, определяющих алгоритм подсчета контрольного параметра с хешем строки:
"id:phone:status:<секретная строка>" − для статуса доставки
"phone:mes:to:<секретная строка>" − для входящего сообщения
"phone:ts:<секретная строка>" − для подтверждения номера с помощью звонка
в виде:
?md5=<секретная строка>
?sha1=<секретная строка>
?crc32=<секретная строка>
В качестве символов секретной строки можно использовать латинские буквы, цифры, минус и подчеркивание. Обработчику будет передан соответствующий параметр, в котором секретная строка будет заменена на значение хеша передаваемых данных.

Все параметры передаются методом POST (для fmt=2 и fmt=3 параметры передаются в теле запроса). В случае необходимости передачи параметров, указанных в URL обработчика методом GET требуется прописать их специальным образом через символ "!" (например, в URL "https://mysite.ru/!param1&param2?param3&param4" параметры param1 и param2 будут переданы методом GET, а param3 и param4 методом POST).

Передаваемые параметры для статуса SMS-сообщения:

ПараметрЗначение
idИдентификатор сообщения.
phoneНомер телефона.
statusСтатус сообщения.
timeВремя изменения статуса (или доставки SMS-сообщения абоненту).
Формат: DD.MM.YY hh:mm:ss (по часовому поясу, указанному в настройках).
tsВремя изменения статуса в виде штампа в секундах.
errКод ошибки, если сообщение не может быть доставлено (список). Передается, если не равен нулю.
syserrДополнительная ошибка от оператора, присутствует не всегда.
cntКоличество частей (при отправке SMS-сообщения) либо количество секунд (при голосовом сообщении (звонке)).
typeТип сообщения (0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 – Звонок, 10 – Viber, 12 – Соцсети).
costСтоимость сообщения.
flagФлаг в виде 2-х байтового числа, содержащий различную информацию о сообщении. Возможны комбинации значений битов разных характеристик.

Биты 0-3 (тип сообщения):
0 (по умолчанию) – SMS.
1 – Flash-SMS.
2 – Бинарное SMS.
3 – Wap-push.
4 – HLR-запрос.
5 – Ping-SMS.
6 – MMS.
7 – Звонок.
8 – E-mail.
10 – Viber.
12 – Соцсети.


Бит 5 – оплата сообщения со второго баланса.
Бит 8 – признак шаблонного сообщения.

Биты 10,9 – тип шаблонного сообщения:
00 - сервисное.
01 - транзакционное.
10 - авторизационное.
11 - рекламное.
senderИмя отправителя, отображаемое в телефоне получателя.
dtmfПоследовательность символов, набираемая абонентом на цифровой клавиатуре во время прослушивания голосового сообщения (звонка).
cmtКомментарии клиента, передаваемые при отправке сообщения. В случае возникновения overtime при голосовом сообщении он будет передан в комментарии отдельной строкой в виде "overtime: mm:ss".
md5MD5-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.
sha1sha1-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.
crc32Контрольная сумма crc32 строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.
Дополнительные параметры для HLR-запросов
imsiУникальный код IMSI SIM-карты абонента.
mscНомер сервис-центра оператора, в сети которого находится абонент.
mccЧисловой код страны абонента.
mncЧисловой код оператора абонента.
cnНазвание страны регистрации абонента.
netНазвание оператора регистрации абонента.
rcnНазвание роуминговой страны абонента при нахождении в чужой сети.
rnetНазвание роумингового оператора абонента при нахождении в чужой сети.

Передаваемые параметры для входящего SMS-сообщения:

ПараметрЗначение
idУникальный идентификатор входящего сообщения, назначаемый Сервером автоматически.
sms_idИдентификатор сообщения, на которое получен ответ. Данный параметр отсутствует, если сообщение от абонента было отправлено на выделенный входящий номер либо при указании абонентом префикса "логин, двоеточие и пробел".
phoneНомер телефона абонента.
mesТекст SMS-сообщения.
toВходящий номер телефона, на который было отправлено сообщение абонентом.
smscSMS-центр оператора, от которого было получено входящее сообщение.
sentВремя отправки сообщения абонентом в виде штампа в секундах.
timeВремя получения сообщения Сервером в виде штампа в секундах.
md5MD5-хеш строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.
sha1sha1-хеш строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.
crc32Контрольная сумма crc32 строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.

Передаваемые параметры при использовании услуги "Подтверждение номера с помощью звонка":

ПараметрЗначение
waitcall1 – признак служебного сообщения для услуги "Подтверждение номера с помощью звонка".
phoneНомер телефона абонента, с которого поступил звонок.
tsВремя звонка.
md5MD5-хеш строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.
sha1sha1-хеш строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.
crc32Контрольная сумма crc32 строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http(s)-адресе обработчика.

Дополнительные параметры, передаваемые при использовании функции голосового меню в звонках:

ПараметрЗначение
calltime Время разговора, по истечении которого была нажата клавиша на цифровой клавиатуре телефона абонента или общее время разговора.
callmenuПоследовательность клавиш цифровой клавиатуры телефона, нажатые абонентом во время прохождения по голосовому меню.
ringtimeВремя ожидания поднятия трубки абонентом.

Помимо описанных выше стандартных параметров Сервер также будет передавать методом POST все параметры, указанные в http(s)-адресе обработчика после знака "?".

Для различия статуса сообщения, входящего SMS-сообщения или служебного сообщения (при использовании услуги "Подтверждение номера с помощью звонка") в одном обработчике можно выполнить проверку на наличие параметра mes (для входящего сообщения) и waitcall (для услуги подтверждения номера): if (isset($_POST["mes"])) {
   
// message
}
elseif (isset(
$_POST["waitcall"])) {
   
// confirmation
}
else {
   
// status
}

Пересылка статусов на обработчик Клиента осуществляется только при отправке сообщений по протоколам HTTP/HTTPS, SMTP или SMPP. При отправке сообщений с личного кабинета передача статусов на обработчик Клиента не происходит.

В случае если от обработчика Клиента вернется ответ с кодом ошибки, отличным от 200 или 404, то Сервер с определенной периодичностью будет повторять запрос на обработчик (1 запрос каждые 4 минуты, всего 50 попыток).

Подключение антиспам проверки (captcha) к сайту

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

Для этого достаточно на форме для отправки сообщений разместить специальный код для вывода картинки (captcha) и поля для ввода кода:

Код с картинки <img src="https://smsc.ru/sys/imgcode.php?1.1" onclick="src+=1" width="50" height="18" border="1">
<
input type="text" size="9" name="code">
и передать его с другими данными формы в соответствующий скрипт отправки сообщений в качестве значения параметра imgcode.

Также с данным параметром необходимо передавать значение IP-адреса пользователя, которому отображалась картинка в качестве значения параметра userip.

Примеры:

Пример скрипта для отправки сообщений, использующего код с картинки (captcha), полученный с формы:

include_once "smsc_api.php";

if (
$_POST["sendsms"]) {
   
$r = send_sms($_POST["phone"], "Ваш код для регистрации на сайте mysite.com 123321.", 0, 0, 0, 0, false, "imgcode=".$_POST["code"]."&userip=".$_SERVER["REMOTE_ADDR"]);

if (
$r[1] > 0)
    echo
"<script>alert('Сообщение отправлено на номер ".$_POST["phone"]."')</script>";
elseif (
$r[1] == -10)
    echo
"<script>alert('Вы ввели неверный код с картинки!')</script>";
}

Подтверждение номера телефона с помощью звонка

При различного рода операциях, таких как восстановление паролей, авторизация в общественных сетях Wi-Fi, подтверждение денежных переводов, вход в личный кабинет и так далее требуется отправка аутентификационных данных. Используя наш API можно организовать процедуру подтверждения номера телефона с помощью звонка самим абонентом.

Для создания запроса на получение номера телефона, по которому абонент должен будет осуществить подтверждающий звонок, необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/wait_call.php?login=<login>&psw=<password>&phone=<phone>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
phoneНомер телефона абонента, с которого будет осуществлен подтверждающий звонок.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Недостаточно средств на счете Клиента.
4IP-адрес временно заблокирован.
5Указанный номер телефона абонента находится в черном списке Клиента.
6Не удалось получить стоимость услуги из-за настроек в личном кабинете Клиента (разрешенные номера, время отправки и т.п.).
9Попытка отправки более пятидесяти одинаковых запросов на получение номера телефона для подтверждения в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки.

  • при fmt = 0: phone = <phone>, all_phones = <all_phones>

  • при fmt = 1 (первым идет номер, на который необходимо позвонить абоненту): <all_phones>

  • при fmt = 2:
    <result>
    <phone>phone</phone>
    <all_phones>
    <phone>phone</phone>
    ...
    <phone>phone</phone>
    </all_phones>
    </result>

  • при fmt = 3:
    {
    "phone": "<phone>",
    "all_phones": [
    <phone>",
    ...
    "<phone>"
    ]
    }

Где:
<phone> – номер телефона, на который в течение 15 минут должен осуществить звонок абонент для подтверждения своего номера телефона.
<all_phones> – список всех возможных номеров телефонов, один из которых был назначен системой для звонка абонента (в зависимости от страны).

После звонка абонента Сервер зафиксирует факт звонка в виде входящего сообщения с текстом "[waitcall]" и отправит на обработчик Клиента всю необходимую информацию о данном звонке.

Сервер не принимает более пятидесяти одинаковых запросов на получение номера телефона для подтверждения в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Действия с отложенными заданиями

Для снижения нагрузки на Сервер при выгрузке большого пакета отправленных сообщений в системе был реализован механизм отложенных заданий. Данный механизм с определенной периодичностью производит выборку активных заданий на выгрузку пакетов сообщений и выполняет их. Это позволяет не только снизить нагрузку на Сервер, но и исключить задержки с формированием и выгрузкой пакетов сообщений в браузере Клиента.

Для получения списка отложенных заданий необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/downloads.php?login=<login>&psw=<password>&get_list=1
Для получения файла задания с отправленными сообщениями необходимо вызвать методом GET или POST адрес: https://smsc.ru/sys/downloads.php?login=<login>&psw=<password>&get_file=1&id=<id> или https://smsc.ru/sys/downloads.php?login=<login>&psw=<password>&get_file=1&name=<name>
Серверу передаются следующие параметры:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
apikeyСпециальный API-ключ, используемый для упрощенной авторизации вместо пары "логин+пароль" (можно создать на данной странице).
cntКоличество отложенных заданий, возвращаемых Сервером.
after_idДанный параметр указывает Серверу на необходимость возврата в ответе списка заданий с идентификаторами, следующими за after_id.
idЗагрузить файл задания с идентификатором, равным id.
nameЗагрузить файл задания с именем name.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
5Отложенная задача или файл для скачивания не найдены в системе.
9Попытка отправки более трех одинаковых запросов на получение списка заданий или на скачивание файла в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки.

При получении списка отложенных заданий:
  • при fmt = 0: id = <id>, name = <name>, status = <status>, created = <created>, time = <time>, file = <file>

  • при fmt = 1: <id>,<name>,<status>,<created>,<time>,<file>

  • при fmt = 2:
    <list>
    <task>
    <id>id</id>
    <name>name</name>
    <status>status</status>
    <created>created</created>
    <time>time</time>
    <file>file</file>
    </task>
    ...
    </list>

  • при fmt = 3:
    [{ "id": id,
    "name": "name",
    "status": "status",
    "created": "created",
    "time": "time",
    "file": "file"
    },
    ...]

Где:
<id> – идентификатор отложенного задания.
<name> – название задания.
<status> – статус задания (0 - ожидает выполнения, 1 - выполняется, 2 - выполнено, 3 - отменено, 4 - ошибка выполнения).
<created> – дата создания задания.
<time> – время запуска задания.
<file> – название файла задания.

После присвоения отложенному заданию статуса 2 (выполнено) появится возможность скачать файл с пакетом отправленных сообщений в формате csv.

Сервер не принимает более трех одинаковых запросов на получение списка заданий или на скачивание файла в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.