| Отправка 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-сообщения абоненту.
Форматы:
- DDMMYYhhmm или DD.MM.YY hh:mm.
- h1-h2. Задает диапазон времени в часах. Если текущее время меньше h1, то SMS-сообщение
будет отправлено абоненту при наступлении времени h1, если текущее время попадает в промежуток от h1 до h2,
то сообщение будет отправлено немедленно, в другом случае отправка будет выполнена на следующий день при
достижении времени h1. Данная функция, например, полезна для того, чтобы не допустить получение SMS-сообщений
абонентами в ночное время.
- 0ts, где ts – timestamp, время в секундах, прошедшее с 1 января 1970 года.
- +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 | Недостаточно средств на счете Клиента.
|
---|
4 | IP-адрес временно заблокирован из-за частых ошибок в запросах. Подробнее
|
---|
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 |