Розробникам – Детальніше про Viber-API
Здійснення відправки Viber повідомлень через офіційний канал завдяки протоколу API дає можливість відправляти повідомлення довжиною 1 000 символів з ілюстрованою картинкою і кнопкою на веб сайт (портал)

Відправлення повідомлень на Viber

Щоб почати роботу з нашим сервісом по HTTP API, зробіть наступне:

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

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

Параметри:
ПараметрОписОбов’язковий
usernameТак
api_keyТак
toномер телефону одержувача, в міжнародному форматі, без «+». Mожно вказати кілька номерів, розділених комою («,»), їм прийдуть однакові повідомленняТак
im_senderІм’я відправника. Якщо параметр не вказано, ім’я відправника за замовчуванням буде «IntelTele.com»Ні
im_messageтекст повідомлення, utf-8 url-encoded. Довгий текст до 1000 символівТак
im_imageпосилання на зображення, utf-8 url-encoded. Розмір картинки не повинен перевищувати 400x400px. Формат: JPG/JPEG/PNGНі
im_button_textтекст кнопки, utf-8 url-encoded. Використовується в парі з im_button_linkНі
im_button_linkпосилання для переходу, при натисканні на im_button_text, utf-8 url-encodedНі
im_ttlчас життя повідомлення (Кількість секунд). Min – 15. Max – 86400. За замовчуванням – 15Ні

Якщо номер не має облікового запису Viber, ви можете використовувати можливість відправити своє повідомлення на цей номер у вигляді SMS з альтернативним відправником і текстом повідомлення. Для цього вам потрібно:

  1. sms_source – Ім’я відправника. Може складатися з максимум 11 англійських букв і цифр (дозволяються також символи «._-«), або з максимум 15 цифр. Використовується в парі з sms_message.
  2. sms_message – обов’язковий, текст повідомлення, utf-8 url-encoded. Довгий текст буде розбитий на кілька смс (максимум 7 частин), ціна повідомлення зросте пропорційно кількості частин.
Приклад запиту:

curl “http://api.sms.intel-tele.com/im/send/?username=foo&api_key=bar123&to=7123456789&im_sender=IntelTele.com&im_message=Test+123&im_image=https%3A%2F%2Fintel-tele.com%2Fimages%2Flogo.png&im_button_text=Click&im_button_link=https%3A%2F%2Fintel-tele.com&im_ttl=120”

Приклад відповіді:

{“reply”: [{“status”: “OK”, “cost”: “0.200000”, “country”: “ru”, “mcc”: “250”, “number”: “7123456789”, “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'}]}Довжина повідомлення перевищує дозволену кількість символів (1000)
{'reply':[{'status': "error: sender is banned"}]}ім’я відправника заблоковано як спам. За роз’ясненнями зверніться до технічної підтримки
{'reply':[{'status': 'error: wrong sender'}]}Параметр «from» ім’я відправника не знайдено
Значення полів по кожному номеру в запиті::
{"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: low balance", 'cost':'0.04'}]}Недостатньо коштів для відправки повідомлення
Відповідь сервера при успішній відправці повідомлення в чергу:
{"reply": [{"status": "OK", "cost": "0.186440", "country": "ru", "mcc": "250", "number": "7123456789", "message_id": "3c32257b-e0b8-4be9-b0e6-e871116b4bdf"}]}Смс була успішно відправлена!
Значення полів:
statusСтатус відправки, «OK» означає, що повідомлення було коректно оброблено і відправлено в чергу на відправку зовнішньому смс-провайдеру
costВартість смс в на даний номер
numberНомер, для якого передається статус. Якщо номерів декілька, то для кожного буде свій хеш «{}» всередині списку «reply»
message_idId повідомлення, присвоєний системою. Передаватиметься в асинхронних викликах обробника статусів
countryДволітерний код країни, див. Список кодів по ISO 3166
mccкод країни, див. Mobile Country Code

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

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

msgidID, яке наша система присвоїла повідомленням при відправці. Наприклад, f3e76f4e-d4e3-424b-b26b-c0ebc72892cd
status“Cтатус доставки. Може мати значення:

  • delivrd – повідомлення доставлено.
  • unknown, rejectd, expired, undeliv, deleted – Повідомлення, яке не було доставлене.
datetimeЧас прибуття статусу в систему від зовнішнього смс-центру, у часовому поясі UTC

Синхронна перевірка статусу повідомлення

URL (GET або POST запит):

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

Параметри:
ПараметрОписОбов’язковий
usernameТак
api_keyТак
timeformatопціональний, urlencoded. Задає форматування для дати. [datetime, date, time]. Якщо параметр не заданий, дата не передається у відповіді сервера.
Наприклад, timeformat = datetime видасть дату у вигляді 2017-01-23 12:34:56
Ні
timezoneопціональний, urlencoded. Задає часовий пояс дати, див. список часових поясів. Якщо параметр не заданий, то буде використаний часовий пояс з вашого профілю.Ні
Приклад запиту:

curl “http://api.sms.intel-tele.com/im/status/?username=foo&api_key=bar&requests=3c32257b-e0b8-4be9-b0e6-e871116b4bdf&timezone=UTC&timeformat=datetime”

Приклад відповіді:

{“3c32257b-e0b8-4be9-b0e6-e871116b4bdf”: {“date”: “17-02-2013 12:08:29”, “status”: “rejectd”, “time_zone”: “UTC”}}

Перевірка балансу

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”

Приклад відповіді:

{“credit”: “1.23”}

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