Laver docs
Open Laver
Administration

Billing#

Laver has one paid plan, Pro, charged per seat, monthly or annually. A card is required up front, and a workspace's first subscription comes with a 14-day free trial — the trial starts when the card is entered at Checkout, not when the workspace is created. A workspace that has not subscribed yet is locked.

Only the workspace owner can start, change or cancel a subscription. Admins and everyone else can read the billing summary — plan, seats, renewal date — but any attempt to act on it answers 403 {"error": "Only the workspace owner can manage billing."}.

Everything to do with money is in Billing in the app. Payments, cards, invoices and tax are handled by Stripe; Laver never sees or stores a card number.

What it costs#

Interval Price
Monthly £2.49 per seat per month
Annual £19.99 per seat per year

Prices are exclusive of VAT. Stripe Checkout collects a billing address and works out the tax, and a business can enter a VAT number there to reverse-charge rather than pay VAT it would have to reclaim. Checkout is the authority on what you will actually be charged, and shows it before you confirm.

Your next invoice is the seat price multiplied by your billable seats, which the Billing page shows you.

What counts as a seat#

A billable seat is an active membership in a billable role: owner, admin or member.

  • Viewers are free. They never count and never appear on an invoice.
  • Outstanding invitations to admins and members hold a seat from the moment they are sent, until they are accepted, revoked or expired. Viewer invitations do not.
  • Deactivated and removed people do not count.

Seat changes go to Stripe as they happen, and are prorated: adding someone mid-cycle charges for the days they will use, removing someone credits the rest.

The free trial#

  • 14 days, on the Pro plan with Pro limits.
  • A card is taken at Checkout, before the trial starts. Nothing is charged until the trial ends, and Stripe bills automatically at the end of it.
  • One trial per workspace, ever. Cancelling and coming back does not earn a second one — a workspace that has subscribed before is charged straight away at its next Checkout. The Billing page tells you which of the two applies before you start.
  • The owner gets a reminder email 3 days before the trial ends.

Plan limits#

Free Pro
Seats 3 Unlimited
Boards 2 Unlimited
Storage 1 GB Unlimited

A workspace on trial gets the Pro limits.

There is no free tier you can sign up for. A workspace that has never subscribed is locked, not degraded — see the states below. The free limits above apply only to workspaces that have been given complimentary access.

When a limit is hit, the action is refused with 402 and a message naming the plan, the limit and the current usage, along with the current prices, so the way out is offered at the point of refusal.

Billing states#

The Billing page shows one of six states. What a workspace can do depends entirely on which:

State What it means Reads Writes Adding members, boards, uploads
unsubscribed Signed up, never subscribed. The starting state of a new workspace. No No No
trialing Inside the 14-day trial. Yes Yes Yes, at Pro limits
active Paid and current. Yes Yes Yes, at Pro limits
past_due An invoice failed; Stripe is retrying. Yes Yes No
read_only Unpaid past the grace period. Yes No No
canceled Subscribed once, no longer. No No No

unsubscribed and canceled are the same lock. In both, opening a board, a ticket or the wiki answers:

json
{
    "error": "This workspace does not have an active subscription. Start one in Billing to get back in.",
    "subscription_required": true
}

The status is 402. Billing itself stays reachable — the owner has to be able to get to the page that sells them the way back in — and the owner can still rename or delete a workspace they are locked out of. Your other workspaces are unaffected.

Cancelling therefore locks the workspace rather than dropping it to a free tier. Nothing is deleted, and paying again restores everything, but the boards are shut in the meantime. Plan accordingly before you cancel.

What past_due and read_only allow#

These two are deliberately gentler than the lock, because losing access to your own data is not a good reason to churn.

past_due — the workspace keeps working. People read and write as normal. What stops is growth: inviting anyone, creating a board, and uploading a file are all refused with

json
{
    "error": "This workspace has an unpaid invoice. Update the payment method in Billing to add anything new."
}

read_only — the workspace is fully readable and fully exportable, and nothing can be written. Every write answers 402 with

json
{
    "error": "This workspace is read-only because an invoice has not been paid. Settle it in Billing to start writing again.",
    "billing_frozen": true
}

This applies to everyone regardless of role — an owner in a read-only workspace cannot write either.

The non-payment ladder#

When What happens
A payment fails The workspace moves to past_due and the owners are emailed. Stripe keeps retrying.
14 days still unpaid The workspace moves to read_only. Owners are emailed. Reads and exports continue; writes stop.
90 days read-only Owners get a final warning email.
Any point an invoice is paid The workspace returns to active immediately, and the clocks reset.

Nothing on that ladder deletes anything. The 90-day warning is the last automated step; closing a workspace for good is a human decision, never a timer.

To recover, update the payment method in the Stripe billing portal. The moment the outstanding invoice is paid the workspace is active again — you do not have to wait for anything to catch up.

The billing portal and invoices#

Billing → Open billing portal takes the owner to Stripe's hosted portal, where you can:

  • update or replace the card
  • pay an outstanding invoice
  • download past invoices and receipts
  • change or cancel the subscription

Invoices live in the portal rather than in Laver, so Invoices on the Billing page opens the same portal.

The portal is only available once a workspace has been billed at least once. Before that it answers 409 {"error": "This workspace has never been billed. Start a subscription first."} — start the subscription from the Billing page instead.

If Stripe is unreachable, both Checkout and the portal answer 502 {"error": "Stripe is unavailable. Try again shortly."}. Nothing has changed; retry.

Cancelling#

Cancel in the Stripe billing portal. A cancellation scheduled for the end of the period is shown on the Billing page along with the date, and until then the workspace carries on normally. When it takes effect the workspace moves to canceled and locks.

Deleting a workspace cancels its subscription immediately, so a closed workspace does not keep billing. See Exports and deletion.

Using the API#

Session tokens only.

Action Call
Read the billing summary GET /billing/<workspace-uuid> — any active member
Start a subscription POST /billing/<workspace-uuid>/checkout with {"interval": "monthly"} or "annual" — owner only, returns a Stripe Checkout URL
Open the portal POST /billing/<workspace-uuid>/portal — owner only, returns a Stripe portal URL

The summary includes billing_status, plan, seats, active_members, trial_available, current_period_end, cancel_at_period_end and the limits for the effective plan — enough to render your own billing banner.