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

Счёттар қосарланып жатыр

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

Қысқаша

Ең алдымен ағынды тоқтатыңыз: кабинеттен API кілтті жойыңыз. Кілт жойылған сәттен бастап сол кілтпен келген сұраулардың бәрі 401 алады, яғни жаңа счёт жасалмайды — кодыңызды түзетіп үлгергенше клиенттер артық счёт көрмейді. Ағын тоқтағаннан кейін ғана себебін іздеңіз: әдетте бұл идемпоттылықтың жоқтығы, қайталау циклі немесе webhook-ты қате өңдеу. Тұрақты шешімі — әр счёт сұрауына Idempotency-Key тақырыбын қосу.

Шұғыл тоқтату

  1. Кабинетке кіресіз, API кілттер бөлімін ашасыз
  2. Счёт шығарып жатқан кілтті жоясыз
  3. Кодыңызды түзетесіз
  4. Жаңа кілт жасап, серверде ауыстырасыз

Кілтті жою — ең жылдам «ажыратқыш». Оны өшіру үшін кодыңызды қайта жаюдың, серверді өшірудің қажеті жоқ.

Не өзгермейді: бұрын жасалған счёттар орнында қалады, webhook баптаулары сақталады, Kaspi байланысы үзілмейді. Кілттің өзі ғана жарамсыз болады.

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

Артық счёттарды тазалау

Ағын тоқтаған соң:

Асықпаңыз: pending күйіндегі счёт әлі төленуі мүмкін, сондықтан тазалауды ағынды тоқтатқаннан кейін ғана бастаңыз.

Себебін табу

БелгісіЫқтимал себебі
Бір тапсырысқа дәл екі счётКлиент «Төлеу» батырмасын екі рет басқан немесе форма екі рет жіберілген
Бір тапсырысқа ондаған счётКодта цикл: қате келгенде қайта жіберу, шығу шарты жоқ
Счёттар тұрақты интервалмен шығып тұрКесте бойынша жүретін тапсырма әр жүрісте жаңа счёт жасайды
Счёт webhook келген сайын қосыладыWebhook өңдеушісі счёт жасап отыр, ал webhook 11 рет қайталанады
tariff_daily_burst қатесі келдіТәуліктік қорғаныс іске қосылды — бұл дәл осындай циклдерді ұстау үшін жасалған

tariff_daily_burst — бизнес лимиті емес, циклге түскен интеграциядан қорғайтын сақтандырғыш. Ол келсе, тарифті көтеруге асықпаңыз: алдымен кодты тексеріңіз. Айлық лимит бөлек кодпен келеді — tariff_limit_reached.

Idempotency-Key қалай қолданылады

Счёт жасау сұрауына Idempotency-Key тақырыбын қосасыз. Сол кілтпен екінші рет жіберсеңіз, жаңа счёт жасалмайды: бұрынғысы қайтады, HTTP 200 және жауапта idempotentReplay: true белгісі болады.

POST /api/v1/invoices
X-API-Key: qp_live_…
Idempotency-Key: order-10482
Content-Type: application/json

{ "amount": 12500, "externalOrderId": "10482" }

Кілтті қалай таңдау керек:

Идемпоттылық — бір жолғы түзету емес, әдеттегі тәртіп. Оны бәрі дұрыс істеп тұрғанда да қосып қойыңыз: желі үзілгенде, timeout болғанда, қайта жүктегенде ол сізді өзі қорғайды.

Қайталау циклін дұрыс жазу

Счёт жасау сұрауы қате бергенде қайталау қауіпсіз болуы үшін:

Webhook өңдеуде идемпоттылық

Біз 2xx емес жауапқа хабарламаны 11 рет қайталаймыз. Сондықтан бір оқиға бірнеше рет келеді — бұл қалыпты. Егер өңдеушіңіз әр келген хабарламаға жауап ретінде жаңа счёт жасаса немесе тапсырысты қайта өңдесе, қосарлану сол жерден шығады.

(invoice.id, status) жұбын кілт ретінде алып, бұрын өңдеген оқиғаны екінші рет өңдемеңіз. Өңдеу ұзақ болса, алдымен 200 қайтарып, жұмысты фонда істеңіз — әйтпесе біз timeout деп есептеп, қайта жібереміз.

Алдын алу

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

Кілтті жойсам, бұрынғы счёттар жойыла ма? Жоқ. Счёттар, олардың күйлері мен тарихы сақталады. Тек кілттің өзі жарамсыз болады.

Idempotency-Key қанша уақыт жарамды? Бір кілтті шексіз ұзақ қайта қолдануға есептемеңіз: ол жақын арадағы қайталаудан қорғауға арналған. Тапсырыс нөмірін кілт ретінде алсаңыз, іс жүзінде бұл жеткілікті.

Sandbox счёттары лимитке кіре ме? Жоқ, sandbox счёттары айлық лимитке есептелмейді.

Клиент екі счётты да төлеп қойды, енді не істеймін? Артық сомасын қайтарасыз. Ішінара қайтару да қолдау көрсетіледі.

externalOrderId идемпоттылықты өзі қамтамасыз ете ме? Жоқ, ол іздеу мен есеп үшін. Қайталаудан қорғайтыны — Idempotency-Key тақырыбы.

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

Қайтару өтпей жатырҚайтару қатесін код бойынша ажырату: счёт қайтаруға жарамайды, сома дұрыс емес, Kaspi орындамады немесе нәтижесі белгісіз. Қайсысында қайталауға болады, қайсысында мүлде болмайды.Счёт pending күйінде тұрып қалдыPending — қате емес, қалыпты күй: счёт шығарылған, клиент әлі төлемеген. Қанша тұрады, қашан expired болады, біз оны қалай тексереміз және шынымен қашан алаңдау керек.Webhook келмей жатыр — себебін қалай табу керекСчёт төленді, бірақ сіздің серверіңізге хабарлама жетпеді. Диагностиканы қай жерден бастау керек, ең жиі кездесетін себеп қайсы және оны бір сынаумен қалай анықтауға болады.Клиентке төлем келмей жатырСчёт жасалды, бірақ клиенттің телефонына ештеңе келмеді немесе QR ашылмайды. Ең жиі себебі — тест режимі қосулы қалып қойған. Алты қадамдық тексеру реті.

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

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