Главная
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 (electric)

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

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

Для реализации взаимодействия партнёру необходимо реализовать запросы:

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

Базовый URL_BZ – адрес для обращения к серверу BZ. Все запросы выполняются HTTPS запросами (GET или POST) вида: URL_BZ + /v1/charge/команда?apikey={apikey}

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

200 – запрос выполнен успешно
400 – недопустимые параметры запроса
401 – ошибка авторизации, доступ запрещен
500 – ошибка обработки запроса

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

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

200 – запрос выполнен успешно
Любой другой код – ошибка выполнения запроса

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


Используемые коды коннекторов:

При обмене информацией между системами, применяется следующая система кодов коннекторов/подключений:

Код - Название Код - Название
domestic_{x}
бытовая розетка типа {x}
gbt_ac
GB/T AC
nema_6_{xx}
разьем Нема-6 {xx}A
gbt_dc
GB/T DC
nema_10_{xx}
разьем Нема-10 {xx}A
iec_62196_t1
"Тип 1"
nema_14_{xx}
разьем Нема-14 {xx}A
iec_62196_t1_combo
CCS Combo 1
chademo
CHArge de MOve
iec_62196_t2
"Тип 2"
chaoji
ChaoJi/CHAdeMO 3.0
iec_62196_t2_combo
CCS Combo 2
iec_60309_2_single_{nn}
однофазный кабель на {nn}A
iec_62196_t3a
"Тип 3A"
iec_60309_2_three_{nn}
трехфазный кабель на {nn}А
iec_62196_t3c
"Тип 3C"
pantograph_bottom_up
пантограф (верхний)
tesla_r
проприетарный разьем Tesla roadster
pantograph_top_down
пантограф (нижний)
tesla_s
проприетарный разьем Tesla

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


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

Для реализации взаимодействия предоставляются возможности:

/charge/list Получение списка станций доступных партнеру. Рекомендуется запрашивать раз в сутки для актуализации полного списка, либо по необходимости.

/charge/{chargeId}/posts Получение информации по станции, структура, доступность, тарификация. Рекомендуется запрашивать для получения оперативной информации о станции.

/charge/order Постановка заказа на станцию.

/charge/cancel Попытка отмены заказа.

/charge/status Получение информации о заказе


Получение информации о зарядных станциях доступных для партнера.

Запрос

(GET) URL_BZ + /v1/charge/list?apikey={apikey}&chargeId={chargeId}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
chargeId string
ID зарядной станции

Ответ

Content type: application/json
[
  {
    "ChargeID": "Идентификатор",
    "Name": "Название",
    "Brand": "Название сети"
    "City": "Город, регион",
    "Address": "Адрес станции",
    "Enable": true,
    "Progress": false,
    "Location":
      {
        "Lat":58.135324,
        "Lon":45.693532   
      },
    "MaxTotal": 10000
  },
  ...
]
Параметр Описание
Обязательный
ChargeID
Строка
Идентификатор станции
Обязательный
Name
Строка
Название станции
Обязательный
Brand
Строка
Название сети (бренд)
Обязательный
City
Строка
Город расположения станции
Обязательный
Address
Строка
Адрес станции (улица, строение и т.п.)
Обязательный
Enable
Boolean
Признак возможности старта сессии
true - можно поставить заказ, false - на текущий момент станция не готова принимать заказы
Обязательный
Progress
Boolean
Признак поддержки на станции передачи информации о ходе выполнения заказа (текущая стоимость, объем энергии)
true - станция передаёт информацию о ходе выполнения заказа, false - станция не передаёт промежуточную информацию о ходе выполнения заказа, передается только финальное состояние
Обязательный
Location
Структура
Географические координаты станции ("Lat" - долгота и "Lon" широта)
MaxTotal Число
Максимальная доступная сумма для заказа в рублях

Получение списка постов на станции.

Запрос

(GET) URL_BZ + /v1/charge/{chargeId}/posts?apikey={apikey}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
chargeId
string
ID зарядной станции

