---
title: "Create Stripe checkout session or upgrade existing subscription"
method: POST
path: "/integrator/billing/checkout"
tags: ["billing"]
---

# Create Stripe checkout session or upgrade existing subscription

`POST /integrator/billing/checkout`

If the integrator already has an active subscription, upgrades in-place. Otherwise creates a Stripe Checkout session.

## Request body

- CheckoutRequest — Request to create a Stripe Checkout session.
  - `plan` 'free' | 'startup' | 'growth' | 'scale', required — Available integrator plans.
  - `success_url` string, required — URL to redirect after successful checkout
  - `cancel_url` string, required — URL to redirect on checkout cancellation

## Response `200`

Successful Response

- CheckoutResponse — Response with Stripe Checkout session URL or upgrade confirmation.
  - `checkout_url` string, required — Checkout URL, or 'upgraded' if subscription was modified in-place
  - `upgraded` boolean — True when subscription was upgraded in-place (no checkout needed)

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/scipot/apis/scipot-core-api.md) · [All operations](https://skmtc.dev/scipot/apis/scipot-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scipot/scipot-core-api/revisions/e8712e9ffeae/schema)
