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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

РАЗНОЕ

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

Отправка 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"
    }

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