Центр допомоги SMSBAT REST API: Організації, Гаманці та Альфа-імена

SMSBAT REST API: Організації, Гаманці та Альфа-імена

Документація REST API для управління організаціями клієнтів, генерації договорів, подачі заявок на реєстрацію SMS Альфа-імен, перегляду балансу гаманця та вивантаження фінансової звітності.


1. Загальна Інформація та Авторизація

1.1 Базова адреса API

https://restapi.smsbat.com/api

1.2 Авторизація

Для всіх методів використовується Basic Authorization:

Authorization: Basic base64(login:password)

1.3 Формат даних

  • Content-Type: application/json (якщо не вказано інше, наприклад ZIP для звітів)
  • Кодування: UTF-8
  • Формат дат: ISO 8601 у часовому поясі UTC.

1.4 HTTP коди відповіді

КодОпис
200Успішне виконання запиту
400Помилка в параметрах запиту
401Помилка авторизації
403Доступ заборонений
404Ресурс не знайдено
500Внутрішня помилка сервера

2. Управління Організаціями

2.1 Створення організації

Створює нову організацію в системі SMSBAT та автоматично генерує юридичний договір для неї.

  • Метод: POST
  • URL: https://restapi.smsbat.com/api/client/organization
  • Headers: Authorization: Basic base64(login:password), Content-Type: application/json

Параметри тіла запиту:

ПолеТипОбов’язковеОпис
nameLocalstringТакНазва організації локальною мовою
nameEnstringТакНазва організації англійською
emailstringТакКонтактний email організації
organizationTypeintТакЮридичний тип організації (див. enum нижче)
phonestringТакНомер телефону (нечислові символи вилучаються автоматично)
authorizedPersonDocumentstringНіДокумент, що підтверджує повноваження (наприклад, Статут)
authorizedPersonNamestringНіПІБ уповноваженої особи
authorizedPersonPositionstringНіПосада уповноваженої особи (наприклад, Директор)
bankAccountstringНіРахунок IBAN
bankNamestringНіНазва банку
codestringНіКод ЄДРПОУ / ІПН / РНОКПП
fullLegalNamestringНіПовне юридичне найменування
shortLegalNamestringНіСкорочене юридичне найменування
isTaxPayerboolНіОзнака платника ПДВ
passportIssuedDatedatetimeНіДата видачі паспорта
passportNumberstringНіНомер паспорта
unzrstringНіУНЗР (Унікальний номер запису в Реєстрі)
authTokenobjectНіОпціональний об’єкт для створення токена організації
authToken.namestringУмовноНазва токена (макс. 255 символів)
authToken.descriptionstringУмовноОпис токена (макс. 1000 символів)
authToken.expireDatedatetimeУмовноДата закінчення дії токена (UTC, має бути у майбутньому)

Перелік типів організацій (organizationType):

ЗначенняEnumОпис
1JuridicalPersonЮридична особа
2SoleTraderФОП (Фізична особа-підприємець)
3IndividualФізична особа

Приклад тіла запиту:

{
  "nameLocal": "ТОВ Ромашка",
  "nameEn": "Romashka LLC",
  "email": "office@romashka.ua",
  "organizationType": 1,
  "phone": "+38 (099) 123-45-67",
  "authorizedPersonDocument": "Статут",
  "authorizedPersonName": "Іван Петренко",
  "authorizedPersonPosition": "Директор",
  "bankAccount": "UA123456789012345678901234567",
  "bankName": "ПриватБанк",
  "code": "12345678",
  "fullLegalName": "Товариство з обмеженою відповідальністю \"Ромашка\"",
  "shortLegalName": "ТОВ Ромашка",
  "isTaxPayer": true,
  "passportIssuedDate": "2020-01-01T00:00:00",
  "passportNumber": "МК123456",
  "unzr": "12345678-12345",
  "authToken": {
    "name": "Main API token",
    "description": "Основний токен для інтеграції",
    "expireDate": "2027-08-13T00:00:00"
  }
}

Приклад успішної відповіді (200 OK):

{
  "id": "5f7f9a13-f4ec-49e2-bf7f-80b60c7f55aa",
  "contractNumber": "SBT26UVBR00001",
  "nameLocal": "ТОВ Ромашка",
  "nameEn": "Romashka LLC",
  "email": "office@romashka.ua",
  "organizationType": 1,
  "phone": "380991234567",
  "authorizedPersonDocument": "Статут",
  "authorizedPersonName": "Іван Петренко",
  "authorizedPersonPosition": "Директор",
  "bankAccount": "UA123456789012345678901234567",
  "bankName": "ПриватБанк",
  "code": "12345678",
  "fullLegalName": "Товариство з обмеженою відповідальністю \"Ромашка\"",
  "shortLegalName": "ТОВ Ромашка",
  "isTaxPayer": true,
  "passportIssuedDate": "2020-01-01T00:00:00",
  "passportNumber": "МК123456",
  "unzr": "12345678-12345",
  "authToken": "9f2c1e7a4b8d3f6e2a5c8b1d4f7a3e9c2b5d8f1a"
}

