Сколько счетов можно выставлять
| Тариф | Счетов в сутки |
|---|---|
| Старт | 30 |
| Бизнес | 100 |
| Про | 300 |
| Про Макс | 600 |
| Больше 600 | договорные условия — напишите нам |
Если условия вашей организации согласованы отдельно, действует ваш лимит — он показан в кабинете, в разделе «Мой тариф».
Лимит считается по созданным счетам, а не по оплаченным: каждый счёт, который ваша система выставила через API — по номеру телефона или QR-счёт, — занимает единицу дневного лимита, даже если покупатель его не оплатил. Считается он на организацию: несколько API-ключей общий лимит не увеличивают. Цены тарифов — в статье Тарифы и комиссия.
В лимит не входят:
- счета, выставленные вручную в личном кабинете, и печатный лист, созданный из кабинета — у них нет API-ключа;
- тестовые счета в песочнице — у неё отдельный лимит, 1000 счетов на организацию;
- счета, подтянутые синхронизацией из приложения Kaspi Pay.
Расчётные сутки — по времени Казахстана (Asia/Almaty), а не по UTC: счётчик обнуляется в полночь по вашему времени.
Что будет, если превысить
Разовое превышение не блокирует работу — превысить лимит в отдельный день можно, создание счетов не останавливается.
Ограничение включается при систематическом превышении дневного лимита. После этого дневной лимит начинает применяться по-настоящему: счета сверх него в течение суток не создаются, а API возвращает ошибку tariff_limit_reached.
На следующие сутки счётчик обнуляется, и дневной лимит тарифа снова доступен. Кабинет, отчёты, возвраты, чеки и каталог работают всё это время.
⚠️ Пока ограничение действует, автосписания по подпискам, созданным через API, пропускают цикл: счёт за период не выставляется, но дата следующего списания не сдвигается и счётчик неудачных попыток не растёт. После снятия ограничения подписки догоняют пропущенные периоды — по одному за прогон.
Как снять ограничение
- Перейти на следующий тариф. Ограничение снимается сразу после оплаты, отсчёт начинается заново.
- Написать в поддержку. Если считаете, что ограничение включилось по ошибке, напишите нам — разберёмся и снимем, если это так.
- Вы уже на «Про». Следующая ступень — Про Макс, до 600 счетов в сутки. Объёмы больше 600 счетов в сутки — договорные условия, напишите нам.
Помесячный подсчёт для неравномерных продаж
Если ваши продажи идут волнами — распродажи, сезон, «все платят 1-го числа», — организацию можно перевести на помесячный подсчёт. Вместо суточного лимита даётся бюджет на 30 дней, равный дневной лимит × 30:
| Тариф | Бюджет на 30 дней |
|---|---|
| Старт | 900 счетов |
| Бизнес | 3000 счетов |
| Про | 9000 счетов |
| Про Макс | 18 000 счетов |
Распределять бюджет внутри периода можно как угодно — хоть израсходовать всё за неделю. Бюджет обновляется каждые 30 дней. Перевод — по запросу в поддержку.
⚠️ В этом режиме правило «разовое превышение не блокирует» не действует: бюджет блока — сам себе потолок. Как только он израсходован, счета до конца 30-дневного блока не создаются. Момент обновления бюджета приходит в meta.reset_at.
В этом режиме ответ 429 tariff_limit_reached приходит с meta.mode: "monthly", а meta.limit содержит бюджет периода, а не суточный лимит.
Где посмотреть текущий расход
В кабинете — на главной странице: сколько счетов израсходовано из лимита, сколько осталось и когда обнулится счётчик.
Через API — GET https://api.apipay.kz/api/users/me, блок daily_usage. Обратите внимание: этот метод живёт по /api/, а не по /api/v1/:
{
"daily_usage": {
"count": 12,
"limit": 30,
"status": "green",
"mode": "daily",
"period_limit": 30,
"period_used": 12,
"period_start": "2026-08-01T19:00:00+00:00",
"period_reset_at": "2026-08-02T18:59:59+00:00",
"hard_limited": false
}
}
mode—dailyлибоmonthly. Показывайте пользователюperiod_usedизperiod_limit: в помесячном режиме суточныеcount/limitне отвечают на вопрос «сколько осталось».period_reset_at— момент обнуления счётчика.hard_limited— ограничение включено, счета сверхperiod_limitотклоняются.
Если вы получили ошибку `tariff_limit_reached`
{
"error": "tariff_limit_reached",
"error_code": "tariff_limit_reached",
"message": "Достигнут лимит счетов по вашему тарифу.",
"retry_after_seconds": 40512,
"meta": {
"mode": "daily",
"limit": 30,
"used": 30,
"reset_at": "2026-08-02T18:59:59+00:00"
}
}
Что с этим делать:
- Не повторяйте запрос раньше
meta.reset_at— до обнуления счётчика ответ не изменится. ЗаголовокRetry-Afterсодержит число секунд до этого момента. - Стройте обработку по
error_code, а не по текстуmessage: текст может меняться, код стабилен. - Различайте окна по
meta.mode.daily— расчётные сутки,reset_atнаступит сегодня-завтра;monthly— 30-дневный блок, до сброса может быть несколько недель. - В
POST /invoices/bulkотказ приходит поэлементно и несёт толькоerror_codeиmessage— безRetry-Afterиmeta, как и остальные лимиты в этом методе. - Быстрое решение — перейти на следующий тариф: ограничение снимается сразу после оплаты. Если вы уже на «Про Макс», объём согласуется индивидуально — напишите нам.
Не путайте с соседними кодами: trial_daily_limit — жёсткий лимит 50 счетов/день на тестовом периоде; kyc_daily_limit_reached — 1 счёт/сутки, пока не одобрена анкета о бизнесе. Полный перечень — в справочнике лимитов.
Частые вопросы
Что будет, если я один раз превышу лимит?
Ничего. Разовое превышение работу не блокирует. Ограничение включается, когда лимит превышается систематически: тогда счета сверх дневного лимита в течение суток не создаются, а API возвращает 429 tariff_limit_reached. На следующие сутки счётчик обнуляется.
Как снять ограничение?
Перейти на следующий тариф — ограничение снимается сразу после оплаты. Либо написать в поддержку, если считаете, что оно включилось по ошибке.
Влияет ли ограничение на подписки?
Да — но только по подпискам, созданным через API. Пока ограничение действует, автосписания по ним пропускают цикл: счёт не выставляется, но дата следующего списания не сдвигается. После снятия подписки догоняют пропущенные периоды.