Kaspi Pay REST API арқылы — сайттар мен SaaS үшін интеграция
Үш HTTP-сұраныс: шот жасау, webhook алу, ақшаны қайтару. Сатудан пайыз жоқ, ақша сіздің Kaspi Business-ке.
API не істейді
Біздің сервис Kaspi POS құжатталмаған протоколын таза REST API-ға айналдырады. Сіздің сервер үш типті сұраныс жібереді: POST /invoices — шот жасау, webhook қабылдау — статус алу, POST /refunds — ақшаны қайтару. Қалғаны — кезектер, ретрайлар, шифрлеу, RSA/ECDH қолтаңбалары — біздің жақта автоматты жұмыс істейді.
Ол қалай жұмыс істейді — POST-тан PAID-ке дейін 15 секунд
Сіздің сервер клиенттің сомасы мен телефон нөмірімен POST /api/v1/invoices шақырады. Біз сұранысты қолтаңбалап, Kaspi-ға жібереміз. Клиент Kaspi.kz қосымшасында push алады — бір «Төлеу» түймесі. Ақша тікелей сіздің Kaspi Business шотыңызға түседі. Сіздің сервер соңғы paid статусымен HMAC-қолтаңбаланған invoice.status_changed webhook-ын алады.
Неге сатудан пайыз жоқ
Біз банк-эквайер емеспіз. Ақша тікелей клиенттен сіздің Kaspi Business шотыңызға түседі — біз тек протоколды автоматтандырамыз. Біздің табыс — айына 10 000 ₸-ден бастап тіркелген жазылым. Айналым 10 млн ₸ немесе 1 млн — тариф өзгермейді. Бұл орташа және жоғары чек кезінде классикалық эквайрингтен түбегейлі арзан.
Нақты транзакциясыз Sandbox
Тестілік kpa_test_* кілттері нақты Kaspi-төлемдерін жүргізбейді — бірақ API жауаптарының құрылымы продакшенге сәйкес келеді, ал webhook-тар сіздің sandbox URL-ыңызға түседі. CI, интеграциялық тесттер және нақты клиенттерге қауіп келтірмей жергілікті әзірлеу үшін керемет.
Webhooks: HMAC-SHA256, ретрайлар, dead-letter
Әр хабарлама raw body үстінде HMAC-SHA256 арқылы қолтаңбаланған. X-Webhook-Signature: sha256=<hex> тақырыбы. 2xx алмасаңыз — біз экспоненциалды backoff-пен (0, 5, 30 сек, 2, 10, 30 мин) қайталаймыз. 6 талпыныстан кейін — dead-letter, дашбордта қолжетімді. Секретті өзіңіз орнатасыз және даунтаймсыз ротациялай аласыз.
Код мысалдары
Мысал: шот жасау (curl)
curl -X POST https://pos.satushi.me/api/v1/invoices \
-H 'X-API-Key: kpa_live_...' \
-H 'Content-Type: application/json' \
-d '{
"amount": 15000,
"phone_number": "87001234567",
"comment": "Тапсырыс #42"
}'
Мысал: Node.js
const res = await fetch('https://pos.satushi.me/api/v1/invoices', {
method: 'POST',
headers: {
'X-API-Key': process.env.KPA_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
amount: 15000,
phone_number: '87001234567',
}),
});
const invoice = await res.json();
Мысал: Python
import requests
res = requests.post(
'https://pos.satushi.me/api/v1/invoices',
headers={'X-API-Key': KPA_KEY},
json={'amount': 15000, 'phone_number': '87001234567'},
)
invoice = res.json()
API-интеграциялар үшін тарифтер
Үш тариф: Старт 10 000 ₸/ай (күніне 30 шотқа дейін), Бизнес 25 000 ₸/ай, Про 100 000 ₸/ай. Алғашқы 7 күн тегін, картаны байланыстырусыз.
Тарифтерді қарау