Қысқаша
Автомектеп пен офлайн курстарда оқу ақысы әдетте бірнеше кезеңге бөлінеді, ал оқушылар саны ондап саналады. Төрт жол бар: кабинеттен қолмен счёт (код керек емес), топ бойынша топтап счёт, әр оқушыға жазылым арқылы кезеңдік счёт, және тұрақты төлем сілтемесі. Жазылым туралы бірден нақтылайық: ол счётты автоматты шығарады, ақша оқушының шотынан өздігінен шешілмейді — әр төлемді оқушы өзі растайды.
Сценарий
Топ 1 қыркүйекте басталады, 20 оқушы, оқу ақысы 180 000 ₸, үш айға бөлінеді.
- Әкімші әр оқушыға айына бір счёт шығаруы керек — қолмен 60 счёт.
- Кім төледі, кім төлемеді — бақылау керек.
- Біреу оқудан шығып кетсе, ақшаны ішінара қайтару керек.
- Ай соңында директорға топ бойынша есеп керек.
Мұның бәрін Kaspi-дің өз кассирі арқылы, бөлек терминалсыз жүргізуге болады.
Төрт жол: қайсысын қашан
| Жол | Код керек пе | Қашан ыңғайлы |
|---|---|---|
| Кабинеттен қолмен счёт | Жоқ | Аз оқушы, әркімге әр уақытта |
| Төлем сілтемесі | Жоқ | Жарнамада, Instagram-да, тіркеу формасында |
Топтап счёт (bulk) | Иә | Айдың басында бүкіл топқа бірден |
| Жазылым | Ішінара | Әр оқушыға кестемен, ай сайын өзі шығады |
Кабинеттен қолмен счёт — кодсыз нұсқасы
Ең қарапайымы. Кабинетке кіресіз, Счёттар бөліміне барасыз, счёт жасайсыз: сомасы, сипаттамасы («Автомектеп, 1-төлем, қыркүйек»), оқушының телефоны.
Екі түрі бар:
- QR счёт — экранда QR көрсетіледі, оқушы кабинетте отырып сканерлейді. Сілтемесін де жіберуге болады.
- Телефонға счёт — оқушының Kaspi қосымшасына push келеді. Оқушы алыста болса ыңғайлы, бірақ телефон нөмірі дұрыс болуы керек.
Айырмашылығы: QR счёт пен телефонға счёт.
Сипаттамаға топ пен кезеңді жазып қойған дұрыс — кейін экспорттан іздеуге көмектеседі.
Жазылым арқылы кезеңдік төлем
Жазылым — оқу ақысын ай сайын бөліп төлейтін оқушыға арналған. Кестеге қоясыз (мысалы month, әр 1-күні), әрі қарай счёт өзі шығады.
Маңызды, шатастырмаңыз: жазылым тек счёт шығарады. Ақша оқушының Kaspi шотынан өздігінен шешілмейді — оған счёт келеді, ол ашып, өзі растайды. Сондықтан «төлем автоматты» деп уәде бермеңіз, оқушыға «ай сайын счёт келеді, сіз растайсыз» деп түсіндірген дұрыс.
Баптаулары:
- Аралығы:
day,week,month,everyарқылы кратность (мысалы әр 2 апта сайын). - Қайталау сатысы
retryDelaysMin— оқушы бірден төлемесе, счёт қайта жіберіледі. Әдепкі[15, 60, 360]минут, ең көбі 5 мән. - Саты біткенде сол кезек тасталады, кесте тоқтамайды — келесі айда счёт қайтадан шығады. Күйі
failedRuns,lastError,lastRunStatusөрістерінен көрінеді. - Өткізіп алу саясаты
misfirePolicy:run_once(әдепкі) немесеskip. POST /subscriptions/{id}/resume{ catchUp: true }— кідіртілген жазылымды жалғастырып, өткізіп алған кезекті бірден жіберу.
Толығы: Жазылым API.
Топтап счёт шығару
Топ үлкен болса, айдың басында бір сұрауда бүкіл топқа счёт шығарасыз: POST /api/v1/invoices/bulk, бір сұрауда 1-ден 100-ге дейін.
Әр элемент бөлек тексеріледі: біреуінің телефоны қате жазылса, қалғаны жасалады да, сол біреуі қате қайтарады. Жауаптағы жолдарды өз тізіміңізбен салыстырып, қатесі барларын түзеп қайта жіберіңіз.
Дубльден сақтану үшін Idempotency-Key тақырыбын беріңіз — мәні «топ + кезең» түрінде тұрақты болсын. Әкімші батырманы екі рет бассa да, счёт екі есе шықпайды.
Төлем сілтемесі
qut.kz/p/<slug> түріндегі тұрақты сілтеме. Оны Instagram профиліне, сайттағы «Тіркелу» батырмасына, жарнамаға қоюға болады. Сома тұрақты да, ашық та болады — ашық сомада оқушы төлейтін бөлігін өзі енгізеді (мысалы алғашқы жарна).
Сілтеме арқылы келген төлемдер де кабинетте, экспортта көрінеді. Толығы: Төлем сілтемелері.
Топ бойынша есеп
Есепті кейін жинау үшін счёт жасаған сәтте белгі қою керек:
externalOrderId— оқушының ішкі нөмірі немесе «топ-нөмір/оқушы-нөмір» түріндегі жол.description— оқушы көретін мәтін, оған топ атауы мен кезеңді жазыңыз.metadata— топ, нұсқаушы, филиал, кезең. Бұл өріс webhook-та қайта келеді және есепке ыңғайлы.
Кабинеттегі Счёттар бөлімінен кезең бойынша сүзіп, CSV экспорттайсыз. Бірнеше филиал болса, әрқайсысына жеке API кілт жасаңыз — сонда есеп көзі бойынша бөлінеді.
Ерекше ескертулер
- Оқушыны шығарып жіберсеңіз ақшаны
POST /invoices/{id}/refundарқылы толық немесе ішінара қайтарасыз. Ішінара қайтару кезіндеamountберіңіз. - Сома бүтін теңге болсын телефонға счёт жағдайында. Үшке бөлгенде тиын қалса, соңғы төлемге қосыңыз.
- QR-дың сканерлеу терезесі шектеулі. Оқушыға QR суретін емес,
payUrlсілтемесін жіберген дұрыс — сілтеме ашылған сәтте жаңа QR көрсетіледі. Нақты уақыттыexpiresAtөрісінен алыңыз. - Кассир нөмірі оқушыға көрінеді счёт туралы хабарламада. Бұл Kaspi-дің қалыпты жұмысы, бөлек нөмір алғаныңыз дұрыс.
- Айлық лимитті есептеңіз. 20 оқушы × 3 төлем = 60 счёт, оған қайта жіберулерді қосыңыз. Тариф таңдау: Қай тарифті таңдау керек.
Жиі қойылатын сұрақтар
Ақша оқушының картасынан өзі шешіле ме? Жоқ. Жазылым тек счёт шығарады, әр төлемді оқушы Kaspi қосымшасында өзі растайды.
Программист жалдамай жұмыс істей ала ма? Иә. Кабинеттен қолмен счёт, төлем сілтемелері және Telegram бот код жазбай-ақ жұмыс істейді. Топтап шығару мен жазылымды API арқылы қосу үшін техникалық адам керек.
Оқушы төлемей қойса не болады? Счёт expired болады, оқушыға қызмет берілмейді. Жазылымда қайталау сатысы бойынша счёт қайта жіберіледі, содан кейін кезек тасталады, бірақ келесі кезең бәрібір шығады.
Топ бойынша кім төледі, кім төлемеді — қайдан көремін? Кабинеттегі Счёттар бөлімінен кезең мен күй бойынша сүзесіз, содан кейін CSV экспорттайсыз.
Бірнеше филиалды бөлек жүргізуге бола ма? Иә. Әр филиалға бөлек API кілт жасаңыз, есепте төлемдер көзі бойынша ажыратылады.