Лимиты по тарифам
| Тариф | Платежей/мес | Запросов/мин | Kaspi аккаунтов |
|---|---|---|---|
| Пробный | 30 | 20 | 1 |
| Starter | 200 | 20 | 1 |
| Professional | 1 500 | 20 | 1 |
| Enterprise | безлимит | индивидуально | безлимит |
Лимит 20 запросов в минуту — это защита Kaspi API от перегрузки. При превышении вернётся HTTP 429.
Таймауты операций
| Операция | Срок действия | Рекомендация |
|---|---|---|
| QR-код | 180 секунд от Kaspi | Показывайте клиенту таймер 120 сек |
| Выставление счёта | 24 часа | Если не оплатят — автоматическая отмена |
| Возврат | мгновенно | Возврат только по своим операциям |
Заголовки Rate Limit
Каждый ответ содержит заголовки:
code
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 15
X-RateLimit-Reset: 1712045460- •Limit — максимум запросов в минуту
- •Remaining — осталось запросов
- •Reset — Unix timestamp сброса окна
При превышении (HTTP 429)
json
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit 20/min exceeded"
}
}Best practices
- •Polling статуса — не чаще 1 раза в 5 секунд для QR, 1 раз в 10 секунд для счетов
- •Webhooks — используйте вместо polling где возможно, мгновенные уведомления
- •Idempotency-Key — всегда отправляйте для POST запросов, защита от дублей
- •Exponential backoff — при 429 ждите 5с → 10с → 20с перед повтором
- •Кэширование — кэшируйте ответы
/v1/statusна 60 секунд - •Не создавайте QR заранее — QR живёт только 180 секунд, создавайте по клику клиента