# Удалил API-ключ — что теперь будет и что делать

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

## Коротко

Удалённый ключ перестаёт работать **в ту же секунду**: любой запрос с ним получает ошибку `unauthorized` (401). **Восстановить удалённый ключ невозможно** — такой кнопки нет, и поддержка его тоже не вернёт. Выход один: создать в кабинете новый ключ и заменить старый на новый в своей интеграции. Счетов, платежей и денег это не касается.

## Что именно сломалось

Ключ — это способ подтвердить, кто отправил запрос, а не хранилище данных. Поэтому при удалении теряется только доступ.

| Что | Состояние |
|---|---|
| Ранее созданные счета | На месте, ничего не пропадает |
| Полученные деньги | Не затронуты, они на вашем счёте Kaspi |
| Проверка статуса открытых счетов | Продолжается, poller не останавливается |
| Доставка вебхуков | Продолжается, вебхуки к ключу не привязаны |
| Привязка кассира Kaspi | Не меняется, переподключать не нужно |
| Тариф и лимиты | Не меняются |
| Новые запросы с этим ключом | **Не работают**, приходит 401 |
| Вход в кабинет | Не затронут, кабинет работает без ключа |

То есть удалённый ключ — проблема только на стороне API. Создавать счета руками из кабинета можно по-прежнему, ссылки на оплату тоже продолжают работать.

## Можно ли его восстановить

Нет. Полное значение ключа показывается вам один раз — в момент создания, у себя мы его не храним. Поэтому после удаления вернуть его не может никто, включая поддержку.

Это не недоработка, а осознанное решение по безопасности. Если бы значение ключа можно было посмотреть в любой момент, любой, кто вошёл в кабинет, скопировал бы все ваши ключи.

## Что делать

1. **Создайте новый ключ.** Кабинет → **Интеграции** → раздел ключей. Выберите правильный режим: для боевой работы `qp_live_…`, для тестов `qp_test_…`.
2. **Выдайте только нужные права.** По тому, что делает интеграция: `invoices:read`, `invoices:write`, `refunds:write`, `subscriptions:manage`, `webhooks:manage`, `partner:manage`. Лишнего не давайте.
3. **Решите, нужна ли привязка к кассиру.** Если старый ключ был привязан к конкретному кассиру, привяжите и новый — иначе счета пойдут через другой канал, а старые перестанут быть видны.
4. **Скопируйте ключ сразу.** Второй раз он не показывается.
5. **Замените его в интеграции.** Обновите значение в `.env` или в хранилище секретов на сервере и перезапустите приложение.
6. **Сделайте проверочный запрос.** `GET /api/v1/status` или небольшой счёт в песочнице — убедитесь, что новый ключ работает.

## Если ключ был привязан к кассиру

Ключ можно привязать к конкретному кассиру. Боевые счета привязанного ключа идут только через этого кассира, а чужие счета он не видит вовсе — по ним возвращается `invoice_not_found` (404).

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

Особенно внимательно проверьте это, если работаете с несколькими точками или несколькими кассирами: [Можно ли подключить несколько кассиров](/kb/ru/two-cashiers).

## Что проверить при замене ключа

Ключ мог быть прописан в нескольких местах. Там, где остался старый, начнут сыпаться 401.

- `.env` или хранилище секретов на сервере
- Настройки CMS-плагина на сайте (WooCommerce, OpenCart)
- Сценарии в n8n или другой автоматизации
- Сервисы, связанные с Telegram-ботом
- Прослойка интеграции с CRM
- Тестовый контур и продакшен — это два разных места

Правило «один ключ на одну интеграцию» в такие моменты очень выручает: сразу понятно, что менять, и отказ одного ключа не останавливает остальные.

## Если после удаления видите ошибку

Если интеграция начала отвечать 401, значит новый ключ ещё не прописан или прописан неверно. Список проверок: [API отвечает 401](/kb/ru/api-401).

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

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

**Удалил ключ случайно — счета пропадут?** Нет. Счета, платежи и возвраты на месте. Пропала только возможность делать запросы этим ключом.

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

**Мои покупатели не смогут заплатить?** Ранее созданные открытые счета и ссылки на оплату продолжают работать. Остановилось только создание новых счетов через API.

**Удаление ключа — правильный шаг с точки зрения безопасности?** Да. Если есть подозрение, что ключ утёк, удалить его — самое быстрое и самое верное действие: [API-ключ утёк](/kb/ru/leaked-key).

**Сколько ключей можно держать?** Сколько нужно. Отдельный ключ на каждую интеграцию — рекомендуемый подход.
