Розробникам – Детальніше про 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. Довгий текст буде розбитий на кілька смс (максимум 7 частин), ціна повідомлення зросте пропорційно кількості частин
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_idId повідомлення, присвоєний системою. Передаватиметься в асинхронних виклики обробника статусів
countryДволітерний код країни, див. Список кодів по ISO 3166
mccmncкод оператора, див. Mobile Country Code

Асинхронна передача статусу повідомлень

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

Наш запит передає наступні параметри:

msgidID, яке наша система присвоїла повідомленням при відправці. Наприклад, 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 – плата здіймається тільки за доставлені
* якщо ключ порожній – всі оператори