API / HTTP/HTTPS протокол / Разное

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

РАЗНОЕ

Разное

Выгрузка портированных номеров

Для выгрузки полной базы портированных номеров необходимо вызвать методом GET или POST адрес: http://billing.smstraf.ru/sys/get_mnp.php?login=<login>&psw=<password>
Для выгрузки ежедневных обновлений базы портированных номеров необходимо вызвать методом GET или POST адрес: http://billing.smstraf.ru/sys/get_mnp.php?login=<login>&psw=<password>&date=<date>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента или MD5-хеш пароля в нижнем регистре.
dateДата, начиная с которой необходимо выгрузить портированные номера. Формат: 'дд.мм.гггг' или unix timestamp. Возможно указание даты не ранее 7 дней от текущей. Если не указывать, то выгрузится полный список в виде csv-файла mnp_list.csv с форматом строк: "телефон;mccmnc".
mccКод страны (например, Россия – 250).

В случае ошибки Сервер возвращает следующую строку:
  • 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Неверный логин или пароль.
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на выгрузку базы портированных номеров в течение минуты.

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

  • при fmt = 1:
    <phone>,<mccmnc>
    ...

  • при fmt = 2:
    <phones>
    <phone mcc="<mcc>" mnc="<mnc>"></phone>
    ...
    </phones>

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

  • при любом fmt и без параметра date:
    Phone;mccmnc
    <phone>;<mccmnc>
    <phone>;<mccmnc>
    ...

Где:
<phone> - телефон абонента.
<mcc> - mcc код страны.
<mnc> - mnc код оператора. Значение, равное 0 указывает на то, что абонент вернулся к родному оператору.
<mccmnc> - код страны и код оператора вместе. Если mnc равно 0 – значит абонент вернулся к родному оператору.

Примеры:

Выгрузка портированных номеров начиная с "20.09.2014":

http://billing.smstraf.ru/sys/get_mnp.php?login=alex&psw=123&date=20.09.2014

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

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

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

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

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

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

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

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

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

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль.
3Недостаточно средств на счете для аренды номера.
4IP-адрес временно заблокирован.
9Попытка отправки более двух одинаковых запросов на получение списка доступных для аренды номеров или подключение номера, либо изменение свойств выделенного номера в течение минуты.

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

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

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

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

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

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

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

  • при fmt = 1: <cost>

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

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

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

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

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

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



Примеры:

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

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

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

http://billing.smstraf.ru/sys/receive_phones.php?chg=1&login=alex&psw=123&phone=79999999999&noprolong=1

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

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

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

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

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

Все параметры передаются методом POST.

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

ПараметрЗначение
idИдентификатор сообщения.
phoneНомер телефона.
statusСтатус сообщения.
timeВремя изменения статуса (или доставки SMS-сообщения абоненту).
Формат: DD.MM.YY hh:mm:ss (по часовому поясу, указанному в настройках).
tsВремя изменения статуса в виде штампа в секундах.
errКод ошибки, если сообщение не может быть доставлено (список). Передается, если не равен нулю.
cntКоличество частей (при отправке SMS-сообщения) либо 5-секундных блоков (при голосовом сообщении (звонке)).
typeТип сообщения (0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 – Звонок, 10 – Viber).
senderИмя отправителя, отображаемое в телефоне получателя.
dtmfПоследовательность символов, набираемая абонентом на цифровой клавиатуре во время прослушивания голосового сообщения (звонка).
md5MD5-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http-адресе обработчика.
sha1sha1-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http-адресе обработчика.
crc32Контрольная сумма crc32 строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра в http-адресе обработчика.
Дополнительные параметры для HLR-запросов
imsiУникальный код IMSI SIM-карты абонента.
mscНомер сервис-центра оператора, в сети которого находится абонент.
mccЧисловой код страны абонента.
mncЧисловой код оператора абонента.
cnНазвание страны регистрации абонента.
netНазвание оператора регистрации абонента.
rcnНазвание роуминговой страны абонента при нахождении в чужой сети.
rnetНазвание роумингового оператора абонента при нахождении в чужой сети.

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

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

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

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

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

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

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

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

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

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

Примеры:

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

include_once "smsc_api.php";

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

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



=100% cellpadding=0>Изменение тарифов на отправку SMS-сообщений в сеть оператора Билайн (Россия)18.02.2025С 1 марта изменяются цены на отправку SMS-сообщений от бесплатных и платных имен отправителей (транзакционные, сервисные и рекламные сообщения) в сеть оператора связи Билайн (Россия). Повышение вызвано изменением тарифов со стороны оператора связи. Новая стоимость SMS-сообщения указана на сайте на странице Тарифы и Тарифы для оператора Билайн.