Содержание

Типовые сценарии

В зависимости от целей и задач, которые преследует внешняя система во взаимодействии с системой лояльности ProBonus, можно выделить несколько типовых сценариев интеграции.

В данном разделе описаны базовые кейсы и указаны конкретные методы API, необходимые для их реализации.

Если требуемая вам логика взаимодействия не описана в данном разделе, вы можете написать нам на soft@carbis.ru, и мы обязательно поможем найти решение.

Авторизация для работы с API

API ProBonus предусматривает два различных способа авторизации:

  1. Получение bearer-токена через авторизацию (/api/v0/auth/login) и его дальнейшее обновление (/api/v0/auth/refresh_token).
  2. Работа через токен для API. Все запросы в заголовках содержат постоянный токен.

Поддерживаются оба варианта, но вариант 2 проще и удобнее. В Swagger доступны оба варианта.

Работа с анкетными данными на уровне личного кабинета внешней системы

Дополнительные методы API ProBonus

Начисление лояльности за покупки во внешней системе

Учёт лояльности (скидки/бонусы/потраты) за все покупки, совершённые гостем через систему r_keeper, происходит автоматически, и все данные об этих транзакциях попадают в базу ProBonus.

В некоторых случаях транзакция (которую нужно учесть в рамках ProBonus) происходит за рамками контура r_keeper (например, заказ на доставку, который по итогу не будет создан в r_keeper, т. к. внешний модуль доставки не имеет интеграции с кассовой системой и существует отдельно). При этом сумма покупки должна быть учтена в оборотах по счёту гостя (учёт потрат для расчёта лестницы, начисление/списание бонусов за внешнюю покупку и т. п.).

Для этой цели используется метод /api/v0/external/register_check.

Описание переменных:

Переменная Описание
restCode Код ресторана (из справочника Настройки → Рестораны), к которому нужно отнести данную транзакцию для отчётов.
checkGuid Уникальный номер внешней транзакции (в формате GUID). Важно! Система ProBonus не контролирует уникальность переданного GUID в рамках своей БД. Контроль уникальности лежит на внешней системе.
accountId ID счёта, по которому совершена транзакция.
rkUnit Код станции (рабочего места) в ресторане, к которому нужно отнести данную транзакцию для отчётов. Рекомендуем указывать код, заведомо определяющий, что это не настоящая станция в ресторане. Например, 999 или 888 или любой другой трёхзначный.
externalCheck Номер транзакции во внешней системе (может использоваться для дальнейшей сверки транзакций между двумя отчётами).
bonusSpentSum Сумма (в копейках), которую нужно списать со счёта в оплату транзакции.
discountSum Сумма скидки (в копейках), которую гость получил во внешней системе.
bonusAccruedSum Сумма (в копейках), которую нужно начислить на счёт за данную транзакцию.
moneySpentSum Сумма (в копейках), которую гость потратил (оплатил) в рамках данной транзакции.
checkData Любая текстовая информация о содержимом внешнего чека.

Метод /api/v0/external/return_check используется для отката всех начислений, сделанных в ProBonus, в случае отмены покупки во внешней системе.