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

Оплата не приходит покупателю

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

Коротко

Самая частая причина — остался включённым тестовый режим. В песочнице настоящий Kaspi не вызывается: счёт создаётся у нас, статус даже меняется, но на телефон покупателя ничего не уходит и деньги не движутся. Первым делом посмотрите на начало ключа: если он начинается с qp_test_, вы в песочнице. Боевой ключ — qp_live_. Если с режимом всё в порядке, проверьте шесть вещей в порядке ниже.

По симптому

Что видитеВероятная причинаЧто делать
Счета создаются, покупателю ничего не приходитТестовый режимПроверьте начало ключа и режим в кабинете
API не создаёт счёт и возвращает ошибкуНет привязки кассира или она оборваласьКабинет → Kaspi → восстановите привязку
Ошибка tariff_inactiveКончился пробный период или тариф не оплаченКабинет → Тариф
Ошибка invalid_phoneНеверный формат номера7XXXXXXXXXX, 11 цифр, без пробелов
Push ушёл, покупатель не видитНет приложения Kaspi или оно на другом номереДайте QR или ссылку на оплату
QR открывается, но пишет «попробуйте позже»Истекло окно сканированияQR показывает «попробуйте позже»

Порядок проверки

1. Режим. Посмотрите, какой режим включён в кабинете. В песочнице Kaspi не участвует вообще: push покупателю не уходит, QR не принимает настоящую оплату, деньги не движутся. Это не сбой — песочница так и должна работать, просто её забыли выключить.

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

2. Ключ. Какой ключ реально отправляет ваш код? Начало ключа говорит всё:

КлючРежимЧто происходит
qp_test_…ПесочницаНастоящие деньги не движутся, Kaspi не вызывается, оплату вы симулируете сами
qp_live_…БоевойНастоящий QR Kaspi, настоящие деньги

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

3. Активен ли кассир? В боевом режиме счёт выставляется через роль «Кассир» в Kaspi. Если привязка оборвалась, счёт вообще не создаётся. В разделе Kaspi посмотрите, активна ли карточка подключения.

Самая частая причина обрыва: кто-то вошёл в приложение Kaspi Pay с номера кассира — Kaspi разрешает одному номеру только одно активное устройство, и наша сессия обрывается.

4. Формат номера покупателя. Счёт вида phone отправляет push в приложение Kaspi покупателя, поэтому customer.phone должен быть корректным: 7XXXXXXXXXX — 11 цифр, без +, пробелов, скобок и дефисов. Номер, начинающийся с 8, приводите к 7 на своей стороне.

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

5. Есть ли у покупателя приложение Kaspi? Счёт на телефон доходит только до того, у кого установлено приложение Kaspi и оно привязано к этому номеру. Человеку без приложения не придёт ни push, ни счёт. В таком случае создайте счёт вида qr и дайте QR-код или ссылку на оплату.

6. Активен ли тариф? Если пробный период закончился, а тариф не оплачен, API отвечает tariff_inactive и новые счета не создаются. Состояние видно в разделе Тариф. Пробный период длится 7 дней и отсчитывается не от даты регистрации, а от первого боевого счёта.

Как разделить причины за две минуты

  1. Создайте счёт вручную из кабинета. Не создаётся — дело не в коде, а в привязке или тарифе.
  2. Дошёл ли до покупателя счёт, созданный из кабинета? Дошёл — значит ваш код работает с другим ключом или в другом режиме.
  3. Появился ли новый счёт в списке счетов? Нет — ваш запрос до нас вообще не дошёл.

Частые ошибки

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

Приходит ли покупателю что-то в песочнице? Нет. Песочница не обращается к Kaspi вообще, она нужна только для отладки вашего кода.

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

Может ли номер кассира совпадать с номером покупателя? Нет, это разные номера. К тому же с номера кассира нельзя входить в приложение Kaspi Pay — привязка оборвётся.

Можно ли переотправить счёт покупателю? Отмените старый и создайте новый — уйдёт новый push на ту же сумму.

Покупатель спрашивает, чей номер он видит. В уведомлении о счёте виден номер кассира — это обычное поведение Kaspi, от ваших настроек оно не зависит.

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

QR показывает «попробуйте позже»Если покупатель сканирует QR и видит ошибку, чаще всего истекло окно сканирования. Окно задаёт Kaspi, берите его из поля expiresAt. Чем печатный QR отличается от QR на экране.Счёт завис в статусе pendingPending — не ошибка, а нормальное состояние: счёт выставлен, покупатель ещё не подтвердил. Сколько он живёт, когда станет expired, как мы его проверяем и когда действительно стоит волноваться.Вебхук не приходит — как найти причинуСчёт оплачен, а на ваш сервер уведомление не пришло. С чего начать диагностику, какая причина встречается чаще всего и как проверить её одним запросом.Что такое Qut Pay и как он устроенQut Pay — независимый сервис поверх Kaspi Pay: API и кабинет для приёма Kaspi QR через роль «Кассир». Деньги приходят напрямую на ваш счёт в Kaspi и никогда не попадают к нам.

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

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