SMSTeam

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

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

Для получения стоимости SMS необходимо вызвать методом GET или POST адрес:
http://cp.smsteam.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&cost=1

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

Параметр Значение
login Логин Клиента.
psw Пароль Клиента или MD5-хеш пароля в нижнем регистре.
phones Номер или разделенный запятой или точкой с запятой список номеров мобильных телефонов в международном формате, на которые отправляется сообщение. Номера могут передаваться без знака «+». Если номер передан без знака «+», то он может быть исправлен автоматическим форматированием и приведен к правильному международному формату. Таким образом, некоторые ошибки при вводе номеров телефонов могут быть исправлены автоматически.
Для отключения автоисправления передайте номер со знаком «+».
mes Текст отправляемого сообщения. Максимальный размер – 800 символов. Сообщение при необходимости будет разбито на несколько SMS, отправленных абоненту и оплаченных по отдельности. Размер одного SMS – 160 символов в латинице или 70 символов в кириллице. При разбивке сообщения на несколько SMS в каждую часть добавляется заголовок для объединения частей в одно сообщение на телефоне получателя, и максимальная длина становится
67 для кириллицы и 153 для латинских букв.
Дополнительные параметры
id Идентификатор сообщения. Назначается Клиентом. Служит для дальнейшей идентификации сообщения. Если не указывать, то будет назначен автоматически. Не обязательно уникален. В случае 2-х одинаковых идентификаторов по запросу статуса будет возвращен статус последнего сообщения. Идентификатор представляет собой 32-битное число в диапазоне от 1 до 2147483647.
sender Имя отправителя, отображаемое в телефоне получателя. Разрешены английские буквы, цифры, пробел и некоторые символы. Длина – 11 символов или 15 цифр. Все имена регистрируются в личном кабинете. Динамическое имя включается по запросу. Для отключения Sender ID по умолчанию необходимо в качестве имени передать пустую строку.
translit Признак того, что сообщение необходимо перевести в транслит.
0 (по умолчанию) – не переводить в транслит.1 – перевести в транслит в виде «translit».
2 – перевести в транслит в виде «mpaHc/Ium».
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).
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 не используется.
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

Строки разделяются через символ перевода. В качестве phones можно указать несколько номеров телефонов через запятую. Если в сообщении mes требуется передать перевод строки, то укажите его через \n. Параметр list позволяет выполнять множественную рассылку с разными сообщениями на несколько телефонов однимhttp-запросом. Весь параметр должен быть закодирован с помощью функции urlencode.
valid Срок «жизни» SMS-сообщения. Определяет время, в течение которого оператор будет пытаться доставить сообщение абоненту. Диапазон от 1 до 24 часов. Также возможно передавать время в формате чч:мм в диапазоне от 00:01 до 24:00.
maxsms Максимальное количество SMS, на которые может разбиться длинное сообщение. Слишком длинные сообщения будут обрезаться так, чтобы не переполнить количество SMS, требуемых для их передачи. Этим параметром вы можете ограничить максимальную стоимость сообщений, так как за каждое SMS снимается отдельная плата.
err Признак необходимости добавления в ответ сервера списка ошибочных номеров.
0 (по умолчанию) – не добавлять список (обычный ответ сервера).
1 – в ответ добавляется список ошибочных номеров телефонов с соответствующими статусами.
pp Осуществляет привязку Клиента в качестве реферала к определенному ID партнера. При передаче данного параметра в виде «pp=<ID партнера>» Клиент с логином login становится рефералом партнера с ID <ID партнера>. Сделать рефералом можно только нового Клиента, зарегистрированного в сервисе не более месяца назад и имеющего не более 1000 отправленных сообщений, который еще не является рефералом другого партнера. Данный параметр
позволяет устанавливать Клиента в качестве реферала из своих сервисов и программ, где нет возможности зарегистрировать Клиента по реферальной ссылке.

Обязательными параметрами являются 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 Неверный логин или пароль.
3 Недостаточно средств на счету Клиента.
4 IP-адрес временно заблокирован.
5 Неверный формат даты.
6 Сообщение запрещено.
7 Неверный формат номера телефона.
8 Сообщение на указанный номер не может быть доставлено.
9 Попытка отправки более двух одинаковых запросов на передачу SMS-сообщения либо пяти одинаковых запросов на получение стоимости сообщения либо пяти запросов на получение статуса одного и того же сообщения либо десяти запросов на получение баланса в течение минуты. Также данная ошибка возникает при попытке отправки более трех одинаковых запросов на операции с группами или контактами в течение минуты.

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

  • при 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>»
    }

Где:
<n> – это количество отправленных SMS, вычисляемое как количество SMS в сообщении, умноженное на количество
получателей.
<id> – идентификатор сообщения, переданный Клиентом или назначенный Сервером автоматически.
<cost> – стоимость рассылки в рублях.
<balance> – новый баланс Клиента в рублях.

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

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

Примеры:

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

http://cp.smsteam.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello!

http://cp.smsteam.ru/sys/send.php?login=alex&psw=123&list=79999999999:Hello!%0A79999999999:Hello\nworld!

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

http://cp.smsteam.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» выделено курсивом и подчеркнуто:

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

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

http://cp.smsteam.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=0605040B8423F0DC0601AE02056A0045C60C037761702E736D73632E72752F0001037761702E736D73632E7275000101&bin=2

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

http://cp.smsteam.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=http://smsteam.ru%0ASMSTeam.RU&push=1