> Источник: https://apipay.kz/guides/kakoy-qr-vybrat-qr-schet-ili-staticheskiy · Обновлено: 2026-09-17 · apipay.kz
> ApiPay — независимый сервис приёма платежей поверх вашего Kaspi Pay.

# Какой QR выбрать: QR-счёт или статический QR

**TL;DR.** **QR-счёт** (`POST /invoices/qr`) — только когда клиент платит **сразу**, рядом с вами или прямо сейчас в переписке: его QR действует меньше трёх минут, точный момент — в `qr_expires_at`. **Клиент заплатит позже** — подумает, получит ссылку в WhatsApp, оплатит по акту — выбирайте **статический QR** (`POST /static-qr`) или **ссылку на оплату**. У них счёт создаётся, только когда покупатель нажал «Оплатить в Kaspi» на странице оплаты, поэтому пока клиент думает, место в лимите тарифа не расходуется. Сгоревший QR-счёт тоже занимает место в лимите: в лимит входят счета, созданные по API-ключу вне песочницы, в любом статусе.

## Коротко

| Ситуация | Что выставлять |
|---|---|
| Клиент у кассы, на витрине, у курьера — платит сейчас | QR-счёт: QR на экране |
| Клиент в переписке и платит прямо сейчас | QR-счёт: ссылка `qr_token_url` в чат |
| Клиент «подумает» и заплатит позже | Статический QR (`print_url`) или ссылка на оплату (`payment_url`) |
| Оплата по акту, в коробке с заказом, по договору | Статический QR — лист можно напечатать |
| Есть номер клиента, он оплатит по push в течение суток | [Счёт по номеру телефона](/guides/kak-sozdat-schet-kaspi-po-nomeru) |
| QR-счёт сгорел, клиент ещё не готов платить | Не пересоздавать QR-счёт — отправить статический QR или ссылку на оплату |

## Когда нужен QR-счёт

QR-счёт создаётся сразу, в момент запроса, и ждёт оплату **меньше трёх минут**. Длительность окна задаёт Kaspi, точный момент приходит в `qr_expires_at`. Продлить окно нельзя.

Отсюда правило: **QR-счёт — только для оплаты сразу.** Клиент стоит перед вами, смотрит на экран кассы или держит телефон в руках и готов платить.

