---
title: "Create Checkout Session"
method: POST
path: "/api/stripe/checkout"
tags: ["stripe"]
---

# Create Checkout Session

`POST /api/stripe/checkout`

## Request

- Base URL: `https://api.equity-rank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.equity-rank.com/api/stripe/checkout`
- Auth: HTTP bearer

Creates a Stripe Checkout session with a 7-day free trial.

- Authenticated (JWT required) but does NOT require an active subscription
  (the user is trying to subscribe for the first time or re-subscribe).
- Creates a Stripe Customer first, then links it to the Checkout session.
- Returns {url: 'https://checkout.stripe.com/...'} for the frontend redirect.

## Request body

- CheckoutRequest
  - `plan` 'monthly' | 'annual'
  - `tier` 'starter' | 'plus' | 'pro' | 'advisor' | 'founder'
  - `success_url` string
  - `cancel_url` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/equity-rank/apis/equity-rank-api.md) · [All operations](https://skmtc.dev/equity-rank/apis/equity-rank-api/llms.txt) · [OpenAPI document](https://skmtc.dev/equity-rank/apis/equity-rank-api/revisions/c2f2463fee33?raw)
