Skip to main content
The subscription and billing section is split across two areas of the admin panel:
  • Admin → Subscribers (/admin/subscribers) — customer-oriented view with subscription status and history.
  • Admin → Payments (/admin/payments) — payment provider management, advanced analytics, and revenue charts.

Subscribers list

The subscribers list shows every customer account (role != admin) with their latest subscription record joined in a single row. The page paginates at 20 per page.

Summary statistics

At the top of the page, summary cards show:
MetricDescription
Total customersAll non-admin users
Customers with subscriptionsUsers who have an active, trialing, or past_due subscription
Customers without subscriptionsUsers on no paid plan
Active subscribersSubscriptions with status active
Cancelled subscribersSubscriptions with status canceled
Trial subscribersSubscriptions with status trialing
Free usersActive subscriptions on a plan with price 0
Paid usersActive/trialing/past-due subscriptions on a paid plan
Total revenueSum of amount across active/trialing/past-due subscriptions
Monthly revenueRevenue from monthly billing-cycle subscriptions
Yearly revenueRevenue from yearly billing-cycle subscriptions
Plans breakdownPer-plan subscriber counts

Filtering

FilterOptions
SearchUser name or email
Statusactive, canceled, incomplete, trialing, past_due, unpaid, no_subscription
PlanAny active pricing plan
Billing cyclemonthly or yearly
Date from / Date toUser registration date range

Subscription details

Click any row to open the subscriber detail view (/admin/subscribers/{user}), which shows:
  • Active subscription: plan name, status, billing cycle, amount, current period start/end, external provider ID
  • Payment provider name
  • Full subscription history for the user (all past subscriptions ordered by date)

Cancelling a subscription

1

Open the subscriber detail

Navigate to the subscriber’s detail page.
2

Click Cancel subscription

A dialog asks whether to cancel immediately or at the end of the billing period.
3

Optionally add a reason

Enter an optional cancellation reason (max 500 characters). This is stored in the subscription’s metadata.admin_cancellation field along with the cancelling admin’s email and a timestamp.
4

Confirm

The PaymentService::cancelSubscription method is called, which relays the cancellation to the payment gateway and updates the local subscription record.
Immediate cancellation ends the subscription right now. End-of-period cancellation lets the customer use the plan until current_period_end.

Exporting subscriber data

Click Export CSV on the subscribers list. The export applies any active filters (status, plan, search) and streams a CSV file with the following columns:
ID, User Name, User Email, Plan, Status, Billing Cycle, Amount, Currency,
External ID, Created At, Current Period Start, Current Period End, Canceled At
The filename is timestamped: subscribers_export_YYYY-MM-DD_HH-mm-ss.csv.

Payment analytics

Navigate to Admin → Payments → Analytics (/admin/payments/analytics) for detailed financial metrics.

Date range

The analytics page defaults to the current calendar month. Use the date range picker to select any custom period.

Analytics sections

The page combines data from PaymentAnalyticsService:
  • Dashboard analytics — Overview metrics for the selected period.
  • Advanced revenue analytics — MRR, ARR, and revenue trends.
  • Detailed usage analytics — Usage record breakdowns.
  • Customer lifetime value — CLV calculations per customer cohort.

Revenue chart

A time-series chart shows daily revenue and new subscriptions. Use the period selector (7d, 30d, 90d, 1y) to zoom in or out. Missing days are filled with zero values so the chart line is continuous.

Exporting analytics

Click Export CSV on the analytics page to download a CSV of all overview and revenue metrics for the selected date range. The file is named payment_analytics_YYYY-MM-DD_to_YYYY-MM-DD.csv.

Payment providers

Navigate to Admin → Payments → Providers (/admin/payments/providers) to manage the payment gateways available on your instance. The system supports multiple providers simultaneously. Only one provider can be marked as default at a time — when a new provider is set as default, the previous default is automatically cleared.

Provider fields

FieldDescription
NameInternal identifier (unique, immutable after creation)
Display nameHuman-readable label shown in the UI
ConfigProvider-specific configuration object (API keys, webhooks, etc.)
ActiveWhether the provider is available for new subscriptions
DefaultWhether this provider is used for new subscriptions by default
Sort orderDisplay order in provider lists
You cannot delete a provider that has active or trialing subscriptions linked to it.

Syncing plans to providers

After creating or updating pricing plans, use Admin → Payments → Sync plans to push plan data to all active payment gateways. See Pricing plans for gateway-specific sync details.

Recent subscriptions

The main payments dashboard (/admin/payments) shows the 10 most recently created subscriptions with user name, plan, provider, status, amount, and date.

Build docs developers (and LLMs) love