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

Подписка не выставляет счета

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

Коротко

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

Симптом → причина → решение

СимптомПричинаРешение
Счёт вообще не появилсяПодписка в статусе paused или closedПроверьте статус, при необходимости сделайте resume
Время пришло, счёта нетСледующий запуск назначен на другое времяПосмотрите время следующего запуска
Счёт появился с опозданиемИдёт лестница ретраевПроверьте значения retryDelaysMin
Один запуск пропущен полностьюmisfirePolicy: skipПоставьте политику run_once
В lastError ошибка привязки KaspiСессия кассира оборваласьПереподключите: Кассир Kaspi не подключается
В lastError лимит тарифаКончился месячный лимитДостигнут лимит
Счета выставляются, денег нетПокупатели не оплачиваютЭто не ошибка, оплата на стороне покупателя

Что читать в первую очередь

У самой подписки есть три поля для диагностики:

ПолеЧто показывает
lastRunStatusРезультат последнего запуска
lastErrorЕсли неудачно — конкретный код ошибки
failedRunsСколько запусков подряд оказались неудачными

Код в lastError объясняет всё остальное. Например kaspi_session_expired — проблема в кассире, tariff_limit_reached — в тарифе, invalid_phone — в данных покупателя.

Шесть проверок

1. Статус подписки

Статусов три: active, paused, closed.

Подписка может стать closed сама, если исчерпано заданное максимальное число запусков.

2. Время следующего запуска

В расписании два параметра: интервал (day, week, month) и кратность every. Например month + every: 2 — раз в два месяца.

Частое недоразумение: ожидание, что счёт появится сразу в момент создания подписки. Расписание отсчитывается от времени первого запуска, а он может быть не сегодня. Время следующего запуска смотрите в карточке подписки или в ответе GET /subscriptions/{id}.

3. Лестница ретраев

Если запуск оказался неудачным, подписка не останавливается сразу — она пробует ещё раз по лестнице ретраев. По умолчанию retryDelaysMin: [15, 60, 360] минут: через 15 минут, потом через час, потом через шесть часов. Максимум 5 значений.

Пока лестница не пройдена, со стороны кажется, что счёт просто не выставляется. В это время lastError уже заполнен — причину читайте оттуда.

Когда лестница закончилась, этот запуск отбрасывается, но расписание продолжается: следующий плановый запуск пойдёт в своё время. Счётчик failedRuns при этом растёт.

4. Политика пропуска

Если момент запуска по какой-то причине был пропущен, что делать дальше, решает misfirePolicy:

ЗначениеЧто происходит
run_once (по умолчанию)Пропущенный запуск выполняется один раз позже
skipПропущенный запуск не выполняется вовсе

misfireAfterMin — через сколько минут запуск считается пропущенным, по умолчанию 1440 (сутки).

Если у вас стоит skip, пропущенный счёт не появится вообще — это не сбой, так настроено.

Чтобы отправить пропущенный запуск вручную: POST /subscriptions/{id}/resume с телом { "catchUp": true }.

5. Активен ли кассир

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

Сценарий встречается часто: кто-то заходит с номера кассира в приложение Kaspi Pay, сессия обрывается, а подписка молча пишет ошибку в lastError. Проверка: кабинет → раздел Kaspi, активна ли привязка. Подробнее: Кассир Kaspi не подключается.

6. Лимит тарифа

Когда месячный лимит исчерпан, подписка тоже не может создать новый счёт — он считается как обычный. В lastError будет tariff_limit_reached.

Если подписок много, заложите их месячный объём заранее при выборе тарифа: Какой тариф выбрать.

Что чаще всего понимают неправильно

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

Подробнее: Бизнес по подписке.

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

Если остановить подписку, пропадут ли уже выставленные счета? Нет. Ранее созданные счета живут своей жизнью: будут оплачены, отменены или истекут.

Можно ли изменить лестницу ретраев? Да, через поле retryDelaysMin, максимум 5 значений. По умолчанию [15, 60, 360] минут.

Можно ли отправить пропущенный запуск вручную? Да: POST /subscriptions/{id}/resume с телом { "catchUp": true }.

Можно ли включить подписку со статусом closed? Нет, придёт ошибка subscription_closed. Создайте новую подписку.

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

Где полное описание всех полей? На странице API подписок.

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

API подписок — счета по расписаниюПодписка выставляет счета по расписанию, а каждую оплату подтверждает сам покупатель. Все поля создания, интервалы, лестница повторов, политика пропуска, методы pause/resume/run и поля состояния.Бизнес по подпискеПодписка — это выставление счёта по расписанию, деньги со счёта клиента сами не уходят. Лестница повторов, политика пропусков, pause/resume, напоминания и отчётность.Кассир Kaspi не подключается — почему и что делатьДиагностика по симптому: Kaspi просит пароль или видеоверификацию, спрашивает ИИН, не приходит SMS, не успеваете ввести код. Причина и решение для каждого случая, а также тайминги SMS.Достигнут лимит — что делатьtariff_limit_reached и tariff_daily_burst — это разные вещи. Первое про месячный лимит тарифа, второе про защиту от зацикленной интеграции. Как различить и что делать с каждым.Жизненный цикл счётаВсе статусы счёта и переходы между ними, какое событие вебхука приходит в какой момент, какие статусы считаются открытыми и оплаченными, и как обработать поздно пришедшую оплату.

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

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