Главная
api-pay api-b2b api-b2b-agent api-bonus api-bonus-lk api-support
api-benzuber api-benzuber (goods) api-benzuber (с эквайрингом) webview-benzuber Сценарии заправки Случаи изменения заказов Чек-лист приложений
GS-Планшет GS-Desktop GS-Carwash
Поиск документов

Авторизация

или просто отсканируйте QR-код телефоном с установленным приложением Benzuber
Для получения полного доступа к документации введите свой номер сотового телефона.
При необходимости обращайтесь в службу поддержки Benzuber или по телефону 8 (800) 250-98-93.

API-Bonus BENZUBER (1.0)

API-Bonus Benzuber – протокол для обеспечения взаимодействия между учетной системой партнера (PS) и сервисом Benzuber (BZ).

Протокол позволяет реализовывать сценарии взаимодействия и обмен информацией о применимости бонусных систем партнера с информационным сервисом «BENZUBER» для решения бизнес-задач каждого участника.

ВАЖНО

Использование этого API доступно для бонусных систем партнёра расположенных в системе ПАРТНЁРА. Т.е. пользователи, бонусный баланс и бонусные операции хранятся и обрабатываются на стороне партнёра.

Функционал API является обязательным дополнение для возможности использования бонусов партнёра. Личный кабинет "Бонусной системы партнёра" используется для визуализации данных по использованию бонусов и взаиморасчетов.

img

Доступные запросы:

img

Для обеспечения безопасного доступа и идентификации партнера для работы с протоколом предоставляются логин login и уникальный ключ apikey, которые используется для авторизации и "подписи" каждого запроса.

Базовый URL_BZ – адрес для обращения к серверу BZ. HTTP/HTTPS POST-запрос вида: URL_BZ+/api/v1/команда?id={login}&crc={подпись}

Базовый URL_PS – адрес для обращения к партнеру. Для реализации запросов от Benzuber к партнеру. Все запросы выполняются HTTP/HTTPS POST-запросами вида: URL_PS+/команда?id={login}&crc={подпись}.

Запрос:
   {
       "параметр":"значение",
       ...
   }
Ответ:
   {
       "параметр":"значение",
       ...
   }

HTTP коды ответа на запросы:

200 – запрос выполнен успешно
404 – метод не найден
500 – ошибка выполнения запроса, некорректные параметры запроса

HTTP-код ответа при выполнении запросов означает только состояние получения (доставки) запроса, без учета анализа содержимого запроса. В случае успешного получения запроса сервером (статус 200), в ответе содержится параметр response, который определяет фактическое состояние обработки содержимого полученного запроса.

Возможные варианты response

Значение Описание
success Запрос успешно обработан.
fail Ошибка выполнения запроса.
unauthorized Неправильные логин/ключ/подпись.
invalid_params Неверные или отстутствующие параметры запроса
not_found не найден пользователь
internal_error Внутренняя ошибка сервера, необходимо выполнить запрос повторно.
. . . Прочие варианты, специфичные для каждого отдельного запроса, отражающие необходимую суть ответа

Подпись в запросах (CRC-контрольная сумма)

Для обеспечения безопасности, достоверности и проверки целостности содержимого, во всех запросах, содержится обязательный параметр CRC (контрольной суммы), являющийся подписью запроса.

Алгоритм формирования подписи:

  1. Взять JSON-строку передаваемого тела запроса ( $string = string(JSON) )
  2. Добавить в конец строки Apikey ( $string .= $apikey;)
  3. Рассчитывается SHA-1 полученной строки ( sha1( $string ) )
  4. Полученное значение используется как параметр "подписи" crc в запросе

Пример:

apikey = "pass425"
тело запроса (json): {"client_id":"abcdefg","timestamp":"123545"}

1) $string = '{"client_id":"abcdefg","timestamp":"123545"}'   //в строку
2) $string ='{"client_id":"abcdefg","timestamp":"123545"}pass425' //+apikey
3) sha1($string) = "d86624155c60bde94321a79ca69f4f2545adfb50"

Запросы от партнера в систему Benzuber:

Добавление пользователя партнера в Benzuber

Для возможности использования бонусов пользователя в Benzuber, первично необходимо создать пользователя. Первичная идентификация пользователя происходит по сотовому номеру пользователя. Дальнейшие операции по идентификатору пользователя в системе партнера.

Запрос

(POST) URL_BZ + /api/v1/clients/add/
Request body schema application/json

