Розробникам – Детальніше про 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_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 – плата здіймається тільки за доставлені
* якщо ключ порожній – всі оператори