ProBonus API: Внешние продажи, импорт и инфокиоск
Регистрация продаж из внешних систем (не r_keeper), импорт счетов и потрат, страницы инфокиоска.
Общие правила (адрес, авторизация, форматы, коды ошибок) — на странице ProBonus API. Справочник методов.
Список методов
| Метод | Адрес | Назначение |
|---|---|---|
POST | /api/v0/external/register_check | Регистрация внешней продажи |
POST | /api/v0/external/return_check | Отмена внешней продажи |
POST | /api/v0/import_data/import_parsed_rk_pds_row | Импорт в группу счетов |
POST | /api/v0/import_data/import_parsed_spending | Импорт распарсенных потрат в БД |
POST | /api/v0/import_data/import_previous_telegram_bot_db | Импорт базы предыдущей версии Telegram-бота |
GET | /api/v0/import_data/import_task_status | Проверка статуса задачи импорта по task_id |
POST | /api/v0/import_data/parse_rk_pds_csv | Загрузка (импорт) счетов из файла обмена (CSV) |
POST | /api/v0/import_data/parse_spending_csv | Парсинг CSV файла с потратами (идентификатор, сумма) |
GET | /screen/client/get/ | Страница инфокиоска (ввод карты) |
POST | /screen/client/get/ | Поиск гостя на инфокиоске |
Внешние продажи
Регистрация внешней продажи
POST /api/v0/external/register_check
Авторизация: требуется
Используется для начисления и списания бонусов по чекам внешних систем (не r_keeper): сайт, доставка, другая кассовая система.
Тело запроса — объект ExternalCheckRegisterDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
restCode | string | да | Код ресторана (9 цифр) |
checkGuid | uuid | да | Уникальный GUID чека во внешней системе; по нему выполняется отмена продажи |
accountId | integer | да | Идентификатор счёта |
rkUnit | integer | Номер кассы (станции) во внешней системе | |
externalCheck | integer | да | Номер чека во внешней системе |
bonusSpentSum | integer | да | Сумма оплаты бонусами |
discountSum | integer | да | Сумма скидки |
bonusAccruedSum | integer | да | Сумма начисляемых бонусов |
moneySpentSum | integer | да | Сумма оплаты деньгами |
checkData | string | Содержимое чека (строки, оплаты) в формате JSON |
Ответ 200: JSON (структура в схеме не описана).
Отмена внешней продажи
POST /api/v0/external/return_check
Авторизация: требуется
Тело запроса — объект ExternalCheckRefundDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
checkGuid | uuid | да | GUID чека, переданный при регистрации продажи |
Ответ 200: JSON (структура в схеме не описана).
Импорт данных
Импорт в группу счетов
POST /api/v0/import_data/import_parsed_rk_pds_row
Авторизация: требуется
Тело запроса — объект ImportParsedRkPdsPrm:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
accountGroupId | integer | да | Идентификатор группы счетов |
rows | массив CsvRkParsedItemDto | да | Строки отчёта |
Ответ 200 — объект ImportTaskStartedDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
taskId | string | да | Идентификатор фоновой задачи |
status | string | Статус; по умолчанию «started» |
Импорт распарсенных потрат в БД
POST /api/v0/import_data/import_parsed_spending
Авторизация: требуется
Тело запроса — объект ImportParsedSpendingPrm:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
rows | массив SpendingImportItemDto | да | Строки отчёта |
Ответ 200 — объект ImportTaskStartedDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
taskId | string | да | Идентификатор фоновой задачи |
status | string | Статус; по умолчанию «started» |
Импорт базы предыдущей версии Telegram-бота
POST /api/v0/import_data/import_previous_telegram_bot_db
Авторизация: требуется
Тело запроса (multipart/form-data) — объект Body_import_previous_telegram_bot_database_api_v0_import_data_import_previous_telegram_bot_db_post:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
db_file | файл | да |
Ответ 200 — объект TelegramBotDbImportResult:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
overallRows | integer | да | Всего строк |
importedRows | integer | да | Импортировано строк |
Проверка статуса задачи импорта по task_id
GET /api/v0/import_data/import_task_status
Авторизация: требуется
Параметры запроса:
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
task_id | строка запроса | string | да | Идентификатор фоновой задачи импорта |
Ответ 200 — объект BackgroundTaskProgressDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
doc | массив любой | ||
log | массив любой | ||
status | BackgroundTaskState | Статус; по умолчанию «NONE» |
|
text | string | Текст |
Загрузка (импорт) счетов из файла обмена (CSV)
POST /api/v0/import_data/parse_rk_pds_csv
Авторизация: требуется
Тело запроса (multipart/form-data) — объект Body_parse_rk_pds_csv_api_v0_import_data_parse_rk_pds_csv_post:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
csv_file | файл | да | CSV-файл |
parse_config | string | Настройки разбора файла (JSON) |
Ответ 200 — массив объектов CsvRkParsedItemDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
row | integer | Строка | |
card | string(50) | Карта | |
restSum | number | ||
rkCode | integer | Код скидки (бонуса) r_keeper | |
rkBonusTypeCode | integer | Код типа бонуса r_keeper | |
fName | string(100) | Имя | |
lName | string(100) | Фамилия | |
mName | string(100) | Отчество | |
phone1 | string | ||
phone2 | string | ||
email | string (e-mail) | Адрес e-mail | |
birthday | date | Дата рождения | |
text | string | Текст | |
sex | string | Пол | |
parseInfo | массив string | Результат разбора файла | |
screenMessage | string(255) | Сообщение для экрана | |
checkMessage | string(255) | Сообщение для печати | |
wallet | string(50) | ||
validTo | date |
Парсинг CSV файла с потратами (идентификатор, сумма)
POST /api/v0/import_data/parse_spending_csv
Авторизация: требуется
Тело запроса (multipart/form-data) — объект Body_parse_spending_csv_api_v0_import_data_parse_spending_csv_post:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
csv_file | файл | да | CSV-файл |
parse_config | string | Настройки разбора файла (JSON) |
Ответ 200 — массив объектов SpendingImportItemDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
row | integer | Строка | |
identifier | string(50) | Идентификатор | |
amount | integer | Сумма | |
parseInfo | массив string | Результат разбора файла |
Инфокиоск
Страница инфокиоска (ввод карты)
GET /screen/client/get/
Авторизация: не требуется
Ответ 200: text/html.
Поиск гостя на инфокиоске
POST /screen/client/get/
Авторизация: не требуется
Тело запроса (application/x-www-form-urlencoded) — объект post (Body_find_guest_screen_client_get):
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
code | string | да | Код |
Ответ 200: text/html.
Модели данных
Вложенные объекты и перечисления, на которые ссылаются методы этого раздела.
BackgroundTaskState
Перечисление (string). Значения: none, process, ok, error.
none — нет задачи, process — выполняется, ok — завершена успешно, error — завершена с ошибкой
CsvRkParsedItemDto
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
row | integer | Строка | |
card | string(50) | Карта | |
restSum | number | ||
rkCode | integer | Код скидки (бонуса) r_keeper | |
rkBonusTypeCode | integer | Код типа бонуса r_keeper | |
fName | string(100) | Имя | |
lName | string(100) | Фамилия | |
mName | string(100) | Отчество | |
phone1 | string | ||
phone2 | string | ||
email | string (e-mail) | Адрес e-mail | |
birthday | date | Дата рождения | |
text | string | Текст | |
sex | string | Пол | |
parseInfo | массив string | Результат разбора файла | |
screenMessage | string(255) | Сообщение для экрана | |
checkMessage | string(255) | Сообщение для печати | |
wallet | string(50) | ||
validTo | date |
SpendingImportItemDto
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
row | integer | Строка | |
identifier | string(50) | Идентификатор | |
amount | integer | Сумма | |
parseInfo | массив string | Результат разбора файла |