Для AI-агентов: markdown этой страницы — /docs-content/cowork/subscription-preview.md индекс документации — /llms.txt

Предрасчёт смены тарифа Cowork/Code

GET /v1/cowork/subscription/preview

Возвращает сумму, которая спишется прямо сейчас при переходе на указанный тариф, и дату, с которой изменение вступит в силу. Это предрасчёт конкретной операции, а не цена тарифа из каталога.

Параметры

Параметр Тип Обяз. Описание
Параметрtier (query) Типstring Обяз.да ОписаниеТариф, для которого считается переход: FREE, PRO, MAX, ULTRA. Каталог тарифов — GET /v1/cowork/state

Примеры

curl — личный ключ

Terminal
curl "https://vibecode.bitrix24.tech/v1/cowork/subscription/preview?tier=PRO" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth-приложение

Terminal
curl "https://vibecode.bitrix24.tech/v1/cowork/subscription/preview?tier=PRO" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — личный ключ

javascript
const url = 'https://vibecode.bitrix24.tech/v1/cowork/subscription/preview?tier=PRO'
const res = await fetch(url, {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

if (!res.ok) {
  const { error } = await res.json()
  console.error(error.code, error.message)
} else {
  const preview = await res.json()
  console.log(preview.scheduled
    ? `Сейчас не списывается, изменение вступит в силу ${preview.effectiveFrom}`
    : `Спишется ${preview.netVibes} Вайбов`)
}

JavaScript — OAuth-приложение

javascript
const url = 'https://vibecode.bitrix24.tech/v1/cowork/subscription/preview?tier=PRO'
const res = await fetch(url, {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const preview = await res.json()

Поля ответа

Поле Тип Описание
Полеtier Типstring ОписаниеТариф из запроса
ПолеchargeVibes Типstring ОписаниеЦена операции в Вайбах, десятичная строка. Учитывает скидку по акции платформы, если она действует на эту покупку. "0", когда операция бесплатна
ПолеcreditVibes Типstring ОписаниеВозврат за неиспользованный остаток оплаченного месяца. Отличается от "0" только при повышении тарифа и только когда возможность включена для аккаунта
ПолеnetVibes Типstring ОписаниеСколько спишется прямо сейчас: chargeVibes минус creditVibes, но не меньше нуля. Это число и показывают человеку
ПолеeffectiveFrom Типstring ОписаниеКогда изменение вступит в силу, ISO 8601. Момент ответа, либо конец оплаченного периода при scheduled: true
Полеscheduled Типboolean Описаниеtrue — изменение применится в конце оплаченного периода, сейчас не списывается
Полеcurrency Типstring или null ОписаниеКод валюты пополнения кошелька по ISO 4217, либо null, когда пополнение недоступно
ПолеtopUpAvailable Типboolean ОписаниеДоступно ли пополнение кошелька для этого аккаунта

Суммы в Вайбах приходят строкой: целая часть, точка, до шести знаков после неё — та же запись, что у баланса и у транзакций. Не переводите такую строку в число с плавающей точкой, на дробных суммах это теряет точность.

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

Переход с бесплатного тарифа на PRO, пополнение кошелька доступно:

JSON
{
  "tier": "PRO",
  "chargeVibes": "2000",
  "creditVibes": "0",
  "netVibes": "2000",
  "effectiveFrom": "2026-08-11T11:11:14.115Z",
  "scheduled": false,
  "currency": "RUB",
  "topUpAvailable": true
}

Пример ответа при ошибке

400 — параметр tier не передан или содержит неизвестное значение:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_QUERY",
    "message": "Query parameter `tier` is required and must be one of FREE, PRO, MAX, ULTRA."
  }
}

Ошибки

HTTP Код Описание
HTTP400 КодINVALID_QUERY ОписаниеПараметр tier не передан, либо его значение не входит в список FREE, PRO, MAX, ULTRA
HTTP401 КодMISSING_API_KEY ОписаниеНе передан заголовок X-Api-Key
HTTP401 КодINVALID_API_KEY ОписаниеКлюч не опознан: такой строки на платформе нет
HTTP403 КодINSUFFICIENT_SCOPE ОписаниеУ ключа нет скоупа vibe:cowork
HTTP404 КодCOWORK_NOT_ACTIVATED ОписаниеПодписка Cowork/Code не найдена для пары пользователь и портал
HTTP429 КодRATE_LIMITED ОписаниеПревышен предел частоты на пару портал и пользователь. Суммарный лимит платформы — 30 запросов в минуту. Действующее для вашего ключа значение приходит в заголовке x-ratelimit-limit
HTTP503 КодCOWORK_FEATURE_DISABLED ОписаниеCowork/Code отключён на уровне платформы

Полный список общих ошибок API — Ошибки.

Известные особенности

Успешный ответ (200) — это сам объект предрасчёта, без обёртки success. Ошибки приходят в конверте { success: false, error: { code, message } }. Определяйте успех по HTTP-статусу (res.ok).

Цена тарифа и сумма списания — разные числа. Поле tiers[].feeVibes в полном состоянии подписки — это ценник тарифа. Фактическая сумма расходится с ним уже в пяти случаях:

  • повторный выбор тарифа, который уже подключён, — списывается ноль,
  • понижение тарифа, которое встаёт в очередь на конец оплаченного периода, — сейчас не списывается ничего,
  • повторный запрос про понижение, уже стоящее в очереди, — тоже ноль,
  • повышение с зачётом неиспользованного остатка оплаченного месяца — полная цена минус возврат,
  • действующая скидка платформы — chargeVibes и netVibes называют цену по акции, ровно ту, что будет списана. При продлении уже оплаченного тарифа скидка не применяется.

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

Пара netVibes и scheduled — это готовое решение «списывать сейчас или нет». Повторять правила бесплатных переходов у себя не нужно: netVibes: "0" вместе с scheduled: true означает, что сейчас ничего не спишется, а изменение применится в конце оплаченного периода.

Запрос не удался — покажите ценник тарифа как верхнюю границу. Фактическое списание никогда не бывает больше цены тарифа, поэтому при сетевой ошибке или отказе экран подтверждения показывает feeVibes как верхнюю границу списания. Фактическая сумма может быть меньше. Так сделано в личном кабинете.

Кнопку пополнения кошелька рисуйте по значению topUpAvailable, а не по наличию поля в ответе. Ответ topUpAvailable: false вместе с currency: null — штатное состояние: пополнение для этого аккаунта сейчас недоступно. Это не ошибка запроса.

Суммы приходят только в Вайбах — денежной цены тарифа в ответе нет, и currency ею не является. currency — это валюта, в которой владелец кошелька его пополнит; пары «сумма и валюта» для тарифа не существует. Причина не в наборе полей: единого курса Вайба к деньгам нет. Курс возникает в момент покупки конкретного пакета пополнения, различается по пакетам и по валютам, Вайбы начисляются по сумме без налога, тогда как платит клиент с налогом, а акция Битрикс24 меняет уплаченные деньги, не меняя количество Вайбов. Любое одно число было бы обещанием, которого платформа не даёт.

Что с этим делать на экране: показывайте netVibes в Вайбах, рядом ведите в кассу по topUpAvailable — денежную сумму человек увидит на кассе, в своей валюте и с налогом, перед оплатой.

Суммарный лимит платформы — 30 запросов в минуту. Действующее для вашего ключа значение приходит в заголовке x-ratelimit-limit. Предел считается на пару портал и пользователь. Ответ не кэшируется (Cache-Control: no-store): суммы считаются на момент запроса.

Сброс лимитов по праву акции возврат не увеличивает. После сброса лимитов creditVibes считается так, будто сброса не было: объём месяца, израсходованный до сброса, остаётся израсходованным и в возврат за остаток не попадает.

Смотрите также