Подробности про окно на скан, картинку и ссылку `qr_token_url` — в статье «[Сколько живёт QR-счёт Kaspi](/guides/qr-schet-ttl-i-limity)». Поля запроса и ответа — в [API-документации QR-счёта](/docs#invoices-qr).

## Когда нужен статический QR или ссылка на оплату

Если клиент заплатит не сразу, QR-счёт сгорит раньше, чем клиент соберётся платить. Для такого случая есть два инструмента.

**Статический QR** (`POST /static-qr`). Код под одну сделку, который живёт до оплаты, отключения или заданного вами срока `expires_at`. В ответе приходит `print_url`: лист с этим кодом можно напечатать, а саму ссылку — отправить клиенту в мессенджер. Как напечатать и разместить код — «[Статический QR для оплаты по счёту или сделке](/guides/pechatnyy-qr-dlya-oplaty-po-sdelke)», поля — в [API-документации статического QR](/docs#static-qr-create).

**Ссылка на оплату.** Тот же `POST /invoices/qr`, но с полем `"static": true`: вместо QR-счёта создаётся одноразовая ссылка, и в ответе приходит `payment_url`. Режим ссылок включён не всегда. Если он выключен, запрос вернёт `403 static_qr_disabled` — тогда отправляйте клиенту `print_url` статического QR. Разбор всех видов ссылок — «[Оплата Kaspi по ссылке](/guides/oplata-po-ssylke-kaspi)».

У обоих инструментов покупатель проходит одни и те же шаги:

1. Открывает ссылку или наводит камеру телефона на код.
2. Видит название вашего магазина и сумму. **Счёта в этот момент ещё нет.**
3. Нажимает «Оплатить в Kaspi» — только теперь создаётся счёт.
4. На следующей странице нажимает «Открыть Kaspi» и платит в приложении.

Открытие страницы счёт не создаёт. Предпросмотр ссылки в мессенджере — тоже. Поэтому, пока клиент думает, лимит тарифа не расходуется.

## Почему сгоревший QR-счёт тратит лимит

В дневной лимит тарифа входят все счета, которые ваша система создала **по API-ключу вне песочницы**. Статус значения не имеет. Считаются оплаченные счета, истёкшие (`expired`), отменённые и завершившиеся ошибкой.

Значит, **каждый выпущенный QR-счёт — ещё одно место в лимите.** QR сгорел, вы создали новый — это уже два места. Если клиент думает десять минут, а система каждые три минуты выпускает свежий QR, одна покупка займёт несколько мест.

Как устроен сам лимит и что будет при превышении — «[Лимит счетов по тарифу](/guides/limit-schetov-po-tarifu)».

## Как считается лимит у статического QR и ссылки

**Созданные в кабинете.** Статический QR, созданный в кабинете, в лимит не входит: у него нет API-ключа.

**Созданные через API.** Сам код или ссылка места в лимите не занимают. Место занимает **каждый Kaspi-QR, выпущенный после нажатия «Оплатить в Kaspi»**:

- Покупатель нажал кнопку — выпущен счёт, это одно место в лимите.
- Нажал ещё раз, пока выпущенный QR действует и не отсканирован, — у одноразового кода (так по умолчанию, а ссылка на оплату одноразовая всегда) нового счёта нет, покупатель получает тот же. У многоразового кода (`single_use: false`) каждое нажатие выпускает новый счёт, и каждый занимает место в лимите.
- QR истёк, покупатель нажал снова — выпускается новый счёт, и он тоже занимает место в лимите.
- Отсканированный, но не оплаченный QR страница сама не заменяет: новый выпускается только по явной просьбе покупателя, и это тоже новый счёт. Прежний QR при этом остаётся оплачиваемым — если оплачены оба, лишний платёж придётся вернуть.
- Если покупатель выбрал запасной путь «Оплатить по номеру телефона», создаётся счёт по номеру — он тоже занимает место.

Итог: статический QR не тратит лимит, пока клиент думает. Но это не «одна сделка — один счёт»: каждый выпущенный по кнопке счёт считается.

⚠️ Если дневной лимит тарифа исчерпан, тариф не оплачен или кассир отключён, статический QR и ссылка счёт уже не создают: покупатель, нажавший «Оплатить в Kaspi», видит «Оплата недоступна», а вам уведомления об этом не приходит — следите за расходом лимита на главной кабинета или в `GET /users/me` → `daily_usage` и держите тариф оплаченным.

## Как объяснить ИИ-агенту или интегратору

Если интеграцию пишет ИИ-агент или сторонний разработчик, передайте ему правило целиком:

```text
POST /invoices/qr — только если клиент платит сразу: QR действует до qr_expires_at,
это меньше трёх минут.
Если клиент заплатит позже — создавай статический QR (POST /static-qr, отправь print_url)
или ссылку на оплату (POST /invoices/qr со static: true, отправь payment_url;
при 403 static_qr_disabled — используй статический QR).
Не пересоздавай QR-счёт, пока ждёшь покупателя: каждый созданный по API-ключу счёт
занимает место в дневном лимите тарифа, даже если он истёк без оплаты.
```

Справочник фактов для ИИ — [llms.txt](/llms.txt), пошаговый плейбук — [для ИИ-агентов](/for-ai).

## Частые вопросы

**Клиент не успел оплатить QR-счёт. Создать новый?**
Если клиент рядом и готов платить — да, новый QR-счёт. Если клиент хочет подумать — отправьте ему статический QR или ссылку на оплату: счёт появится, только когда он нажмёт «Оплатить в Kaspi».

**Входит ли истёкший QR-счёт в лимит тарифа?**
Да. В лимит входят все счета, созданные по API-ключу вне песочницы, в любом статусе: оплаченные, истёкшие, отменённые и с ошибкой.

**Тратит ли статический QR лимит, пока лежит у клиента?**
Нет. Счёт создаётся, только когда покупатель нажал «Оплатить в Kaspi». Статический QR, созданный в кабинете, в лимит не входит совсем.

**Статический QR создан через API. Сколько мест в лимите он займёт?**
По одному на каждый счёт, выпущенный после нажатия «Оплатить в Kaspi». У одноразового кода (так по умолчанию) повторное нажатие, пока QR действует и не отсканирован, нового счёта не создаёт; у многоразового (`single_use: false`) каждое нажатие выпускает новый счёт, и каждый занимает место в лимите. Если QR истёк, следующее нажатие выпускает новый счёт, и он тоже считается.

**Чем ссылка на оплату отличается от статического QR?**
Обе ведут покупателя на одну и ту же страницу с кнопкой «Оплатить в Kaspi». Статический QR создаётся через `POST /static-qr`, и его код удобно напечатать. Ссылка создаётся через `POST /invoices/qr` с `"static": true`, если режим ссылок включён.

**Открытие ссылки в мессенджере создаёт счёт?**
Нет. Ни открытие страницы, ни предпросмотр ссылки счёт не создают — только нажатие «Оплатить в Kaspi».

Смотрите также: [Сколько живёт QR-счёт](/guides/qr-schet-ttl-i-limity) · [Статический QR для оплаты по сделке](/guides/pechatnyy-qr-dlya-oplaty-po-sdelke) · [Лимит счетов по тарифу](/guides/limit-schetov-po-tarifu) · [Оплата Kaspi по ссылке](/guides/oplata-po-ssylke-kaspi) · [API-документация](/docs).

---

ApiPay — независимый сервис и не аффилирован с АО «Kaspi Bank». Kaspi и Kaspi Pay — товарные знаки их правообладателя.
База знаний: https://apipay.kz/guides
