Коротко
Самая частая причина — остался включённым тестовый режим. В песочнице настоящий 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 дней и отсчитывается не от даты регистрации, а от первого боевого счёта.
Как разделить причины за две минуты
- Создайте счёт вручную из кабинета. Не создаётся — дело не в коде, а в привязке или тарифе.
- Дошёл ли до покупателя счёт, созданный из кабинета? Дошёл — значит ваш код работает с другим ключом или в другом режиме.
- Появился ли новый счёт в списке счетов? Нет — ваш запрос до нас вообще не дошёл.
Частые ошибки
- Переключить режим в кабинете и не поменять ключ в коде. Это делается вместе.
- Отправлять сумму с тиынами. Счёт на телефон принимает только целые тенге.
- Брать номер из формы без очистки. Строка вида
+7 (777) 123-45-67не принимается. - Судить о создании счёта по тому, что не пришёл вебхук. Это две разные проблемы: Вебхук не приходит.
Вопросы и ответы
Приходит ли покупателю что-то в песочнице? Нет. Песочница не обращается к Kaspi вообще, она нужна только для отладки вашего кода.
Считаются ли счета из песочницы в лимит тарифа? Нет, они не идут в месячный лимит и не запускают пробный период.
Может ли номер кассира совпадать с номером покупателя? Нет, это разные номера. К тому же с номера кассира нельзя входить в приложение Kaspi Pay — привязка оборвётся.
Можно ли переотправить счёт покупателю? Отмените старый и создайте новый — уйдёт новый push на ту же сумму.
Покупатель спрашивает, чей номер он видит. В уведомлении о счёте виден номер кассира — это обычное поведение Kaspi, от ваших настроек оно не зависит.