Plans, Coupons & Tax
This is where you define what you sell — your subscription plans, their prices and limits — plus the discount codes and tax rules that apply at checkout.
Plans
Location: Admin → Plans (/admin/plans)
A plan is a subscription tier (e.g. Starter, Pro, Business). Each plan controls both its price and what the customer is allowed to do.
📸 Screenshot: The Plans list showing the default Free / Starter / Pro / Business tiers.
Plan fields
| Field | Purpose |
|---|---|
| Name & slug | Display name and URL-safe identifier. |
| Description | Shown on the pricing page. |
| Currency | The plan's billing currency. |
| Monthly price / Yearly price | The recurring price (yearly is optional — offer it for a discount). |
| Trial days | Free trial length before billing starts. |
| Features | Free-form list of selling points shown on the pricing page. |
| Limits | The hard usage caps this plan enforces (see below). |
| Price IDs | Gateway price identifiers — stripe_monthly_id, stripe_yearly_id, paddle_monthly_id, paddle_yearly_id. |
| Enabled | Whether new customers can choose it. |
| Featured / Popular | Highlight it on the pricing page. |
| White-label enabled | Whether this plan unlocks per-client branding. |
Usage limits
Limits are what make plans meaningful — they gate how much of each feature a customer can use per month (or in total). Available limits include:
| Limit | Controls |
|---|---|
whatsapp_accounts | Max WhatsApp business accounts |
whatsapp_templates | Max message templates |
number_verifications | Monthly WhatsApp number checks |
campaigns_per_month | Monthly campaigns |
sms_per_month / emails_per_month | Monthly SMS / email sends |
inbox_agents | Max inbox team members |
ai_tokens_per_month | Monthly AI usage |
knowledge_bases / chatbots | Max KBs / chatbots |
social_accounts / posts_per_month | Social limits |
leads_per_month | Monthly lead scrapes |
automations | Max active automations |
team_members / storage_mb | Team size / storage quota |
When a customer hits a limit, the app shows an upgrade prompt. Usage resets monthly.
Managing plans
- Create a new plan with the New Plan button.
- Edit any plan's prices, features and limits.
- Duplicate a plan to quickly build a variant.
- Reorder plans by dragging — this controls their order on the pricing page.
- Delete plans you no longer offer.
Connect price IDs before charging
For Stripe and Paddle, create the matching prices in the gateway dashboard and paste their price IDs into the plan. Paddle checkout requires these. See Payments Integration.
Coupons
Location: Admin → Coupons (/admin/coupons)
Coupons are discount codes customers can enter at checkout.
📸 Screenshot: The Coupons list with the create-coupon form.
| Field | Purpose |
|---|---|
| Code | The code the customer types (e.g. LAUNCH50). |
| Kind | percent (e.g. 50%) or fixed (a set amount off). |
| Amount | The discount value. |
| Duration | once, repeating (for N months) or forever. |
| Duration in months | Used when duration is repeating. |
| Applies to plans | Restrict the coupon to specific plans (optional). |
| Max redemptions | Cap how many times it can be used (optional). |
| Expires at | Optional expiry date. |
| Enabled | Turn it on/off without deleting. |
Customers apply a coupon during checkout; the system validates it and applies the discount automatically.
Tax Rates
Location: Admin → Tax Rates (/admin/tax-rates)
Define tax rules by country and (optionally) region.
| Field | Purpose |
|---|---|
| Name | e.g. "UK VAT". |
| Country | 2-letter country code. |
| Region | Optional state/province. |
| Percentage | The tax rate (0–100). |
| Inclusive | Whether the price already includes tax, or tax is added on top. |
| Enabled | Turn it on/off. |
The correct rate is resolved automatically at checkout based on the customer's location, and the tax amount is recorded on each transaction.
➡️ Next: Subscriptions & Payments to see plans and discounts in action.