Skip to content

Sell inside your App

How a Customer's plan shapes every screen and call of an App, and where the Customer pays, upgrades and cancels.

Your App reads each Customer's plan before every screen and every call. Lock a feature, cap a count or charge per person on the Offer, and the buttons, limits and invoices follow.

What a plan controls

Every row comes from the Offer the Customer holds. You write no gating code for any of them.

The customer hasThe App showsIt comes from
A feature on a higher planThe button, with a lock and the plan that unlocks itAn Entitlement with no Limit
A capped featureA usage bar, then the upgrade offer at the capAn Entitlement with a Limit, and the Offer's atBound
A per-seat planSeats used and paid, on the members screenThe Offer's seats
A trialDays left, and a button to add a cardThe Offer's trial
A failed renewalA banner to update the card; everything still worksA Subscription in pastDue

The same answer reaches the API and the MCP server, so an agent calling your App meets the same plan as a person clicking it. Checking access covers the check itself.

Lock a feature, cap a count

A feature is a Verb the plan grants. To lock CSV export to pro, grant Collection.export on that Offer with Offer.grant, and leave it off free.

Show the locked button; never hide it. A locked button with the plan name on it is the cheapest upgrade prompt you have.

A cap is the same grant with a Limit. Leaseline's free plan covers 20 units with atBound: upgrade, so the 21st unit offers pro instead of failing. Cap what costs you money, and leave the rest unlimited.

Seats

A per-seat Price counts people. The Offer's seats says how.

seatsHow the count movesUse it for
membersFollows the people in the Customer's Tenant: an invite adds a seat and prorates it inSmall groups that add people as they grow
manualThe buyer sets the quantity; an invite past it asks an admin to buy a seatBuyers who budget by headcount

Charge per seat only when each extra person gets value of their own. Leaseline prices by units managed, not people, because one manager runs 200 units alone.

Billing inside the App

The Tenant's owner pays, upgrades and cancels from the billing portal at leaseline.app/portal/billing, under Leaseline's Brand. A card is entered on that page, so no step leaves the Startup's Domain.

MoveAccessMoney
UpgradeThe new grants work on the next callThe prorated difference, charged at once
DowngradeKeeps the higher plan to the end of the periodThe lower amount from the next period
CancelFull access until the period closesNothing more
A failed chargeFull access while retries runRetried on the dunning schedule

Cancelling takes no more steps than buying did. A plan change never deletes a record: past a new cap, existing records stay readable and only new writes stop.

Next