# billing.create_checkout_session

Start buying seats for an organization

POST /organizations/{organizationSlug}/billing/checkout-session — answers 200

MCP tool: billing_create_checkout_session

Scope: billing:write. Kind: write. Acts on: organization.

Answers with a URL on the payment provider’s own checkout page, which a person has to open and complete — nothing is charged here, and the seat count only changes once the payment clears. Owners only. An organization that already has a live subscription is refused with 409: change the seat count through `billing.create_portal_session` instead. A **sandbox** credential never reaches the payment provider at all; it gets a URL on our own documentation site describing what the live call would have done, so an integration can be exercised end to end without anybody spending anything. A sandbox organization has no subscription state to be in, so the 409 above never fires there — only the owners-only check does. Do not write a test that expects it in sandbox.

Path and query parameters: organizationSlug

Example — Buy twenty seats billed monthly

Request:

```json
{"organizationSlug":"northside-career-center","seats":20,"interval":"monthly"}
```

Response:

```json
{
  "url": "https://checkout.stripe.com/c/pay/cs_live_a1b2c3"
}
```