Биллинг (ЮKassa / Stripe)¶
Разовая годовая оплата тарифов Pro и Business (29 900 ₽ / 99 900 ₽ в год — без смены сумм). Старт (id free) — пилот 14 дней: 5 агентов, 3 сценария, 2 000 прогонов/мес. Квота прогонов исчерпана — новый прогон не стартует (HTTP 402). Enterprise — без онлайн-checkout (только контакт).
Включение¶
В .env:
BILLING_ENABLED=true
BILLING_PROVIDER=yookassa # или stripe
BILLING_SUCCESS_URL=https://agentops.com.ru/settings?billing=success
BILLING_CANCEL_URL=https://agentops.com.ru/settings?billing=cancel
PLAN_PRO_PRICE_YEARLY=29900
PLAN_BUSINESS_PRICE_YEARLY=99900
ЮKassa¶
URL уведомлений в кабинете ЮKassa:
https://<ваш-домен>/api/v1/billing/webhooks/yookassa
События: payment.succeeded, payment.canceled.
Stripe¶
BILLING_PROVIDER=stripe
STRIPE_SECRET_KEY=sk_...
STRIPE_WEBHOOK_SECRET=whsec_...
PLAN_PRO_PRICE_YEARLY_USD=299
PLAN_BUSINESS_PRICE_YEARLY_USD=999
Webhook:
https://<ваш-домен>/api/v1/billing/webhooks/stripe
Подписка на checkout.session.completed (опционально checkout.session.expired).
Поток¶
- Admin открывает Settings → Подписка и нажимает Upgrade.
- API создаёт запись
payments(pending) и сессию оплаты у провайдера. - Пользователь оплачивает на стороне провайдера.
- Webhook помечает платёж
succeededи пишет вtenant.settings:
- Через 365 дней
resolve_planсчитает tenant free, пока не будет нового платежа.
Страница Pricing показывает годовую цену в USD или ₽ по языку интерфейса (курс отображения 100 ₽ = 1 USD). Валюта оплаты зависит от провайдера: YooKassa — рубли из PLAN_*_PRICE_YEARLY, Stripe — USD.
API¶
| Метод | Путь | Заметки |
|---|---|---|
GET |
/api/v1/billing/plans |
Каталог + флаг enabled |
GET |
/api/v1/billing/status |
Текущий план / опционально payment_id |
POST |
/api/v1/billing/checkout |
Body { "plan": "pro" } — Admin+ |
POST |
/api/v1/billing/webhooks/yookassa |
Публичный |
POST |
/api/v1/billing/webhooks/stripe |
Публичный + подпись |
Чеклист¶
- Миграция
018_billing_payments. - Держите
BILLING_ENABLED=false, пока не настроены ключи и webhooks. - Сначала sandbox / Stripe test mode.
- После деплоя:
GET /api/v1/billing/plans(с авторизацией).