Telegram-бот үшін Kaspi Pay: webhook арқылы 1 сағатта төлемді автоматтандыру
AiPay API арқылы Telegram-ботқа Kaspi Pay webhook қосу: Python кодымен қадамдық нұсқаулық. Қолмен тексерусіз автоматты төлем растамасы.
Клиент түнгі 2-де төледі. Тауарды таңертең алды. Ол қолдауға жазып қойды
Елестетіңіз: сіздің Telegram-ботыңыз онлайн-курс сатады. Клиент оны түнгі 2:17-де сатып алуды шешеді — Қазақстанда бұл кәдімгі жағдай, әсіресе 25–35 жастағы аудитория арасында. Ол Kaspi арқылы ақша аударады, «Төлем қабылданды, растауды күтіңіз» деген хабарлама алады да ұйқыға кетеді.
Таңертең — курс та жоқ, қол жеткізу де жоқ. Ол қолдауға жазады. Сіз оянасыз, он оқылмаған хабарлама көресіз, қолмен үзінді тізімді тексересіз, қол жеткізуді жібересіз. Клиент ашуланған. Сіз шаршадыңыз — жұмыс күні әлі басталған жоқ.
Бұл сіздің ботыңыздың қатесі емес. Бұл архитектуралық мәселе: Kaspi Pay жалпыға ашық webhook API ұсынбайды. «Төлем өтті» деген оқиға жоқ — автоматика да жоқ. Әр төлем қолмен тексеруді немесе SMS не email хабарламаларын парсингтеу сияқты уақытша шешімдерді талап етеді.
AiPay дәл осы олқылықты жабады. Төменде — бұл қалай жұмыс істейді және бір сағатта қалай қосуға болады.
Kaspi Pay мен Telegram-бот middleware-сіз неге қиын жұп
Kaspi — Қазақстанның ең ірі төлем платформасы: айына 14,7 миллион белсенді пайдаланушы, 737 000 белсенді саудагер, елдегі цифрлық төлем нарығының 75%-ы. Оны елемеу мүмкін емес: егер аудиторияңыз Қазақстанда болса, Kaspi — мүмкін болған нұсқалардың бірі емес, бұл негізгі төлем тәсілі.
Қазақстандағы Telegram-боттар шынайы өрлеуді басынан өткеруде. Тамақ жеткізу, цифрлық өнімдер сату, жазылымдар, ақпараттық бизнес боттары — мұның бәрі Telegram-да салынуда, себебі аудитория сонда, ал кіру кедергісі төмен.
Мәселе осы екі құралдың қосылыс нүктесінде жатыр.
Бизнес үшін Kaspi Pay-дің стандартты сценарийі мынадай: клиент QR-кодты сканерлейді немесе телефон нөміріне аударады, ақша келеді, менеджер қолданбада немесе поштада хабарлама көреді. Офлайн дүкен үшін бұл жұмыс істейді. Бірден жауап беруі тиіс Telegram-бот үшін — жоқ.
Kaspi сыртқы әзірлеушілер үшін webhook-оқиғалары бар жалпыға ашық REST API ұсынбайды. Бұл сіздің ботыңыз «#12345 шоты бойынша төлем өтті» оқиғасына тікелей жазыла алмайды дегенді білдіреді. Әзірлеушілер мұны әр түрлі жолмен шешеді:
- Үзінді тізімді қолмен тексеру (масштабталмайды)
- Kaspi-дің email/SMS хабарламаларын парсингтеу (нәзік, формат өзгерген кезде сынады)
- Бейресми әдістер арқылы мезгіл-мезгіл polling (ToS-ты бұзады, тұрақсыз)
Бұл тәсілдердің ешқайсысы нақты жүктемесі бар production үшін жарамайды.
AiPay мәселені қалай шешеді: 5 қадамдағы толық ағын
AiPay — Telegram-ботыңыз бен Kaspi Pay арасындағы middleware-қабат. Ол Kaspi-мен барлық өзара әрекетті өзіне алады және ботыңызға таза webhook-оқиғаларын қайтарады.
Ағын мынадай:
- Клиент ботта «Төлеу» батырмасын басады
- Сіздің бэкендіңіз AiPay API-ге клиенттің телефон нөмірі мен сомасымен бір POST-сұраныс жасайды
- AiPay Kaspi Pay-де шот жасайды — клиент Kaspi қолданбасында push-хабарлама алады
- Клиент Kaspi-де бір батырманы басып төлейді — Telegram сессиясынан шықпай-ақ
- AiPay Kaspi-ден растауды алып, дереу сіздің эндпоинтіңізге webhook жібереді
- Сіздің ботыңыз webhook-ты қабылдайды, HMAC-қолтаңбаны тексереді және клиентке төлеген нәрсесін береді
Бүкіл цикл — «Төлеу» батырмасын басудан тауар алуға дейін — клиенттің жылдамдығына байланысты 20–40 секунд алады. Түнде, сағат 2-де, сіздің бір іс-әрекетіңізсіз.
Бұған қоса AiPay фискалдық чекті автоматты түрде жазады — бұл ҚР-да заңды жұмыс істейтін бизнес үшін бөлек жауапкершіліктен арылтады.
Интеграция бойынша қадамдық нұсқаулық
1-қадам. Тіркелу және API-кілт алу
aipay.kz сайтына кіріңіз, тіркеліңіз және тегін 7 күндік сынақ кезеңін белсендіріңіз. Тіркелгеннен кейін жеке кабинетте мыналарды табасыз:
API_KEY— сұраныстарды аутентификациялау үшінWEBHOOK_SECRET— кіріс webhook-оқиғалардың HMAC-қолтаңбасын тексеру үшін- Эндпоинт:
https://api.aipay.kz/v1
2-қадам. Ботыңызда webhook-эндпоинтін орнату
Алғашқы API-сұранысты жасамас бұрын, AiPay-ден оқиғаларды қабылдайтын эндпоинтті іске қосыңыз. Бұл кез келген жалпыға қолжетімді URL болуы мүмкін — Flask, FastAPI, Express, кез келген нәрсе.
Эндпоинтке қойылатын минималды талаптар:
- POST-сұраныстарды қабылдайды
- 5 секунд ішінде HTTP 200 қайтарады
X-AiPay-Signatureтақырыбының HMAC-қолтаңбасын тексереді
3-қадам. API арқылы шот жасау
Клиент ботта төлемді бастаған кезде, бэкендіңіз бір POST-сұраныс жасайды:
POST https://api.aipay.kz/v1/invoices
Сұраныс денесі:
{
"phone": "77001234567",
"amount": 4900,
"description": "«Бастаушыларға арналған Python» курсы — 12 айлық қол жеткізу",
"external_id": "order_telegram_98765"
}
external_id — сіздің ішкі тапсырыс идентификаторыңыз. Осы арқылы кіріс webhook-ты дерекқордағы нақты клиентпен сәйкестендіресіз.
4-қадам. Webhook-оқиғасын өңдеу
AiPay шот мәртебесі өзгерген сәтте эндпоинтіңізге POST жібереді. Мүмкін мәртебелер: paid, expired, error.
Оқиға денесі:
{
"event": "invoice.paid",
"invoice_id": "inv_abc123",
"external_id": "order_telegram_98765",
"amount": 4900,
"paid_at": "2026-03-27T02:17:43Z"
}
5-қадам. Қолтаңбаны тексеру және тауар беру
Ештеңе бермес бұрын HMAC-қолтаңбаны тексеруді ұмытпаңыз. AiPay әр webhook-сұранысқа қол қояды — бұл жалған оқиғалардан қорғаныс.
Алгоритм: HMAC-SHA256(raw_request_body, WEBHOOK_SECRET)
Қолтаңба X-AiPay-Signature тақырыбында беріледі. Қолтаңбалар сәйкес келсе — оқиғаны өңдеп, клиентке қол жеткізу бересіз.
Python тіліндегі код мысалы
Төменде API-сұраныстар үшін httpx және webhook өңдеу үшін FastAPI қолданылған Python-дағы минималды жұмыс жасайтын іске асыру берілген.
import hmac
import hashlib
import httpx
from fastapi import FastAPI, Request, HTTPException
app = FastAPI()
AIPAY_API_KEY = "your_api_key_here"
WEBHOOK_SECRET = "your_webhook_secret_here"
AIPAY_BASE_URL = "https://api.aipay.kz/v1"
async def create_invoice(phone: str, amount: int, external_id: str) -> dict:
"""AiPay API арқылы Kaspi Pay-де шот жасаймыз."""
async with httpx.AsyncClient() as client:
response = await client.post(
f"{AIPAY_BASE_URL}/invoices",
headers={"Authorization": f"Bearer {AIPAY_API_KEY}"},
json={
"phone": phone,
"amount": amount,
"description": "Telegram-бот арқылы төлем",
"external_id": external_id,
},
)
response.raise_for_status()
return response.json()
@app.post("/webhook/aipay")
async def handle_aipay_webhook(request: Request):
"""AiPay-ден webhook-оқиғасын қабылдап, тексереміз."""
body = await request.body()
signature = request.headers.get("X-AiPay-Signature", "")
# HMAC-қолтаңбасын тексеру
expected = hmac.new(
WEBHOOK_SECRET.encode(),
body,
hashlib.sha256
).hexdigest()
if not hmac.compare_digest(expected, signature):
raise HTTPException(status_code=403, detail="Invalid signature")
payload = await request.json()
if payload.get("event") == "invoice.paid":
external_id = payload["external_id"]
# Мұнда: external_id бойынша тапсырысты тауып, тауар/қол жеткізу беріңіз
await fulfill_order(external_id)
return {"status": "ok"}
async def fulfill_order(external_id: str):
"""Клиентке тауар беру — сіздің бизнес-логикаңыз."""
# Telegram-да хабарлама жіберу, қол жеткізуді ашу, т.б.
pass
API-дің толық құжаттамасы мен барлық параметрлердің сипаттамасын әзірлеушілер бетінен қараңыз.
Нақты пайдалану сценарийлері
Цифрлық өнімдер және ақпараттық бизнес
Курстар, PDF-нұсқаулықтар, үлгілер, жабық арналарға қол жеткізу — төлемнен кейін автоматты түрде берілетін кез келген нәрсе. AiPay үшін бұл мінсіз сценарий: бот ақшаны қабылдайды, webhook растайды, бот сілтемені жібереді немесе қол жеткізуді ашады. Қолмен еңбек нөл.
Дәл осылай PulseAI және STIKER.AI боттары жұмыс істейді — екеуі де AiPay-мен кірістірілген және төлемдерді толығымен автоматты түрде өңдейді.
Жазылым үлгілері
Сервистерге ай сайынғы жазылымдар, жабық қоғамдастықтар, тарату тізімдері. Бот келесі төлем күнін бақылайды, клиентке еске салады, төлемді қабылдайды және қол жеткізуді ұзартады — бәрі бір Telegram-чат шеңберінде.
Тамақ жеткізу және жергілікті бизнес
Қазақстандағы тамақ тапсырысына арналған боттар — бөлек үлкен тарих. Клиент тапсырысты тікелей ботта қалыптастырады, Kaspi арқылы бір тапта төлейді, асхана хабарлама алады. «Төлемді растау үшін қоңырау шалыңыз» деген сөз жоқ.
Түнгі және демалыс күніндегі тапсырыстар
Бұл жеке бір артықшылық, оны асыра бағалау қиын. Жұма түнгі сағат 2-дегі тапсырыс — мәселе емес. Webhook дереу келеді, бот тауарды береді, клиент ризашылықта. Сіз мұны таңертең бақылау тақтасында орындалған тапсырыс ретінде көресіз.
AiPay-ді тегін байқап көріңіз — 7 күн шектеусіз
Егер Қазақстандағы сатылымдары бар Telegram-ботын салып жатсаңыз немесе іске қойып қойсаңыз, сынақ кезеңі — бұл әзірлеушіңіздің бір сағаттық жұмысы және нөлдік тәуекел. Қосыңыз, сынақ төлемін өткізіңіз, webhook жұмыс істейтінін тексеріңіз. Сынақ кезеңінен кейінгі құны — терминал үшін айына ₸25 000.
Интеграция бойынша сұрақтармен бізге жазыңыз →
Жиі қойылатын сұрақтар
Клиент қосымша бірдеңе орнатуы немесе тіркелуі керек пе?
Жоқ. Клиент өзінде бар Kaspi қолданбасын пайдаланады. Ботыңыз шот жасағаннан кейін клиент Kaspi-ден стандартты push-хабарлама алады. Бір батырманы басады — төлем өтті.
Kaspi Pay API — бұл ресми интеграция ма?
AiPay ресми серіктестік механизмдер арқылы Kaspi-мен жұмыс істейді. Бұл парсинг немесе қауіпсіздік жүйелерін айналып өту емес — заңды middleware, ол Kaspi-ден оқиғаларды алып, қолданбаңызға webhook форматында жеткізеді.
Webhook жалған емес екенін қалай тексеруге болады?
AiPay әр сұранысқа жеке WEBHOOK_SECRET арқылы HMAC-SHA256 арқылы қол қояды. Тексеру алгоритмі жоғарыдағы код мысалында көрсетілген. Егер қолтаңба сәйкес келмесе — сұранысты 403 кодымен қабылдамаңыз. Бұл webhook-қауіпсіздік үшін стандартты тәжірибе.
Қорытынды
- Kaspi Pay — Қазақстандағы бизнес үшін міндетті құрал, бірақ оның нативті webhook API жоқ
- AiPay осы қабатты қосады: POST-сұраныс шот жасайды, webhook нәтиже туралы хабарлайды
- Интеграция жұмыс жасайтын Telegram-бот болған жағдайда шамамен бір сағат алады
- Цифрлық өнімдер, жазылымдар, тамақ жеткізу және монетизациясы бар кез келген бот үшін жұмыс істейді
- Жұма күні сағат 2-де де 24/7 тауарды автоматты беру
- Фискалдық чектер автоматты түрде жазылады
- 7 күндік сынақ кезеңі, одан кейін терминал үшін айына ₸25 000
Интеграция бойынша сұрақтар қалса немесе архитектура бойынша көмек керек болса — бізге жазыңыз, бірге шешеміз.