{
    "client_id": (string),
    "client_phone": (string),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
client_id
Строка
Идентификатор пользователя в системе партнёра
Обязательный
client_phone
Строка
Сотовый номер пользователя в системе партнёра в формате 10ти цифр полного номера без разделителей и прочих символов
(пример: 79221234567)
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
    "response": (string)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса

Удаление пользователя партнера в Benzuber

В случае необходимости запрета использования бонусов пользователем, необходимо удалить пользователя партнера из Benzuber

Запрос

(POST) URL_BZ + /api/v1/clients/remove/
Request body schema application/json

{
    "client_id": (string),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
client_id
Строка
Идентификатор пользователя в системе партнёра
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
    "response": (string)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса

Запрос актуального списка пользователей партнера в Benzuber

С целью актуализации и синхронизации списка пользователей, которым предоставлено использование бонусов в Benzuber, можно получить текущий полный список добавленных пользователей.

Запрос

(POST) URL_BZ + /api/v1/clients/get/
Request body schema application/json

{
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
    "response": (string),
    "clients": (array)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
clients
Массив
Значение присутствует в случае response = "success"
Массив с идентификаторами пользователей партнера

Установка полного списка пользователей партнера в Benzuber

При необходимости можно передать полный список пользователей партнера, которым должно быть доступно использование бонусной системы партнера. Передаваемый список полностью заменяет ранее добавленных пользователей в Benzuber.

Запрос

(POST) URL_BZ + /api/v1/clients/set/
Request body schema application/json

{
    "list": (array),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
list
array
Список пользователей.
Каждый элемент массива запись вида: {"id":"....","phone":"...."}, где
"client_id" - идентификатор пользователя у партнера
"client_phone" - сотовый телефон пользователя
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
    "response": (string)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса

Получение информации о заказах в системе Benzuber

Получение информации о заказах в которых была применена бонусная система партнера. Получение выборки, как по отдельным заказам, по конкретному пользователю и за период.

Запрос

(POST) URL_BZ + /api/v1/orders/get/
Request body schema application/json

{
    "order_id": (string),
    "invoice": (string),
    "client_id": (string),
    "from": (DateTime),
    "till": (DateTime),
    "timestamp": (DateTime),
}
Параметр Описание
order_id Строка
Идентификатор заказа в системе Benzuber
invoice Строка
Идентификатор записи списания бонусов в системе партнера
client_id Строка
Идентификатор пользователя в системе партнера
Обязательный
from
ДатаВремя
Unix-timestamp времени начала выборки
till ДатаВремя
Unix-timestamp времени конца выборки

Ответ

Content type: application/json

{
    "response": (string),
    "orders": (array)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
orders
Массив
Значение присутствует в случае response = "success".
Список заказов. Каждый элемент массива запись вида: {"client_id":"...", "order_id":"...", "invoice":"...", "amount":"...", "total":"...", "station":"...", "address":"...", "description":"..."}, где
"client_id" - идентификатор клиента
"order_id" - идентификатор заказа в Benzuber
"invoice" - идентификатор записи списания бонусов у партнера
"amount" - сумма использованных бонусов
"total" - общая сумма заказа
"station" - название АЗС
"address" - адрес АЗС
"description" - описание заказа

Запросы от Beznuber в систему партнера

Запрос параметров и баланса пользователя в бонусной системе партнера

При оформлении заказа на топливо в приложении Benzuber, происходит запрос параметров пользователя о применимости бонусов.

Запрос

(POST) URL_PS + /balance/
Request body schema application/json

{
    "client_id": (string),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
client_id
Строка
Идентификатор пользователя в системе партнёра
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
   "response": (string),
   "balance": (double),
   "percent": (double),
   "maximum": (double),
   "status": (string)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
balance
Число
Общее количество бонусных баллов пользователя в системе партнёра
Обязательный
percent
Число
Процент от суммы заказа, которое доступно для оплаты бонусами
Обязательный
maximum
Число
Максимальная сумма бонусов которая может быть использована для оплаты заказа
status Строка
Дополнительная информация о пользователе, его статусе в системе партнера.

Операция списания с баланса пользователя в бонусной системе партнера

При завершении оформления заказа в Benzuber, в момент оплаты заказа, происходит списание бонусов пользователя в системе партнера.

Запрос

(POST) URL_PS + /order/set/
Request body schema application/json

{
    "client_id": (string),
    "order_id": (string),
    "amount": (string),
    "total": (string),
    "station": (string),
    "address": (string),
    "description": (string),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
order_id
Строка
Идентификатор заказа в системе Benzuber
Обязательный
amount
Строка
Сумма бонусов к списанию у пользователя в системе партнера
Обязательный
total
Строка
Общая сумма заказа в рублях
Обязательный
station
Строка
Название АЗС на которой поставлен заказ
Обязательный
address
Строка
Адрес АЗС на которой поставлен заказ
Обязательный
description
Строка
Описание заказа: ТРК, марка топлива, объем в литрах
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
    "response": (string),
    "invoice": (string),
    "description": (string)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
invoice
Число
Значение присутствует в случае response = "success"
Идентификатор записи списания бонусов в системе партнера
Обязательный
description
Число
Значение присутствует в случае response = "fail"
Описание ошибки возникшее при выполнении запроса.

Операция изменения существующей операции списания с баланса пользователя в бонусной системе партнера

При завершении заправки, фактическом наливе, возможна ситуация частичного налива, либо полной отмены заказа. Поэтому при необходимости формируется запрос на изменение ранее списанных бонусов.

Запрос

(POST) URL_PS + /order/change/
Request body schema application/json

{
    "invoice": (string),
    "amount": (string),
    "total": (string),
    "description": (string),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
invoice
Строка
Идентификатор записи ранее списанных бонусов в системе партнера
Обязательный
amount
Строка
Новая сумма списания бонусов, которая не может быть более первоначальной.
Значение может быть 0 (нуль), в случае полной отмены заказа
Обязательный
total
Строка
Фактическая сумма налива по заказу
Обязательный
description
Строка
Измененое описание заказа: ТРК, марка топлива, объем в литрах
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
    "response": (string),
    "description": (string)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
description
Число
Значение присутствует в случае response = "fail"
Описание ошибки возникшее при выполнении запроса.
Описание API-Bonus Подпись запросов Запрос добавления пользователя Запрос удаления пользователя Запрос списка всех пользователей Запрос установки списка пользоватлеей Запрос получения списка заказов Запрос параметров пользователя (callback) Запрос выполнения списания с баланса пользователя (callback) Запрос изменения существующей операции списания с баланса пользователя (callback)
© 2024 ООО ТД "Смарт-технологии"