Разработчикам — Подробнее о SMS-API
Описание API
SMPP 3.4

1С-Битрикс

Документация по HTTP API для разработчика

Взаимодействие с API осуществляется по протоколу HTTP, параметры передаются методом GET или POST.
Одна из самых удобных (элементарных, доступных) интеграций для отправки
Функционал протокола позволяет отправлять SMS сообщения, получать статусы доставки, проверять статусы сообщений по msg_id, проверять баланс.

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

Чтобы начать работу с нашим сервисом по HTTP API, сделайте следующее:
  1. Пополните ваш баланс, если он на нуле;
  2. Создайте новый API-ключ. Вы можете иметь до 5 ключей, создавая и удаляя их по вашему усмотрению в любое время;
  3. Укажите IP (один, несколько, или диапазон), с которого будут приходить сообщения.
Адрес HTTP API:

http://api.sms.intel-tele.com/message/send/

Параметры:
username обязательный, ваш логин
api_key обязательный
from Имя отправителя. Mожет состоять из максимум 11 английских букв и цифр (допускаются также символы «._- «), или из максимум 15 цифр. Если параметр не указан, имя отправителя по умолчанию будет «message»
to обязательный, номер телефона получателя, в международном формате, без «+». Mожно указать несколько номеров, разделенных запятой («,»), им придут одинаковые сообщения
message обязательный, текст сообщения, utf-8 url-encoded. Длинный текст будет разбит на несколько смс (максимум 4 части), цена сообщения возрастёт пропорционально количеству частей
priority доп. параметр, задаёт приоритет сообщения при постановке в очередь и передаче внешним смс-центрам. integer от 0 (обычный приоритет) до 3 (наивысший), по умолчанию 0
system_type доп. параметр, строка из английских букв или цифр, до 8 символов длиной, позволяет логически группировать сообщения в статистике
Пример запроса:

curl «http://api.sms.intel-tele.com/message/send/?username=foo&api_key=bar&from=test&to=7123456789&message=Test+123»

Пример ответа:

{«reply»: [{«status»: «OK», «cost»: «0.123456», «country»: «ru», «mccmnc»: «250XX», «number»: «7123456789», «parts»: 1, «message_id»: «3c32257b-e0b8-4be9-b0e6-e871116b4bdf»}]}

Ответ сервера (JSON) (Ошибки) :

Значения полей по всему запросу:
Ответ Описание
{'reply':[{'status': 'error: wrong username/api_key'}]} ошибка авторизации (введен неправильный логин или API Key)
{'reply':[{'status': 'error: wrong api key'}]} API-ключ не подходит
{'reply':[{'status': 'error: bruteforcing detected'}]} было обнаружено слишком много неавторизованных запросов, данный IP будет заблокирован на 5 минут
{'reply':[{'status': 'error: ip not allowed'}]} попытка отправки с незарегистрированного IP
{'reply':[{'status': "error: can't send message"}]} отсутствуют параметры «message» или «to», отправка невозможна
{'reply': [{'status': 'error: message is too long'}]} длина сообщения превышает разрешенное кол-во частей смс (4)
{'reply':[{'status': "error: sender addr is banned"}]} имя отправителя заблокировано как спам. За разъяснениями обратитесь в техническую поддержку
{'reply':[{'status': 'error: wrong sender addr'}]} параметр «from» превышает 15 цифр или 11 букво-цифр
Значения полей по каждому номеру в запросе:
Ответ Описание
{"reply": [{"number": "7123456789", "status": "error: number is blacklisted"}]} номер телефона получателя был внесён в чёрный список. За разъяснениями обратитесь в техническую поддержку
{"reply": [{'number': '7123456789', 'status': "error: repeat detected"}]} обнаружено и заблокировано повторное сообщение на один и тот же номер в течении 1 минуты
{'reply':[{'number':'7123456789', 'status':"error: can't determine country"}]} невозможно определить страну
{'reply':[{'number':'7123456789', 'status':"error: no route to country"}]} данная страна не прописана в таблице роутинга на вашем аккаунте, следует обратиться к менеджеру
{'reply':[{'number':'7123456789', 'status':"error: route can't handle the message"}]} причина может быть в отсутствии поддержки некоторых цифровых подписей (шорткодов) в параметре «from» некоторыми смс-провайдерами, или в отсутствии поддержки определенного оператора по некоторым странам
{'reply':[{'number':'7123456789', 'status':"error: low balance", 'parts':1, 'cost':'0.04'}]} недостаточно средств для отправки сообщения
Ответ сервера при успешной постановке сообщения в очередь:
Ответ Описание
{"reply": [{"status": "OK", "cost": "0.186440", "country": "ru", "mccmnc": "250XX", "number": "7123456789", "parts": 1, "message_id": "3c32257b-e0b8-4be9-b0e6-e871116b4bdf"}]} смс была успешно отправлена!
Значения полей:
status статус отправки, «OK» означает, что сообщение было корректно обработано и поставлено в очередь на отправку внешнему смс-провайдеру
parts количество смс, на которые было разбито сообщение
cost стоимость смс в на данный номер (учитывая parts)
number номер, для которого передается статус. если номеров несколько, то для каждого будет свой хэш «{}» внутри списка «reply»
message_id id сообщения, присвоенный системой. будет передаваться в асинхронных вызовах обработчика статусов
country двухбуквенный код страны, см Список кодов по ISO 3166
mccmnc код оператора, см. Mobile Country Code

