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

QR счёт пен телефонға счёт — қайсысын таңдау керек

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

Қысқаша

Счёт жасағанда kind өрісінің екі мәні бар:

Ең қысқа ереже: клиент сіздің экраныңызды көріп тұрса — qr, алыста болса және нөмірі белгілі болса — phone.

Толық салыстыру

QR счётТелефонға счёт
kind мәніqr (әдепкі)phone
Клиент не істейдіQR-ды сканерлейді немесе payUrl сілтемесін ашадыKaspi қосымшасындағы хабарламаны ашып, растайды
Телефон нөмірі керек пеЖоқИә, customer.phone міндетті
Сипаттама шектеуі100 таңба60 таңба
СомаЕң көбі 2 ондық белгіТек бүтін теңге
МерзіміQR сканерлеу терезесі шектеулі, expiresAt өрісінен алыңызХабарлама қосымшада тұрады, терезесі ұзағырақ
Клиенттің Kaspi қосымшасыМіндетті емес: сілтеме браузерде де ашыладыМіндетті
Жауап өрістеріpayUrl, qrUrl, qrImageUrl, deepLinkpayUrl бар, бірақ негізгі арна — push
Қай жерде ыңғайлыКасса, витрина, вендинг, сайт, әлеуметтік желіҚоңыраудан кейін, чат, жазылым, топтама

Сипаттама шектеуі

description өрісі клиентке көрінеді, бірақ шегі екі түрде әртүрлі: QR-да 100 таңба, phone-да 60.

Екі түрді бір кодта қолдансаңыз, мәтінді қауіпсіз шекке қиып жіберген дұрыс:

const LIMIT = { qr: 100, phone: 60 };

function invoiceBody(kind, amount, text, phone) {
  return {
    kind,
    amount,
    description: text.slice(0, LIMIT[kind]),
    ...(kind === 'phone' ? { customer: { phone } } : {}),
  };
}

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

Сома айырмашылығы

ТүріРұқсат етілген сома
qrЕң көбі екі ондық белгі: 1250.50 жарайды
phoneТек бүтін теңге: 1250 жарайды, 1250.50 жарамайды

Телефонға счётқа тиын жіберсеңіз amount_must_be_whole_tenge қатесі келеді. Сондықтан есептеу жүйеңізде тиын болса, phone түрінде дөңгелектеу ережесін алдын ала шешіп қойыңыз — жоғары қарай ма, төмен қарай ма. Дөңгелектеуді клиентке түсіндіру оңай болу үшін, әдетте жоғары қарай дөңгелектеп, айырманы жеңілдік ретінде көрсетеді немесе керісінше.

QR-да екі ондық белгі рұқсат етілгенімен, іс жүзінде клиентке дөңгел сома әрқашан түсініктірек.

Мерзім: QR терезесі туралы

QR-дың сканерлеу терезесі шектеулі және оны Kaspi белгілейді. Ол нақты неше минут екенін кодыңызда тұрақты сан ретінде жазбаңыз — жауаптағы expiresAt өрісінен алыңыз.

const inv = await createInvoice({ amount: 2500, kind: 'qr' });
const msLeft = new Date(inv.expiresAt) - Date.now();
showCountdown(msLeft);          // терезе бітерде QR-ды өзіңіз жасырыңыз

Терезе біткен QR-ды сканерлеген клиент Kaspi қосымшасынан «кейінірек көріңіз» деген мазмұндағы хабар алады. Бұл ақау емес — жай ғана счёттың мерзімі өткен. Шешімі біреу: жаңа счёт жасау.

Сондықтан экранда QR ұзақ тұратын жерде (вендинг, турникет, витрина) кері санақ қойып, терезе біткенде QR-ды автоматты жаңартып отырыңыз.

Телефонға жіберілген счётта хабарлама клиенттің қосымшасында тұрады, сондықтан ол асығыс шешім қабылдамайды. Бұл — phone түрінің басты артықшылығы.

Клиентте Kaspi қосымшасы болмаса

phone счёт клиенттің Kaspi қосымшасына барады. Қосымшасы жоқ немесе оның Kaspi-і басқа нөмірге тіркелген болса, хабарлама ешқайда келмейді — счёт pending күйінде тұрып, ақыры мерзімі бітеді.

