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

Авторизация

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

API BENZUBER-PAY

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

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

Варианты подключения платежного средства

  1. Benzuber периодически запрашивает у платежной системы список пользователей, которым доступно платежное средство, и это платежное средство автоматически появляется у пользователя в приложении Benzuber. Идентификация пользователей между BZ и PS происходит по сотовому номеру пользователя. В дальнейших операциях может использоваться как номер телефона, так и токен пользователя в PS.
  2. Пользователь в профиле приложения Benzuber добавляет платежное средство и подтверждает право на его использование (получение SMS от PS, действие в приложении PS). После подтверждения PS генерирует уникальный идентификатор (токен) пользователя, который передается в Benzuber и используется при дальнейших операциях.
  3. Платежная система на своей стороне управляет доступностью оплаты в Benzuber для пользователя, и присылает в Benzuber список пользователей, имеющих соответствующее разрешение. Это платежное средство появляется у пользователя в приложении Benzuber. Идентификация пользователей между BZ и PS происходит по сотовому номеру пользователя. В дальнейших операциях может использоваться как номер телефона, так и токен пользователя в ПС.

Сценарий обработки оплаты заказа

  1. Оформление заказа в приложении Benzuber. Выбор метода оплаты соответствующего платежной системе.
  2. Запрос баланса пользователя в выбранной платежной системе.
  3. Если баланса достаточно – резервирование (холдирование) или списание полной суммы заказа.
  4. Постановка заказа на АЗС и его выполнение.
  5. После завершения обработки заказа на АЗС: a. «Полный налив»: подтверждение полной суммы; b. «Частичный налив»: подтверждение фактической суммы или возврат суммы («сдача»); c. Если отпуска топлива не произошло, то производится полный возврат средств

Вариант реализации протокола

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

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

Базовый URL_PS – адрес для обращения к платежной системе. Все запросы выполняются HTTP/HTTPS запросами GET вида: URL_PS + /команда?apikey={apikey}

HTTP коды ответа:

200 – запрос выполнен успешно
400 - не правильные параметры запроса 
401 - не действительный apikey
404 - не удалось выполнить операцию 
500 – платёжная система недоступна

Для тестовой и продуктовой среды базовые адреса различные, и согласовываются с отделом разработки.

img


Запрос списка пользователей.

Периодический запрос списка пользователей в платежной системе. В ответе – массив пользователей, которым доступна оплата в приложении Benzuber. Идентификация пользователей происходит по сотовому телефону. В ответе для каждого пользователя должен содержаться уникальный идентификатор пользователя token), который используется в дальнейших запросах.

Запрос

(GET)URL_PS + /GetAllUser/?apiKey={apikey}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации

Ответ

Content type: application/json

[
 {
  "name": (string),        
  "phone": (string),             
  "token": (string)         
 },
 ...
]
Параметр Описание
Обязательный
name
Строка
Имя пользователя
Обязательный
phone
Строка
Сотовый номер пользователя в формате 7XXXXXXXXXX
Обязательный
token
Строка
Уникальный идентификатор пользователя (токен) в платежной системе

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

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

Запрос

(GET) URL_PS + /GetUser/?apiKey={apikey}&id={id}&sum={sum}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
id
Строка
Идентификатор (токен) пользователя
Обязательный
sum
Строка
Запрашиваемая сумма (Сумма заказа)

Ответ

Content type: application/json

{
  "response": (string),
  "balance": (string)        
}
Параметр Описание
Обязательный
response
Строка
Результат запроса:
OK – пользователю доступна необходимая сумма для оплаты заказа
Not_enough_funds – у пользователя недостаточно средств
User_not_found – пользователь не найдет
balance Число
Доступный баланс пользователя в платежной системе

Выполнение списания у пользователя

Списание полной суммы заказа с баланса пользователя в платежной системе. В платежной системе при выполнении запроса сумма может быть фактически списана сразу, либо зарезервирована.

Запрос

(GET) URL_PS + /Payment/?apiKey={apikey}&
    id={id}&sum={sum}&orderId={orderId}&descr={description}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
