Шаг 1. Клиенту приходит счёт в его Kaspi
Вы (или ваш сайт/бот через API) выставляете счёт на номер телефона клиента, дальше работает сам Kaspi: клиенту приходит push-уведомление, обычно в течение минуты. Если push потерялся (отключены уведомления, плохая связь) — счёт всё равно ждёт клиента внутри приложения Kaspi.
В уведомлении о счёте клиент видит номер, с которого выставлен счёт, — это номер вашего кассира (почему так устроено); это штатное поведение Kaspi и на оплату не влияет. Как именно выглядит карточка счёта на экране покупателя — сумма, описание, название — определяет интерфейс Kaspi. Надёжная практика — предупредить клиента при продаже: «сейчас придёт счёт Kaspi».
Шаг 2. Оплата в пару касаний
Клиент открывает Kaspi и подтверждает оплату. Платит тем, чем привык: Kaspi Gold, Kaspi Red, рассрочка или кредит, счёт бизнеса — способ выбирает он, и на зачисление вам выбор способа не влияет: Kaspi удерживает свою обычную комиссию за приём платежа по вашим условиям Kaspi Pay — она не связана с ApiPay (Тарифы и комиссия). Способ оплаты потом виден в кабинете, в колонке «Статус» списка счетов.
Об оплате вы узнаёте без своего участия: статус в кабинете сменится на «Оплачен» (страница «Счета» обновляется сама), а если настроены вебхуки — уведомление придёт и вашему сайту или боту. В данных оплаты вам приходит имя плательщика в формате «Иван И.» — фамилию целиком Kaspi не передаёт. Если счёт выставлен по подписке, покупатель всё равно подтверждает каждую оплату сам: подписка в ApiPay — авто-выставление счёта, а не автосписание.
Вариант с QR: оплата на кассе
Для офлайн-точки сценарий ещё короче: вы показываете QR (с экрана или кассы) — клиент сканирует его своим приложением Kaspi и подтверждает сумму. Телефон клиента спрашивать не нужно.
Окно на скан — меньше трёх минут, длительность задаёт Kaspi: точный момент всегда берите из qr_expires_at в ответе POST /invoices/qr, константу в коде не зашивайте. Окно ограничивает только скан — оплата, начатая до него, завершится и позже. Сроки, картинка QR и вебхук о сканировании — в статье QR-счёт: TTL и лимиты.
Что видит клиент, если счёт истёк или отменён?
- Счёт по номеру живёт 24 часа. Не оплатил вовремя — статус «Истек». Хочет оплатить позже — выставьте новый счёт.
- QR истёк (окно на скан меньше трёх минут, точный момент — в
qr_expires_at) — создайте новый QR, клиент отсканирует ещё раз. - Клиент сам закрыл счёт в Kaspi или свернул приложение, не подтвердив, — у вас статус «Отменен». В
cancelledуходят оба случая: и явный отказ, и неподтверждение; туда же Kaspi относит отклонённый платёж и нехватку средств. - Клиент успел оплатить в момент, когда счёт отменялся или истекал, — оплата побеждает, счёт становится «Оплачен». Переход «Отменен → Оплачен» означает, что деньги на вашем Kaspi-счёте.
Что видит клиент при возврате?
Возврат вы делаете из кабинета («Возврат» в строке счёта) или через API — полный или частичный. Деньги возвращаются клиенту через Kaspi; окно возврата — около 14 дней с момента оплаты, после него возврат по счёту уже не проходит. Правила, лимиты и разбор отказов: Возвраты Kaspi через API.
Вопросы и ответы
Что если у клиента нет Kaspi?
Счёт просто не выставится: система вернёт ошибку «этот номер телефона не зарегистрирован в Kaspi» (client_not_found), и клиент ничего не увидит. Попросите другой номер — например, номер родственника с Kaspi.
Клиент говорит «мне ничего не пришло». Что делать?
Попросите открыть приложение Kaspi — счёт ждёт внутри, даже если push потерялся. Если счёта нет и там, проверьте статус в кабинете: возможно, счёт ещё выставляется, истёк или номер был указан с ошибкой.
Может ли клиент оплатить частично или поторговаться в приложении?
Нет, счёт оплачивается целиком одной суммой. Скидку задаёте вы при создании счёта; частичный возврат возможен после оплаты.