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

API 401 қайтарады — кілт қабылданбай жатыр

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

Қысқаша

401 және {"error":"unauthorized"} дегені бір ғана нәрсені білдіреді: сұрауда жарамды API кілт келмеді. Бұл счётқа, сомаға, кассирге, тарифке қатысы жоқ қате — сұрау денесі дұрыс болса да 401 келе береді. Ең жиі үш себеп: X-API-Key тақырыбы мүлде жіберілмеген, оның орнына Authorization: Bearer жазылған, немесе кілт кабинетте жойылған. Төмендегі бес қадамнан өтсеңіз, себебі табылады.

Симптом бойынша себеп

Не көріп тұрсызСебебіШешімі
401 unauthorized, барлық эндпоинттеX-API-Key тақырыбы жоқТақырыпты қосыңыз
401 unauthorized, кеше істеп тұрған кілтпенКілт кабинеттен жойылған немесе өшірілгенКабинеттен жаңа кілт жасап, интеграцияны жаңартыңыз
401, ал Postman-да сол кілт істейдіКодыңыз кілтті басқа айнымалыдан алып тұр, бос жол келеді.env жүктелген бе, қызмет қайта іске қосылған ба, тексеріңіз
422 invalid_api_keyКілттің пішімі бұзылғанКілт qp_live_… немесе qp_test_… болуы керек
401, кілт дұрыс сияқтыКілт Bearer префиксімен жіберілгенПрефикссіз, таза кілтті жіберіңіз

401 бен 403 екеуі екі басқа нәрсе. 401 — «кім екеніңізді білмеймін». 403 — «кім екеніңізді білемін, бірақ бұған құқығыңыз жоқ». Егер 403 келсе, API 403 қайтарады бетін қараңыз.

Тексеру реті

1. Тақырыптың атауын дәл салыстырыңыз. Ол — X-API-Key. X-Api-Key де жарайды (HTTP тақырыптарында регистр маңызды емес), бірақ X_API_KEY, ApiKey, api-key жарамайды. Кейбір фреймворктер астыңғы сызықты сызықшаға айналдырмайды — тақырыпты дәл солай жазыңыз.

2. Bearer жазбаңыз. Бұл ең жиі кездесетін қате. Біздің API Authorization: Bearer … схемасын пайдаланбайды. Кілт X-API-Key тақырыбында, префикссіз, таза күйінде келуі керек.

Дұрыс:  X-API-Key: qp_live_xxxxxxxxxxxxxxxx
Қате:   Authorization: Bearer qp_live_xxxxxxxxxxxxxxxx
Қате:   X-API-Key: Bearer qp_live_xxxxxxxxxxxxxxxx

3. Кілттің өзін көзбен тексеріңіз. Ол qp_live_ немесе qp_test_ деп басталуы керек. Көшіргенде басына немесе аяғына бос орын, жол ауыстыру таңбасы, тырнақша түсіп кетуі жиі болады. Кодта кесіп алыңыз:

const key = (process.env.QUTPAY_API_KEY || '').trim();
if (!key.startsWith('qp_')) throw new Error('API кілт жүктелмеген');

Мұндай тексеру қызмет іске қосылған кезде істесе, 401-ді өндірісте емес, бірден көресіз.

4. Кілт кабинетте бар ма, қараңыз. Кабинет → Интеграциялар бөлімінде кілттер тізімі тұрады. Жойылған кілт қалпына келмейді — жаңасын жасап, интеграцияны жаңарту керек.

5. Кілт қай режимнің кілті екенін тексеріңіз. qp_test_ — sandbox, qp_live_ — нақты режим. Интеграцияңыз бір режимде, кілт екінші режимде болса, шатасу осыдан басталады. Sandbox пен live айырмашылығы туралы: Qut Pay деген не.

Жұмыс істейтін мысал

Кілттің өзі жарамды ма, жоқ па — соны бір сұраумен білесіз:

curl -i https://api.qut.kz/api/v1/invoices \
  -H "X-API-Key: qp_test_СІЗДІҢ_КІЛТІҢІЗ"

200 келсе — кілт жарамды, мәселе сіздің кодыңыздың тақырып жіберу тәсілінде. 401 келсе — мәселе кілттің өзінде.

Счёт жасау:

curl -i -X POST https://api.qut.kz/api/v1/invoices \
  -H "X-API-Key: qp_test_СІЗДІҢ_КІЛТІҢІЗ" \
  -H "Content-Type: application/json" \
  -d '{"amount":1000,"description":"Сынақ счёт"}'

Node.js:

const res = await fetch('https://api.qut.kz/api/v1/invoices', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.QUTPAY_API_KEY.trim(),
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ amount: 1000, description: 'Сынақ счёт' }),
});

PHP-де cURL қолдансаңыз, тақырып жолын толық жазу керек:

curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'X-API-Key: ' . trim(getenv('QUTPAY_API_KEY')),
  'Content-Type: application/json',
]);

Жиі кездесетін бес қателік

Егер бәрі дұрыс болса

Кілт жаңа, тақырып дұрыс, бос орын жоқ, ал 401 келе берсе — мәселенің біздің жақта екенін тексеріңіз:

curl -s https://api.qut.kz/api/v1/status

Бұл эндпоинт кілтсіз де жауап береді. Ол жауап бермей тұрса, қате сіздің кілтіңізде емес. Қалай ажырату керек: Мәселе менде ме, Kaspi-де ме.

Қолдауға жазғанда мыналарды қоса жіберіңіз: кілттің алғашқы он таңбасы (толық кілтті ешқашан жібермеңіз), сұрау уақыты, эндпоинт атауы және жауаптың толық мәтіні.

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

401 келгенде қайталауға бола ма? Мәні жоқ. Сұрауды өзгертпей қайталасаңыз, нәтиже сол болады. Қайталау циклі тек тәуліктік қорғаныс шегіне жеткізеді.

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

Кілт сыртқа шығып кетсе не істеу керек? Бірден кабинеттен жойып, жаңасын жасаңыз. Жойылған кілтпен ешкім счёт жасай алмайды.

Бір кілтпен бірнеше сервер жұмыс істей ала ма? Иә. Бірақ әр нүктеге бөлек кілт берген ыңғайлы — сонда қайсысы қандай трафик жасап тұрғанын көресіз.

Sandbox кілтімен нақты счёт жасауға бола ма? Жоқ. qp_test_ кілт тек sandbox-та жұмыс істейді, нақты ақша жүрмейді.

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

API 403 қайтарады — құқық жетпей тұр403 дегені кілтіңіз танылды, бірақ бұл әрекетке рұқсат жоқ. Бес түрлі себебі бар: scope жетпеуі, тариф, бөтен ұйым, кілт байланған кассир, sandbox әрекеті. Әрқайсысын қалай ажырату керек.Мәселе менде ме, Kaspi-де ме — екі минуттық диагностикаҮш сұраққа жауап беріп, ақаудың қай жақта екенін анықтайсыз: интеграцияда, Kaspi байланысында әлде қызметте. Әр жауапқа нақты әрекет және қолдауға не жинау керегі.Счёттар жаппай құлап жатыр — не істеу керекБір мезетте көп счёт жіберсеңіз, Kaspi кассирдің сұрау жиілігін шектеуі мүмкін. Автоматты қайталау жоқ. Пауза беру, кезекпен жіберу және қате кодтарын ажырату тактикасы.Qut Pay деген не және қалай жұмыс істейдіQut Pay — Kaspi Pay үстінде жұмыс істейтін тәуелсіз сервис: «Кассир» рөлі арқылы Kaspi QR төлемдерін қабылдауға арналған API мен кабинет. Ақша тіке сіздің Kaspi шотыңызға түседі, бізде ешқашан болмайды.

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

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