id
Строка
Идентификатор (токен) пользователя
Обязательный
sum
Строка
Запрашиваемая сумма (Сумма заказа)
Обязательный
orderId
Строка
Идентификатор заказа в Benzuber
Обязательный
descr
Строка
Текстовое описание заказа, например: VARTA, АЗС «Космонавтов», ТРК 3, АИ-95, 10л

Ответ

Content type: application/json

{
  "response": (string),
  "balance": (string)        
}
Параметр Описание
Обязательный
response
Строка
Результат запроса:
OK – пользователю доступна необходимая сумма для оплаты заказа
Not_enough_funds – у пользователя недостаточно средств
User_not_found – пользователь не найдет
Обязательный
paymentId
Строка
Идентификатор операции в платежной системе

Выполнение возврата платежа

После завершения обработки заказа на АЗС, при необходимости выполняется запрос на частичный или полный возврат средств.

Запрос

(GET) URL_PS + /Payment/?apiKey={apikey}&
    id={id}&sumRefund={sum}&orderId={orderId}&descr={description}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
id
Строка
Идентификатор (токен) пользователя
Обязательный
sumRefund
Строка
Запрашиваемая сумма (Сумма возврата)
Обязательный
orderId
Строка
Идентификатор заказа в Benzuber
Обязательный
descr
Строка
Текстовое описание заказа, например: «Возврат по заказу #xxxxx»

Ответ

Content type: application/json

{
  "response": (string),
  "balance": (string)        
}
Параметр Описание
Обязательный
response
Строка
Результат запроса:
OK – пользователю доступна необходимая сумма для оплаты заказа
Not_enough_funds – у пользователя недостаточно средств
User_not_found – пользователь не найдет
Обязательный
paymentId
Строка
Идентификатор операции в платежной системе

Получение списка транзакций

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

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

Запрос

(POST) Базовый URL_BZ + /pay/v1/transactions/get/?apikey={apikey}
Request body schema application/json

{
    "date_start": (string),
    "date_end": (string),
    "order_id": (string),
    "client_id": (string),
    "phone": (string)
}

или

{
    "request_id": (string),
    "offset": (string),
    "limit": (string)
}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
date_start
Строка
Дата начала выборки в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС (часовой пояс UTC)
Обязательный
date_end
Строка
Дата конца выборки в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС (UTC)
order_id Строка
Идентификатор топливного заказа
client_id Строка
Идентификатор сотрудника в системе партнёра
phone Строка
Сотовый телефон сотрудника в формате 7хххххххххх

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

Параметр Описание
Обязательный
request_id
Строка
идентификатор запроса
Обязательный
offset
Строка
начальная позиция запрашиваемых данных
limit Строка
количество запрашиваемых строк (по-умолчанию 1000)

Ответ

Content type: application/json

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

в случае response = "success"
Означает, что в ответе содержатся данные по транзакциям, а также информация об общем количестве транзакций в ответе.

Параметр Описание
Обязательный
transactions
array
"id" string – идентификатор транзакции в системе Benzuber

"date" array – "utc": Время транзакции по UTC, "gs"- Время транзакции по времени АЗС

"client" array – Информация о пользователе, о его местоположении в момент транзакции

"station" string – Название АЗС

"brand" string – Бренд АЗС

"filler_id" string – номер ТРК

"fuel" string – Наименование топлива

"price" string – Цена топлива

"liters" string – объем топлива в литрах

"total" string – стоимость топлива в рублях

"acquire" double - Сумма при взаиморасчетах (с учетом скидок),

"status" - статус выполнения заказа
Обязательный
request
array
"id" string – идентификатор запроса

"offset" string – начальная позиция в этом ответе по результирующей выборке

"limit" string – количество значений в этом ответе

"total" string – общее количество записей транзакций в исходном запросе

в случае response = "processing"
Означает, что предполагается большое количество строк в ответе, поэтому результат будет доступен не сразу. Для получения результата, необходимо выполнить запрос /pay/v1/transactions/get/ позже, по идентификатору запроса

Параметр Описание
Обязательный
request
array
"id" string – идентификатор выполняемого запроса
Описание API BENZUBER-PAY Запрос списка пользователей Запрос доступного баланса пользователя Запрос списания с баланса пользователя Запрос возврата на баланс пользователя Получение списка транзакций
© 2024 ООО ТД "Смарт-технологии"