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

# Create Checkout

`POST /v1/billing/checkout`

## Request

- Base URL: `https://api.usekeel.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usekeel.io/v1/billing/checkout`
- Auth: none declared

Create a Stripe Checkout session for first subscription (free → paid).

If the org already has an active subscription, returns 409 — use
POST /v1/billing/upgrade instead.

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable

## Request body

- CheckoutRequest
  - `plan` string, required
  - `billing_cycle` string
  - `success_url` string, required
  - `cancel_url` string, required

## Response `200`

Successful Response

- CheckoutResponse
  - `checkout_url` string, required

## Other responses

- `422`: Validation Error

---

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