Перейти к содержимому
REST APIСсылка, QR и счёт — один эндпоинт

Приём Kaspi-платежей для ваших сервисов

Sezgir Pay — платёжный шлюз Sezgir. Сайты, Telegram-боты, CRM и приложения принимают оплату через Kaspi.kz по одному REST API, а деньги сразу поступают на счёт Kaspi вашего ИП или ТОО.

  • Подписанные вебхуки
  • Возвраты
  • Тестовый режим
Возможности

Три способа принять оплату — один API

Выберите сценарий под свой сервис: интернет-магазин, Telegram-бот, касса или CRM. Тип платежа — это одно поле в запросе.

pay.sezgir.com/pay/pay_8Kd2…
Заказ #42
15 000 ₸
Открыть в Kaspi.kz

Платёжная ссылка

link

Готовая страница оплаты: на компьютере покупатель видит QR, на телефоне — кнопку «Открыть в Kaspi». Отправьте ссылку в мессенджер или сделайте редирект с сайта.

Динамический QR

qr

QR-код под конкретную сумму для оплаты на месте: покажите его на экране кассы или планшета — покупатель сканирует его в приложении Kaspi.

KKaspi.kzсейчас
Счёт на оплату · 15 000 ₸
Интернет-магазин · Заказ #42
+7 701 ••• •• 42

Счёт по номеру телефона

invoice

Счёт приходит пушем прямо в приложение Kaspi покупателя по его номеру — остаётся только подтвердить оплату.

Подписанные вебхуки

HMAC-SHA256, до 10 попыток доставки за ~2 суток и журнал доставок в кабинете.

Возвраты

Полные и частичные — из кабинета или одним запросом к API.

Тестовый режим

Ключи sk_test_… и симуляция оплаты без реальных денег.

Идемпотентность

Заголовок Idempotency-Key — повтор запроса не создаст второй платёж.

Несколько кассиров

Подключите несколько ИП и ТОО — каждый сервис платит на свой счёт.

Команда и роли

Владелец, админ, разработчик, наблюдатель — и журнал действий.

Экспорт в CSV

Выгрузите платежи для бухгалтерии и сверки в один клик.

Кабинет на русском

Понятный интерфейс для всей команды — со светлой и тёмной темой.

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

От подключения до первого платежа — три шага

Начните в тестовом режиме: ключи sk_test_… работают без Kaspi, а оплату можно симулировать прямо на странице оплаты.

  1. 1

    Подключите кассира Kaspi

    Добавьте в Kaspi Pay сотрудника с ролью «Кассир» и подключите его в кабинете. Можно подключить несколько ИП и ТОО.

    K
    Kaspi Pay · ИП
    Кассир подключён
    Активен
  2. 2

    Создайте платёж через API

    Один POST-запрос с суммой и типом: ссылка, QR или счёт. В ответе — id платежа, статус pending и checkout_url.

    POST /api/v1/payments
    → 201 "pending"
  3. 3

    Получите вебхук

    Когда покупатель оплатит, на ваш сервер придёт событие payment.succeeded с подписью Sezgir-Signature. Не ответили 2xx — повторим.

    payment.succeeded
    Доставлен с 1-й попытки
    200
Для разработчиков

Один запрос — и ссылка на оплату готова

Обычный REST с JSON и Bearer-ключами. Создайте платёж, отправьте покупателя на checkout_url и дождитесь вебхука — статус придёт сам.

  • https://pay.sezgir.com/api/v1
    Базовый адрес REST API, JSON на входе и выходе
  • sk_test_… / sk_live_…
    Тестовые и боевые ключи, Authorization: Bearer
  • Idempotency-Key
    Безопасный повтор запроса — без дублей платежей
  • Sezgir-Signature
    Подпись HMAC-SHA256 с меткой времени у каждого вебхука
curl https://pay.sezgir.com/api/v1/payments \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: order-42" \
  -H "Content-Type: application/json" \
  -d '{"type":"link","amount":15000,"description":"Заказ #42"}'
Ответ201 Created
{
  "id": "pay_…",
  "object": "payment",
  "livemode": false,
  "type": "link",
  "status": "pending",
  "amount": 15000,
  "description": "Заказ #42",
  "checkout_url": "https://pay.sezgir.com/pay/pay_…"
}

Вебхуки, которым можно доверять

Каждое событие подписано HMAC-SHA256: в заголовке Sezgir-Signature — метка времени и подпись тела. Если ваш сервер не ответил 2xx, доставка будет доставляться — до 10 попыток в течение ~2 суток, а каждая попытка видна в журнале доставок.

