Pricing & billing
Two economies live on the platform, and it pays to keep them separate in your head:
- How workspaces pay Saaslivery. Capacity tiers with per-seat pricing. Every core app is included on every tier.
- How third-party developers earn. Paid marketplace apps set their own pricing, and the developer keeps 80% of revenue.
How workspaces pay
Workspaces choose a tier: Free, Starter, Growth, or Scale. Every app and every feature is available on every tier; tiers differ only in capacity (storage, call minutes, automation runs, retention, and similar limits). There is also a Per-App plan, priced per user per app per month, for teams that only want a few apps.
The seat rule is a cliff, not a ramp:
- Teams of 5 or fewer pay nothing, on any plan.
- From the 6th user, every user is billed. A 6-person team pays for 6 seats, not 1.
New workspaces get a 14-day trial at Scale capacity. Prices are regional (set from the signup country) and are lower when billed annually. The current numbers are always on the pricing page; the billing engine and that page read from the same source, so what it shows is what is billed.
What this means for your app
A core or free marketplace app never bills a workspace by itself; capacity limits are enforced by the platform per tier. You do not implement billing checks in app code.
How third-party developers earn
Paid marketplace apps declare their pricing in the manifest, using usage dimensions:
| Dimension | Unit | Example |
|---|---|---|
seat |
Per active user per month | $4/user/month |
minute |
Per minute of usage | $0.03/minute |
document |
Per document processed | $1.50/document signed |
storage |
Per GB stored per month | $0.10/GB/month |
message |
Per message sent | $0.001/message |
active_resource |
Per active resource per month | $5/active vacancy/month |
flat |
Fixed monthly fee per workspace | $10/month |
Dimensions can combine (for example seat + minute), and each can carry a free_allowance so small teams use your app for free:
"pricing": {
"model": "usage",
"trial_days": 14,
"dimensions": [
{
"type": "seat",
"label": "User access",
"unit_price": 4.00,
"currency": "USD",
"period": "month",
"free_allowance": 5,
},
],
}
Free apps declare the shorthand "pricing": "free".
Metering
Apps report consumption with the metering API; the platform stamps workspace_id, the app slug, and the timestamp:
# After a call ends
await req.app.meter("minute", quantity=call_duration_minutes)
# After a document is signed
await req.app.meter("document", quantity=1)
seat, storage, and flat dimensions are metered by the platform automatically. Apps are responsible for metering minute, document, message, and active_resource.
The split and payouts
| Party | Share |
|---|---|
| Developer | 80% |
| Saaslivery | 20% |
- Calculated per app per billing cycle
- Payouts are monthly, 30 days after the billing period closes
- Minimum payout threshold: $50 (rolls over if not met)
Track revenue, installs, and active workspaces from your developer dashboard on the marketplace.
Billing questions apps should never answer
The platform owns invoicing, payment collection, trials, dunning, and enforcement of tier capacity. Apps never store card data, never gate features on payment state, and never query billing tables. If your app's behaviour should differ by usage, meter the usage and let the platform bill it.