> Источник: https://apipay.kz/guides/posle-prod-ne-rabotaet · Обновлено: 2026-10-23 · apipay.kz
> ApiPay — независимый сервис приёма платежей поверх вашего Kaspi Pay.

# Перешёл в рабочий режим — не работает: что проверить?

**TL;DR.** «Всё отладил, оплатил, запустил — а оно не работает» чаще всего означает, что **рабочий режим так и не включён**: счета продолжают жить в песочнице и в Kaspi не уходят — покупателю по счёту на номер не приходит ничего, а при скане песочного QR он видит «Пожалуйста, повторите позднее». Вторая по частоте причина — **код ходит со старым API-ключом**: прежний ключ перестаёт действовать после перевыпуска или переноса организации на другой аккаунт (переключение режима и подключение кассира ключ не меняют). Первое действие: проверьте плашку режима в кабинете ApiPay и сверьте ключ в Настройках → «Подключения».

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

1. **Тариф активен — и виден в этом профиле?** При неактивной подписке создание счёта отбивается **403 `tariff_inactive`**; статус видно в `GET /account/health` → `tariff.status`. Бывает, что оплата уходит с другого профиля (например, вы добавлены разработчиком в чужую организацию) — тогда в вашем кабинете тариф «не появился».
2. **Недавно перевыпускали ключ или переносили организацию на другой аккаунт?** Тогда прежний API-ключ больше не действует — возьмите актуальный ключ; после переноса организации у нового ключа заново укажите вебхук и секрет. Подключение кассира ключи не трогает, само переключение «песочница ⟷ рабочий режим» ключ не меняет: у клиента личного кабинета он один на оба режима ([API-ключ и вебхук-секрет](/guides/api-klyuch-i-webhook-secret)).
3. **Плашка режима.** Если в кабинете горит «ТЕСТОВЫЙ РЕЖИМ … Счета не передаются в Kaspi» — дальше можно не искать.

## Какая причина у вашего симптома?

| Признак | Вероятная причина | Что сделать | Подробнее |
|---|---|---|---|
| Счета «создаются», но покупателю не приходит ничего; при скане QR он видит «**Пожалуйста, повторите позднее**» | Рабочий режим не включён — **чаще всего** | Настройки → включить «Рабочий режим» | «Как включить рабочий режим» в «[Песочнице и рабочем режиме](/guides/pesochnitsa-i-rabochiy-rezhim)» |
| После перехода API отвечает 401 | Код ходит со старым ключом — **часто**. Ключ перевыпускали или организацию переносили на другой аккаунт | Взять актуальный ключ в Настройках → «Подключения»; после переноса организации — заново указать у нового ключа Webhook URL и секрет. Если ключ верный, а отказ приходит как **403 `tariff_inactive`** — это не ключ, отказ снимается оплатой тарифа | «Когда ключи „внезапно“ перестают работать» в «[API-ключе и вебхук-секрете](/guides/api-klyuch-i-webhook-secret)» |
| Счёт или QR не создаётся: **409 `kaspi_session_expired`** (реже **503 `kaspi_session_invalid`**); `GET /account/health` отдаёт `connection.needs_reauth: true` | Оборвалась авторизация кассира. Без живой привязки кассира не включится и сам рабочий режим | Повтор не поможет — переподключить кассира: Настройки → «Авторизация Kaspi» → код из SMS. Как подключается кассир — на странице «[Подключение кассира Kaspi](/connect-cashier)» | [Привязка кассира разорвалась](/guides/pochemu-sletala-sessiya-kassira) |
| Покупатель открывает ссылку на оплату или печатный лист и видит «**Тестовый лист.** Это песочница: оплата не пройдёт» | Ссылку (`payment_url`) или лист выпустили, пока организация была в песочнице. Такие ссылки и листы остаются тестовыми навсегда, переход в рабочий режим их не меняет | Выпустить новые ссылки и листы уже в рабочем режиме и отправить или распечатать их заново; старые отключить | «[Оплата по ссылке](/guides/oplata-po-ssylke-kaspi)», «[Статический QR](/guides/pechatnyy-qr-dlya-oplaty-po-sdelke)» |
| Переключатель режима не срабатывает, кабинет просит подождать | Режим меняется не чаще раза в 5 минут | Дождаться времени, которое показывает кабинет, — ограничение снимается само, поддержка не нужна | [Песочница и рабочий режим](/guides/pesochnitsa-i-rabochiy-rezhim) |
| Оплатили тариф, а кабинет всё ещё «тестовый» / тариф не виден | Оплата ушла с другого профиля, или ожидание «режим включится сам» — **редко** | Проверить профиль оплаты (личный номер входа!) и включить режим вручную | [Вход в кабинет ApiPay](/guides/vhod-v-kabinet-apipay) |

