# Есть ли API Kaspi Pay для сайта и CRM

> Открытого публичного API для приёма платежей у Kaspi Pay нет: «Платежи на Kaspi.kz» подключают по заявке через Kaspi Гид, а API Магазина на Kaspi.kz работает с товарами и заказами маркетплейса, а не с оплатой. Сервисы поверх Kaspi Pay дают обычный REST API. В Aitole один запрос выставляет QR или счёт на номер, оплата приходит вебхуком с подписью HMAC-SHA256, а весь путь можно проверить в песочнице без настоящих денег.

Источник: https://aitole.kz/kaspi-api/ · Aitole — https://aitole.kz

## Какие есть варианты

| Вариант | Что это | Кому подходит |
|---|---|---|
| «Платежи на Kaspi.kz» | Партнёрство с Kaspi: ваши услуги в приложении Kaspi.kz, подключение по заявке, ответ — в течение нескольких дней | Крупным поставщикам услуг |
| API Магазина на Kaspi.kz | Товары, остатки и заказы маркетплейса Kaspi | Продавцам на маркетплейсе |
| Сервис поверх Kaspi Pay (Aitole) | REST API к вашей кассе Kaspi Pay: QR, счета, ссылки, возвраты, вебхуки | Сайтам, CRM, ботам, SaaS |

## Как устроен API Aitole

```
POST https://api.aitole.kz/v2/invoices
X-API-Key: sk_live_…
Idempotency-Key: order-42
{"amount": 4990, "phone": "+77011234567", "comment": "Заказ №42"}
```

- `POST /v2/qr` — QR и ссылка на оплату для одной покупки.
- `POST /v2/invoices` — счёт на номер клиента, придёт ему в приложение Kaspi.
- `POST /v2/refunds` — возврат, полный или частичный.
- Постоянные ссылки на оплату и регулярные счета — тоже через API.
- `GET /v2/events` — журнал событий: если вебхук не дошёл, ничего не теряется.
- Вебхуки `payment.paid`, `payment.expired`, `payment.refunded` с подписью HMAC-SHA256.

Полное описание — в [справочнике API](/docs/), markdown-версия — [docs/index.md](/docs/index.md).

## Что обычно ломается в самописной интеграции — и как это закрыто

- **Двойной счёт при повторе запроса.** Заголовок `Idempotency-Key`: повтор с тем же ключом вернёт тот же счёт.
- **Отказ Kaspi.** Приходит с HTTP 200 и `status: "failed"` и понятной причиной — не нужно гадать по кодам.
- **Сессия Kaspi умерла.** Kaspi держит одну сессию на номер; если кассир вошёл в приложение под тем же номером, приём встаёт. Aitole шлёт событие и сообщение в Telegram.
- **Несколько касс.** Ключ можно привязать к конкретной кассе, чтобы платежи проекта не ушли на соседнюю.

## Песочница

Тестовый ключ `sk_test_…` выдаётся при регистрации. Счета в песочнице не уходят в Kaspi, а статус «оплачено» ставится кнопкой или запросом — проверяется весь путь вашего кода, включая вебхуки.

## Если интеграцию пишет ИИ

Дайте ассистенту ссылку на [инструкцию для ИИ](/for-ai/) или полный текст [llms-full.txt](/llms-full.txt) — там справочник, правила и готовый промпт. ChatGPT, Claude или Cursor соберут интеграцию по ним без догадок об эндпоинтах.

## Вопросы

### Есть ли у Kaspi Pay официальный публичный API для приёма платежей?

Публичного API с самостоятельной регистрацией нет. Партнёрство «Платежи на Kaspi.kz» подключают по заявке через Kaspi Гид. Для сайтов и CRM используют сервисы поверх Kaspi Pay.

### Деньги проходят через Aitole?

Нет. Счёт выставляется от имени вашей кассы, клиент платит в Kaspi, деньги зачисляются на ваш Kaspi Pay. Aitole видит только статус оплаты.

### Как подключить мою кассу Kaspi к API?

В кабинете: добавьте в Kaspi Pay сотрудника с ролью «Кассир» и введите код из SMS. Пароль от Kaspi не нужен, роль «Кассир» не умеет выводить деньги.

### Сколько стоит API?

API входит во все тарифы, включая бесплатный: 20 оплаченных платежей в месяц. Start — 7 000 ₸ за 500 оплат, Pro — 30 000 ₸ без ограничения. Запросы и неоплаченные счета не тарифицируются.

### Можно ли проверить интеграцию без настоящих денег?

Да, в песочнице с тестовым ключом: счета не уходят в Kaspi, а оплату вы отмечаете сами.
