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

Привязка API-ключа к кассиру

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

Коротко

Если в организации несколько кассиров Kaspi, каждый API-ключ можно привязать к конкретному кассиру. Тогда боевые счета, созданные этим ключом, идут только через него и не переходят на другого кассира, а сам ключ вообще не видит счетов чужого кассира — на них он отвечает 404.

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

Привязка выбирается из списка «Кассир» при создании ключа в разделе Интеграции кабинета.

Когда это нужно

СитуацияНужна ли привязка
Одна организация, один кассир, один сайтНет
Одна организация, два сайта, два кассираДа, каждому сайту свой ключ и свой кассир
Одна организация, несколько офлайн-точекДа, отчётность разделится по точкам
Маркетплейс: у каждого продавца свой кассирДа
Работаете только в песочницеНет, песочница к кассиру не привязывается

Без привязки счёт уходит через активного кассира организации, а ключ видит все боевые счета организации.

Что делает привязанный ключ

ДействиеПоведение
Создание боевого счётаИдёт только через привязанного кассира, не переключается
GET /api/v1/invoicesВ списке только счета этого кассира
GET /api/v1/invoices/{id}Счёт чужого кассира — invoice_not_found, HTTP 404
Возврат, отменаТолько по счетам этого кассира
Счета песочницыОбщие: к кассиру не привязываются, это тестовые данные организации
ПодпискаЗапоминает, через какого кассира создана

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

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

Как привязать в кабинете

  1. Войдите в кабинет: https://qut.kz/app
  2. В разделе Kaspi убедитесь, что нужный кассир подключён. Как добавить нескольких: Несколько кассиров.
  3. Перейдите в раздел Интеграции и создайте новый API-ключ.
  4. В окне создания выберите конкретного кассира из списка «Кассир».
  5. Выдайте ключу нужные права: invoices:write, invoices:read, при необходимости refunds:write.
  6. Ключ показывается один раз — скопируйте и положите в секреты своего сервера.

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

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

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

curl -s -o /dev/null -w '%{http_code}\n' \
  -H 'X-API-Key: qp_live_…' \
  https://api.qut.kz/api/v1/invoices/inv_из_другого_проекта
# 404 — привязка работает

Свой счёт должен вернуть 200:

curl -H 'X-API-Key: qp_live_…' \
  https://api.qut.kz/api/v1/invoices?limit=5

Если в списке только счета нужного кассира — всё настроено верно.

Удаление кассира: connection_has_keys

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

{ "error": "connection_has_keys", "message": "К кассиру привязан API-ключ" }

HTTP-статус — 409. Порядок действий:

  1. Посмотрите в разделе Интеграции, какие ключи привязаны к этому кассиру.
  2. Переведите каждый ключ на другого кассира или удалите сам ключ.
  3. Когда ключей не останется, кассира можно удалить.

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

Если кассир сменился, правильнее не удалять, а перевести ключ на нового: Кассир сменился.

Частые ошибки

Что видитеПричинаРешение
invoice_not_found (404), хотя счёт есть в кабинетеКлюч привязан к другому кассируИспользуйте правильный ключ или проверьте привязку
forbidden (403)Счёт принадлежит совсем другой организацииПроверьте, что ключ и счёт из одной организации
connection_has_keys (409)Пытаетесь удалить кассира с ключомСначала переведите ключ
Счёт ушёл через «не того» кассираКлюч не привязанПривяжите ключ к кассиру
В песочнице разделение не работаетПесочница к кассиру не привязываетсяЭто нормально, проверяйте в боевом режиме

Полный список: Каталог ошибок, отдельно про 404: Счёт не найден.

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

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

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

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

Что видит непривязанный ключ? Все боевые счета организации, независимо от того, через какого кассира они созданы.

Как разделить отчётность по точкам? Выдайте каждой точке отдельный ключ и привяжите его к кассиру этой точки: Раздельная отчётность по точкам.

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

API-ключи — создание, хранение, ротацияЧем отличаются ключи qp_live_ и qp_test_, как создать ключ в кабинете, где его хранить и где хранить категорически нельзя, зачем отдельный ключ на каждую интеграцию, как заменить ключ без простоя и что происходит при удалении.Можно ли подключить несколько кассировДа, можно. У каждого кассира свой номер и своя привязка. Что такое основной кассир, как привязать API-ключ к конкретному кассиру и почему лимит остаётся общим.API отвечает 403 — не хватает прав403 значит, что ключ распознан, но на это действие прав нет. Причин пять: не хватает scope, неактивный тариф, чужая организация, привязка ключа к кассиру, действие только для песочницы.Ошибка «счёт не найден» — почему и что проверитьУ invoice_not_found четыре причины: неверный идентификатор, счёт создан в другом режиме, ключ привязан к другому кассиру или счёт принадлежит другой организации. Порядок проверки.Раздельная отчётность по точкам — свой ключ каждой точкеКак разделить счета, когда точек, филиалов или магазинов несколько: отдельный API-ключ и вебхук на точку, привязка ключа к кассиру, что разделяется, а что остаётся общим, и когда пора заводить отдельную организацию.

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

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