Subscriptions
Create Subscription Checkout
Create a Stripe checkout session for subscribing to a plan.
POST
Overview
Creates a Stripe checkout session for subscribing to a plan. Returns a URL where you should redirect the user to complete the payment. Requires session-based authentication (JWT access token).For third-party integrations: Use
POST /subscriptions/checkout/api with API Key authentication instead.Authentication
Your JWT access token. Format:
Bearer YOUR_ACCESS_TOKENRequest Body
The plan identifier to subscribe to. Must be one of:
starter, professional, business, or agency.Billing frequency. Options:
monthly or yearly.URL to redirect to after successful payment. Defaults to application dashboard.
URL to redirect to if user cancels payment. Defaults to pricing page.
Response Fields
Stripe checkout session ID. Can be used to verify the session later.
URL to redirect the user to for payment. This is a Stripe-hosted checkout page.
Details of the selected plan.
Checkout Flow
- Create session: Call this endpoint with the desired plan
- Redirect user: Send user to the returned
url - Payment processing: User completes payment on Stripe
- Webhook: Stripe notifies your webhook endpoint
- Success redirect: User is redirected to
successUrl - Verify (optional): Check subscription status via
/subscriptions/current
Error Responses
400
Bad Request - Invalid plan ID or user already has an active subscription.
401
Unauthorized - Invalid or missing token.
If the user already has an active subscription, they should use the billing portal (
/subscriptions/portal) to change plans instead.POST /subscriptions/checkout/api
Creates a Stripe checkout session using API Key authentication. Ideal for third-party integrations.Authentication
Requires API Key authentication. Include your API key in theAuthorization header:
Request Body
Same as/subscriptions/checkout above.
Response
Same as/subscriptions/checkout above.