Platform subscriptions, seats, and the billing portal
Plans, Seats & Billing
This is the platform side of billing -- where your organization pays Surflink for a subscription and seats. (For charging students for coaching packages, see Charging Students.)
Manage it in Workspace -> Billing (/org/settings) or from the /pricing page.
Plans
| Plan | Base | Per seat | Notes |
|---|---|---|---|
| Instructor | $19/mo | $9/mo per Assistant seat | Athlete cap ~25 |
| Pro Coach | $79/mo | $25/mo per Specialist seat | Athlete cap ~20 |
Every new workspace starts trialing for 14 days.
Subscribe and manage
- In Workspace -> Billing (requires
org.billing.manage), click Start subscription (or Change plan / seats if you already have one). - You're redirected to Stripe Checkout. Complete payment.
- Back in Billing, click Manage billing to open the Stripe Customer Portal (update card, change plan, cancel) -- this needs at least
org.billing.read.
You can also start from /pricing, which shows the plan cards. Choosing a plan that differs from your current workspace type updates the type first, then starts checkout.
Seats and the seat cap
Seats determine how many members you can have. The base plan includes the Owner, so the member limit is 1 + seats. If you try to invite past your seat cap, the invite is rejected with "Seat limit reached. Add seats in Billing to invite more members." Add seats via Change plan / seats.
Subscription status and access
A subscription is treated as active when its status is active, trialing, or past_due (past-due keeps access during dunning). If a non-super-admin coach's org has no active subscription, most of the app redirects to /pricing; a set of paths (pricing, billing, settings, auth, invites, docs, etc.) stay reachable so you can fix billing.