Если переключать режим приходится постоянно, заведите **вторую организацию как песочницу** — боевую трогать не придётся.

## Что значит «Пожалуйста, повторите позднее» у покупателя?

Организация в песочнице в Kaspi не ходит вовсе: по счёту на номер покупателю **не приходит ничего** — ни пуша, ни счёта внутри приложения. Фразу «Пожалуйста, повторите позднее» покупатель видит при скане QR — песочного (в Kaspi его нет) либо уже истёкшего. Проверьте у счёта `is_sandbox: true` (у счёта по номеру ещё префикс `SANDBOX-` в `kaspi_invoice_id`; у песочного QR-счёта номер обычный). Разбор по QR — «[QR: „Попробуйте позже“](/guides/qr-poprobuyte-pozzhe)».

## Почему ссылка на оплату после перехода пишет «Тестовый лист»?

Ссылка на оплату и печатный лист запоминают режим, в котором их выпустили. Всё, что создано в песочнице, так и остаётся тестовым: покупатель видит «Тестовый лист. Это песочница: оплата не пройдёт», деньги не спишутся. После перехода в рабочий режим выпустите новые ссылки и листы — через `POST /static-qr`, `POST /invoices/qr` со `"static": true` или в кабинете в разделе «Статический QR». Старые отключите (`DELETE /static-qr/{id}`), напечатанные тестовые листы замените.

## Как проверить переход в прод из кода?

После перехода в прод проверяйте: `is_sandbox` у новых счетов (должно быть `false`), префикс `kaspi_invoice_id` у счетов по номеру (боевые без `SANDBOX-`; у песочного QR-счёта номер обычный, надёжен только `is_sandbox`), `GET /account/health` → `tariff.status`, `connection.needs_reauth`, `invoicing.accumulating`. В рабочем режиме отбрасывайте события с `is_sandbox: true` в корне тела: отвечайте `2xx` и не исполняйте. Событие по песочному объекту, отправленное до перевода организации в рабочий режим, может прийти уже после него. Корневой `is_sandbox` относится к объекту события, а не к текущему режиму организации: свой режим ваша система знает сама. `401` = ключ невалиден (возьмите актуальный в Настройках → «Подключения»; ключ один на песочницу и рабочий режим), там же сверьте вебхук-секрет. `409 kaspi_session_expired` на создании счёта или QR — сессия кассира мертва, счёт не создан, повтор не поможет: нужна переавторизация кассира в кабинете. Поля, коды ответов и примеры запросов — в [документации API](/docs); код проверки может написать ваш ИИ-агент — дайте ему [apipay.kz/for-ai](https://apipay.kz/for-ai).

## Частые вопросы

**Почему после перехода в рабочий режим оплата всё равно не приходит?**
Чаще всего рабочий режим фактически не включён — счета продолжают создаваться в песочнице (is_sandbox: true, префикс SANDBOX-) и в Kaspi не уходят: по счёту на номер покупателю не приходит ничего, а при скане песочного QR он видит «Пожалуйста, повторите позднее». Включите «Рабочий режим» в Настройках.

**Почему после включения прода перестал работать API-ключ?**
Само переключение режима ключ не меняет — он один на песочницу и рабочий режим. Прежний ключ перестаёт действовать после его перевыпуска или переноса организации на другой аккаунт, подключение кассира ключ не трогает. Старое значение не вернётся, возьмите актуальный ключ в Настройках → «Подключения»; после переноса организации заново укажите у нового ключа Webhook URL и секрет.

**Оплатил тариф, а кабинет остался в тестовом режиме — почему?**
Режим не переключается автоматически после оплаты — включите его вручную. Если тариф не виден вовсе, проверьте, с того ли профиля оплачивали: оплата могла уйти в другой профиль (например, профиль разработчика).

**Ссылка на оплату после перехода в рабочий режим пишет «Тестовый лист» — почему?**
Ссылку или печатный лист выпустили, пока организация была в песочнице. Такие ссылки и листы остаются тестовыми навсегда: оплата по ним не пройдёт и после перехода в рабочий режим. Выпустите новые ссылки и листы уже в рабочем режиме, а старые отключите.

**Что делать, если переключатель режима не срабатывает?**
Режим меняется не чаще одного раза в 5 минут: кабинет покажет, сколько осталось ждать. Ограничение снимается само. Если режим не включается и после ожидания — проверьте привязку кассира: без неё рабочий режим не включится.

---

ApiPay — независимый сервис и не аффилирован с АО «Kaspi Bank». Kaspi и Kaspi Pay — товарные знаки их правообладателя.
База знаний: https://apipay.kz/guides