Асинхронная передача статуса сообщений

При необходимости, система может совершать GET или POST запросы на некий URL, записанный в вашем профиле. В запросах будут передаваться статусы сообщений, по мере их доставки абонентам.

Наш запрос передает следующие параметры:

msgid ID, которое наша система присвоила сообщению при отправке. Например, f3e76f4e-d4e3-424b-b26b-c0ebc72892cd
status статус доставки. Может иметь значения:

  • delivrd — сообщение доставлено.
  • unknown , rejectd , expired , undeliv , deleted — сообщение не доставлено.
dlr_timestamp время прибытия статуса в систему от внешнего смс-центра, в часовом поясе UTC

Синхронная проверка статуса сообщения

URL (GET или POST запрос):

http://api.sms.intel-tele.com/message/status/

Параметры:
username обязательный
api_key обязательный
requests обязательный, один или несколько msg_ids, разделенных запятыми
timeformat опциональный, urlencoded. Задаёт форматирование для даты. Используются символы из таблицы форматирования даты языка Python. Если параметр не задан, дата не передаётся в ответе сервера.

Например, timeformat=%d/%m/%Y %H:%M:%S выдаст дату в виде 17/02/2013 19:08:29

timezone опциональный, urlencoded. Задаёт часовой пояс даты, см список часовых поясов. Если параметр не задан, то будет использован часовой пояс из вашего профиля
Пример запроса:

curl «http://api.sms.intel-tele.com/message/status/?username=foo&api_key=bar&requests=3c32257b-e0b8-4be9-b0e6-e871116b4bdf&timezone=UTC&timeformat=%25d-%25m-%25Y%20%25H:%25M:%25ST%25z»

Пример ответа:

{«3c32257b-e0b8-4be9-b0e6-e871116b4bdf»: {«date»: «17-02-2013 12:08:29T+0000», «status»: «rejectd»}}

Проверка баланса

URL (GET или POST запрос):

http://api.sms.intel-tele.com/balance/

Параметры:
Параметр Описание Обязательный
username Да
api_key Да
Пример запроса:

curl «http://api.sms.intel-tele.com/balance/?username=foo&api_key=bar»

Пример ответа:

{«balance»: «-0.42»}

Проверка кредита

URL (GET или POST запрос):

http://api.sms.intel-tele.com/credit/

Параметры:
Параметр Описание Обязательный
username Да
api_key Да
Пример запроса:

curl «http://api.sms.intel-tele.com/credit/?username=foo&api_key=bar»

Пример ответа:

 

Запрос Тарифов

URL (GET или POST запрос):

http://api.sms.intel-tele.com/rates/

Параметры:
Параметр Описание Обязательный
username Да
api_key Да
Пример запроса:

curl «http://api.sms.intel-tele.com/rates/?username=foo&api_key=bar»

Ответ сервера (JSON):
Значения полей по всему запросу:
{'message': 'Invalid auth', 'error': true} ошибка авторизации (введен неправильный логин или API Key)
{'status': 'bruteforcing detected', 'error': true} было обнаружено слишком много неавторизованных запросов, данный IP будет заблокирован на 5 минут
{'status': 'ip not allowed', 'error': true} попытка отправки с незарегистрированного IP
Ответ сервера при успешном запросе:

{«user»: {«ru»: {«01»: [0.123456, 0], «»: [0.234567, 0]}}}

Значения полей:
Поле Описание
user
ru двухбуквенный ISO код страны
"01": [0.123456,0], MNC оператора:
1-й параметр: стоимость за 1 смс
2-й параметр: 0 — плата снимается за все смс, 1 — плата снимается только за доставленные
* если ключ пустой — все операторы