# Нақты режимге қалай көшу керек

> Sandbox-тан live-қа көшу реті: алдын ала чек-парақ, режимді ауыстыру, кілтті qp_test_ -тен qp_live_ -ке ауыстыру және бірінші нақты төлемді кіші сомамен тексеру.

## Қысқаша

Нақты режимге көшу — төрт қадам: **чек-парақты өтесіз**, кабинетте режимді **live** етіп ауыстырасыз, кодтағы кілтті `qp_test_…` -тен `qp_live_…` -ке ауыстырасыз, содан кейін бірінші нақты төлемді **кіші сомамен** өзіңіз жасап көресіз. Ең маңыздысын ұмытпаңыз: **7 күндік сынақ мерзімі дәл осы сәттен, бірінші нақты счёттан басталады**, тіркелген күннен емес.

## Алдын ала чек-парақ

Режимді ауыстырар алдында осы төртеуін тексеріңіз. Көшкеннен кейінгі мәселелердің басым бөлігі — осы тізімнің біреуін өткізіп жібергеннен.

| Не | Қайдан тексересіз | Дұрыс күйі |
|---|---|---|
| **Kaspi кассирі белсенді ме** | [Kaspi](https://qut.kz/app/kaspi/) бөлімі | Кемінде бір карточка белсенді, «Себебі» деген жол жоқ |
| **API кілт live-қа арналған ба** | Интеграциялар → API кілттер | Кілт `qp_live_` префиксімен, керекті scope-тары бар |
| **Webhook адресі жария әрі https па** | Интеграциялар → Webhook | Нақты домен, `https://`, авторизациясыз ашық |
| **Тариф белсенді ме** | Тариф бөлімі | Сынақ немесе төленген тариф белсенді күйде |

Әр тармақ бойынша егжей-тегжей:

**Кассир.** Sandbox-та кассир мүлде керек емес еді, сондықтан көпшілік оны қоспай тастайды. Live-та ол — міндетті. Қосу: [Kaspi кассирін қалай қосу керек](/kb/connect-cashier).

**Кілт.** `qp_test_` кілті live счётын жасай алмайды, `qp_live_` кілті sandbox счётын жасай алмайды. Бұл әдейі солай: кездейсоқ нақты ақша алып қоймау үшін. Live кілтті Интеграциялар бөлімінен жасайсыз, ол **бір рет қана толық көрсетіледі** — сол сәтте көшіріп алыңыз.

**Webhook.** Продакшенде тек `https` және нақты домен қабылданады: IP-адрес те, уақытша туннель адресі де жарамайды. Адрес авторизациясыз ашық болуы керек — басқа жерге апаратын қайта бағыттау ұсталмайды. Толығырақ: [Webhook баптау](/kb/webhook-setup).

**Тариф.** Тарифі белсенді емес ұйым live счёт жасай алмайды. Сынақ мерзіміңіз әлі басталмаған болса, ол бірінші live счётпен бірге іске қосылады.

## Режимді ауыстыру

Кабинет → **Баптау** → режим ауыстырғышы → **Нақты (live)**. Бұл әрекетке developer немесе owner рөлі керек.

Ауысқаннан кейін:

- Жаңа счёттар нақты Kaspi QR-мен жасалады, ақша нақты жүреді
- Sandbox счёттарыңыз жоғалмайды, тізімде қалады, бірақ жаңа `simulate` шақыруы live счётқа жүрмейді
- Айлық лимит есептеле бастайды — sandbox счёттары лимитке кірмейтін

## Кілтті ауыстыру

Бұл — кодтағы жалғыз өзгеріс. Ешқандай URL, эндпоинт немесе өріс өзгермейді, тек `X-API-Key` тақырыбының мәні ауысады.

```
X-API-Key: qp_test_…   →   X-API-Key: qp_live_…
```

Дұрыс істеу реті:

1. Кабинетте жаңа live кілт жасайсыз, керекті scope-тарын ғана қоясыз
2. Кілтті **сервердегі** орта айнымалысына (env) саласыз. Кодқа жазып қоймаңыз, репозиторийге салмаңыз
3. Қызметті қайта іске қосасыз
4. Ескі test кілтін жоймай, sandbox ортаңызда қалдырасыз — кейін сынау керек болады

Кілт тек серверде болуы керек: браузерде орындалатын кодта, мобильді қосымшаның ішінде (APK/IPA) немесе жария репозиторийде болмауы тиіс. Толығырақ: [Интеграция қауіпсіздігі](/kb/security-checklist).

## Бірінші нақты төлемді тексеру

Клиенттерді күтпеңіз, өзіңіз тексеріңіз. Кіші сомамен — 100-200 теңге жеткілікті.

1. Кабинеттен немесе API арқылы **live счёт** жасайсыз
2. QR-ді өз телефоныңыздың Kaspi қосымшасымен сканерлейсіз (кассир нөмірі тұрған телефонмен емес!)
3. Төлейсіз
4. Тексересіз:
   - Кабинетте счёт `paid` күйіне ауысты ма
   - Сіздің серверіңізге `invoice.paid` webhook-і келді ме
   - Тапсырысыңыз өз жүйеңізде дұрыс жабылды ма
   - Kaspi Pay аккаунтыңыздың шотына ақша түсті ме
5. Ақшаны өзіңізге қайтарасыз: счёт бетінен **Қайтару**

Төлегеннен кейін webhook әдетте 5 секунд ішінде келеді. Бір минуттан асып кетсе, бір жерде мәселе бар: [Нақты режимге көштім, бірақ істемей жатыр](/kb/after-live-not-working).

## Сынақ мерзімі осы сәттен басталады

Бұл жиі шатастырылады, сондықтан бөлек айтамыз.

- Сынақ мерзімі — **7 күн, тәулігіне 50 счёт**
- Ол **бірінші нақты (live) счёттан** басталады
- Тіркелген күн, кассир қосқан күн, кілт жасаған күн — ешқайсысы сынақты бастамайды
- **Sandbox сынақты бастамайды.** Sandbox-та қанша күн, қанша счёт жасасаңыз да, сынақ мерзіміңіз тимейді

Сондықтан қате ретті таңдамаңыз: интеграцияны sandbox-та толық бітіріп, содан кейін ғана live-қа көшіңіз. Сонда сынақтың 7 күнін кодты жөндеуге емес, нақты сатуға жұмсайсыз. Толығырақ: [Сынақ мерзімі](/kb/trial-period).

## Көшкеннен кейін

- **Журналды қосыңыз.** Счёт жасау мен webhook қабылдауды жазып отырыңыз, мәселе шықса себебін бірден табасыз.
- **Telegram ботын қосыңыз.** Кассир байланысы үзілсе, бірден білесіз.
- **Тәуліктік қорғаныс санын білгеніңіз жөн.** Ол бизнес лимиті емес, циклге түскен интеграциядан қорғаныс. Толығырақ: [Тарифтер және лимиттер](/kb/tariff-limits).
- **Sandbox-ты тастамаңыз.** Кейінгі өзгерістерді алдымен сонда сынайсыз.

Толық тізім: [Продакшенге шығу чек-парағы](/kb/going-live-checklist).

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

**Live-тан қайта sandbox-қа қайтуға бола ма?** Иә, режимді кез келген уақытта кері ауыстыруға болады. Бірақ басталған сынақ мерзімі тоқтап қалмайды.

**Sandbox счёттарым live-та көріне ме?** Тізімде қалады, бірақ олар нақты счёт емес, лимитке де кірмейді.

**Режимді ауыстырғанда webhook адресім өзгере ме?** Жоқ. Адрестер мен құпиялар сол күйі қалады.

**Бір ұйымда бір уақытта test және live счёт жасауға бола ма?** Счёттың режимі оны жасаған кілттің түрімен анықталады, ал жаңа счёт ұйымның ағымдағы режимімен жасалады. Екеуін қатар жүргізу керек болса, тестті [бөлек ұйымда](/kb/multiple-organizations) ұстаған ыңғайлы.

**Нақты төлемді тексергенде кассир нөмірімен сканерлеуге бола ма?** Жоқ, кассир нөмірі тұрған телефонмен Kaspi Pay-ді ашпаңыз — байланыс үзіледі. Басқа телефонмен тексеріңіз.
