или просто отсканируйте QR-код телефоном с установленным приложением Benzuber
Для получения полного доступа к документации введите свой номер сотового телефона.
При необходимости обращайтесь в службу поддержки Benzuber или по телефону 8 (800) 250-98-93.
API-B2B BENZUBER
API-B2B Benzuber – протокол для обеспечения взаимодействия между учетной системой партнера (PS) и сервером Benzuber (BZ).
Протокол позволяет реализовывать сценарии взаимодействия и обмен информацией с информационным сервисом «BENZUBER для бизнеса» для решения бизнес-задач каждого участника.
API предоставляется фактическим организациям, использующих сервис "Benzuber для Бизнеса".
Для обеспечения безопасного доступа и идентификации партнера для работы с протоколом предоставляется уникальный ключ apikey, который используется для авторизации, и затем token, полученный при авторизации для всех дальнейших запросов.
Базовый URL_BZ – адрес для обращения к серверу BZ. HTTP/HTTPS POST-запрос вида: URL_BZ+/b2b/v1/команда В ответе партнер получает token и URL-адрес (HOST) для обращения по всем прочим запросам.
HOST – адрес для обращения к серверу BZ, полученный после успешной авторизации. Все дальнейшие запросы выполняются HTTP/HTTPS POST-запросами вида: HOST+/b2b/v1/команда
Базовый URL_PS – адрес для обращения к партнеру. Для реализации запросов от Benzuber к партнеру. Все запросы выполняются HTTP/HTTPS POST-запросами вида: URL_PS+/команда.
200 – запрос выполнен успешно
404 – метод не найден
500 – ошибка выполнения запроса, некорректные параметры запроса
HTTP-код ответа при выполнении запросов означает только состояние получения (доставки) запроса, без учета анализа содержимого запроса. В случае успешного получения запроса сервером (статус 200), в ответе содержится параметр response, который определяет фактическое состояние обработки содержимого полученного запроса.
Возможные варианты response
Значение
Описание
success
Запрос успешно обработан.
invalid_authentication
Неправильные логин/пароль.
invalid_token
Не валидный token, требуется повторная авторизация
too_many_logon
Превышен предел авторизаций, более 10 за прошлые 5 минут.
invalid_params
Неправильные параметры, отсутствуют обязательные параметры в запросе.
internal_error
Внутренняя ошибка сервера, необходимо выполнить запрос повторно.
host_disabled
Недоступен обсуживающий хост, необходимо выполнить первичную авторизацию
. . .
Прочие варианты, специфичные для каждого отдельного запроса, отражающие необходимую суть ответа
Авторизация
Для начала работы партнер должен пройти первичную авторизацию. Запрос необходимо выполнить по «Базовому URL». При успешной авторизации партнер получает токен (token) и его срок действия. Токен должен использоваться во всех последующих запросах для подтверждения источника запроса.
Срок действия токена назначается случайный образом в диапазоне от 1 до 2 часов.
Инфраструктура Benzuber имеет распределённую архитектуру, поэтому в целях безопасности и оптимизации дальнейшего обмена в успешном ответе содержится адрес хоста host, на который партнер должен отправлять все прочие запросы
Запрос
(POST) Базовый URL_BZ + /b2b/v1/auth/
Request body schema application/json
{
"apikey": (string)
}
В системе Benzuber, имеется возможность работы с топливными лимитами в формате установки значений по каждому виду топлива, с установкой значения лимита в день, неделю и месяц. Лимит может быть установлен в рублях или литрах (кубометрах) для каждого вида топлива.
Для сотрудника может быть установлен "Общий лимит" на все доступные виды топлива.
Выполняя запрос, в ответе будет представлен актуальный перечень возможных значений параметров для работы с лимитами на топливо для сотрудника.
Запрос
(POST) HOST + /b2b/v1/clients/limit/reference/
Request body schema application/json
{
"token": (string)
}
array Массив содержит элементы описывающие идентификаторы варинтов видов топлива, таких как {"id":"АИ-92"} Один из предопределённых варинатов - это понятие общего лимита {"id":"Общий лимит"}.
Обязательный modes
array Массив содержит элементы описывающие идентификаторы варианты установки лимитов: {"id":0,"description":"сумма в рублях"}, {"id":1,"description":"объем топлива в литрах или кубических метрах"}
Получение списка сотрудников
Возможность получения актуального списка зарегистрированных сотрудников их реквизиты и параметры
Запрос
(POST) HOST + /b2b/v1/clients/get/
Request body schema application/json
{
"token": (string)
}
"is_limit_fuel" (boolean) - наличие ограничений заправки сотрудника по виду топлива: true - имеются; false - отсутствуют
"limit_fuels" (array) - информация об установленных лимитах на топливо, присутствует в случае если "is_limit_fuel"=true
"is_limit_time" (boolean) - наличие ограничений заправки сотрудника по времени: true - имеются; false - отсутствуют
"is_balance" (boolean) - признак использования режима персонального баланса для сотрудника: true - включен; false - выключен
"balance" (string) - баланс сотрудника, присутствует в случае если "is_balance"=true
"is_all_cars" (boolean) - признак доступности всех автомобилей организации для сотрудника: true - доступны все; false - доступны только выбранные авто
"cars_available (array) - массив доступных для сотрудника автомобилей, присутствует в случае если "is_all_cars"=false
limit_fuels
array В массиве содержится набор элементов соответствующий установленным лимитам по видам топлива. Каждый элемент содержит данные: "id" (string), - идентификатор топлива (из reference)
"mode" (int) - тип лимита (из reference)
"day" (int) - значение лимита в сутки
"week" (int) - значение лимита в неделю
"month" (int) - значение лимита в месяц
cars_available
array В массиве содержится список автомобилей доступных для сотрудника. Каждый элемент содержит данные: "id" (string) - идентификатор автомобиля
"make" (string) - марка автомобиля
"color" (string) - цвет автомобиля
"lpn" (string) - регистрационный номер автомобиля
Добавление сотрудника
Возможность добавить нового сотрудника организации
Строка Зачисляемые средства, содержит строковое представление double, от -1000000 до 1000000, например "1000.00", "-400.00". Значение НОЛЬ, недопустимое.
Строка Массив со значениями лимитов для установки. При успешном выполнении запроса для сотрудника устанавливаются только лимиты переданные в запросе (происходит полное замещение ранее установленных лимитов)
В случае передачи пустого массива - происходит сброс установленных лимитов. Структура и данные массива, аналогичные полю "limit_fuels" в запросе clients/get.
Строка идентификатор редактируемого подразделения в системе Benzuber
Обязательный amount
Строка Зачисляемые средства, содержит строковое представление double, от -1000000 до 1000000, например "1000.00", "-400.00". Значение НОЛЬ, недопустимое.
Строка Массив со значениями лимитов для установки. При успешном выполнении запроса для подразделения устанавливаются только лимиты переданные в запросе (происходит полное замещение ранее установленных лимитов)
В случае передачи пустого массива - происходит сброс установленных лимитов. Структура и данные массива, аналогичные полю "limit_fuels" в запросе units/get.
"is_limit_fuel" boolean - наличие ограничений заправки автомобиля по виду топлива: true - имеются; false - отсутствуют
"limit_fuels" array - информация об установленных лимитах на топливо, присутствует в случае если "is_limit_fuel"=true
"is_limit_clients" boolean - признак доступности автомобиля для всех сотрудников организации: true - доступен всем; false - доступен только выбранным сотрудникам
"limit_clients array - массив сотрудников для которых установлена доступность автомобиля, присутствует в случае если "is_limit_clients"=false
"is_odometer" boolean - признак необходимости указания значения одометра при заправке автомобиля: true - включена; false - отключена
"odometer" string - последнее установленное при заправке значение одометра автомобиля, присутствует в случае если "is_odometer"=true
limit_fuels
array В массиве содержится набор элементов соответствующий установленным лимитам по видам топлива. Каждый элемент содержит данные: "id" string - идентификатор топлива (из reference)
"mode" int - тип лимита (из reference)
"day" int - значение лимита в сутки
"week" int - значение лимита в неделю
"month" int - значение лимита в месяц
limit_clients
array В массиве содержится список сотрудников для которых доступен автомобиль. Каждый элемент содержит данные:
"id" string - идентификатор сотрудника
"name" string- имя сотрудника
Информация о балансе организации
Возможность получения актуального значения текущего баланса, порога отключения и персональных балансов сотрудников
Запрос
(POST) HOST + /b2b/v1/finance/get/
Request body schema application/json
{
"token": (string)
}
array Значение присутствует в случае response = "success" Массив содержит строковые представления double (например "-3210.00", "123.55") для следующих параметров:
"balance" string - текущий баланс организации
"threshold" string - порог отключения организации, при котором, сотрудники более не смогут использовать сервис
"users" string - сумма средств на всех персональных балансах сотрудников и подразделений организации
Получение списка транзакций
Возможность получения списка транзакций за выбранный период времени, с возможностью фильтрации по сотрудникам и подразделениям
В связи с тем, что количество фактических транзакций в выборке может быть большое, то предусмотрен асинхронный формат работы, с получением результирующих данных последовательно по частям.
в случае response = "success"
Означает, что в ответе содержатся данные по транзакциям, а также информация об общем количестве транзакций в ответе.
Параметр
Описание
Обязательный transactions
array "id" string – идентификатор транзакции в системе Benzuber
"date" array – "utc": Время транзакции по UTC, "gs"- Время транзакции по времени АЗС
"client" array – Информация о сотруднике, о его местоположении в момент транзакции
"car" array – Информация об автомобиле выбранном сотрудником в момент транзакции. Содержит данные: id - идентификатор авто, lpn - госномер, odometer - значение одометра, указанного в момент заправки
"station" string – Название АЗС
"brand" string – Бренд АЗС
"filler_id" string – номер ТРК
"fuel" string – Наименование топлива
"price" string – Цена топлива
"liters" string – объем топлива в литрах
"total" string – стоимость топлива в рублях
"acquire" array – "value" - Сумма при взаиморасчетах (с учетом скидок), "source" - платежный метод оплаты заказа
Обязательный request
array "id" string – идентификатор запроса
"offset" string – начальная позиция в этом ответе по результирующей выборке
"limit" string – количество значений в этом ответе
"total" string – общее количество записей транзакций в исходном запросе
в случае response = "processing"
Означает, что предполагается большое количество строк в ответе, поэтому результат будет доступен не сразу.
Для получения результата, необходимо выполнить запрос transactions/get/ позже, по идентификатору запроса
Строка идентификатор администратора организации в Benzuber
Обязательный units
Строка Строка с идентификаторами подразделений, через запятую. В случае передачи пустого значения, удаляется привязка администратора из всех ранее связанных подразделений.
array уникальный URL, который можно использовать для открытия в Web-интерфейсе
Callback-запрос получение токена партнёра
Для безопасной работы обратных запросов (callback), Benzuber периодически, при необходимости запрашивает актуальный token.
В случае ошибки получения токена от партнёра, дальнейшие callback-запросы не отправляются.
CALLBACK_URL - устанавливается в Личном кабинете организации.
Запрос
(POST) CALLBACK_URL + /auth
Request body schema application/json
{
"apikey": (string)
}
Уведомление партнёра о факте завершения заказа. Запрос отправляется однократно, ответ партнёра на запрос не влияет на обработку.
При необходимости, перед отправкой запрос актуализируется токен партнера.
Запрос
(POST) CALLBACK_URL + /transaction/notify
Request body schema application/json
{
"token": (string),
"transaction": (array)
}
array "id" string – идентификатор транзакции в системе Benzuber
"date" array – "utc": Время транзакции по UTC, "gs"- Время транзакции по времени АЗС
"client" array – Информация о сотруднике, о его местоположении в момент транзакции
"car" array – Информация об автомобиле выбранном сотрудником в момент транзакции. Содержит данные: id - идентификатор авто, lpn - госномер, odometer - значение одометра, указанного в момент заправки
"station" string – Название АЗС
"brand" string – Бренд АЗС
"filler_id" string – номер ТРК
"fuel" string – Наименование топлива
"price" string – Цена топлива
"liters" string – объем топлива в литрах
"total" string – стоимость топлива в рублях
"acquire" array – "value" - Сумма при взаиморасчетах (с учетом скидок), "source" - платежный метод оплаты заказа