Kaspi Pay invoice
из вашего кода.
Один SMS на ваш ИП-номер — и дальше выставляете удалённые счета программно: REST API, Telegram-бот, вебхуки с HMAC-SHA256. Подходит ботам, CRM, биллингу SaaS.
Четыре шага от установки до первой оплаты.
SMS приходит на ваш собственный номер ИП или ТОО. Сессия живёт, пока вы не разлогинились или не вошли в Kaspi Pay на смартфоне — тогда мы возвращаем 412 kaspi_session_required и просим пройти SMS снова.
-
01
SMS-авторизация в Telegram-боте
Открываете @PayProverkaBot, отправляете номер ИП/ТОО, вводите код из SMS. Получаете персональный X-API-Key.
$ /login → 87019009393 → 123456 -
02
Выставляете счёт через API
POST на /v1/invoice/create с номером клиента и корзиной. В ответ — paymentId, по которому отслеживаете статус.
› phoneNumber + items[] ⟶ paymentId -
03
Клиент платит в один клик в Kaspi.kz
Клиенту приходит push в приложение Kaspi.kz. Он подтверждает оплату пальцем — комиссии стандартные эквайринговые, никаких посредников.
-
04
Вебхук с HMAC-подписью
Ваш сервер моментально получает payment.success с заголовком X-Webhook-Signature: sha256=.... Идемпотентный приёмник в две строки.
⟵ POST your-app/kaspi · 200 OK
Не «волшебный коннектор», а честный API.
Только то, что нужно для интеграции Kaspi Pay в существующий бизнес-софт. Без UI-конструкторов, без своих платёжных форм, без рекуррентов, которых у Kaspi нет.
POST /v1/invoice/create с корзиной 1–50 позиций. Возврат, отмена, история — отдельные эндпоинты.
Команда /invoice 87019009393 1500 Кофе — для случаев, когда счёт нужно выставить вручную, а не из кода.
Подписываем сырое тело общим секретом. Ретраи с экспоненциальным backoff до 24 часов. At-least-once.
Частичные и полные через /v1/invoice/{id}/refund. Несколько частичных по одному счёту разрешены.
Принимаем 87…, +7…, 77…, 7…, с пробелами и скобками. На вход в Kaspi уходит каноничный 8XXXXXXXXXX.
Если кто-то вошёл в Kaspi Pay на смартфоне — мгновенно 412 kaspi_session_required, никаких тихих сбоев.
Один запрос — один счёт.
Выберите свой стек. Все три примера делают одно и то же: создают счёт на 4 200 ₸ для клиента 87019009393 и возвращают paymentId.
import os, requests
API = "https://pay.proverkacheka.kz/api"
H = {"X-API-Key": os.environ["KASPI_API_KEY"]}
r = requests.post(f"{API}/v1/invoice/create", headers=H, json={
"phoneNumber": "87019009393",
"comment": "Заказ #42",
"items": [
{"name": "Капучино", "price": 1200, "count": 2},
{"name": "Чизкейк", "price": 1800, "count": 1},
],
})
r.raise_for_status()
payment_id = r.json()["paymentId"]
print("Счёт создан:", payment_id)
const API = "https://pay.proverkacheka.kz/api";
const res = await fetch(`${API}/v1/invoice/create`, {
method: "POST",
headers: {
"X-API-Key": process.env.KASPI_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
phoneNumber: "87019009393",
comment: "Заказ #42",
items: [
{ name: "Капучино", price: 1200, count: 2 },
{ name: "Чизкейк", price: 1800, count: 1 },
],
}),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { paymentId } = await res.json();
console.log("Счёт создан:", paymentId);
curl -X POST https://pay.proverkacheka.kz/api/v1/invoice/create \
-H "X-API-Key: $KASPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "87019009393",
"comment": "Заказ #42",
"items": [
{ "name": "Капучино", "price": 1200, "count": 2 },
{ "name": "Чизкейк", "price": 1800, "count": 1 }
]
}'
# → {"paymentId":"14918505280","amount":4200.0,"status":"RemotePaymentCreated"}
Три типа команд используют API.
У каждой — своя точка входа. Гайды на блоге показывают конкретные сценарии с кодом, который можно скопировать.
Разработчики Telegram-ботов
Принимаете оплату внутри бота. Поллинг для редких событий, вебхук — для нагрузки. Идемпотентность по (paymentId, event) в одной транзакции с эффектом.
Команды SaaS-биллинга
Тысячи счетов в день. Подписки, продление, частичные доплаты. Главное — корректная проверка HMAC-подписи (сырое тело, timing-safe сравнение) и replay-защита.
CRM-команды: Bitrix24, Kommo, amoCRM
Выставить счёт из карточки сделки, перевести в «Успешно» по вебхуку, прикрепить ссылку на чек. Middleware между CRM и API — пара десятков строк.
Свежие материалы.
Технические разборы, написанные людьми, которые сами интегрируют этот API в проде.
Вебхуки или поллинг: как правильно отслеживать оплату Kaspi Pay
Что выбрать для бота с одним пользователем, что — для SaaS с тысячами счетов, и почему вебхук не отменяет идемпотентности.
Проверка подписи вебхуков: HMAC-SHA256 без багов
HMAC от сырого тела, timing-safe сравнение, replay-защита. Готовые приёмники на Python, Node и Go с типичными ошибками.
Интеграция Kaspi Pay в Bitrix24, Kommo и amoCRM
Готовые сценарии: счёт из карточки сделки, перевод в «Успешно» по вебхуку, отправка чека клиенту — с примерами кода для middleware.
Получите API-ключ за ~2 минуты.
Авторизация в Telegram-боте по SMS на ваш собственный номер ИП или ТОО. Бесплатно — платите только эквайринг Kaspi.
Открыть @PayProverkaBot →