> Расположение: Методы API → Ключ и расход
> Краткое содержание: Остаток счёта и потолок этого ключа
> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://vcpay.ru/ai/docs/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ.

# Остаток счёта и потолок этого ключа

**Метод**: `GET`

**Путь**: `/v1/vcpay/balance`

Сколько денег на лицевом счёте компании и сколько из них может потратить ключ, которым сделан запрос. Авторизация — тем же ключом, которым вызывают модели.

Цифры считаются так же, как потолок, по которому шлюз пропускает запросы:

- `available_rub` = остаток счёта − расход, ещё не списанный со счёта (не меньше нуля);
- `key_budget_rub` = меньшее из `available_rub` и потолка ключа `key_limit_rub`.

Когда `key_budget_rub` равен нулю, запросы к моделям отклоняются.

## Пример запроса

```bash
curl "https://llm.vcpay.ru/v1/vcpay/balance" \
  -H "Authorization: Bearer ВАШ_КЛЮЧ"
```

## Ответы

### 200: Остаток счёта и бюджет ключа

**Схема ответа:**

- `account_balance_rub: string, decimal` (required) — Остаток лицевого счёта компании, ₽
- `available_rub: string, decimal` (required) — Сколько можно потратить сейчас: остаток счёта минус расход, ещё не списанный со счёта, ₽. Не бывает меньше нуля
- `debt_rub: string, decimal` (default: 0) — Потрачено сверх остатка и ждёт списания, ₽. Ноль — расход уложился в счёт; больше нуля — следующее пополнение сначала закроет эту сумму
- `key_budget_rub: string, decimal` (required) — Сколько может потратить этот ключ: меньшее из доступного и потолка ключа, ₽
- `key_limit_rub: string, decimal` (nullable) — Свой потолок ключа, ₽. `null` — ключ ограничен только счётом
- `as_of: date-time` (required) — Момент расчёта, UTC

**Пример ответа:**

```json
{
  "account_balance_rub": "48250.00",
  "available_rub": "47312.40",
  "debt_rub": "0",
  "key_budget_rub": "10000.00",
  "key_limit_rub": "10000.00",
  "as_of": "2026-10-12T09:30:00Z"
}
```

### 401: Ключ не передан или не распознан. Отозванный, удалённый и несуществующий ключ отвечают одинаково — что с ключом, видно в кабинете

**Схема ответа при ошибке:**

- `detail: string` (required) — Что случилось, по-русски

**Пример ответа:**

```json
{
  "detail": "Ключ не распознан. Если он выпущен давно, перевыпустите его в кабинете"
}
```

### 409: Ключ распознан, но к нему не подключён лицевой счёт

**Схема ответа при ошибке:**

- `detail: string` (required) — Что случилось, по-русски

**Пример ответа:**

```json
{
  "detail": "по этому ключу лицевой счёт не подключён"
}
```

### 429: Слишком много запросов: не больше 10 в секунду с одного адреса, и не больше 120 в минуту на ключ. Повторите после паузы

