Содержание

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.