Plans & Pricing
Create up to 5 active pricing plans per plugin through the Developer Portal. Define pricing type, billing interval, trial period, and feature list.
Plan Limits
Each plugin can have a maximum of 5 active plans at any time. You can deactivate a plan (which hides it from new subscribers) without deleting it.
Pricing Types
| Type | Description | Status |
|---|---|---|
recurring | Charged on a monthly or annual cycle | Available |
one_time | Single charge — no ongoing billing | Available |
usage | Metered billing based on consumption | Coming soon |
Billing Intervals
For recurring plans, you choose the billing cadence:
| Interval | Value |
|---|---|
| Monthly | monthly |
| Annual | annual |
Plan Fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Plan display name shown to merchants |
slug | string | Yes | URL-safe unique identifier (e.g., starter, pro) |
description | string | No | Short description of what's included |
price | decimal | Yes | Price in major currency units (e.g., 29.99) |
currency | string | Yes | Currency code — currently USD only |
interval | string | Yes (recurring) | monthly or annual |
trialDays | number | No | Free trial length in days (0–90). Default: 0. |
features | string[] | No | Feature list for display in marketplace cards |
isPopular | boolean | No | Highlights the plan as recommended in the UI |
sortOrder | number | No | Controls display order when multiple plans are shown |
Trial Rules
- Maximum 90 days per trial
- Trials are granted only on the first subscription per installation — reinstalling the plugin does not re-grant a trial
- During trial: the merchant is not charged and no billing item is created
- When trial ends: billing activates automatically via a daily background job
- If a merchant cancels during trial: the subscription ends at trial expiry with no charge ever applied
Creating Plans
Plans are created and managed through the Developer Portal dashboard. The platform automatically handles the payment processor integration when you save a plan — you do not need to create products or prices on any external system.
Example Plan Configuration
Plan: "Starter"
Slug: starter
Type: recurring
Price: $9.99 / month
Trial: 14 days
Features: ["Basic analytics", "10 reports/month"]
Plan: "Pro"
Slug: pro
Type: recurring
Price: $29.99 / month
Trial: 14 days
Features: ["Advanced analytics", "Unlimited reports", "Export CSV"]
Popular: true
Plan: "Enterprise"
Slug: enterprise
Type: recurring
Price: $99.99 / month
Trial: 30 days
Features: ["Everything in Pro", "Custom dashboards", "Priority support"]Plan Slugs in the SDK
The slug you define here is the identifier you use when calling billing methods in the App Bridge:
// Use the plan slug to request a subscription
await bridge.billing.requestSubscription("pro");
// Use the plan slug to switch plans
await bridge.billing.switchPlan("enterprise");Plan slugs must be unique within your plugin and are immutable after the plan has active subscribers. Create a new plan and deactivate the old one if you need to restructure pricing.