Skip to main content
You can charge external users for access to the apps you build on Capsule. Capsule handles checkout and access, then takes a platform fee from app sales. Separately, your workspace pays Capsule for platform subscription and runtime usage. At the SDK level, selling an app is simple: set a price on the app, deploy it, and connect payouts so Capsule can send you your share.

Sell an app

Set price and pricing_type on cpsl.App.
import cpsl

app = cpsl.App(
    name="support-ops",
    image=cpsl.Image(python_packages=["openai"]),
    price=1500,
    pricing_type="monthly",
)
price is in cents. 1500 means $15.00. Supported pricing types:
ValueMeaning
"one_time"The user pays once for app access
"monthly"The user subscribes monthly for app access
If price is 0, the app is treated as free.

Apply pricing changes

Pricing is part of the app definition. The next time you deploy the app, Capsule applies the current price and pricing_type values. The deploy output also shows the configured price.

User checkout

When an external user opens your paid app without access, Capsule starts a checkout flow. The hosted app redirects the user to Stripe Checkout. After success, Capsule grants that user access to your app. If you need to create a checkout link from a script or backend service, use cpsl.Client.create_checkout(...).

Access after payment

Paid apps still use normal app-scoped identity. After checkout:
  • the external user signs into the app user pool
  • Capsule records access for that app
  • session.user and ctx.user identify the signed-in app user
  • access="authenticated" pages continue to use the same auth gate
Pricing controls whether the user can enter the app. It does not replace app auth or page/data access checks.

Your payouts

App sales use Stripe Connect to pay you out. Set up payouts from the Capsule console under Settings → Usage & Billing. Once onboarding is complete, new app checkout sessions can route your share to your connected payout account and apply Capsule’s platform fee during checkout.

Platform fee

Capsule takes a platform fee when external users pay for your app. Current platform fee:
10%
For a $15.00 app sale:
AmountValue
Gross payment$15.00
Platform fee$1.50
Your amount$13.50
The app detail page and payment views should show the gross payment, Capsule fee, and your net amount. App sales currently settle in USD.

Payout states

In the payments UI, payouts are shown in a few practical states:
StatusMeaning
Paid outThe payment has been routed or transferred to your connected account
Needs onboardingYou have not completed payout onboarding yet
In progressCapsule is attempting to settle the payout
FailedCapsule could not complete the payout transfer
If users buy your app before you finish Connect onboarding, those payments can remain pending until your workspace is ready for settlement.

Settle pending payouts

Pending payouts can be settled after Connect is enabled. Use Settings → Usage & Billing to finish onboarding and settle eligible pending payouts. Settlement transfers your net amount to your connected account and updates each payout as paid out or failed.

App payment reporting

You can inspect app payments from the app detail page. The payments view is intended to answer:
  • who paid for the app
  • how much they paid
  • whether the payment was one-time or monthly
  • how much Capsule kept as the platform fee
  • how much you earned
  • whether the payout is complete, pending, or failed

Platform billing

Platform billing is separate from app sales. App sales are your users paying you. Platform billing is your workspace paying Capsule. You can manage your Capsule subscription and runtime usage from Settings → Usage & Billing. From there you can:
  • see workspace usage
  • start or manage your Capsule subscription
  • open the billing portal
  • cancel a subscription
  • sync billing state
  • manage payout onboarding
Workspace plan statuses:
StatusMeaning
trialTrial workspace
activeActive paid workspace
past_duePayment is overdue
cancelledSubscription was cancelled
expiredTrial or plan is no longer active

Runtime usage

Runtime usage is tracked separately from app sale revenue. Use Settings → Usage & Billing for workspace billing insights. Use the app detail page for per-app usage views.

UI map

Capsule exposes payment features in two main places:
UI surfaceWhat it shows
Hosted subdomain appPaid app checkout prompts for users without access
App detail pageApp price, checkout action, payments tab
Settings → Usage & BillingPlatform subscription, runtime usage, Stripe Connect payouts

Notes

  • App sale checkout uses Stripe Checkout and can create one-time or subscription sessions depending on pricing_type.
  • When payout onboarding is complete, Capsule can route your share to your connected payout account.
  • If onboarding is incomplete, app sale payouts can remain pending until payouts are enabled.