Skip to content

Счета Cashier: обзор ​

Счёт Cashier — это запрос на оплату, который Eleven Pay отправляет на телефон плательщика (в приложение Kaspi). Плательщик подтверждает платёж в приложении, Eleven Pay фиксирует расчёт и присылает вам подписанный вебхук payment.succeeded.

Пилотный режим · реальный приём платежей ещё недоступен

Счета Cashier работают только в окружении live и только для организаций, которым включён доступ (пилот). Без авторизации организации запрос завершится ошибкой 409 с кодом вида cashier_not_authorized или cashier_live_disabled. Тестовой «песочницы» с реальными платежами нет. Публичный адрес API не определён — задавайте ELEVENPAY_BASE_URL.

Eleven Pay — независимый сервис: он не принадлежит Kaspi.kz, не одобрен и официально не связан с Kaspi.kz. Название приложения упоминается только для описания того, где плательщик подтверждает платёж.

Как это работает ​

  1. Ваш сервер создаёт счёт: POST /v1/cashier/invoices с Idempotency-Key. Eleven Pay не обращается к провайдеру внутри запроса: оно ставит счёт в очередь и сразу отвечает (invoice_state: "queued").
  2. Фоновый процесс отправляет счёт плательщику. Состояние меняется: queued → sending → sent.
  3. Плательщик подтверждает платёж в приложении.
  4. Eleven Pay фиксирует расчёт ровно один раз и отправляет payment.succeeded на ваш вебхук.
  5. Вы проверяете подпись, сверяете заказ/сумму/валюту и выдаёте товар один раз.

Вебхук — основной источник; GET /v1/cashier/invoices/{reference} — путь сверки и прогресса для вашей страницы.

Что есть и чего нет ​

ЕстьНет (сейчас)
POST /v1/cashier/invoices, GET /v1/cashier/invoices/{reference}отмена, продление или «истечение» счёта
Идемпотентность и уникальность merchant_order_idвозвраты для счетов Cashier
Событие payment.succeededсобытия «просрочен» / «не удался» для счетов
Телефон плательщика не возвращается в ответах и вебхукахтестовые деньги / песочница

Если нужна отмена по таймауту — это ваша логика: см. Статусы и поздние платежи.

Ограничения контракта ​

  • Только валюта KZT; сумма — целое число тенге, строка вида "1500.00". Дробная сумма отклоняется (422 amount_not_whole_tenge), не округляется.
  • Один заказ — один счёт: повторное создание для того же merchant_order_id с другим ключом идемпотентности отклоняется 409 cashier_order_not_unique.
  • Запрос не содержит поля организации, окружения или подключения: организация определяется ключом. Чужие данные адресовать нечем.
  • Телефон: только цифры, 10–15. Формат (с кодом страны или без) определяет получатель-провайдер; допустимая национальная форма не подтверждена (UNKNOWN) — не «чините» номер, передавайте как ввёл плательщик, очистив только пробелы, дефисы, скобки и ведущий +.

Дальше ​