IskraGen

Оплата и счета

Баланс, пополнение, история операций; для юрлиц — реквизиты, счета, PDF и закрывающие акты

Базовый адрес — https://api.iskragen.ru. Общие правила — в обзоре справочника.

GET /v1/billing/balance

Получить баланс. Возвращает availableRub, reservedRub и lifetimeRub, не меняя деньги; значение кэшируется на 30 секунд, а fresh=true читает без кэша. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
freshquerybooleanнет

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/billing/balance" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
availableRubnumberда
currencystringдазначения: RUB
lifetimeRubnumberда
reservedRubnumberда

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

GET /v1/billing/payments/{id}

Статус платежа. Опрос статуса возвращает итоговые флаги terminal и succeeded; статус отражает оплату у провайдера, а не обязательно зачисление на баланс. Это чтение с побочным эффектом: для CONFIRMED вызов зачисляет сумму и бонус на баланс, повтор безопасен и дважды не зачисляет, а иначе операцию завершит фоновая сверка раз в 5 минут. Для REJECTED и DEADLINE_EXPIRED пополнение не состоялось и баланс остаётся без изменений; если такая попытка позднее стала оплачена, то в первые 7 суток она зачисляется автоматически, а для оплаты неудавшейся попытки старше 7 суток зачисление на баланс произойдёт только после ручного разбора, не автоматически. Для REVERSED, REFUNDED, PARTIAL_REFUNDED баланс автоматически не пересчитывается, возврат разбирается вручную. Чужой платёж возвращает 404; доступ: Требуется API-ключ, действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
idpathstringдадлина ≥ 1; длина ≤ 128

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/billing/payments/<id>" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
amountRubnumberда
confirmedAtstring | nullда
createdAtstringда
errorCodestring | nullда
errorMessagestring | nullда
idstringда
statusstringда
succeededbooleanда
terminalbooleanда

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 404 — Ресурс не существует или принадлежит другому пользователю
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

POST /v1/billing/topup

Создать пополнение. Создаёт платёж и возвращает paymentUrl, но оплату не проводит: человек платит на странице банка, баланс меняется после подтверждения платежа, не после ответа 200; сумма — от 100 до 100 000 ₽, successUrl и failUrl задают адреса возврата, серверные лимиты могут меняться и на момент публикации составляют 5 попыток за 10 минут и 50 000 ₽ в день с 429 DAILY_CAP_EXCEEDED. Необязательный Idempotency-Key длиной 1–64 символа действует в пределах аккаунта бессрочно, пустой или длиннее 64 символов заголовок возвращает 400; повтор проверяется до лимитов и не расходует их: без заголовка каждый вызов создаёт новый платёж, новый ключ создаёт платёж с 200, тот же ключ и та же сумма возвращают с 200 прежние paymentId и paymentUrl, другая сумма — 409 IDEMPOTENCY_KEY_REUSED, выполняющийся первый запрос — 409 IDEMPOTENCY_IN_PROGRESS с Retry-After: 5, а попытка, завершившаяся без действующей ссылки из-за ошибки, отмены, отказа или возврата, — 409 IDEMPOTENCY_KEY_BURNED, и для нового пополнения нужен новый ключ; сверяется сумма (500 и 500.00 — одна сумма), а successUrl, failUrl и description не сверяются. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
idempotency-keyheaderstringнетдлина ≥ 1; длина ≤ 64

Тело запроса (application/json)

ПолеТипОбязательноеОписание и ограничения
amountRubnumberда≥ 100; ≤ 100000
descriptionstringнетдлина ≤ 255
failUrlstringнетформат uri
successUrlstringнетформат uri

Пример вызова

curl -X POST "https://api.iskragen.ru/v1/billing/topup" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amountRub":100}'

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
paymentIdstringда
paymentUrlstringда

Коды ошибок

  • 400 — Неверные параметры запроса (см. code)
  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 409 IDEMPOTENCY_IN_PROGRESS — Конфликт состояния (например, уже выполняется идемпотентный запрос)
  • 409 IDEMPOTENCY_KEY_BURNED — Конфликт состояния (например, уже выполняется идемпотентный запрос)
  • 409 IDEMPOTENCY_KEY_REUSED — Конфликт состояния (например, уже выполняется идемпотентный запрос)
  • 429 DAILY_CAP_EXCEEDED — исчерпан суточный лимит пополнений.
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

GET /v1/billing/topup/pending

Последнее пополнение. Возвращает paymentId последней попытки пополнения за последний час, у которой уже есть платёж в банке, или null, чтобы после возврата со страницы банка опросить её статус; попытки старше часа не возвращаются. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/billing/topup/pending" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
paymentIdstring | nullда

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).

GET /v1/billing/transactions

История операций. Возвращает только для чтения курсорный список с limit от 1 до 200, по умолчанию 50, полями cursor, nextCursor, hasMore и фильтрами type, status, dateFrom, dateTo. Требуется API-ключ; действует общий лимит 60 запросов в минуту, превышение возвращает 429 RATE_LIMIT_ERROR с retryAfter, а отсутствие ключа — 401 AUTHENTICATION_ERROR.

Авторизация: заголовок Authorization: Bearer <ключ> — API-ключ, выданный в личном кабинете (isk_live_<prefix>_<secret>).

Параметры

ПараметрГдеТипОбязательныйОписание и ограничения
typequerystringнет
statusquerystringнет
dateFromquerystringнет
dateToquerystringнет
externalRefPrefixquerystringнет
cursorquerystringнет
limitqueryintegerнет≥ 1; ≤ 200; по умолчанию 50

Пример вызова

curl -X GET "https://api.iskragen.ru/v1/billing/transactions" \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"

Структура ответа 200

Поля и типы из схемы ответа, это не пример: значения зависят от запроса. Корень — object.

ПолеТипОбязательноеОписание и ограничения
hasMorebooleanда
itemsobject[]да
items[].amountRubnumberда
items[].balanceAfterRubnumberда
items[].createdAtstringда
items[].expiresAtstring | nullда
items[].externalRefstring | nullда
items[].idstringда
items[].statusstringда
items[].typestringда
nextCursorstring | nullда

Коды ошибок

  • 401 AUTHENTICATION_ERROR — ключ отсутствует, невалиден или отозван.
  • 429 RATE_LIMIT_ERROR — превышен лимит запросов либо число одновременных генераций (по умолчанию 5).
Оплата и счета · IskraGen Docs — IskraGen