# Забыли выключить тестовый режим

> Счета создаются, ошибок нет, но покупателю ничего не приходит и деньги не поступают — это самый узнаваемый признак песочницы. Как проверить, как перейти и что будет с тестовыми счетами.

## Коротко

Самый частый признак: **счета создаются, ошибок нет, но покупателю ничего не приходит и деньги не поступают.** Это почти всегда песочница. В песочнице Kaspi вообще не вызывается: счёт создаётся у нас, QR виден, но реальной оплатой он не является.

Быстрее всего проверить по префиксу ключа. `qp_test_…` — песочница, `qp_live_…` — боевой режим. Чтобы перейти, нужно переключить режим в кабинете **и** заменить ключ в интеграции на боевой — обязательно и то, и другое.

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

| Симптом | Причина | Решение |
|---|---|---|
| Счёт создаётся, покупателю не приходит | Режим песочницы | Перейдите в боевой режим и смените ключ |
| Покупатель говорит «я оплатил», денег нет | Оплата тестового счёта была просимулирована | Создайте счёт боевым ключом |
| В кабинете счета есть, в Kaspi их нет | Kaspi не вызывался | Проверьте режим |
| Кабинет в боевом режиме, а счета всё равно тестовые | В интеграции остался старый ключ `qp_test_` | Замените ключ |
| Счётчик лимита не растёт | Счета песочницы в лимит не входят | Это нормально, проверьте режим |
| Пробный период не начинается | Он начинается с первого боевого счёта | Создайте боевой счёт |

## Как проверить

Есть три независимых признака, и лучше посмотреть все три.

**1. Префикс ключа.** Каким ключом реально работает интеграция? `qp_test_` — песочница. Это самый надёжный признак, потому что он находится в самой интеграции.

**2. Отметка в кабинете.** Когда песочница включена, в кабинете видна отметка тестового режима, и в списке счетов тестовые счета тоже отличимы.

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

## Переключить нужно в двух местах

Здесь чаще всего и ошибаются: человек переключает режим в кабинете, а в интеграции оставляет старый ключ `qp_test_…`. В результате всё как было: счета создаются, покупателю не приходят.

| Что | Где меняется |
|---|---|
| Режим | В кабинете |
| Ключ | В настройках или переменных окружения интеграции |

Порядок перехода:

1. **Проверьте, подключён ли кассир Kaspi.** В боевом режиме он обязателен.
2. **Переключите режим в кабинете на боевой.**
3. **Создайте боевой ключ** и выдайте ему нужные scope.
4. **Замените ключ в интеграции** — в переменных на сервере, в настройках плагина, в CRM, везде.
5. **Перезапустите сервис**, чтобы старый ключ не остался в памяти процесса.
6. **Проведите один настоящий счёт на минимальную сумму и оплатите его сами.** Проверьте и поступление денег на счёт Kaspi, и приход вебхука.
7. **Удалите старые тестовые ключи**, иначе их кто-нибудь вернёт обратно.

Полный чек-лист: [Как перейти в боевой режим](/kb/ru/switch-to-live). Если после перехода не заработало: [Перешёл в боевой режим — не работает](/kb/ru/after-live-not-working).

## Что будет с тестовыми счетами

| Вопрос | Ответ |
|---|---|
| Перейдут ли тестовые счета в боевой режим | Нет. Они остаются в песочнице |
| Входят ли они в лимит | Нет. Счета песочницы не влияют ни на месячный лимит, ни на суточную защиту |
| Запускают ли пробный период | Нет. Пробный начинается с **первого боевого счёта** |
| Двигаются ли деньги | Нет. Kaspi вообще не вызывается |
| Нужно ли их удалять | Не нужно. В боевую отчётность они не попадают |
| Приходят ли вебхуки | Да, в песочнице тоже — чтобы можно было протестировать интеграцию |

То есть сколько бы счетов вы ни создали в песочнице, вам это ничего не стоит и пробный период не расходует. Так сделано специально: чтобы интеграцию можно было тестировать свободно.

## Чтобы не повторилось

- **Разделите ключи по средам.** В тестовой среде только `qp_test_`, в продакшене только `qp_live_`. Не держите оба в одном файле.
- **Не записывайте ключ в код**, берите его из переменных окружения.
- **Проверяйте при старте.** Пусть сервис при запуске читает префикс ключа и, если он не соответствует ожидаемой среде, пишет предупреждение или вовсе не стартует.
- **Добавьте в мониторинг.** Если за сутки не создано ни одного боевого счёта — это тоже сигнал.

Хранение и ротация ключей: [API-ключи](/kb/ru/api-keys).

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

**Можно ли превратить счёт из песочницы в боевой?** Нет. В боевом режиме вы создаёте новый счёт.

**Покупатель говорит, что оплатил тестовый счёт. Где деньги?** Никуда не ушли. В песочнице Kaspi не вызывается, реальный перевод покупатель сделать не мог. Скорее всего, он имеет в виду что-то другое — сверьтесь по счёту.

**Нужен ли кассир Kaspi в песочнице?** Нет. Без кассира можно создавать счета, симулировать оплату и тестировать вебхуки.

**Можно ли использовать боевой ключ в песочнице?** Нет, это даёт ошибку или неожиданное поведение. У каждого режима свой ключ.

**Можно ли вернуться обратно в песочницу?** Да, режим переключается в кабинете. Но тогда в интеграции нужно вернуть и тестовый ключ.

**Могут ли деньги не приходить по другой причине?** Да, но редко. Когда тестовый режим исключён, остальные причины разобраны отдельно: [Оплата не приходит покупателю](/kb/ru/payment-not-arriving).