Ответ

Content type: application/json
[
  {
    "PostId": "1",
    "PostName": "111-457",
    "PostFloor": "-1",
    "PostStatus": "idle",
    "PostOrderMin": "100.00",
    "PostOrderMax": "1000.00",
    "PostCapabilities":
      {
        "Charge": true,
        "ChargeConnectorRequired": true,
        "Reservation": false,
        "Params": false
      },
    "PostConnectors": [],
  },
  ...
]
Параметр Описание
Обязательный
PostId
Строка
Идентификатор поста
Обязательный
PostName
Строка
Название поста, отображаемое пользователю
Обязательный
PostFloor
Строка
Этаж размещения поста
Обязательный
PostStatus
Строка
Статус состояния поста idle - доступен для заказа, busy - занят, disabled - временно не работает
Обязательный
PostOrderMin
Строка
Минимальная сумма заказа
Обязательный
PostOrderMax
Строка
Максимальная сумма заказа
Обязательный
PostCapabilities
Структура
Дополнительные возможности/параметры поста
"Charge" - Возможность поставновки онлайн-заказа true , false
"ChargeConnectorRequired" - Требование указывать коннектор в заказе true , false
"Reservation" - Доступность бронирования поста true , false
"Params" - возможность изменения профиля зарядки в процессе выполнения true , false
Обязательный
PostConnectors
Массив
массив доступных коннекторов на посту

Элемент массива коннекторов (PostConnectors)

{
  "ConnectorId": "1",
  "ConnectorStandard": "gbt_dc",
  "ConnectorFormat": "cable",
  "ConnectorPowerType": "ac",
  "ConnectorMaximums": {
    "{x}" : {
      "value": "60.00",
      "unit": "{y}"
    },
    ...
  },
  "ConnectorTariffs": {}
}
Параметр Описание
Обязательный
ConnectorId
Строка
Идентификатор коннектора
Обязательный
ConnectorStandard
Строка
Код коннектора
ConnectorFormat Строка
Формат подключения: cable - кабель, socket - розетка
ConnectorPowerType Строка
Тип тока: ac - переменный, dc - постоянный
ConnectorMaximums Структура
Характеристики подключения
{x} = Voltage , Current , Power
Value - Значение характеристики
Unit - Единица измерения {y} = V , A , kW
Обязательный
ConnectorTariffs
Структура
Описание тарифов подключения

Cтруктура тарифов (ConnectorTariffs)

{
  "{t}": {
    "Limit": {
      "Minimum": "100.00",
      "Maximum": "1000.00"
    },
    "Components": {
      "{x}":[
        {
          "Price":"10.00",
          "PriceFull":"12.00",
          "PricePerUnit": "{y}",
          "TariffStep": {
            "Value": "24.00",
            "Unit": "{z}"
          },
          "Restrictions": {
            "{w}" :{
              "From": "08:00",
              "Till": "20:00",
              "Unit": "{u}"
            }
          }
        },
        ...
      ],
      ...
    }
  },
  ...
}
Параметр Описание
Обязательный
"{t}"
Строка
Тип тарифа. {t} : Default - тариф по-умолчанию, Fast - тариф быстрой зарядки , Cheap - экономичный тариф, Green - тариф на зарядку "зеленой энергией", AdHocPayment - тариф, действующий при оплате на терминале/кассе
Limit Строка
Лимиты по тарифу, стоимость по тарифу не может быть начислена меньше минимального Minimum и не больше максимального Maximum указанного значения
Обязательный
Components
Массив
Состав тарифа по компонентам {x}
Flat - фиксированная плата за факт заказа,
ReservationFlat - фиксированная плата за факт бронирования,
ReservationExpiresFlat - фиксированая плата за превышение срока бронирования,
Time - оплата времени зараядки,
ReservationTime - оплата времени бронирования,
ReservationExpiresTime - оплата превышения срока бронирования,
Energy - стоимость электроэнергии,
ParkingTime - оплата времени парковки

