---
title: "Create Stripe Checkout Session"
method: POST
path: "/api/payments/stripe/{environment}/checkout-sessions"
tags: ["Stripe Payments"]
---

# Create Stripe Checkout Session

`POST /api/payments/stripe/{environment}/checkout-sessions`

Create a local checkout attempt with the caller's user context and then create a Stripe Checkout Session. Subscription mode requires a billing subject.

## Path parameters

- `environment` 'test' | 'live', required

## Request body

- CreateCheckoutSessionBody — Metadata keys starting with insforge_ are reserved and rejected.
  - `mode` 'payment' | 'subscription', required
  - `lineItems` CreateCheckoutSessionLineItem[], required
    - `priceId` string, required
    - `quantity` integer
  - `successUrl` string, uri, required
  - `cancelUrl` string, uri, required
  - `subject` BillingSubject
    - `type` string, required
    - `id` string, required
  - `customerEmail` string, email, nullable
  - `metadata` Metadata
  - `idempotencyKey` string

## Response `201`

Checkout Session created

- CreateCheckoutSessionResponse
  - `checkoutSession` CheckoutSession, required
    - `id` string, uuid, required
    - `environment` 'test' | 'live', required
    - `mode` 'payment' | 'subscription', required
    - `status` 'initialized' | 'open' | 'completed' | 'expired' | 'failed', required
    - `paymentStatus` 'paid' | 'unpaid' | 'no_payment_required', required
    - `subjectType` string, nullable, required
    - `subjectId` string, nullable, required
    - `customerEmail` string, email, nullable, required
    - `checkoutSessionId` string, nullable, required
    - `customerId` string, nullable, required
    - `paymentIntentId` string, nullable, required
    - `subscriptionId` string, nullable, required
    - `url` string, nullable, required
    - `lastError` string, nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal server error

---

[API](https://skmtc.net/insforge/apis/insforge-authentication-api.md) · [All operations](https://skmtc.net/insforge/apis/insforge-authentication-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/insforge/insforge-authentication-api/revisions/a935bb49f932/schema)
