---
title: "Create a Stripe Checkout session for a paid plan (hosted page; card data never touches RightOS servers)"
method: POST
path: "/api/rightos/billing/checkout"
tags: ["billing"]
---

# Create a Stripe Checkout session for a paid plan (hosted page; card data never touches RightOS servers)

`POST /api/rightos/billing/checkout`

## Request

- Base URL: `https://rightos.i-s3.com`
- URL: `https://rightos.i-s3.com/api/rightos/billing/checkout`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-rightos-key`

## Request body

- object
  - `planId` 'starter' | 'business' | 'pro', required

## Response `200`

Checkout URL to redirect the user to

- object
  - `url` string

## Other responses

- `400`: invalid_plan
- `401`: Missing or invalid API key (error: missing_api_key | invalid_api_key)
- `403`: demo_org — the demo organization cannot change plans
- `503`: billing_not_configured — billing is disabled in this environment (MVP mode)

---

[API](https://skmtc.dev/i-s3/apis/rightos-right-api.md) · [All operations](https://skmtc.dev/i-s3/apis/rightos-right-api/llms.txt) · [OpenAPI document](https://skmtc.dev/i-s3/apis/rightos-right-api/revisions/10020536e345?raw)