Каждый элемент массива описывает элемент тарифа в разрезе ограничений Restrictions (например, по временным интервалам)
Обязательный
Price
Строка
цена за тарифицируемую единицу
Обязательный
PriceFull
Строка
цена зарядной станции без учета скидок
Обязательный
PricePerUnit
Строка
тарифицируемая единица {y} : Fact - за факт (компоненты тарифа с фиксированной платой), H - цена за час (в компонентах, связанных со временем), kWh - цена за киловатт/час (в компоненте оплаты за электроэнергию)

TariffStep
Строка
Шаг тарификации
Value Значение шага тарификации
Unit единица шага тарификации {z} : Fact - тарифицируется факт, S - секунда, Wh - ватт/час

Пример: { "Unit":"S", "Value":"15" } Означает, что расчет и изменение итоговой стоимости по компоненте тарифа происходит каждые 15 секунд
Restrictions Строка
Ограничения применения ценовых характеристик. Указания дипазаона значений при котором применяются ценовые параметры
Типы диапазонов {w} : TimeOfDay - зависимость от времени внутри дня, PowerConsumed - зависимость от потребленной мощности, Current - зависимость от текущего тока зарадки, Power - зависимость от текущей мощности зарядки, Time - Зависимость от продолжительности зарядки
From - значение начала применения цены,
Till - значение окончания применения цены,
Unit - единица измерения диапазона {u} : HH:MM - часы:минуты по времени станции, S - продолжительность зарядки в секундах, kWh - потребленная мощность кВ/час, A - сила тока, kW - текущая мощность

Пример: { "From":"08:00", "Till":"12:00", "Unit":"HH:MM" } означает, что цены указананные в этом элементе применяются с 8 до 12 часов

Обработка заказа

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


Создание нового заказа, старт зарядной сессии

Создание заказа с необходимыми параметрами.

Запрос

(POST) URL_BZ + /v1/charge/order 
Request body schema application/json

{
  "id": "f329g-3dsf-2dsf-dsgg",
  "chargeId": "12345",
  "mode": "charge",
  "post": "2",
  "connector": "1",
  "period": "10",
  "sum": "1500.00",
  "userPhone": "79000000000",
  "userEmail": "test@mail.ru",
  "contractId": "b2b",
  "apikey": "fdh32498"
}
Параметр Описание
Обязательный
id
Строка
Идентификатор заказа партнёра
Обязательный
chargeId
Строка
Идентификатор зарядной станции
Обязательный
mode
Строка
Тип заказа: charge - заказ на зарядку, reserve - заказ на бронирование
Обязательный
post
Строка
Идентификатор поста
Обязательный
connector
Строка
Идентификатор коннектора
Обязательный
period
Строка
Период бронирования в минутах (в случае mode=reserve )
Обязательный
sum
Строка
Предельная стоимость заказа
userPhone Строка
телефон клиента для чека
userEmail Строка
e-mail клиента для чека
contractId Строка
Идентификатор договора
Обязательный
apikey
Строка
API-ключ

Ответ

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

200 – заказ получен, параметры корректны. 

401 - неверный Api-ключ
400 - недопустимые параметры запроса
403 - недопустимый заказ (зарядка/бронирование не поддерживаются, либо заказ на занятый пост)
404 - зарядная станция не найдена
503 - зарядная станция временно не доступна
500 - ошибка обработки запроса

Запрос отмены заказа

Возможность инициировать отмену ранее созданного заказа партнёром. При получении от партнёра запроса на отмену заказа, сервер Benzuber пытается отменить заказ на станции.

Запрос

(POST) URL_BZ + /v1/charge/cancel 
Request body schema application/json

{
  "id": "f329g-3dsf-2dsf-dsgg",
  "apikey": "fdh32498"
}
Параметр Описание
Обязательный
id
Строка
Идентификатор заказа партнёра
Обязательный
apikey
Строка
API-ключ

