# API-ключ утёк — что делать срочно

> Ключ попал в репозиторий, чат или чужие руки. Что сделать в первую минуту: удалить, создать новый, проверить последние счета. Что вообще можно сделать ключом и как не допустить повторения.

## Коротко

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

## Первые пять минут

1. **Удалите ключ.** Кабинет → **Интеграции** → раздел ключей → удалить. Он перестаёт работать сразу.
2. **Создайте новый ключ.** Выдайте только нужные права. Если старый был привязан к кассиру, привяжите и новый к тому же кассиру.
3. **Замените его в интеграции.** Во всех местах: `.env` на сервере, плагин CMS, сценарии n8n, прослойка CRM. Полный список: [Удалил API-ключ](/kb/ru/deleted-key).
4. **Просмотрите последние счета.** В разделе **Счета** проверьте, нет ли подозрительных записей: счетов, которых вы не выставляли, странных сумм, чужих описаний.
5. **Просмотрите возвраты.** Это самое важное: нет ли возвратов, которых вы не делали?
6. **Если подозрение серьёзное — временно отключите кассира.** Разорвав привязку в разделе **Kaspi**, вы останавливаете и создание счетов, и возвраты. После проверки подключите обратно.

## Что можно сделать ключом

Это стоит понимать точно — чтобы не паниковать зря и не недооценить риск.

| **Можно** | **Нельзя** |
|---|---|
| Выставлять счета от вашего имени | Перевести деньги на чужой счёт |
| Читать список и данные ваших счетов | Зайти в ваш счёт Kaspi |
| Делать возвраты (если есть право) | Менять настройки вашего аккаунта Kaspi |
| Отменять счета | Войти в кабинет |
| Создавать и менять подписки (если есть право) | Изменить привязку кассира |
| Сменить адрес webhook (если есть право) | Сменить или оплатить тариф |

**Украсть деньги нельзя.** Оплата всегда приходит на ваш счёт Kaspi, и направление платежа ключом не меняется.

**Но реальный вред возможен.** Например: выставить от вашего имени поддельные счета и запутать покупателей; вернуть оплаченные счета и тем самым уменьшить остаток на вашем счёте Kaspi; сменить адрес webhook и увести уведомления об оплатах на сторону; прочитать список счетов и увидеть данные ваших клиентов; выжечь месячный лимит тарифа пустыми счетами.

Так что «деньги украсть не смогут» — не повод сидеть спокойно.

## Откуда обычно утекает ключ

| Как это происходит | Что делать |
|---|---|
| Попал в репозиторий | Удалите ключ. Удалить коммит мало — он остаётся в истории |
| Написан в чате или в трекере задач | Удалите ключ и сообщение |
| Лежит в коде, который выполняется в браузере | Удалите ключ и проводите запросы через свой сервер |
| Зашит в мобильное приложение (APK/IPA) | Удалите ключ. Разобрать приложение несложно |
| Попал на скриншот или в запись экрана | Удалите ключ |
| Остался у бывшего сотрудника | Удалите ключ и создайте новый |
| Пишется в логи | Удалите ключ и уберите его из логов |

Правило одно: **не пытайтесь доказать, видел ключ кто-то или нет — просто удалите.** Удаление бесплатно, расследование долгое.

## Как искать подозрительные действия

- **Отфильтруйте список счетов по периоду** — от момента утечки до сегодня.
- **Сверьте с собственными номерами заказов.** Записи с `externalOrderId`, которых нет в вашей системе, или вовсе без него — подозрительны.
- **Отдельно просмотрите возвраты** и сверьте каждый со своим журналом.
- **Проверьте адрес webhook.** Кабинет → **Интеграции**: тот ли адрес, не добавился ли лишний.
- **Посмотрите список подписок** — нет ли созданных не вами.

Если нашли непонятные действия, напишите в поддержку со скриншотами: WhatsApp [+7 778 881 3333](https://wa.me/77788813333), Telegram [@qutpaybot](https://t.me/qutpaybot) или email `kazprose@gmail.com`. **Сам ключ никогда не присылайте** — достаточно первых нескольких символов.

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

- **Ключ живёт только на сервере.** Ни в коде для браузера, ни в мобильном приложении, ни в десктопной программе.
- **Хранится в `.env` или в хранилище секретов.** Не внутри кода.
- **`.env` должен быть в `.gitignore`.** Перед коммитом смотрите, что именно отправляете.
- **Для мобильного приложения схема такая: приложение → ваш сервер → Qut Pay.** Приложение не должно обращаться к нам напрямую.
- **Отдельный ключ на каждую интеграцию.** Утёк один — удалили только его, остальное продолжает работать.
- **Минимум прав.** Интеграции, которая только читает, не нужен `invoices:write`; той, что не делает возвратов, не нужен `refunds:write`.
- **Меняйте ключи регулярно** — особенно при смене сотрудников.
- **Не пишите ключ в логи.** При логировании запросов вырезайте заголовки.

Как устроен сервис и какие права есть у роли кассира: [Безопасно ли подключать](/kb/ru/is-it-safe).

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

**Если я удалю ключ, текущие платежи прервутся?** Нет. Открытые счета и ссылки на оплату продолжают работать, останавливаются только новые запросы с этим ключом.

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

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

**Ключ лежал в репозитории полгода, вроде ничего не случилось. Удалять?** Да. «Ничего не случилось» — это пока.

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