Qut Pay Сайт Кабинет Білім базасы Нұсқаулықтар API құжаттамасы ҚАЗРУС
Басты бетБілім базасы → Бизнесіңізге

Тұрақ пен шлагбаумға

Жаңартылды: 2026-09-14 · Markdown нұсқасы

Қысқаша

Тұрақта схема мынау: жүргізуші шығу тұсына келеді → билет нөмірін енгізеді немесе нөмірін камера оқиды → сіздің сервер тұрақ уақытына қарай соманы есептеп, Qut Pay-де счёт жасайды → экранда QR шығады → жүргізуші Kaspi-мен сканерлеп растайды → бізден webhook келеді → сервер IP-реле арқылы шлагбаумды ашады. QR әр шығуға жаңадан жасалады: сканерлеу терезесі шамамен үш минут. Жүргізуші машинадан шықпай тұрып төлейді.

Жұмыс схемасы

ҚадамКімНе істейді
1ЖүргізушіШығу тұсына келеді, билет нөмірін енгізеді
2Тұрақ бақылаушысыСерверге сұрау: билет №, кіру уақыты, көлік нөмірі
3Сіздің серверСоманы есептеп, POST /api/v1/invoices жасайды
4ЭкранQR мен таймерді көрсетеді
5ЖүргізушіKaspi-мен сканерлеп растайды
6Qut PayСерверге invoice.paid жібереді
7Сіздің серверIP-релеге команда жібереді
8ШлагбаумАшылады, оқиға журналға жазылады

Клиент растағаннан кейін webhook әдетте бес секунд ішінде келеді. Шығу тұсында мұның өзі ұзақ: артында кезек тұр. Сондықтан төмендегі «кідіріс» бөлімін міндетті түрде оқыңыз.

Қандай API әдісі қолданылады

Негізгісі — POST /api/v1/invoices, kind: "qr":

POST https://api.qut.kz/api/v1/invoices
X-API-Key: qp_live_…
Idempotency-Key: park-exit-4471

{
  "amount": 600,
  "kind": "qr",
  "description": "Тұрақ: билет 4471, 2 сағ 15 мин",
  "externalOrderId": "park-4471",
  "metadata": {
    "ticket": "4471",
    "plate": "123ABC02",
    "gate": "exit-2",
    "entered_at": "2026-09-14T09:12:00Z"
  }
}

Керегі: id, qrImageUrl, expiresAt. Қалғаны: GET /api/v1/invoices/{id} — күйін сұрау, POST /api/v1/invoices/{id}/cancel — жүргізуші төлемей кетсе, POST /api/v1/invoices/{id}/refund — шлагбаум ашылмай қалса.

Абонементпен жүретін тұрақ болса, айлық төлемді жазылым арқылы кестеге қоюға болады. Бірақ есіңізде болсын: жазылым счётты кестеге сай шығарады, ақшаны клиент әр жолы өзі растайды.

Көлік нөмірін metadata-ға жазыңыз

metadata ішіне міндетті түрде салыңыз: билет нөмірі, көлік нөмірі, қай шлагбаум, кіру уақыты. Webhook келгенде қай шлагбаумды ашу керегін сол өрістен бірден білесіз.

Бұл дауды шешуге де керек: «мен төледім, ол ашылмады» дегенде счётты көлік нөмірі бойынша тауып, оқиғалар тізбегін көрсетесіз. externalOrderId ретінде билет нөмірін беріңіз — іздеу жеңіл болады.

Бірнеше тұрағыңыз болса, әрқайсысына бөлек API кілт беріңіз: нүктелер бойынша есеп бөлек шығады.

Динамикалық және басылған QR

Динамикалық QR (негізгі жол). Экранда әр шығуға жаңа счёт көрсетіледі. Сомасы сол көлікке нақты есептелген, төлем нақты билетке байланады, шлагбаум автоматты ашылады. Осы жолды қолданыңыз.

Басылған QR (қосымша жол). Шығу тұсына тұрақты қағаз код іліп қоюға болады, бірақ ол счёттың QR-ы болмауы керек — счёттың терезесі шамамен үш минут, ертесіне ол жұмысын тоқтатады. Тұрақты код үшін төлем сілтемесін қолданыңыз: qut.kz/p/<slug>, сомасы ашық түрі де бар.

Бірақ басылған кодтың бір кемшілігі бар: төлем нақты билетке байланбайды, сондықтан шлагбаум өздігінен ашылмайды. Оны күзетші қолмен ашады немесе оператор кабинеттен төлемді көріп растайды. Сондықтан ол — автомат істемей қалғандағы немесе кіші тұрақтағы қосалқы нұсқа.

