или просто отсканируйте QR-код телефоном с установленным приложением Benzuber
Для получения полного доступа к документации введите свой номер сотового телефона.
При необходимости обращайтесь в службу поддержки Benzuber или по телефону 8 (800) 250-98-93.
API BENZUBER-PAY
API Benzuber-PAY – протокол для обеспечения взаимодействия между внешней платежной системой (PS) и системой Benzuber (BZ).
Протокол позволяет пользователям приложения Benzuber осуществлять оплату за топливо в приложении Benzuber, используя средства внешней платежной системы. В приложении для клиента, при оформлении заказа, доступно соответствующие платежное средство.
Варианты подключения платежного средства
Benzuber периодически запрашивает у платежной системы список пользователей, которым доступно платежное средство, и это платежное средство автоматически появляется у пользователя в приложении Benzuber. Идентификация пользователей между BZ и PS происходит по сотовому номеру пользователя. В дальнейших операциях может использоваться как номер телефона, так и токен пользователя в PS.
Пользователь в профиле приложения Benzuber добавляет платежное средство и подтверждает право на его использование (получение SMS от PS, действие в приложении PS). После подтверждения PS генерирует уникальный идентификатор (токен) пользователя, который передается в Benzuber и используется при дальнейших операциях.
Платежная система на своей стороне управляет доступностью оплаты в Benzuber для пользователя, и присылает в Benzuber список пользователей, имеющих соответствующее разрешение. Это платежное средство появляется у пользователя в приложении Benzuber. Идентификация пользователей между BZ и PS происходит по сотовому номеру пользователя. В дальнейших операциях может использоваться как номер телефона, так и токен пользователя в ПС.
Сценарий обработки оплаты заказа
Оформление заказа в приложении Benzuber. Выбор метода оплаты соответствующего платежной системе.
Запрос баланса пользователя в выбранной платежной системе.
Если баланса достаточно – резервирование (холдирование) или списание полной суммы заказа.
Постановка заказа на АЗС и его выполнение.
После завершения обработки заказа на АЗС:
a. «Полный налив»: подтверждение полной суммы;
b. «Частичный налив»: подтверждение фактической суммы или возврат суммы («сдача»);
c. Если отпуска топлива не произошло, то производится полный возврат средств
Вариант реализации протокола
Описание варианта реализации протокола в случае если Benzuber периодически опрашивает платежную систему, для получения списка пользователей. В других случаях для реализации протокола необходимо дополнительное согласование с разработчиками платежной системы.
Для обеспечения безопасного доступа и идентификации платежной системы для работы с протоколом предоставляется уникальный ключ apikey, который используется во всех запросах.
Базовый URL_PS – адрес для обращения к платежной системе. Все запросы выполняются HTTP/HTTPS запросами GET вида: URL_PS + /команда?apikey={apikey}
HTTP коды ответа:
200 – запрос выполнен успешно
400 - не правильные параметры запроса
401 - не действительный apikey
404 - не удалось выполнить операцию
500 – платёжная система недоступна
Для тестовой и продуктовой среды базовые адреса различные, и согласовываются с отделом разработки.
Периодический запрос списка пользователей в платежной системе. В ответе – массив пользователей, которым доступна оплата в приложении Benzuber. Идентификация пользователей происходит по сотовому телефону. В ответе для каждого пользователя должен содержаться уникальный идентификатор пользователя token), который используется в дальнейших запросах.
Строка Сотовый номер пользователя в формате 7XXXXXXXXXX
Обязательный token
Строка Уникальный идентификатор пользователя (токен) в платежной системе
Запрос информации о доступном балансе пользователя
При оформлении заказа, необходимо проверить возможность оплаты платежным средством. Платежная система может дополнительно в ответ передать фактический баланс пользователя
Строка Результат запроса: OK – пользователю доступна необходимая сумма для оплаты заказа Not_enough_funds – у пользователя недостаточно средств User_not_found – пользователь не найдет
balance
Число Доступный баланс пользователя в платежной системе
Выполнение списания у пользователя
Списание полной суммы заказа с баланса пользователя в платежной системе. В платежной системе при выполнении запроса сумма может быть фактически списана сразу, либо зарезервирована.
Строка Результат запроса: OK – пользователю доступна необходимая сумма для оплаты заказа Not_enough_funds – у пользователя недостаточно средств User_not_found – пользователь не найдет
Обязательный paymentId
Строка Идентификатор операции в платежной системе
Выполнение возврата платежа
После завершения обработки заказа на АЗС, при необходимости выполняется запрос на частичный или полный возврат средств.
Строка Результат запроса: OK – пользователю доступна необходимая сумма для оплаты заказа Not_enough_funds – у пользователя недостаточно средств User_not_found – пользователь не найдет
Обязательный paymentId
Строка Идентификатор операции в платежной системе
Получение списка транзакций
Возможность получения списка транзакций за выбранный период времени, с возможностью фильтрации по пользователям
В связи с тем, что количество фактических транзакций в выборке может быть большое, то предусмотрен асинхронный формат работы, с получением результирующих данных последовательно по частям.
в случае 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/ позже, по идентификатору запроса