ProBonus API: Рассылки, отзывы и Wallet
Отправка сообщений гостям, загрузка файлов, работа с отзывами, баланс и транзакции для карт Wallet.
Общие правила (адрес, авторизация, форматы, коды ошибок) — на странице ProBonus API. Справочник методов.
Список методов
| Метод | Адрес | Назначение |
|---|---|---|
POST | /api/v0/mailing/add_separate_message | Отправка отдельного сообщения гостю |
POST | /api/v0/mailing/cancel | Отмена рассылки |
GET | /api/v0/mailing/config | Доступные каналы рассылки |
POST | /api/v0/media/upload_files | Загрузка файлов (изображений) |
POST | /api/v0/reviews/add_answer | Ответ на отзыв |
POST | /api/v0/reviews/add_message | Добавление сообщения гостя в отзыв |
POST | /api/v0/reviews/close | Закрытие отзыва |
GET | /api/v0/reviews/get_all_in_process_by_account_id | Незавершённые отзывы гостя |
GET | /api/v0/reviews/get_all_in_process_opened_minutes_ago | Незавершённые отзывы, открытые N минут назад |
GET | /api/v0/reviews/get_by_id_extended | Чтение отзыва по id (расширенно) |
POST | /api/v0/reviews/insert | Создание отзыва |
GET | /api/v0/reviews/list | Список отзывов |
POST | /api/v0/reviews/mark_processed | Отметка отзыва как обработанного |
GET | /api/v0/wallet/get_balance | Баланс для карты Wallet |
GET | /api/v0/wallet/get_transactions | Транзакции для карты Wallet |
POST | /api/v0/wallet/request_invoice | Запрос счёта на оплату Wallet |
Рассылки
Отправка отдельного сообщения гостю
POST /api/v0/mailing/add_separate_message
Авторизация: требуется
Тело запроса — объект AddSeparateMessageDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
accountId | integer | да | Идентификатор счёта |
channels | массив MailingChannelType | да | Каналы рассылки |
text | string | Текст | |
media | массив string | Файлы (изображения) | |
subject | string | Тема | |
reviewId | integer | Идентификатор отзыва |
Ответ 202: без содержимого.
Отмена рассылки
POST /api/v0/mailing/cancel
Авторизация: требуется
Тело запроса — объект IdDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор |
Ответ 202: без содержимого.
Доступные каналы рассылки
GET /api/v0/mailing/config
Авторизация: требуется
Ответ 200 — объект MailingChannelsConfigDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
externalSystemEnabled | boolean | да | |
emailEnabled | boolean | да | |
telegramEnabled | boolean | да | |
walletEnabled | boolean | да | |
maxEnabled | boolean | да |
Файлы
Загрузка файлов (изображений)
POST /api/v0/media/upload_files
Авторизация: требуется
Тело запроса (multipart/form-data) — объект Body_upload_files_api_v0_media_upload_files_post:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
files | массив файл | да | Файлы |
Ответ 200: JSON (структура в схеме не описана).
Отзывы
Ответ на отзыв
POST /api/v0/reviews/add_answer
Авторизация: требуется
Тело запроса — объект ReviewAddAnswerDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
text | string | Текст | |
reviewId | integer | да | Идентификатор отзыва |
accountId | integer | да | Идентификатор счёта |
Ответ 202: без содержимого.
Добавление сообщения гостя в отзыв
POST /api/v0/reviews/add_message
Авторизация: требуется
Тело запроса — объект ReviewMessageInsertDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
text | string | Текст | |
reviewId | integer | да | Отзыв |
media | string | Файлы (изображения) |
Ответ 200 — объект ReviewMessageGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
text | string | Текст | |
reviewId | integer | да | Отзыв |
datetime | datetime | да | Дата и время |
mediaId | integer | Приложенный файл |
Закрытие отзыва
POST /api/v0/reviews/close
Авторизация: требуется
Тело запроса — объект IdDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор |
Ответ 200 — объект ReviewGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор отзыва |
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Счёт гостя |
source | string | Источник отзыва | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Ресторан | |
status | ReviewStatus | да | Статус отзыва |
beginDatetime | datetime | да | Начало диалога |
endDatetime | datetime | Завершение диалога |
Незавершённые отзывы гостя
GET /api/v0/reviews/get_all_in_process_by_account_id
Авторизация: требуется
Параметры запроса:
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
account_id | строка запроса | integer | да | Идентификатор счёта |
Ответ 200 — массив объектов ReviewGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор отзыва |
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Счёт гостя |
source | string | Источник отзыва | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Ресторан | |
status | ReviewStatus | да | Статус отзыва |
beginDatetime | datetime | да | Начало диалога |
endDatetime | datetime | Завершение диалога |
Незавершённые отзывы, открытые N минут назад
GET /api/v0/reviews/get_all_in_process_opened_minutes_ago
Авторизация: требуется
Параметры запроса:
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
minutes | строка запроса | integer | да | Количество минут |
Ответ 200 — массив объектов ReviewWithAdditionalContactInfoGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор |
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Идентификатор счёта |
source | string | Источник | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Идентификатор ресторана | |
status | ReviewStatus | да | Статус |
beginDatetime | datetime | да | Начало диалога |
endDatetime | datetime | Завершение диалога | |
additionalContact | AdditionalContactGetDto | Контакт мессенджера |
Чтение отзыва по id (расширенно)
GET /api/v0/reviews/get_by_id_extended
Авторизация: требуется
Параметры запроса:
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
id | строка запроса | integer | да | Идентификатор объекта |
Ответ 200 — объект ReviewExtendedGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор отзыва |
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Счёт гостя |
source | string | Источник отзыва | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Ресторан | |
status | ReviewStatus | да | Статус отзыва |
beginDatetime | datetime | да | Начало диалога |
endDatetime | datetime | Завершение диалога | |
account | ReviewAccountBaseInfo | да | Счёт |
restaurant | ReviewRestaurantBaseInfo | ||
responseCreators | string | ||
additionalContactType | integer | Тип контакта мессенджера | |
messages | массив ReviewExtendedMessagesItemDto | да | Сообщения |
Создание отзыва
POST /api/v0/reviews/insert
Авторизация: требуется
Тело запроса — объект ReviewInsertDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Счёт гостя |
source | string | Источник отзыва | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Ресторан |
Ответ 200 — объект ReviewGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор отзыва |
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Счёт гостя |
source | string | Источник отзыва | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Ресторан | |
status | ReviewStatus | да | Статус отзыва |
beginDatetime | datetime | да | Начало диалога |
endDatetime | datetime | Завершение диалога |
Список отзывов
GET /api/v0/reviews/list
Авторизация: требуется
Параметры запроса:
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
date_begin | строка запроса | date | да | Начало периода |
date_end | строка запроса | date | да | Конец периода |
max_grade | строка запроса | integer | Максимальная оценка; по умолчанию 5 |
|
restaurant_ids | строка запроса | массив integer | Фильтр по ресторанам (несколько значений) | |
restaurant_other | строка запроса | boolean | Учитывать операции без ресторана (ручные, внешние); по умолчанию false |
Ответ 200 — массив объектов ReviewWithAccountInfoGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор |
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Идентификатор счёта |
source | string | Источник | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Идентификатор ресторана | |
status | ReviewStatus | да | Статус |
beginDatetime | datetime | да | Начало диалога |
endDatetime | datetime | Завершение диалога | |
account | ReviewAccountBaseInfo | да | Счёт |
restaurant | ReviewRestaurantBaseInfo | ||
responseCreators | string | ||
additionalContactType | integer | Тип контакта мессенджера |
Отметка отзыва как обработанного
POST /api/v0/reviews/mark_processed
Авторизация: требуется
Тело запроса — объект IdDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор |
Ответ 200 — объект ReviewGetDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор отзыва |
grade | integer | да | Оценка; мин. 1; макс. 5 |
accountId | integer | да | Счёт гостя |
source | string | Источник отзыва | |
additionalContactId | integer | Контакт мессенджера, через который получен отзыв | |
restaurantId | integer | Ресторан | |
status | ReviewStatus | да | Статус отзыва |
beginDatetime | datetime | да | Начало диалога |
endDatetime | datetime | Завершение диалога |
Wallet
Баланс для карты Wallet
GET /api/v0/wallet/get_balance
Авторизация: требуется
Ответ 200 — объект WalletBalance:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
accountBalance | number | да | Баланс счёта, руб. |
averageCost | number | да | |
forecast | integer | да |
Транзакции для карты Wallet
GET /api/v0/wallet/get_transactions
Авторизация: требуется
Параметры запроса:
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
date_from | строка запроса | date | да | Начало периода |
date_to | строка запроса | date | да | Конец периода |
Ответ 200 — массив объектов WalletTransactionDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
dateTime | datetime | да | Дата и время |
sum | number | Сумма, руб. | |
text | string | да | Текст |
user | string | да | Пользователь |
Запрос счёта на оплату Wallet
POST /api/v0/wallet/request_invoice
Авторизация: требуется
Тело запроса — объект RequestInvoiceDto:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
sum | integer | да | Сумма; мин. 1000 |
tin | string | да | ИНН |
email | string (e-mail) | да | Адрес e-mail |
fullName | string | ФИО гостя | |
phone | string | Номер телефона |
Ответ 204: без содержимого.
Модели данных
Вложенные объекты и перечисления, на которые ссылаются методы этого раздела.
AdditionalContactGetDto
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id | integer | да | Идентификатор контакта |
type | AdditionalContactType | да | Тип контакта (канал мессенджера) |
value | string | да | Значение (идентификатор чата/пользователя в мессенджере) |
accountId | integer | да | Счёт гостя |
AdditionalContactType
Перечисление (integer). Значения: 1, 2.
MailingChannelType
Перечисление (integer). Значения: 0, 1, 2, 3, 4.
ReviewAccountBaseInfo
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
firstName | string | Имя | |
lastName | string | Фамилия | |
middleName | string | Отчество |
ReviewExtendedMessagesItemDto
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
type | ReviewMessageType | да | Тип |
datetime | datetime | да | Дата и время |
text | string | Текст | |
mediaId | integer | Идентификатор файла | |
media | string | Файлы (изображения) | |
responseCreator | string | ||
responseCreatorType | integer |
ReviewMessageType
Перечисление (integer). Значения: 1, 2.
ReviewRestaurantBaseInfo
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
name | string | да | Наименование |
ReviewStatus
Перечисление (integer). Значения: 1, 2, 3.