---
title: "Create a Stripe checkout URL for a listed plan"
method: POST
path: "/billing/checkout"
---

# Create a Stripe checkout URL for a listed plan

`POST /billing/checkout`

## Request

- Base URL: `https://www.clipzyn.com/v1`
- URL: `https://www.clipzyn.com/v1/billing/checkout`
- Auth: HTTP bearer

Create checkout and return {checkout_url, expires_at}. Minting the URL costs nothing quota-wise; the selected paid plan changes billing only after Stripe confirms payment. Call GET /v1/billing first, send one Idempotency-Key per offer, and relay checkout_url verbatim to the human principal. Recover from plan_unknown by choosing a returned plan id, from already_subscribed with POST /v1/billing/portal, and from billing_unavailable by waiting retry_after_sec before one retry.

## Request body

- CheckoutRequest
  - `plan` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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