3. Заявки на SMS Альфа-імена

3.1 Створення заявки на реєстрацію Альфа-імені

Подає заявку на реєстрацію SMS Альфа-імені для конкретної організації.

  • Метод: POST
  • URL: https://restapi.smsbat.com/api/AlphaName/sms/application
  • Headers: Authorization: Basic base64(username:password), Content-Type: application/json

Параметри тіла запиту:

ПолеТипОбов’язковеОпис
organizationIdguidТакID організації у системі
alphaNameInstringТакТекст Альфа-імені для реєстрації
edrpoustringТакЄДРПОУ / ІПН
companyDetailsstringТакКороткий опис діяльності компанії
companyWebsitestringТакВеб-сайт компанії
messageExamplestringТакПриклад SMS-повідомлення
countriesarray[string]ТакМасив ISO-кодів країн (наприклад ["UA"])
callbackUrlstringНіCallback URL для сповіщень про статус

Приклад тіла запиту:

{
  "organizationId": "f33cd09e-8796-4eba-906e-6905dea0ffb9",
  "alphaNameIn": "test_alpha",
  "edrpou": "12345678",
  "companyDetails": "Інтернет-магазин",
  "companyWebsite": "https://example.com",
  "messageExample": "Ваш код підтвердження: 1234",
  "countries": [
    "UA"
  ],
  "callbackUrl": "https://example.com/callback"
}

Успішна відповідь (200 OK):

{
  "success": true
}

4. Баланс та Історія Поповнень Гаманця

4.1 Отримання балансу та історії поповнень

Повертає поточний баланс SMS-гаманця для заданого Альфа-імені та історію транзакцій з пагінацією.

  • Метод: GET
  • URL: https://restapi.smsbat.com/api/alphaname/wallet/info
  • Headers: Authorization: Basic base64(login:password)

Параметри запиту (Query Parameters):

ПараметрТипОбов’язковийЗначення за замовчуваннямОпис
externalAlphaNamestringТак—Альфа-ім’я, для якого запитується баланс (наприклад ABC123)
transactionTypesstring[]НіcreditФільтр транзакцій. Дозволені значення: credit, debit. Приклад: ?transactionTypes=credit&transactionTypes=debit
pageintНі1Номер сторінки
pageSizeintНі20Кількість транзакцій на сторінці

Типи транзакцій (transactionTypes):

ЗначенняОпис
creditПоповнення балансу SMS-гаманця
debitСписання коштів з SMS-гаманця

Приклад успішної відповіді (200 OK):

{
  "externalAlphaName": "ABC123",
  "balance": {
    "amount": 125.50,
    "currency": "EUR",
    "lastTransactionAt": "2026-05-19T10:20:00Z"
  },
  "transactions": {
    "total": 42,
    "items": [
      {
        "occurredAt": "2026-05-19T10:20:00Z",
        "type": "credit",
        "amount": 50.00,
        "currency": "EUR"
      },
      {
        "occurredAt": "2026-05-15T08:15:00Z",
        "type": "credit",
        "amount": 100.00,
        "currency": "EUR"
      },
      {
        "occurredAt": "2026-05-12T14:30:00Z",
        "type": "debit",
        "amount": 24.50,
        "currency": "EUR"
      }
    ]
  }
}

5. Вивантаження Витрат та Статусів SMS

5.1 Отримання статистики та звітів по SMS

Повертає ZIP-архів із CSV-файлом, який містить деталізовану статистику SMS-повідомлень, кількість доставлених/недоставлених SMS, тарифи та суму витрат.

  • Метод: GET
  • URL: https://restapi.smsbat.com/api/AlphaName/sms/status
  • Headers: Authorization: Basic base64(login:password)

Параметри запиту (Query Parameters):

ПараметрТипОбов’язковийОпис
dateFromdateТакПочаткова дата періоду (YYYY-MM-DD)
dateTodateТакКінцева дата періоду (YYYY-MM-DD)
alphaNamestringНіФільтр по конкретному Alpha Name

Успішна відповідь (200 OK):

  • Content-Type: application/zip

Колонки у CSV-файлі:

КолонкаОпис
AlphaNameНазва Альфа-імені
CountryНазва / код країни
DateДата відправки
CountЗагальна кількість повідомлень
DeliveredКількість успішно доставлених повідомлень
FailedКількість недоставлених повідомлень
RateТариф за 1 повідомлення
SpentЗагальна сума витрат