Перейти к содержимому

Как получить токен API и настроить вебхуки ​

Токен компании открывает внешним программам доступ к данным филиала через API RentProg. Вебхуки работают в обратную сторону: RentProg сам сообщает вашей программе, что бронирование, клиент или транспортное средство создано, изменено или удалено.

Обе настройки — в профиле компании, вкладка «Интеграции», панели «Токен для доступа к API» и Webhooks.

Кому доступно ​

ЧтоУсловие
Панель «Токен для доступа к API»Доступ к API: услуга API в тарифе и доступ не отключён администрацией RentProg
Скопировать и обновить токенМенеджер и выше; партнёрам и гостям поле не показывается
Панель WebhooksДоступ к API, отдельно включённый доступ к вебхукам и услуга вебхуков в тарифе
Добавлять, менять и удалять ссылки для вебхуковСотрудники компании
Видеть секрет подписи вебхукаСотрудники компании; партнёрам и гостям не показывается

Как скопировать токен ​

  1. Откройте профиль компании, вкладка «Интеграции», панель «Токен для доступа к API».
  2. Нажмите поле «API Токен» или значок копирования в нём — токен попадёт в буфер обмена.

Токен свой у каждого филиала. Тот же токен нужен внешним сервисам, например форме бронирования на сайте.

Как обновить токен ​

  1. Нажмите «Обновить токен» в панели «Токен для доступа к API».
  2. Подтвердите обновление.
  3. Скопируйте новый токен и замените его во всех внешних сервисах.

Важно

При обновлении токена все внешние сервисы, использующие старый токен, перестанут работать. Старый токен восстановить нельзя.

Как программа входит в API ​

Программа меняет токен компании на временный ключ доступа, а затем передаёт его в заголовке Authorization каждого запроса:

GET /api/v1/public/get_token?company_token=<токен компании>

Временный ключ действует 4 часа. Ограничения частоты запросов:

  • обычное чтение — 120 запросов в минуту, отдельно на компанию и на IP-адрес; оба ограничения действуют одновременно;
  • запись — 60 запросов в минуту, отдельно на компанию и на IP-адрес; оба ограничения действуют одновременно;
  • free_cars_with_price, search_clients, search_bookings, search_cars, icalendar_event и active_bookings_icalendar — общий отдельный лимит 30 запросов в минуту на IP-адрес;
  • получение временного ключа через get_token — 60 запросов в минуту на IP-адрес.

Важно

Если доступ к API отключён, сервер отвечает отказом и просит обратиться в поддержку. Если подписка компании отключена за неоплату, API тоже отвечает отказом до пополнения баланса компании.

Поправки цены на даты в ответах о машинах ​

Поправка на даты — процентная надбавка или скидка к цене суток на диапазон дат. Цены в таблицах prices она не меняет: ответы API отдают поправки отдельным полем date_adjustments, а программа применяет их сама. Поле добавлено к прежним, ни одно прежнее поле не изменилось.

Поле есть у машины в ответах трёх методов:

МетодГде поле
GET /api/v1/public/all_cars_fullу каждой машины в массиве
GET /api/v1/public/car_data_with_bookingsв объекте машины
GET /api/v1/public/search_carsу каждой машины в массиве

Пример поля у машины:

"date_adjustments": [
  {"starts_on": "2026-12-30", "ends_on": "2027-01-02", "percent": 15.0},
  {"starts_on": "2027-01-03", "ends_on": "2027-01-03", "percent": -5.0}
]
ПолеЧто в нём
starts_onПервый день интервала, формат YYYY-MM-DD
ends_onПоследний день интервала, включительно
percentЧисло: положительное — надбавка, отрицательное — скидка; 15.0 значит «плюс 15 %»

Что гарантирует ответ:

  • Интервалы уже разрешены: они не пересекаются и идут по возрастанию дат. Если на один день действуют несколько поправок, в ответ попадает последняя созданная.
  • Соседние интервалы с одинаковым процентом слиты в один.
  • Отменённые поправки не отдаются.
  • Интервалы, закончившиеся раньше вчерашнего дня, не отдаются. Вчерашний день взят с запасом на часовой пояс филиала; интервал, захватывающий вчера, приходит целиком, с настоящей датой начала.
  • У машины без поправок поле равно [].
  • Поправка действует на машину, пока та в филиале, где поправку создали: после перевода машины в другой филиал она из ответов пропадает.

Ответы all_cars_full и car_data_with_bookings кешируются до 30 секунд. Создание поправки, её отмена и перевод машины в другой филиал сбрасывают кеш, поэтому следующий запрос уже возвращает новые интервалы. search_cars не кешируется.

