Callback-сповіщення
Шлюз самостійно надсилає події на ваш сервер. Адреса береться з поля URL/Email для повідомлення про статуси SMS у налаштуваннях API або з адреси сповіщень вашого виділеного номера.
На цій сторінці описані callback-сповіщення HTTP та XML API. Якщо повідомлення надсилаються через JSON API з параметром hook, шлюз надсилає JSON вебхук, а не ці сповіщення.
Вхідне SMS
Надсилається, коли абонент надсилає SMS на ваш виділений номер.
HTTP метод: POST
Content-Type: multipart/form-data
| Параметр | Тип | Опис |
|---|---|---|
id | number | Ідентифікатор повідомлення, присвоєний шлюзом |
message | string | Текст повідомлення в тому вигляді, в якому його отримано від абонента |
phone | string | Номер телефону абонента |
short_phone | string | Ваш виділений номер, на який надіслано повідомлення |
test | number | 1 — тестове повідомлення, не тарифікується; 0 — реальне повідомлення |
timestamp | number | Unix-час отримання повідомлення |
password | string | md5(api_key). Використовуйте для перевірки того, що запит надійшов від шлюзу |
Приклад запиту
id=1234567&message=INFO%20123&phone=380501234567&short_phone=7060&test=0×tamp=1755772800&password=5f4dcc3b5aa765d61d8327deb882cf99
Відповідь
Тіло вашої відповіді надсилається абоненту у відповідь SMS.
| Ваша відповідь | Що отримає абонент |
|---|---|
Тіло від 1 до 200 символів без тега <html> | Тіло вашої відповіді |
Порожнє тіло, довше за 200 символів або містить тег <html> | Відповідь за замовчуванням, налаштована для виділеного номера |
Таймаути: 5 секунд на з'єднання, 20 секунд сумарно.
Для окремого виділеного номера замість password може бути узгоджено параметр signature. Він розраховується як sha1(значення всіх параметрів, відсортованих за іменем параметра та склеєних поспіль + api_key).
Відповідь Viber 2 Way
Надсилається, коли абонент відповідає на ваше Viber-повідомлення.
Це сповіщення використовується тільки для повідомлень, надісланих не через JSON API. Для повідомлень JSON API відповідь надходить у масиві replies JSON вебхука.
HTTP метод: POST
Content-Type: application/x-www-form-urlencoded
| Параметр | Тип | Опис |
|---|---|---|
action | string | З авжди viber/2way |
sender | string | Ім'я відправника, на яке відповів абонент |
phone | string | Номер телефону абонента |
message | string | Текст відповіді |
datetime | string | Дата і час відповіді Формат: YYYY-MM-DDThh:mm:ss±hh:mm |
Приклад запиту
action=viber%2F2way&sender=SMSTest&phone=380501234567&message=Yes&datetime=2026-08-19T12%3A55%3A39%2B03%3A00
Відповідь
У відповіді буде отримано код 200. Тіло відповіді ігнорується.
Сповіщення не містить ідентифікатора повідомлення — зіставляйте відповідь із повідомленням за phone та sender. Медіафайли, прикріплені до відповіді, цим сповіщенням не передаються, вони доступні тільки в JSON вебхуку.
Таймаути: 5 секунд на з'єднання, 5 секунд сумарно. Запит надсилається один раз, без повторів.
Звіт про доставку на e-mail
Якщо в полі сповіщень указано адресу електронної пошти замість URL, звіт про доставку надсилається не по HTTP, а листом на цю адресу з темою SMS delivery report.
У тілі листа перелічені поля звіту, по одному в рядку, у форматі параметр: значення.
| Параметр | Опис |
|---|---|
id | Ідентифікатор повідомлення, присвоєний шлюзом |
status | Код статусу повідомлення |
datetime | Дата і час зміни статусу Формат: YYYY-MM-DDThh:mm:ss±hh:mm |
parts | Кількість частин, на які розбито повідомлення |
price | Вартість відправки |
api_key | Ваш API ключ |
user_id | Унікальний ідентифікатор повідомлення у вашій системі ⚠️ Присутній, тільки якщо був переданий при відправці |
Приклад листа
id: 1234567
status: 101
datetime: 2026-08-21T10:12:33+03:00
api_key: bb56a4369eb19***cfec6d1776bd25
parts: 1
price: 0.35
user_id: 100500
Звіт на e-mail не підходить для автоматичної обробки — у нього немає підпису, а доставка листа не гарантується. Для інтеграції вказуйте HTTP адресу.