Qut Pay Сайт Кабинет База знаний Инструкции Документация API ҚАЗРУС
ГлавнаяБаза знаний → Для вашего бизнеса

Аренда и прокат

Обновлено: 2026-09-14 · Версия в Markdown

Коротко

В аренде всегда два разных денежных движения: залог (гарантия, чаще всего возвращается) и плата за аренду (не возвращается). Не смешивайте их в одном счёте — делайте два счёта, тогда возврат будет чистым. Если вещь выдаёт автомат или замок, схема одна: клиент сканирует QR → оплачивает → на ваш сервер приходит вебхук invoice.paid → ваш сервер открывает устройство. Номер устройства заранее кладётся в поле metadata.

Кому подходит

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

Схема работы по шагам

Вариант с выдачей автоматом:

ШагКтоЧто происходит
1КлиентСканирует QR на станции приложением Kaspi
2Станция или ваш серверPOST /api/v1/invoices — создаёт счёт, кладёт в metadata слот и номер устройства
3КлиентПодтверждает в Kaspi
4Qut PayОтправляет событие invoice.paid на ваш адрес
5Ваш серверЧитает номер устройства из metadata и открывает замок
6КлиентЗабирает вещь

В пункте проката с сотрудником вместо шага 5 вещь выдаёт человек — остальное то же самое.

Как брать залог

Делайте два счёта:

СчётСуммаОписаниеЧто с ним дальше
АрендаПо сроку«Велосипед, 2 часа»Остаётся у вас
ЗалогФиксированная«Велосипед, залог»Возвращается

Почему раздельно? Возврат делается по счёту. Если объединить, для возврата залога придётся делать частичный возврат, а учёт запутается.

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

Скажите об этом клиенту заранее: «залог возвращаем, обычно в тот же день».

Возврат залога

Когда вещь принята и проверена:

POST https://api.qut.kz/api/v1/invoices/{id счёта залога}/refund
{ "reason": "вещь возвращена в целости" }

Без amount возвращается вся сумма.

Частичный возврат

Если вещь повреждена или сдана позже срока, часть залога вы удерживаете:

POST https://api.qut.kz/api/v1/invoices/{id}/refund
{ "amount": 7000, "reason": "просрочка 1 час" }

Здесь amount — сумма, которую вы возвращаете, а не удерживаете. Если из залога 10 000 ₸ нужно удержать 3 000 ₸, пишете 7000. Счёт переходит в partially_refunded.

Бывает, что ответ по возврату остаётся неопределённым (refund_unknown) — не повторяйте сразу, сначала прочитайте состояние счёта. Подробнее: API возвратов.

Периодическая оплата

Для длинной аренды (оборудование на месяц, помесячный прокат) есть два пути:

1. Счёт вручную на каждый период. Из кабинета или через API. Перед концом срока отправляете клиенту ссылку. Самый гибкий вариант: сумма может меняться от месяца к месяцу.

2. Подписка. Счёт выставляется по расписанию сам, интервалы day, week, month. Но важно: деньги со счёта клиента сами не уходят, каждый счёт он подтверждает в Kaspi вручную. Подробнее: Бизнес по подписке.

Для посуточной или почасовой аренды (самокаты, велосипеды) подписка не подходит — там правильнее отдельный счёт на каждую поездку.

Metadata: пишем номер устройства

Это самая важная техническая деталь в аренде. При создании счёта:

{
  "amount": 500,
  "kind": "qr",
  "description": "Пауэрбанк, 2 часа",
  "externalOrderId": "rent-90412",
  "metadata": {
    "station": "ALM-014",
    "slot": 7,
    "deviceId": "PB-33921",
    "type": "rent",
    "hours": 2
  }
}

metadata — произвольный JSON. Он возвращается в вебхуке, поэтому при получении invoice.paid не нужно искать в базе, какой слот какой станции открыть — всё лежит в самом событии.

externalOrderId — ваш номер аренды, он тоже приходит обратно. Используйте оба поля: Metadata и номер заказа.

В счёте залога поставьте "type": "deposit" — тогда обработчик вебхуков не перепутает его с арендой.

Что важно на стороне вебхука

Настройка: Настройка вебхуков.

На что обратить внимание

Вопросы и ответы

Можно заморозить залог и потом «разморозить»? Нет, такого механизма нет. Залог — полноценный платёж, для возврата делается операция возврата.

Есть ли срок на возврат? Да, ограничение есть. Не держите залог месяцами при длинной аренде — сроки и ошибки: API возвратов.

У автомата нет экрана, можно наклеить статичный QR? Постоянную ссылку сделать можно, но тогда счёт не будет привязан к конкретному устройству. Схема получится как у парковок: Парковки и шлагбаумы и Оплата в вендинговом автомате.

А если клиент не вернёт вещь? Залог остаётся у вас на счёте Kaspi, делать ничего не нужно. Остальное — ваш вопрос с клиентом.

У меня несколько станций, хочу раздельный учёт. Заведите отдельный API-ключ на станцию или фильтруйте по metadata.station: Раздельная отчётность по точкам.

Связанные статьи

Metadata и номер заказаЧем externalOrderId отличается от metadata, как оба поля возвращаются в вебхуке, что можно класть в metadata и что туда нельзя класть никогда — с конкретными примерами.API возвратов — полный и частичный возвратСправочник по методу POST /invoices/{id}/refund: поля запроса, полный и частичный возврат, ограничение суммы, все коды ошибок, что делать при refund_unknown и какие события приходят после возврата.Оплата в вендинговом автомате без терминалаДинамический QR на экране автомата, покупатель сканирует, приходит вебхук, контроллер выдаёт товар. Схема для автоматов воды, кофе и снеков, требования к железу и окно QR.Парковки и шлагбаумыQR на экране у выезда или счёт по номеру билета, вебхук открывает шлагбаум через IP-реле. Динамический и печатный QR, номер машины в metadata, борьба с задержкой.Настройка вебхуковКак добавить адрес вебхука в кабинете, выбрать события и сохранить секрет, какие приходят заголовки и тело, как устроены 11 повторов, как читать журнал, протестировать адрес и что с редиректами.

Остались вопросы? WhatsApp +77788813333 · kazprose@gmail.com
Написать можно и из кабинета: Поддержка.

Qut Pay — независимый сервис, не аффилирован с АО «Kaspi Bank». Kaspi и Kaspi Pay — товарные знаки их правообладателя.