Ондай жағдайда:

  1. Сол клиентке qr счёт жасаңыз.
  2. Оған payUrl сілтемесін WhatsApp немесе SMS арқылы жіберіңіз — сілтеме браузерде де ашылады.
  3. Немесе тұрақты төлем сілтемесін беріңіз.

Толығырақ: Клиентте Kaspi қосымшасы жоқ.

Нөмір пішімі

phone түрінде нөмір 7XXXXXXXXXX пішімінде, 11 сан болуы керек: 77011234567. +7, 8, бос орын, сызықша қабылданбайды — invalid_phone қатесі келеді.

Нөмірді жіберер алдында тазалап алыңыз:

const normalize = (raw) => {
  const d = String(raw).replace(/\D/g, '');
  if (d.length === 11 && d.startsWith('8')) return '7' + d.slice(1);
  if (d.length === 10) return '7' + d;
  return d;
};

Қай сценарийге қайсысы

СценарийДұрысыСебебі
Кассадағы экран, витринаqrКлиент қасыңызда, нөмірі керек емес
Вендинг, турникет, шлагбаумqrСканерлеп, бірден төлейді
Интернет-дүкен, тапсырыс бетіqrКлиентті payUrl-ге жібересіз
Instagram, TikTok, директqr немесе төлем сілтемесіНөмірін сұрамай-ақ сілтеме жібересіз
Қоңыраудан кейінгі есеп-шотphoneКлиент алыста, нөмірі белгілі
Жазылым бойынша кезекті төлемphoneКлиент өзінің қосымшасынан көреді
Топтама: жүргізушілер, тыңдаушыларphoneНөмір базада бар, сілтеме таратудың қажеті жоқ
Курьер жеткізген сәттеqrКурьердің телефонындағы QR

Екеуін қатар қолдануға болады: алдымен phone жіберіп, клиент бір-екі минутта ашпаса, оған qr сілтемесін чатпен қоса жіберу — жиі кездесетін әрі жақсы жұмыс істейтін тәсіл.

Екеуіне ортақ нәрселер

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

kind жазбасам не болады? Әдепкі мән qr қолданылады.

Счёт жасалып қойған соң түрін өзгертуге бола ма? Жоқ. Ескісін болдырмай, жаңа счёт жасаңыз.

phone счёттың да payUrl сілтемесі бола ма? Иә, жауапта келеді. Клиент push хабарламасын байқамай қалса, сол сілтемені жіберуге болады.

Клиент кассир нөмірін көре ме? Иә, Kaspi хабарламасында кассир нөмірі көрінеді — бұл Kaspi-дің қалыпты жұмысы, екі түрге де қатысты.

QR суретін өзім жасай алам ба? Қажеті жоқ: жауапта дайын qrImageUrl және deepLink келеді.

Счёт pending күйінде ұзақ тұрса, бұл қалыпты ма? Клиент әлі төлемеген деген сөз. Қашан expired болатыны жауаптағы expiresAt өрісінде: Счёт pending күйінде тұрып қалды.

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

Клиентте Kaspi қосымшасы жоқ — қалай төлетуге боладыТелефонға счёт (kind phone) клиенттің Kaspi қосымшасына келеді, қосымша болмаса ол жетпейді. Орнына QR немесе төлем сілтемесін беру керек. Алдын ала қалай тексеруге болады.Бірінші счётты қалай жасау керекЕкі жолы бар: кабинеттен қолмен екі өрісті толтырып немесе API арқылы бір сұраумен. Алдымен sandbox-та жасап, төлемді симуляциялап көру ұтымды.Төлем сілтемелері — тұрақты мекенжай арқылы қабылдауqut.kz/p/<slug> түріндегі тұрақты төлем сілтемесі: өз атауыңызды қою, белгіленген және ашық сома, тоқтату мен қайта қосу, счёт сілтемесінен айырмашылығы, есеп және қате кодтары.Қателер каталогы — API не қайтарады және не істеу керекQut Pay API-інің барлық негізгі қате кодтары топтап берілген: авторизация, Kaspi байланысы, счёт, қайтару, тариф лимиті, webhook, жазылым. Әрқайсысының себебі және шешімі.Счёт pending күйінде тұрып қалдыPending — қате емес, қалыпты күй: счёт шығарылған, клиент әлі төлемеген. Қанша тұрады, қашан expired болады, біз оны қалай тексереміз және шынымен қашан алаңдау керек.

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

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