Цену, которую RentProg считает сам (selected_price в free_cars_with_price и car_data), поправки уже учитывают. Поправки получает суточная и почасовая аренда; недельная, месячная аренда и периодические платежи их не получают, для них date_adjustments применять не нужно.

Как посчитать цену дня с поправкой ​

  1. Возьмите цену дня из таблицы prices так, как вы это делаете без поправок, — с учётом сезона и ступени длительности.
  2. Если день попадает в интервал date_adjustments, умножьте цену на 1 + percent / 100.
  3. Округлите результат по правилу ниже.
  4. Дни вне интервалов не округляйте и не меняйте: их цена остаётся такой, как в таблице.

Округление идёт от новой, ещё не округлённой цены: от неё выбирается шаг, затем значение округляется до шага, а половина шага — вверх.

Цена после умноженияШаг округления
1000 и больше10
от 10 до 999,991
меньше 100,1

Примеры:

Цена после умноженияРезультатПояснение
999,61000шаг 1, округление вверх
42,543шаг 1, половина вверх
9699691020 с поправкой −5 %: уже кратно шагу, не меняется
9,9510,0шаг 0,1, половина вверх

Округление не сохраняет окончаний вроде «…90»: цена после поправки может оканчиваться любой цифрой в пределах шага.

Как добавить ссылку для вебхуков ​

  1. Раскройте панель Webhooks и нажмите «Добавить ссылку для вебхуков».
  2. Впишите адрес вашей программы в поле «URL для вебхуков».
  3. Выберите события в поле «Подписки на события» — хотя бы одно.
  4. Включите «Только созданные через API» или «Только обновленные через API», если нужны только записи, пришедшие через API.
  5. Нажмите значок сохранения с подсказкой «Сохранить ссылку для вебхуков».

Без адреса или без событий ссылка не сохранится. Адрес проверяется на формат.

События для подписки: «Бронирование создано», «Бронирование обновлено», «Бронирование удалено», «Клиент создан», «Клиент обновлен», «Клиент удален», а также создание, изменение и удаление транспортного средства.

Ссылка принадлежит филиалу, в котором её создали: события приходят по записям этого филиала.

Как проверить подпись доставки ​

После сохранения у ссылки появляется поле секрета подписи. Секрет создаётся один раз при создании ссылки и не меняется при её правке. Скопируйте его значком копирования и храните на стороне вашей программы.

Каждая доставка — это запрос POST с телом в формате JSON:

{"event": "booking_create", "payload": "<данные записи в виде строки JSON>"}

Заголовки доставки:

ЗаголовокЧто в нём
X-Webhook-Signaturesha256= и подпись тела запроса по алгоритму HMAC-SHA256 секретом ссылки
X-Webhook-Event-IdID события
Idempotency-KeyТот же ID события — одинаковый у всех повторов и переотправок

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

Когда доставка считается неудачной ​

Ответ вашей программыЧто делает RentProg
200, 201 или 204Доставка успешна
408, 429, обрыв соединения или нет ответа за 10 секундПовторяет доставку с растущей паузой, всего до 8 попыток; после последней — ошибка
404Отмечает ошибку и деактивирует ссылку
Ошибка защищённого соединенияОтмечает ошибку без повторов
Любой другой кодОтмечает ошибку без повторов

Важно

Ответ 404 выключает ссылку целиком: дальше события на неё не отправляются, пока вы её не активируете.

Как переотправить ошибочные доставки ​

  1. Раскройте панель Webhooks и найдите блок «Последние ошибки вебхуков».
  2. Проверьте у события адрес и код ответа, при необходимости исправьте вашу программу.
  3. Нажмите «Переотправить» у события.

В блоке показываются ошибочные доставки всей группы компаний, кнопка «Показать ещё» загружает более ранние. Переотправить можно только событие в статусе ошибки и только на активную ссылку: если ссылка деактивирована, сначала активируйте её.

Как управлять ссылкой ​

У сохранённой ссылки есть значки:

  • «Обновить ссылку для вебхуков» — сохранить изменённый адрес, события или переключатели;
  • «Деактивировать ссылку для вебхуков» — временно перестать отправлять события;
  • «Активировать ссылку для вебхуков» — снова включить отправку;
  • «Удалить ссылку для вебхуков» — удалить ссылку вместе с историей её событий, после подтверждения.
Материал подготовлен с помощью ИИ и может содержать неточности. Сообщить об ошибке