Help Center
Billing
Native Stripe billing for client sites - per-site subscriptions, the operator billing dashboard, and configurable non-payment enforcement.
Last updated
Seedly Sites includes native Stripe billing so each client site can carry its own subscription - your client paying you, through your Stripe account. It is fully opt-in: sites without billing configured behave exactly as before and are never restricted.
How It Fits Together#
| Piece | What it is |
|---|---|
| Your Stripe account | Owns the products, prices, customers, and payments |
| Per-site Billing page | Where a subscription is started and managed for one site |
| Operator billing dashboard | Every site's billing state in one table |
| Enforcement | What (if anything) happens to a site when payment lapses |
Plans and prices live in Stripe - the platform references a Stripe price and displays its nickname as the plan label. To change what you charge, change the price in Stripe.
The Per-Site Billing Page#
Each site has a Billing page showing the subscription status, plan, and renewal date.
Starting a Subscription#
- Open the site's Billing page
- Click Subscribe
- Complete payment on Stripe's hosted checkout page
- You are returned to the Billing page; the status flips to Active once Stripe confirms
Managing a Subscription#
Once a subscription exists, Manage billing opens Stripe's hosted customer portal for that site: update the card, view invoices, cancel, or resubscribe. A canceled site's button becomes Resubscribe.
Who Can Use It#
Managing a site's billing requires administrator-level access on that site (or the operator) - see Users and Roles. Editors and below see the billing state but are told to contact their account manager. Payments are processed entirely by Stripe on Stripe-hosted pages; card details never touch your instance.
Billing Statuses#
The platform mirrors the Stripe subscription into one of six statuses:
| Status | Meaning |
|---|---|
| No subscription | Billing was never set up for this site - never restricted |
| Trialing | In a Stripe trial period - healthy |
| Active | Paid and current - healthy |
| Past due | A renewal payment failed - delinquent |
| Unpaid | Payments kept failing - delinquent |
| Canceled | The subscription ended - delinquent |
Status updates flow in automatically from Stripe (via the webhook you configure at setup). Only the three delinquent states can ever trigger enforcement.
Non-Payment Enforcement#
Each site has an Enforcement setting that decides what happens while its subscription is delinquent:
| Setting | Effect while delinquent |
|---|---|
| Instance default | Defers to your instance-wide default (edit-lock unless you configure otherwise) |
| None | Never restrict this site |
| Edit-lock | Client editing, publishing, and deploys are frozen; the live site stays up |
| Suspend | Everything edit-lock does, plus the live site is taken offline |
Points that matter in practice:
- Sites with no subscription are never enforced. Adding the billing feature to your instance cannot disturb existing client sites.
- The operator always bypasses enforcement - you keep full editing and deploy access on a delinquent site so you can fix, restore, or wind it down.
- Enforcement lifts automatically once the subscription is healthy again (the client pays through Manage billing).
- Suspension is applied at the serving edge and is deliberately fail-safe: if the platform cannot be reached to confirm a suspension, the live site stays up.
The Operator Billing Dashboard#
Operator portal -> Billing aggregates every site: status, plan, renewal date, and the enforcement that currently applies. Delinquent sites sort to the top, so the dashboard doubles as your "who needs a nudge" list.
Setting It Up#
Billing activates when your instance has its Stripe configuration set (as part of provisioning):
- A Stripe secret key
- The Stripe price to subscribe sites to
- A Stripe webhook pointed at your instance, so subscription changes sync automatically
- Stripe's customer portal enabled in your Stripe dashboard (it powers Manage billing)
- Optionally, an instance-wide default enforcement mode
Until those are set, Billing pages show "Billing isn't configured for this instance yet" and nothing is enforced.
Summary#
- Per-site Stripe subscriptions through your own Stripe account, opt-in per site
- Subscribe = Stripe Checkout; Manage billing = Stripe customer portal
- Six statuses mirrored from Stripe; only past due, unpaid, and canceled are delinquent
- Enforcement per site: none, edit-lock (default), or suspend - operator always bypasses
- The operator billing dashboard shows the whole fleet, problems first
Frequently asked questions
- Do I have to use the built-in billing?
- No. Billing is opt-in per site. Sites with no subscription configured are never restricted, so you can invoice clients outside the platform and ignore this feature entirely.
- Where do plans and prices live?
- In your Stripe account. The platform references a Stripe price; the price's nickname is what shows as the plan label. Change pricing in Stripe, not in the platform.
- What happens when a client stops paying?
- Whatever you choose per site - nothing, freeze editing and deploys while the site stays up (the default), or take the live site offline. The operator always keeps full access to fix or restore things.
- Does the platform take a cut of my client billing?
- No. Payments go through your own Stripe account under standard Stripe fees. There is no platform fee on top.
