Qut Pay — проект издателя. Герой истории согласился на публикацию, название компании изменено.
Шестнадцатого октября владелец небольшого алматинского сервиса — назовём его «Грантфилд» — зарегистрировался в Qut Pay, чтобы принимать оплату Kaspi на своём сайте. К вечеру он написал в поддержку одну фразу: «Көп номерді көрдік, бәрібір істемейді» — «перепробовали много номеров, всё равно не работает». В журнале сервиса к тому моменту было двенадцать попыток подключения за четыре часа, все неудачные.
Эта история стоит того, чтобы её разобрать, потому что в ней три разные причины наложились друг на друга, и каждая по отдельности встречается у половины новых подключений.
Как это вообще работает
Kaspi не выдаёт обычному магазину API. Но в бизнес-аккаунте Kaspi Pay есть роль «Кассир»: сотрудник, который может выставлять счета и принимать оплату по QR. Сервисы вроде Qut Pay подключаются к вашему Kaspi Pay именно как такой сотрудник — через отдельный номер телефона и SMS-код — и дают сайту API и webhook. Деньги идут напрямую на счёт владельца.
Ключевое слово — отдельный номер. Дальше станет ясно почему.
Причина первая: ошибка, которую никто не мог прочитать
Первое, что увидел предприниматель, — надпись «Ішкі қате», «внутренняя ошибка». Двенадцать раз.
В журнале сервиса при этом лежало развёрнутое объяснение на казахском: что Kaspi не показал экран ввода кода, какие бывают причины и что делать. Но текст не доходил до экрана: ошибка от Kaspi не имела HTTP-статуса, и сервер показывал вместо неё общую заглушку. Это была ошибка сервиса, и её исправили в тот же день — теперь при отказе Kaspi человек видит причину и инструкцию, а не «внутренняя ошибка».
Урок для любого сервиса в этой категории: единственное сообщение, написанное для человека, не должно быть единственным, которое человек не увидит.
Причина вторая: пять номеров — пять разных ошибок
Когда предприниматель прислал скриншот списка сотрудников в своём Kaspi Pay, стало видно, почему не подошёл ни один:
| Сотрудник | Что было в Kaspi Pay | Почему не подключился |
|---|---|---|
| Владелец | роли «Руководитель, Кассир» | две роли; свой номер не подходит никогда |
| Сотрудник 2 | «Кассир», ни разу не входил в Kaspi Pay | номер не активирован |
| Сотрудник 3 | то же | то же |
| Сотрудник 4 | то же | то же |
| Сотрудник 5 | «Ожидается регистрация в Kaspi Pay» | номер вообще не зарегистрирован |
Первая строка — самая частая ошибка в категории. Владелец добавляет себя кассиром. Kaspi допускает одно активное устройство на кассира: если сервис подключится номером владельца, приложение Kaspi Pay на его телефоне выйдет из аккаунта, и будет выходить при каждом подключении. Поэтому номер владельца с двумя ролями Kaspi на этот сценарий не пускает.
Остальные четыре — люди, которых добавили в сотрудники, но которые ни разу не открыли Kaspi Pay с этого номера. Kaspi называет это активацией: один вход с номера, затем выход. Без этого шага SMS-кода не будет.
Предприниматель остановился на шестом сотруднике — «Таире», с чистой ролью «Кассир» и активированным номером. И… снова отказ. Вот здесь история стала интересной.
Причина третья: виноват был не номер
Издатель проверил ту же процедуру на своём аккаунте, с заведомо правильным номером. Тот же отказ, в ту же секунду. Значит, дело не в номере — что-то системное.
Поиск по журналу показал: последнее успешное подключение кассира в сервисе было 10 сентября. С 21 сентября Kaspi Pay в App Store перешёл на новую схему версий — 26.0921, 26.1005, 26.1013. Сервис же представлялся Kaspi как приложение версии 4.112.1. Kaspi не возвращал ошибку — он просто молча показывал экран ввода номера ещё раз. Пять недель ни один новый кассир не мог подключиться, и это выглядело как «номер не подходит».
Проверка заняла десять минут: сервис попробовал представиться новой версией. Со старым номером сборки Kaspi по-прежнему отказывал; с новым — показал экран кода и отправил SMS. Kaspi проверяет не только версию, но и номер сборки, а его нигде не публикует — подобрать можно только экспериментом.
Новый профиль версии включили, предприниматель создал подключение заново, ввёл номер Таира, и через 44 секунды в журнале появилась строка session established (ИП …). Первое успешное подключение внешнего клиента за месяц.
Что из этого следует
Три практических вывода для тех, кто собирается подключать Kaspi через роль «Кассир» — у любого сервиса, не только у Qut Pay:
- Отдельная SIM до начала. Не свой номер. Не номер человека с ИП в Kaspi Pay. Купить новую SIM за 500 тенге дешевле, чем потерять день.
- Кассир должен один раз войти в Kaspi Pay и выйти. Пока в списке сотрудников у него статус «ожидается регистрация» или он ни разу не входил — кода не будет.
- Если всё правильно, а подключение не идёт — спросите сервис, когда у них было последнее успешное подключение. Kaspi обновляет приложение каждые две-три недели; после обновления у всех сервисов этой категории есть окно в день-два, когда новые кассиры не подключаются, пока сервис не обновит версию. Это общий риск схемы, и честный сервис о нём предупреждает.
У «Грантфилда» теперь работает приём оплаты. Старая, неработающая запись подключения всё ещё висит у него в кабинете — к ней привязан ключ API сайта, и ключ надо перенести на новое подключение, иначе счета с сайта будут уходить в мёртвый канал. Об этом ему уже написали.
Инструкция по подключению, с теми же тремя условиями для номера: qut.kz/ru/kak-podklyuchit-kaspi-pay-k-saitu.
