---
title: "Start Seat Checkout"
method: POST
path: "/api/v1/orgs/{org_id}/checkout"
tags: ["organizations"]
---

# Start Seat Checkout

`POST /api/v1/orgs/{org_id}/checkout`

## Request

- Base URL: `https://app.ctlsurf.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.ctlsurf.com/api/v1/orgs/{org_id}/checkout`
- Auth: HTTP bearer

Open Stripe Checkout to start this org's seat subscription (owner only).

The self-serve counterpart to the admin attach-billing endpoint. Owner-only
for the same reason buying seats is: it commits the org to a recurring
charge, and the owner is who the billing relationship belongs to.

## Path parameters

- `org_id` string, uuid, required

## Request body

- OrgCheckoutRequest: Start self-serve seat checkout. `seats` is the opening quantity.
  - `seats` integer
  - `success_url` string, required
  - `cancel_url` string, required

## Response `200`

Successful Response

- OrgCheckoutResponse
  - `checkout_url` string, required
  - `session_id` string, required
  - `seats` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ctlsurf/apis/notebook-control-plane.md) · [All operations](https://skmtc.dev/ctlsurf/apis/notebook-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/ctlsurf/apis/notebook-control-plane/revisions/ddfbbe20d5ce?raw)
