---
title: "Create Checkout"
method: POST
path: "/billing/checkout"
tags: ["billing", "billing-checkout"]
---

# Create Checkout

`POST /billing/checkout`

## Request

- Base URL: `https://api.threadchain.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.threadchain.pro/billing/checkout`
- Auth: OAuth 2
  - Password
  - Token URL: `auth/token`

Create a Stripe Checkout session for any plan type.

Catalog slugs (``payg``, ``sub-1-monthly``, ``sub-2-annual``, …) and
``payment_plans.id`` UUIDs resolve through the PaymentPlan table with
inline ``price_data``. Legacy Price-ID slugs stay on ``_PLAN_MAP``.
Enterprise is not self-serve.

Only org owners/admins may initiate.  Team members get a 403.

## Request body

- CheckoutRequest: Universal checkout request.
  - `plan_type` string, required: Catalog slug (payg, sub-1-monthly, sub-2-annual, …), a payment_plan UUID, or a legacy Price-ID slug (startup-monthly, solo-monthly, credit-topup).
  - `success_url` string, nullable
  - `cancel_url` string, nullable

## Response `200`

Successful Response

- CheckoutResponse
  - `checkout_url` string, required
  - `session_id` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/threadchain/apis/threadchain-backend.md) - [All operations](https://skmtc.dev/threadchain/apis/threadchain-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/threadchain/apis/threadchain-backend/revisions/8ee288a7e6bd?raw)