Ответ

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

200 – заказ отменён, либо запрос пришел уже на отменный зазаз
202 - запрос на отмену зарегистрирован, в дальнейшем будет передан callback об отмене, либо завершении заказа, состояние заказа так же можно узнать из запроса состояния заказа

401 - неверный Api-ключ
400 - заказ отменить нельзя
404 - заказ не найден
500 - ошибка обработки запроса

Запрос получение информации о заказе

Запрос для получения актуальной информации по переданному ранее заказу.

Запрос

(POST) URL_BZ + /v1/charge/status 
Request body schema application/json

{
  "id": "f329g-3dsf-2dsf-dsgg",
  "apikey": "fdh32498"
}
Параметр Описание
Обязательный
id
Строка
Идентификатор заказа партнёра
Обязательный
apikey
Строка
API-ключ

Ответ

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

200 – успешный ответ, с информацией о заказе

401 - неверный Api-ключ
400 - неверные парамтеры заказа
404 - заказ не найден
500 - ошибка обработки запроса
Content type: application/json
{
  "id": "f329g-3dsf-2dsf-dsgg",
  "Status": "Progress",
  "ChargeStatus": "Charge",
  "DateCreate": "2025-03-01T12:00:00",
  "DateEnd": "2025-03-02T19:00:00",
  "ChargeId": "12345",
  "PostId": "1",
  "Sum": "1500.00",
  "SumCompleted": "1233.74",
  "ChargeEnergy": "35,11",
  "SumEnergy": "674.21",
  "ChargeTime": "3.2",
  "SumTime": "32",
  "SumFixed": :"234",
  "ParkingTime": "10",
  "SumParking": "245",
  "SumReservation": "331",
  "ReasonId": "22",
  "Reason": "Причина отмены заказа"
}
Параметр Описание
Обязательный
id
Строка
Идентификатор заказа
Обязательный
Status
Строка
Статус заказа:
OrderCreated - новый, созданный заказ
AcceptOrder - принятый заказ, подтвержденный партнёром
Waiting - ожидание выполнения заказа
Progress - заказ выполняется
UserCanceled - заказ отменен пользователем
StationCanceled - заказ отенен станцией
Completed - заказ выполнен
ErrorPayment - заказ отменен партнёром до подтверждения
Обязательный
ChargeStatus
Строка
Статус выполнения заказа на станции, в случае Status=Progress
Wait - ожидание начала зарядки
Charge - идёт зарядка
Reserve - пост забронирован
Complete - зарядка завершена
Fail - ошибка работы на станции
Обязательный
DateCreate
Строка
дата/время создания заказа в формате ISO
Обязательный
DateEnd
Строка
дата/время окончания обработки заказа в формате ISO
Обязательный
ChargeId
Строка
Идентификатор станции
Обязательный
PostId
Строка
Идентификатор поста
Обязательный
Sum
Строка
Предельная стоимость заказа
Обязательный
SumCompleted
Строка
Итоговая стоимость завершенного заказа
Обязательный
ChargeEnergy
Строка
Итоговое значение электроэнергии в киловатт-часах
SumEnergy Строка
Итоговая стоимость электроэнергии
ChargeTime Строка
Итоговое значение полного времени оказания услуг в часах
SumTime Строка
Итоговая стоимость времени оказания услуги
SumFixed Строка
Итоговая стоимость фиксированных компонентов применяемого тарифа (не зависящих от объема)
ParkingTime Строка
Итоговое значение времени парковки в часах
SumParking Строка
Итоговая стоимость времени парковки
SumReservation Строка
Итоговая стоимость времени резервирования
ReasonId Строка
Код причины отмены заказа
Reason Строка
Описание причины отмены

Передача состояния заказа партнеру

Сервер Benzuber выполняет запросы, для передачи статусов заказов партнеру на согласованный адрес:

URL_PS + /api/charge/команда?apikey={apikey}&параметры

