Ръководство за RESTful API на SMSBAT
Пълно ръководство за RESTful API на SMSBAT – всичко, което трябва да знаете.
Последно обновяване: 29 Август, 2025
RESTful API на SMSBAT ви позволява да изпращате различни типове съобщения: Viber карусел (carousel), Viber анкета (survey), Viber промо (изображения, видео), бизнес чатове на Viber, OTP съобщения (Viber OTP, Flash Call) и техните резервни (fallback) варианти.
Забележка: Това е унифицираният HTTP API за изходящи съобщения. Ако се нуждаете от интеграции с входящи ботове (Viber Bot / Telegram Bot), моля, вижте документацията за Cascade API.
1. Протокол
- Протокол: HTTPS
- Тяло на заявката (Request Body): JSON обект, съдържащ масив от съобщения (
messages). - Методи:
GETза извличане на данни (статус на съобщението, баланс и др.)POSTза създаване на обекти (напр. иницииране на изпращане)PATCHза промяна на обекти
2. Авторизация (Authorization)
Предоставяме няколко метода за оторизация за ваше удобство:
- HTTP базова автентикация (Basic Authentication) - потребителско име (login) и парола от вашето табло за управление.
- Персонализирана (Custom) HTTP заглавка (Header) X-Authorization-Key, съдържаща API токен.
- Поле за парола за HTTP Basic Authentication, което съдържа API токена (предоставете @ като потребителско име / login).
API Токенът може да бъде генериран в таблото за управление в Потребителски профил (User Profile).
Примери за заявки
С базов Auth (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).
Крайна точка (Endpoint)
- Метод: POST
- URL: https://api.smsbat.com/bat/messagelist
- Заглавки (Headers): Content-Type: application/json
Основна структура (Payload):
{
"messages": [
{
"from": "ALPHANAME",
"to": "380936670003",
"text": "Вижте нашите нови продукти!",
"type": "viber_carousel",
"ttl": 300,
"messageData": { ... }
}
]
}
Задължителни полета за всеки обект (message)
from: Потвърдено алма-име (alpha-name) на подателя.to: Телефонен номер на получателя (формат E.164).type: Тип съобщение (enum).text: Основен текст на съобщението (по избор, ако типът не изисква текст).
Поддържани стойности за type:
- sms
- viber_service (или viber_trans)
- viber_promo
- viber_carousel
- viber_survey
- viber_otp
- viber_session
- flashcall_callback
- flashcall
Незадължителни (опционални) общи полета:
customerMessageId: Стрингов идентификатор във вашата собствена система (използва се за проследяване на callbacks). Трябва да бъде уникален за всяко съобщение.dtSend: ISO8601 дата/час на планирано изпращане в бъдещето.dtExpire: ISO8601 дата/час на краен срок за доставка.ttl: Време за живот (Time-To-Live) в секунди. (АкоdtExpireне е предоставено, API-то изчислява стойностите по подразбиране спрямоtype).
TTL по подразбиране (в секунди):
sms- 86400 (24 часа)viber_trans/viber_service- 345600viber_promo- 604800viber_session- 604800
4. Резервен маршрут (Fallback Routing / Cascading)
Можете да посочите резервна (fallback) опашка, за да осигурите доставката на съобщението, ако основният канал се провали (fail) или изтече.
{
"messages": [
{
"from": "ALPHANAME",
"to": "380500505051",
"text": "тестово съобщение",
"type": "viber_service",
"ttl": 60,
"fallbacks": [
{
"from": "ALPHANAME",
"to": "380936670003",
"text": "тест резервно sms съобщение2",
"type": "sms"
}
]
}
]
}
5. Преглед на видовете съобщения и messageData
Сложните (complex) типове съобщения изискват допълнителни конфигурации, които трябва да се вмъкнат (напишат) в свойството messageData.
5.1 Viber Promo (viber_promo)
Само изображение (Image Only)
Текст + Бутон (Text + Button)
Изображение + Текст + Бутон
Комбинира img, buttonText и buttonAction.
Видео полезен товар (Video Payload):
"messageData":{
"video": "https://domain.com/test.mp4",
"thumbnail": "https://domain.com/carusel.png",
"fileSize": 12000000,
"duration": 30
}
buttonText и buttonAction).
5.2 Транзакционен / Услуга Viber (viber_trans, viber_service)
Ако имате одобрен шаблон, който съдържа прикачен файл:
"messageData": {
"fileUrl": "https://domain.com/receipt.pdf",
"fileName": "Receipt.pdf",
"fileType": "pdf"
}
5.3 Viber Carousel (viber_carousel)
Изисква масив (array) carousel.items в messageData.
Ограничения (Limitations):
- Дължина на елементите: между 2 и 5 елемента
- Заглавие (Title): от 2 до 38 знака
- imageUrl: JPEG/PNG препоръчителен размер 215x185
"messageData": {
"carousel": {
"items": [
{
"title": "50% Отстъпка на обувки!",
"imageUrl": "https://domain.com/image1.png",
"primaryButton": { "label": "Пазарувай", "actionUrl": "..." },
"secondaryButton": { "label": "Подробности", "actionUrl": "..." }
}
]
}
}
5.4 Анкета (Survey) на Viber / Списък (viber_survey)
Създава интерактивна анкета в рамките на чата (chat view).
Свойството (property)text на съобщението действа като заглавие на анкетата (Максимум 85 знака). Можете да предадете (зададете) между 2 и 5 опции (всяка макс. 50 символа).
5.5 Viber OTP (viber_otp)
Използва предварително регистрирани локализирани Viber шаблони в световен мащаб.
"messageData": {
"templateId": "6c929cef-29b4-4349-bc9d-2a07bdbb6e43",
"templateLang": "bg",
"templateParams": {
"pin": "3211",
"business_platform_name": "SMSBAT",
"code_validity_time": 7
}
}
pin, business_platform_name) са строго чувствителни към малки и главни букви (case-sensitive). API-то поддържа различни опции ISO за език (EN, ES, RU, TR, UK, BG и др.).
5.6 Flash Call (Тихо обаждане) (flashcall)
Последните цифри от набиращия се номер (генерираният код) трябва да се подадат чрез параметъра text.
Ако text е пропуснат, кодът се рандомизира (променя произволно) и трябва да го извлечете от синхронното 200 OK Response body на API (messages/text).