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

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


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

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

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

Для отправки SMS-сообщения используйте команду SUBMIT_SM согласно спецификации.

Поддерживаются следующие кодировки:
  • 7-битная GSM для латинского текста с поддержкой европейских символов − (coding = 0);
  • 8-битная ISO-8859-1 (ASCII) для латинского текста или бинарных данных − (coding = 1);
  • UCS2 (UCS-2BE или UTF-16BE) для национальных алфавитов (например, русского) − (coding = 2).
Поле coding кодируется двумя битами в составном поле data_coding, поэтому data_coding = coding * 4.

Для использования кодировки ISO-8859-1 (ASCII) вместо GSM при подключении нужно указать:
system-type = "ISO"
В текст SMS-сообщения можно добавлять комментарии, предназначенные для просмотра отправителем истории сообщений в личном кабинете.

Команда SUBMIT_MULTI для множественной рассылки пока не реализована.

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

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

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

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

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

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

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

Для отправки e-mail сообщения используйте команду SUBMIT_SM с текстом "__MAIL__: <message>\nsubj:<subject>" (текст "__MAIL__", двоеточие, пробел, текст сообщения, перевод строки, слово "subj", двоеточие, тема e-mail сообщения).

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

Для отправки голосового сообщения используйте команду SUBMIT_SM с текстом "__CALL__: <message>\nvoice:<voice>" (текст "__CALL__", двоеточие, пробел, текст сообщения, перевод строки, слово "voice", двоеточие, голос, используемый для озвучивания текста).

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

В процессе формирования сообщения в конце текста можно указать специальную комбинацию "\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки), после которой передать параметр param, определяющий некоторые характеристики звонка (более подробно можно посмотреть в описании).

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

Для отправки viber-сообщения используйте команду SUBMIT_SM с текстом "__VIBER__: <message>" (текст "__VIBER__", двоеточие, пробел, текст сообщения).

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

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

Для отправки soc-сообщения, отправляемого пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент", используйте команду SUBMIT_SM с текстом "__SOC__: <message>" (текст "__SOC__", двоеточие, пробел, текст сообщения).

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

Для отправки кода подтверждения в Telegram используйте команду SUBMIT_SM с текстом "__TGM__: <code>" (текст "__TGM__", двоеточие, пробел, код подтверждения).

К отправке принимаются только числовые коды длиной от 4 до 8 цифр.

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

Для отправки сообщения в чат-бот Telegram используйте команду SUBMIT_SM с текстом "__BOT__: <message>\nbot:@<bot_name>" (текст "__BOT__", двоеточие, пробел, текст сообщения, перевод строки, текст "bot", двоеточие, имя бота).

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

Для отправки HLR-запроса используйте команду SUBMIT_SM с текстом __HLR__. Результат запроса приходит в обычном статусе (Delivery Report), который можно получить как по SMPP-подключению, так и по HTTP на свой обработчик.

Формат статуса с результатом HLR-запроса, возвращаемого по SMPP: id:<id> stat:<status> err:<err> imsi:<imsi> msc:<msc> mcc:<mcc> mnc:<mnc> cn:<cn> net:<net> rcn:<rcn> rnet:<rnet>
Описание параметров:

ПараметрЗначение
idИдентификатор сообщения.
statusСтатус сообщения.
errКод ошибки, если абонент недоступен (список).
imsiУникальный код IMSI SIM-карты абонента.
mscНомер сервис-центра оператора, в сети которого находится абонент.
mccЧисловой код страны абонента.
mncЧисловой код оператора абонента.
cnНазвание страны регистрации абонента.
netНазвание оператора регистрации абонента.
rcnНазвание роуминговой страны абонента при нахождении в чужой сети.
rnetНазвание роумингового оператора абонента при нахождении в чужой сети.

Строковые данные, например, страна и оператор, закодированы через функцию urlencode.

Пример результата HLR-запроса: id:855469 stat:DELIVRD err:000 imsi:250023012345678 msc:79232510066 mcc:250 mnc:02 cn:Russian+Federation net:MegaFON+open+Joint+Stock+Company rcn: rnet:
Пример кода на PHP для разбора строки с результатом HLR-запроса:
$dlr = strtr($dlr, ": ", "=&"); // $dlr - строка статуса
parse_str($dlr, $m); // $m - массив параметров, $m["id"], $m["err"], $m["imsi"] и тд.

Пример разбора через регулярные выражения:
preg_match("/^id:(\d+) stat:(\w+) err:(\d+) imsi:(\d*) msc:(\d*) mcc:(\d*) mnc:(\d*) cn:([^ ]*) net:([^ ]*) rcn:([^ ]*) rnet:([^ ]*)/", $dlr, $m); // $dlr - строка статуса
for ($i = 6; $i <= 9; $i++)
   
$m[$i] = urldecode($m[$i]);
// $m - массив параметров, $m[1] = id, $m[2] = status, $m[3] = err и тд.

Для отправки Ping-SMS используйте команду SUBMIT_SM с текстом __PING__.