Подтверждение заказа (Статус: accept)

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

Запрос

(GET) URL_PS + /api/charge/accept?apikey={apikey}&orderId={ordeId}
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
orderId
Строка
Идентификатор заказа партнёра

Ответ

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

200 – Заказ подтверждён партнером

любой другой код - запрос на подтверждение повторяется 5 раз с интервалом 5 секунд, затем отменяется. Устанавливается статус заказа = StationCanceled

Уведомление о ходе выполнения заказа (Статус: progress)

Запрос сообщает партнёру информацию о ходе выполнения заказа

Запрос

(GET) URL_PS + /api/charge/processing?apikey=[apiKey]&orderId=[orderId]&chargeStatus=[chargeStatus]&amount=[amount]&energy=[energy]
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
orderId
Строка
Идентификатор заказа партнёра
Обязательный
chargeStatus
Строка
Статус выполнения заказа на станции: Wait , Charge , Reserve , Complete , Fail
amount Строка
Текущая стоимость оказанного объема услуг
energy Строка
Текущее значение электроэнергии в киловатт-часах
current Строка
Текущее значение тока зарядки в ампера
power Строка
Текущее значение мощности зарядки в киловаттах
percent Строка
Текущее значение уровня заряда автомобиля в процентах

Ответ

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

200 – Информация о ходе выполнения заказа принята партнёром

Уведомление о завершении заказа (Статус: completed)

Запрос сообщает партнёру о том, что заказ выполнен.

Запрос

(GET) URL_PS + /api/charge/completed?apikey=[apiKey]&orderId=[orderId]&total=[total]&energy=[energy]&time=[time]
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
orderId
Строка
Идентификатор заказа партнёра
Обязательный
total
Строка
Итоговая стоимость завершенного заказа
Обязательный
energy
Строка
Итоговое значение электроэнергии в киловатт-часах
time Строка
Итоговое значение полного времени оказания услуг в часах
parking Строка
Итоговое значение времени парковки в часах (когда не было зарядки)
total_fixed Строка
Итоговая стоимость фиксированных компонентов применяемого тарифа (не зависящих от объема)
total_energy Строка
Итоговая стоимость электроэнергии
total_time Строка
Итоговая стоимость времени зарядки
total_parking Строка
Итоговая стоимость времени парковки
total_reservation Строка
Итоговая стоимость времени резервирования

Ответ

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

200 – Информация о ходе выполнения заказа принята партнёром

любой другой код - уведомление о завершении заказа повторяется до получения ответа с кодом 200 с увеличивающимся интервалом

Уведомление об отмене заказа (Статус: canceled)

Запрос сообщает партнёру о том, что заказ не может быть исполнен и его следует отменить.

Запрос

(GET) URL_PS + /api/charge/canceled?apikey=[apiKey]&orderId=[orderId]&reason=[reason]&reasonId=[reasonId]
Параметр Описание
Обязательный
apikey
Строка
Ключ авторизации
Обязательный
orderId
Строка
Идентификатор заказа партнёра
Обязательный
reason
Строка
Описание причины отмены заказа
Обязательный
reasonId
Строка
Код причины отмены заказа

Ответ

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

200 – Информация об отмене заказа принята партнёром

любой другой код - уведомление об отмене заказа повторяется до получения ответа с кодом 200 с увеличивающимся интервалом

Тестовая среда, тестовая станция

Для тестовой среды реализована тестовая АЗС (stationId=20000). Эта станция выдается при получении списка станций.

Описание API-Benzuber (electric) Используемые коды коннекторов Запрос получения списка станций Запрос получения списка постов на станции Запрос на создание заказа Запрос на попытку отмены заказа. Запрос получения информации о заказе Подтверждение заказа (callback) Уведомление о ходе выполнения заказа (callback) Уведомление о завершении заказа (callback) Уведомление об отмене заказа (callback) Тестовая среда
© 2024 ООО ТД "Смарт-технологии"