ДокументацияВведение
Коды ошибок

Документация

API PayBot v2

REST API поверх Kaspi Pay: QR, счета, возвраты, платёжные ссылки и webhooks. Деньги идут напрямую на ваш Kaspi Business — PayBot их не хранит и не проводит.

Базовый URL
https://api.paybot.kz
Формат
JSON в запросе и ответе. Суммы — целые тенге, без копеек.
Время
ISO-8601, всегда UTC. В интерфейсе — дд.мм.гггг.
Авторизация
Заголовок X-API-Key. Эндпоинты /me/* принимают также JWT кабинета.
Лимит запросов
20 запросов в минуту на ключ. Не действует для Enterprise и для Sandbox-ключа.
Версии
v2 — стабильная. v1 объявлен устаревшим: заголовок Sunset: 31.12.2026. Новые интеграции — только на v2.
Ключ есть, а платежи не идут?

Боевой ключ работает только при живой сессии Kaspi. Пока Kaspi не подключён, API отвечает 503 session_expired — а Sandbox-ключ работает сразу и без Kaspi.

Что делает API

ПлатежиQR и счёт (push на телефон плательщика), статусы, возвраты, журнал платежей.
Платёжные ссылкиСсылка paybot.kz/checkout/pl_… со страницей оплаты под вашим брендом.
УведомленияWebhooks с подписью HMAC-SHA256 и журналом доставок — оплата на вашем сервере за 3–5 секунд.
Чего API не делаетНе хранит и не переводит ваши деньги, не заводит счёт внутри PayBot и не отдаёт полный ключ повторно.

Первый запрос

Создать QR на 5 000 ₸ — один POST. Всё остальное в этой документации — детали этого запроса.

POST /v2/qr · cURL
curl -X POST https://api.paybot.kz/v2/qr \
  -H "X-API-Key: kp_live_9f3c1a7b2d8e4f60" \
  -H "Idempotency-Key: a7f0c1e2-5b64-4d19-9c3a-2e8f61b0d4aa" \
  -H "Content-Type: application/json" \
  -d '{
       "amount": 5000,
       "comment": "Заказ №1024"
     }'
Ответ
{
  "operation_id": "1450012399",
  "qr_token": "3010100100AC0000QRTOKEN",
  "deep_link": "https://qr.kaspi.kz/pay/9f3c1a7b",
  "expires_at": "2026-07-16T09:37:30Z",
  "status": "created"
}
200 OK