Monetization model¶
Yearly Pro / Business checkout via YooKassa (AgentOps pattern). Enterprise has no online checkout.
| Plan | Price | Limits | Features |
|---|---|---|---|
| Free | 0 ₽ | 1 agent | Dashboard, metrics, ingest |
| Pro | 29,900 ₽ / year | 10 agents | ROI, compare, reports |
| Business | 99,900 ₽ / year | 50 agents | Everything in Pro + team administration |
| Enterprise | custom | Unlimited | All features (plan=enterprise via super_admin) |
Subscription gate¶
For pro / business, features and agent limits apply only while subscription_status is active or trialing and current_period_end is in the future. Otherwise the tenant is treated as free.
enterprise is manual (super_admin) and is not gated on YooKassa expiry.
Enable¶
On the VPS .env:
bash
BILLING_ENABLED=true
BILLING_PROVIDER=yookassa
BILLING_SUCCESS_URL=https://agentbi.com.ru/src/pages/settings.html?billing=success
BILLING_CANCEL_URL=https://agentbi.com.ru/src/pages/settings.html?billing=cancel
PLAN_PRO_PRICE_YEARLY=29900
PLAN_BUSINESS_PRICE_YEARLY=99900
YOOKASSA_SHOP_ID=...
YOOKASSA_SECRET_KEY=...
YooKassa notification URL:
https://agentbi.com.ru/api/v1/billing/webhooks/yookassa
Events: payment.succeeded, payment.canceled.
Flow¶
- Create an account at
/register.html(or sign in). You become the organization admin on Free. - Open Settings → Subscription or Pricing and click Upgrade.
- API creates a
paymentsrow (pending) and a YooKassa payment. - The user pays on YooKassa.
- The webhook marks the payment
succeededand setstenant.plan,subscription_status=active,current_period_end=+365 days. - After 365 days entitlements fall back to free until the next payment.
API¶
| Method | Path | Notes |
|---|---|---|
| GET | /api/v1/billing/plans |
Public catalog |
| GET | /api/v1/billing/status |
Plan + limits; optional ?payment_id= |
| GET | /api/v1/billing/subscription |
Settings summary |
| POST | /api/v1/billing/checkout |
{ "plan": "pro" \| "business" } — Admin+ |
| POST | /api/v1/billing/webhooks/yookassa |
Public webhook |
| POST | /api/v1/billing/webhooks/stripe |
Yearly Stripe checkout |
| POST | /api/v1/billing/webhook |
Legacy Stripe subscriptions |
UI¶
The landing page shows plans. Settings → Subscription and Pricing load /billing/plans and redirect to YooKassa Checkout.