Главная
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.lk)

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

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

ВАЖНО

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

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

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 Запрос успешно обработан.
unauthorized Неправильные логин/ключ/подпись.
invalid_params Неверные или отсутствующие параметры запроса
not_found не найден пользователь
internal_error Внутренняя ошибка сервера, необходимо выполнить запрос повторно.

В случае response!=success, в ответе может быть представлен дополнительный параметр description с текстовым описанием ошибки.

Подпись в запросах (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:

Получение информации об обшем доступном балансе бонусной системы

Возможность получения актуального значения текущего общего баланса бонусной системы

Запрос

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

{
    "timestamp": (DateTime)
}

Ответ

Content type: application/json

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

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

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

Запрос

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

{
    "phone": (string),
    "inn": (string),
    "name": (string),
    "is_enable": (boolean),
    "percent": (string),
    "maximum": (string),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
phone
Строка
Номер сотового телефона пользователя, обязательно для клиента-физического лица.
В формате 10ти цифр полного номера без разделителей и прочих символов
(пример: 79221234567)
Обязательный
inn
Строка
ИНН организации, обязательно для клиента-юридического лица. Формат 9-12 цифр
Обязательный
is_enable
Boolean
Возможность использования бонусов. true-включена, false - Отключена
Обязательный
percent
Строка
Персональный процент использования бонусов при оплате топливного заказа клиента,
false - если не установлен (используется общая установка в ЛК)
Обязательный
maximum
Строка
Персональное значение максимальной суммы бонусов доступной для топливного заказа клиента,
false - если не установлен (используется общая установка в ЛК)
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

{
    "response": (string),
    "client_id": (string),
    "description": (stri
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
client_id
Строка
Идентификатор пользователя в Benzuber
Обязательный
description
Строка
Расширенное описание ошибки

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

Возможность изменения параметров использования бонусов пользователя.

Запрос

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

{
    "client_id": (string),
    "phone": (string),
    "inn": (string),
    "name": (string),
    "is_enable": (boolean),
    "percent": (string),
    "maximum": (string),
    "timestamp": (DateTime)
}
Параметр Описание
Обязательный
client_id
Строка
Идентификатор пользователя в Benzuber
Обязательный
phone
Строка
Номер сотового телефона пользователя, обязательно для клиента-физического лица.
В формате 10ти цифр полного номера без разделителей и прочих символов
(пример: 79221234567)
Обязательный
inn
Строка
ИНН организации, обязательно для клиента-юридического лица. Формат 9-12 цифр
Обязательный
is_enable
Boolean
Возможность использования бонусов. true-включена, false - Отключена
Обязательный
percent
Строка
Персональный процент использования бонусов при оплате топливного заказа клиента,
false - если не установлен (используется общая установка в ЛК)
Обязательный
maximum
Строка
Персональное значение максимальной суммы бонусов доступной для топливного заказа клиента,
false - если не установлен (используется общая установка в ЛК)
Обязательный
timestamp
ДатаВремя
Отметка времени формирования запроса

Ответ

Content type: application/json

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

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

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

Запрос

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

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

Ответ

Content type: application/json

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

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

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

Запрос

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

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

Ответ

Content type: application/json

{
    "response": (string),
    "clients": (array)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
clients
Массив
Значение присутствует в случае response = "success"
Массив с идентификаторами пользователей партнера, каждый элемент запись о пользователе вида {"inn":"...", ..} где
"client_id" - идентификатор пользователя в Benzuber
"phone" - установленный телефон пользователя (физ.лицо)
"inn" - ИНН организации (юр. лицо)
"name" - имя пользователя
"is_enable" - признак доступности бонусов для пользователя
"percent" - установленный максимальный процент использования бонусов в заказе
"maximum" - установленная максимальная сумма использования бонусов в заказе
"balance" - Текущий бонусный баланс пользователя

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

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

Запрос

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

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

Ответ

Content type: application/json

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

Запрос информации о бонусных операциях пользователя

Получение текущего баланса пользователя и списка операций начисления/списания бонусов

Запрос

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

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

Ответ

Content type: application/json

{
    "response": (string),
    "balance": (double),
    "operations": (array)
}
Параметр Описание
Обязательный
response
Строка
статус выполнения запроса
Обязательный
balance
Строка
Общее количество бонусных баллов пользователя в системе Benzuber
Обязательный
percent
Строка
Процент от суммы заказа, которое доступно для оплаты бонусами
Обязательный
operations
Строка
Список бонусных операций пользователя. Каждый элемент массива запись вида {"id":"...", ... } где
"id" - идентификатор операции
"date" - дата операции
"amount" - сумма операции. Положительное число - начисление, Отрицательное - списание
"description" - описание операции

Операция списания/начисления бонусов для пользователя

Начисление и списание бонусных баллов на балансе пользователя.

Запрос

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

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

Ответ

Content type: application/json

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

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

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

Запрос

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

{
    "order_id": (string),
    "client_id": (string),
    "from": (DateTime),
    "till": (DateTime),
    "timestamp": (DateTime),
}
Параметр Описание
order_id Строка
Идентификатор заказа в системе Benzuber
client_id Строка
ИИдентификатор пользователя в Benzuber
Обязательный
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" - описание заказа
Описание API-Bonus LK Подпись запросов Запрос доступного баланса бонусной системы Запрос добавления пользователя Запрос редактирования пользователя Запрос удаления пользователя Запрос списка всех пользователей Запрос установки списка пользователей Запрос списка бонусных операций пользователей Запрос списание/начисление на баланса пользователя Запрос получения списка заказов
© 2024 ООО ТД "Смарт-технологии"