# Sandbox пен нақты режимнің айырмашылығы

> Sandbox-та Kaspi мүлде шақырылмайды, ақша жүрмейді, кассир де керек емес — төлемді өзіңіз симуляциялайсыз. Екі режимнің толық салыстыруы және нақты режимге көшкенде нені тексеру керек.

## Қысқаша

Екі режим бар. **Sandbox** — `qp_test_…` кілтімен: Kaspi мүлде шақырылмайды, нақты ақша жүрмейді, төлемді өзіңіз симуляциялайсыз, кассир керек емес, айлық лимитке кірмейді және сынақ мерзімін бастамайды. **Live** — `qp_live_…` кілтімен: нақты Kaspi QR, нақты ақша, кассир міндетті. Режимді [кабинеттен](https://qut.kz/app) ауыстырасыз.

## Салыстыру

| Не | Sandbox | Live |
|---|---|---|
| Кілт | `qp_test_…` | `qp_live_…` |
| Kaspi шақырылады ма | Жоқ | Иә |
| Нақты ақша | Жүрмейді | Жүреді, тіке сіздің Kaspi шотыңызға |
| Kaspi кассирі | Керек емес | Міндетті |
| Төлемді кім жасайды | Өзіңіз: `POST /api/v1/invoices/{id}/simulate` | Клиент Kaspi қосымшасымен |
| QR | Нақты Kaspi QR емес | Нақты, сканерлеу терезесі шектеулі |
| Webhook | Келеді, бәрі нақтыдағыдай | Келеді |
| Қолтаңба тексеру | Нақтыдағыдай HMAC-SHA256 | Сол сияқты |
| Айлық лимит | Кірмейді | Кіреді |
| Сынақ мерзімі | Басталмайды | **Бірінші live счёт сынақ мерзімін бастайды** |
| Қайтару | Симуляциялық | Нақты, Kaspi арқылы |

Ең маңыздысы: sandbox-та API-дің мінез-құлқы нақтыдағымен бірдей. Сол өрістер, сол күйлер, сол webhook оқиғалары, сол қолтаңба схемасы. Сондықтан интеграцияны толық жазып, сынап шығуға болады.

## Sandbox не үшін керек

- **Кассир қосылмай тұрғанда жұмысты бастау үшін.** Нөмір таңдау бірер күнге созылса да, интеграция дайын болып тұрады.
- **Счёттың бүкіл өмірлік циклін тексеру үшін:** `new` → `pending` → `paid`, сондай-ақ `cancelled`, `expired`, `refunded`.
- **Webhook-ты дұрыс өңдеп жатқаныңызды тексеру үшін:** қолтаңба, `timestamp`, қайталанған жеткізілім, идемпоттылық.
- **Автоматты тесттер үшін.** CI-да `simulate` арқылы толық цикл жүргізуге болады, ешкімнің ақшасы қозғалмайды.
- **Шекті жағдайларды сынау үшін:** сәтсіз төлем, мерзімнің өтуі, ішінара қайтару.

## Режимді қалай ауыстырасыз

Режим кабинеттен ауысады, кілт те соған қарай беріледі. `qp_test_…` кілтімен нақты счёт жасалмайды, `qp_live_…` кілтімен sandbox счёты жасалмайды — сондықтан режимді ауыстырғанда **кілтті де ауыстыруды ұмытпаңыз**. Ең жиі кездесетін қате осы: кодта ескі тест кілті қалып қояды да, «төлем клиентке келмей жатыр» деген жағдай шығады.

## Live-қа көшкенде нені тексеру керек

1. **Кассир қосулы ма.** [Kaspi кассирлері](https://qut.kz/app/kaspi/) бөлімінде байланыс картасы белсенді тұруы керек. Қосылмаған болса: [Kaspi кассирін қалай қосу керек](/kb/connect-cashier).
2. **Кілт `qp_live_…` бола ма.** Кодта, серверде, CMS плагинінің баптауында — бәрінде. Ескі тест кілті қалып қоймасын.
3. **Кілт серверде ме.** Браузерде орындалатын кодта, мобильді қосымшаның ішінде, жария репозиторийде болмауы керек.
4. **Webhook адресі продакшендікі ме.** Продакшенде тек `https` және нақты домен қабылданады — IP мен туннель адресі (ngrok сияқты) жарамайды. Құпияны да жаңа адреске сай жаңартыңыз.
5. **Бірінші нақты төлемді өзіңіз жасап көріңіз.** Кішкентай сомаға счёт шығарып, өз Kaspi-іңізден төлеңіз. Ақшаның Kaspi шотыңызға түскенін, webhook келгенін, тапсырысыңыз дұрыс жабылғанын тексеріңіз. Қаласаңыз, содан кейін сол соманы қайтарып алыңыз.
6. **Сынақ мерзімі басталатынын ұмытпаңыз.** 7 күн, тәулігіне 50 счёт — және ол **бірінші live счёттан** басталады, тіркелген күннен емес.
7. **Тарифті таңдап қойыңыз.** Сынақ біткенде жұмыс тоқтап қалмасын.

## Не өзгермейді

Режимді ауыстырғанда webhook адресіңіздің логикасы, қолтаңбаны тексеру тәсіліңіз, өрістердің аттары мен күйлердің реті өзгермейді. Кодыңызда режимге байланысты жалғыз нәрсе — API кілт.

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

**Sandbox счёттары лимитке кіре ме?** Жоқ. Айлық лимит те, тәуліктік қорғаныс та live счёттар бойынша есептеледі.

**Sandbox сынақ мерзімін бастай ма?** Жоқ. Сынақ мерзімі бірінші нақты (live) счёттан басталады. Sandbox-та қалағаныңызша сынай беріңіз.

**Sandbox-та кассир керек пе?** Жоқ. Kaspi мүлде шақырылмайды, сондықтан кассирдің де қажеті жоқ.

**Sandbox-та webhook келе ме?** Иә, нақтыдағыдай оқиғалармен және нақтыдағыдай қолтаңбамен. Қолтаңбаны тексеру кодыңызды дәл осы жерде сынап алған дұрыс.

**Тест кілтімен нақты счёт жасауға бола ма?** Жоқ, әдейі солай жасалған. `qp_test_…` кілті Kaspi-ге шықпайды — бұл кездейсоқ нақты төлем жіберіп алудан сақтайды.