Динамикалық QRБасылған төлем сілтемесі
СомаНақты есептелгенКлиент өзі енгізеді немесе тұрақты
Билетке байланадыИәЖоқ
Шлагбаум автоматты ашыла маИәЖоқ, қолмен
МерзіміШамамен 3 минутБітпейді
Қайда жарайдыНегізгі жолҚосалқы, кіші тұрақ

Жабдық жағы

Релені интернетке тікелей шығармаңыз. Ол тек сіздің сервердің командасын қабылдасын. API кілтті реленің немесе жергілікті контроллердің ішіне салмаңыз.

Кідіріс маңызды: webhook пен сұрауды қатар жүргізіңіз

Шығу тұсында бірнеше секундтың өзі ұзақ. Сондықтан екі арнаны қатар ұстаңыз:

  1. Webhook — негізгісі. invoice.paid келгенде шлагбаум ашылады.
  2. Күйді сұрау — сақтандырғыш. Счёт жасалғаннан кейін контроллер GET /api/v1/invoices/{id} арқылы күйді әр 2-3 секунд сайын сұрап отырсын. Қайсысы бірінші «paid» көрсе, сол ашады — екеуін бір оқиға деп санаңыз, екі рет ашпаңыз.

Poller әр үш секунд сайын жүреді, ал үш минуттан жас счёттар әр айналымда тексеріледі — яғни жаңа счёттың күйі ең жиі жаңарады. Жалпы жылдамдық туралы: Төлем баяу расталады.

Webhook мүлде келмей жатса, себебін журналдан қарау керек: Webhook келмей жатыр.

Ерекше ескертулер

Жиі қойылатын сұрақтар

Шығу тұсына бір рет QR басып іліп қойсам бола ма? Счёттың QR-ы жарамайды — оның терезесі шамамен үш минут. Тұрақты код керек болса, төлем сілтемесін қолданыңыз, бірақ онда шлагбаум автоматты ашылмайды.

Көлік нөмірін камера оқиды, билет жоқ. Бола ма? Иә. Сома есептеу мен счёт жасау реті сол күйі қалады, тек metadata ішіне билет орнына көлік нөмірін жазасыз.

Абонемент сатсам, ай сайын өзі шешіле ме? Жоқ. Жазылым белгіленген кестемен счёт шығарады, ал төлемді клиент әр жолы Kaspi-де өзі растайды.

Жүргізуші төлеп үлгермей, QR-дың уақыты бітсе? Жаңа счёт жасайсыз — экранда «Қайта көрсету» батырмасы болсын. Ескі счёт expired болып қалады, ақша алынбайды.

Интернет үзілсе не болады? Счёт жасау да, webhook та жұмыс істемейді. Сондықтан қосалқы GSM арнасын және күзетшінің қолмен ашу мүмкіндігін алдын ала қарастырыңыз.

Байланысты мақалалар

Вендинг автоматына терминалсыз төлемАвтомат экранында динамикалық QR, клиент сканерлейді, webhook келеді, контроллер тауарды береді. Су, кофе және снек автоматтары үшін схема, жабдық жағы және QR терезесі.Интернет-дүкенге Kaspi төлемін қосуСебеттен «төленді» күйіне дейінгі толық схема: счёт, төлем беті, webhook. Tilda, WooCommerce, OpenCart және өзі жазылған сайт үшін кодсыз жол мен API жолы.Webhook келмей жатыр — себебін қалай табу керекСчёт төленді, бірақ сіздің серверіңізге хабарлама жетпеді. Диагностиканы қай жерден бастау керек, ең жиі кездесетін себеп қайсы және оны бір сынаумен қалай анықтауға болады.Төлем баяу расталады — неге және не істеу керекКлиент төледі, бірақ счёт бірден paid болмайды. Мұнда тексеру жиілігі жасына қарай қалай өзгеретіні, іс жүзіндегі уақыт және кідіріске сезімтал сценарийде не істеу керегі жазылған.Мобильді қосымшаға қосуДұрыс реті: қосымша → өз серверіңіз → Qut Pay → Kaspi. API кілт APK немесе IPA ішінде болмауы керек. payUrl ашылғанда не болады және App Store мен Play Market ережесі.

Сұрағыңыз қалды ма? WhatsApp +77788813333 · kazprose@gmail.com
Кабинеттен де жазуға болады: Қолдау.

Qut Pay — тәуелсіз сервис, «Kaspi Bank» АҚ-мен аффилирленбеген. Kaspi және Kaspi Pay — құқық иесінің тауар белгілері.