Посібник з SMSBAT RESTful API
Повний посібник із SMSBAT RESTful API – усе, що вам потрібно знати.
Оновлено: 29 серпня 2025 року
SMSBAT RESTful API дозволяє надсилати повідомлення різних типів: Viber-карусель, Viber-опитування, Viber-промо (зображення, відео), Viber бізнес-чати, OTP-повідомлення (Viber OTP, Flash Call) та налаштовувати резервні маршрути (fallback).
Примітка: Це уніфікований HTTP API для вихідних розсилок. Якщо вам потрібна взаємодія із вхідними ботами (Viber Bot / Telegram Bot), зверніться до документації Cascade API.
1. Протокол
- Протокол: HTTPS
- Тіло запиту: JSON-об'єкт, що містить масив
messages. - Методи:
GETдля отримання даних (перевірка статусу, перевірка балансу).POSTдля створення об'єктів (наприклад, запуск розсилки).PATCHдля зміни або оновлення наявних об'єктів.
2. Авторизація
Для вашої зручності ми надаємо кілька методів авторизації:
- HTTP Basic Authentication (логін і пароль з панелі керування).
- Користувацький заголовок X-Authorization-Key, що містить API Токен.
- Передача API Токена через HTTP Basic Authentication у полі пароля (логін у цьому випадку має бути @).
API Токен можна згенерувати в Особистому кабінеті у розділі Профіль користувача.
Приклади запитів
Через Basic Auth:
curl -H "Content-Type: application/json" \
-X POST -d @/path/to/data.json https://api.smsbat.com/bat/messagelist \
--user user:password
Через X-Authorization-Key:
curl -H "X-Authorization-Key: <token>" \
-H "Content-Type: application/json" \
-X POST -d @/path/to/data.json https://api.smsbat.com/bat/messagelist
3. Надсилання повідомлень
У системі SMSBAT будь-яке відправлення (навіть одного повідомлення) вважається "Розсилкою" (messagelist).
Ендпоінт
- Метод: POST
- URL: https://api.smsbat.com/bat/messagelist
- Заголовки: Content-Type: application/json
Базова структура тіла запиту:
{
"messages": [
{
"from": "ALPHANAME",
"to": "380936670003",
"text": "Перегляньте наші новинки!",
"type": "viber_carousel",
"ttl": 300,
"messageData": { ... }
}
]
}
Обов'язкові поля об'єкта Message:
from: Зареєстроване та верифіковане Альфа-ім'я відправника (бренд).to: Номер телефону одержувача у міжнародному форматі (E.164).type: Тип повідомлення.text: Основний текст повідомлення (опціонально, якщо тип цього не вимагає).
Підтримувані типи (type):
- sms
- viber_service (аБО viber_trans)
- viber_promo
- viber_carousel
- viber_survey
- viber_otp
- viber_session
- flashcall_callback
- flashcall
Додаткові параметри:
customerMessageId: Унікальний ID повідомлення з вашої системи (використовується для звітів).dtSend: Дата/Час (ISO8601) для відкладеної розсилки.dtExpire: Строк дійсности повідомлення, дата/час (ISO8601).ttl: Час "життя" (Time-To-Live) в секундах. Якщо не вказаноdtExpire, час життя вираховується за замовчуванням.
Замовчувані значення TTL (секунди):
sms- 86400 (24г)viber_trans/viber_service- 345600viber_promo- 604800viber_session- 604800
4. Каскадна відправка (Fallback повідомлення)
Ви можете додати масив fallbacks, щоб повідомлення автоматично перемикалося на інший канал зв’язку, якщо поточний недоступний (або вичерпано ttl).
{
"messages": [
{
"from": "ALPHANAME",
"to": "380500505051",
"text": "test message",
"type": "viber_service",
"ttl": 60,
"fallbacks": [
{
"from": "ALPHANAME",
"to": "380936670003",
"text": "test sms fallback message2",
"type": "sms"
}
]
}
]
}
5. Огляд типів повідомлень та messageData
Складні мультимедійні повідомлення вимагають заповнення об'єкта messageData.
5.1 Viber Promo (viber_promo)
Лише зображення
Текст + Кнопка
Відео повідомлення:
"messageData":{
"video": "https://domain.com/test.mp4",
"thumbnail": "https://domain.com/carusel.png",
"fileSize": 12000000,
"duration": 30
}
5.2 Viber Transactional (viber_trans, viber_service)
Якщо у вас є затверджений шаблон транзакційного повідомлення з прикріпленим файлом:
"messageData": {
"fileUrl": "https://domain.com/receipt.pdf",
"fileName": "Receipt.pdf",
"fileType": "pdf"
}
5.3 Viber Carousel (viber_carousel)
Карусель вимагає передачі масиву carousel.items всередині messageData. Можна розмістити від 2 до 5 блоків.
"messageData": {
"carousel": {
"items": [
{
"title": "50% Off Shoes!",
"imageUrl": "https://domain.com/image1.png",
"primaryButton": { "label": "Shop", "actionUrl": "..." },
"secondaryButton": { "label": "Details", "actionUrl": "..." }
}
]
}
}
5.4 Viber Опитування (viber_survey)
Дозволяє створити список варіантів прямо під текстом у стрічці чату.
Заголовок списку задається через поле text.
5.5 Viber OTP (viber_otp)
Використовує шаблонні одноразові паролі. Існує 9 глобальних стандартних шаблонів різними мовами.
"messageData": {
"templateId": "6c929cef-29b4-4349-bc9d-2a07bdbb6e43",
"templateLang": "uk",
"templateParams": {
"pin": "3211",
"business_platform_name": "SMSBAT",
"code_validity_time": 7
}
}
5.6 Flash Call (flashcall)
Дзвінок авторизації. Останні цифри телефонного номера (генерується код) передаються через параметр text. Якщо поле text порожнє, код генерується випадковим чином і повертається у синхронній відповіді 200 OK.