payment.createdpayment.succeededpayment.failedpayment.expiredpayment.canceledpayment.refundedrefund.succeededrefund.failed
POST /webhooks/sezgir HTTP/1.1
Content-Type: application/json
Sezgir-Signature: t=1761379452,v1=9c1f3e…

{
  "id": "evt_…",
  "object": "event",
  "type": "payment.succeeded",
  "livemode": false,
  "created": 1761379452,
  "data": {
    "object": {
      "id": "pay_…",
      "object": "payment",
      "status": "succeeded",
      "amount": 15000,
      "description": "Заказ #42"
    }
  }
}
Несколько кассиров

Каждый сервис — к своему кассиру Kaspi

Подключите несколько ИП и ТОО и закрепите за каждым сервисом своего кассира. Оплата за заказ в боте уйдёт на один счёт, а оплата в CRM — на другой.

  • Платежи сервиса всегда идут через его кассира — ничего не перепутается.
  • Деньги не проходят через шлюз: зачисление сразу на счёт Kaspi.
  • Все ИП и ТОО — в одном кабинете, с общей командой и журналом действий.
Маршрутизация платежей
Live
Оплата зачисляется сразу на счёт Kaspi кассира. Sezgir Pay не хранит деньги — только создаёт платежи и сообщает о статусе.
Безопасность

Безопасность — по умолчанию, а не опцией

Боевые ключи sk_live_… и тестовые sk_test_… разделены, а всё, что касается денег и доступа, защищено на каждом уровне.

Деньги не у нас

Шлюз не держит средства: каждая оплата зачисляется напрямую на счёт Kaspi вашего ИП или ТОО.

Шифрование секретов

Секреты в базе хранятся зашифрованными алгоритмом AES-256-GCM.

Подписанные вебхуки

HMAC-SHA256 с меткой времени в заголовке Sezgir-Signature — подделку и повтор старого запроса легко отсечь.

Лимиты запросов

Ограничение частоты запросов на каждый API-ключ защищает от перебора и случайных циклов.

Строгая CSP

Кабинет и страница оплаты работают со строгой Content-Security-Policy — без сторонних скриптов.

Роли и журнал действий

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

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

Частые вопросы

Не нашли ответ? Подробности об API, вебхуках и тестовом режиме — в документации.

Где хранятся деньги?
Сразу на счёте Kaspi вашего ИП или ТОО. Sezgir Pay не принимает и не хранит средства — шлюз создаёт платежи через вашего кассира Kaspi и сообщает вашему сервису о статусе.
Нужен ли договор с Kaspi?
Нужен подключённый Kaspi Pay и сотрудник с ролью «Кассир» — через него шлюз выставляет счета и QR-коды от имени вашего ИП или ТОО.
Как протестировать интеграцию?
Используйте тестовые ключи sk_test_…: платежи создаются как настоящие, а результат оплаты можно симулировать прямо на странице оплаты — «Оплатить» или «Отклонить». Вебхуки при этом приходят так же, как в бою. Kaspi для теста подключать не нужно.
Какие способы оплаты поддерживаются?
Три: платёжная ссылка с готовой страницей оплаты (QR на компьютере, кнопка «Открыть в Kaspi» на телефоне), динамический QR для оплаты на месте и счёт, который приходит пушем в приложение Kaspi покупателя по номеру телефона.
Как сервис узнает, что платёж прошёл?
На ваш URL придёт вебхук payment.succeeded, подписанный HMAC-SHA256 (заголовок Sezgir-Signature). Если сервер не ответил 2xx, доставка будет доставляться — до 10 попыток в течение ~2 суток. Все попытки видны в журнале доставок, а статус всегда можно запросить через API.
Можно ли подключить несколько ИП или ТОО?
Да. Подключите нескольких кассиров Kaspi и закрепите за каждым сервисом своего — оплата будет зачисляться на счёт именно этого кассира.
Как сделать возврат?
Полный или частичный — кнопкой в кабинете или запросом к API. По возврату тоже приходят события, так что сервис узнает о результате автоматически.
Что будет, если запрос на создание платежа отправится дважды?
Передайте заголовок Idempotency-Key — например, номер заказа. Повтор с тем же ключом вернёт уже созданный платёж, а не создаст второй.

Подключите Kaspi-оплату к своему сервису

Начните с тестовых ключей и симуляции оплаты, а когда всё готово — подключите кассира Kaspi и переключитесь на боевые ключи.