AACsearch
Биллинг

Биллинг

Как AACsearch берёт оплату — планы, единицы потребления, квоты, AI-кредиты, счета и поток апгрейда/даунгрейда.

AACsearch оплачивает две вещи, двумя разными способами:

  • Подписка на план — фиксированный месячный или годовой платёж, открывающий ярус ёмкости (индексируемые документы, поисковые запросы, места, retention аналитики, синхронизации коннекторов).
  • AI-использование — предоплаченный кошелёк кредитов, тратящийся pay-as-you-go на AI-функции (Knowledge / RAG, embeddings, суммаризация, AI rerank).

Подписки идут через Stripe (по умолчанию), Lemon Squeezy, Polar, Creem, DodoPayments или — для клиентов из России — Tochka. AI-расходы работают на отдельном реестре кошелька в микро-USD (или копейках для RUB), списываются по событиям использования.

Этот раздел расписывает каждую часть картины. Начните со страниц, подходящих под задачу:

  • Покупаете или обновляете план?Планы, затем Апгрейд и даунгрейд для правил тайминга.
  • Оцениваете стоимость до подписки?Единицы потребления и Квоты — они объясняют, что считается и как ведут себя soft/hard лимиты.
  • Настраиваете AI-функции?Кошелёк и AI-кредиты — кошелёк не зависит от плана и требует пополнения до первого AI-вызова.
  • Работаете с финансами?Счета для VAT/НДС, биллинг-контактов, чеков и retention.

Два реестра, одно рабочее пространство

РеестрВалютаРежим оплатыПлатит за
Подписка на планUSD или RUBРекурринг (месячный/годовой)Поисковую ёмкость, места, коннекторы, retention аналитики
Кошелёк (AI-кредиты)микро-USD/копейки (BigInt minor units)Предоплата, pay-as-you-goKnowledge, embeddings, AI rerank, суммаризацию

Оба реестра привязаны к организации, а не к пользователю. Пользователь в двух организациях видит два кошелька и две сводки плана.

Почему два реестра? Подписка предсказуема и предоплачена. AI-стоимость прыгает per-запрос (4k-токенный промпт ~×50 дороже 100-токенного) и считается post-hoc. Смешивать их в одном счёте — ухудшать оба; они работают рядом, и финансы получают один счёт за цикл (план) плюс один чек за пополнение (кошелёк).

Где что искать

В панели:

ЭкранПоказывает
/[orgSlug]/settings/billingАктивный план, использование против лимитов, история счетов, способ оплаты, статус overage
/[orgSlug]/overviewПлитка квот (использованные search units против потолка, процент)
/settings/billingЛичный биллинг (для большинства клиентов не активен — org-биллинг закрывает всё по умолчанию)
/settings/billing/ai-creditsБаланс AI-кошелька, контрол пополнения, автозачисление, лимиты расходов
/settings/billing/invoicesЛичные счета
/admin/walletРеестр кошельков платформы между организациями (только админ)
/admin/billing-analyticsКросс-тенант метрики биллинга (только админ)

Резолв плана

Текущий план разрешается через resolveOrgPlan(orgId) в @repo/payments:

  1. Найти последний активный Purchase (подписку) для организации.
  2. Сопоставить priceId провайдера → planId по матрице в packages/payments/config.ts.
  3. Кэш 60 секунд (invalidatePlanCache(orgId) вызывается на вебхуках — изменения подтягиваются быстро).
  4. Fail open — если провайдер недоступен, откатываемся к лимитам Free, а не блокируем трафик.

Изменение плана применяется на следующем запросе после прихода вебхука. Ночного батча нет — права живут в реальном времени.

Представление денег

Заметка для интеграторов API: каждое денежное значение — BigInt в minor units (копейки для RUB, центы для USD, или микро-USD для прецизионных списаний кошелька). Через oRPC они трансформируются в строки (.transform(v => v.toString())), чтобы JSON-сериализация не теряла точность.

Конвертация в десятичное представление — только на UI и в email. В БД никогда не увидите 19.99; будет BigInt("1999") для USD-центов или BigInt("1999000000") для микро-USD.

Налоги, VAT и чеки

Обработка VAT/НДС зависит от провайдера. Stripe Tax включён для EU/UK/US; Lemon Squeezy — merchant of record (платит налоги за вас); Tochka — путь для RUB-клиентов, следует российскому НК.

См. Счета — полная матрица провайдеров и того, кто автоматически обрабатывает налог.

Возвраты и диспуты

Возвраты идут через провайдера платежа (Stripe-дашборд, Lemon Squeezy-консоль и т.д.). AACsearch не правит подписку независимо от провайдера. Для пополнений кошелька возврат атомарно реверсит и платёж, и запись реестра.

Откройте тикет в поддержку из /settings/billing для помощи с возвратом или диспутом.

Связанные страницы

On this page