---
title: "Create a Stripe checkout session"
method: POST
path: "/v1/billing/checkout"
tags: ["Billing"]
---

# Create a Stripe checkout session

`POST /v1/billing/checkout`

## Request

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

## Request body

- BillingCheckoutRequest
  - `mode` 'subscribe' | 'topup'
  - `planKey` string
  - `topupKey` string
  - `successUrl` string
  - `cancelUrl` string
  - `consent` CheckoutConsent
    - `version` string, required
    - `immediateStart` boolean, required
    - `withdrawalLossAcknowledged` boolean
    - `renewalAcknowledged` boolean
    - `locale` 'en' | 'ru'
    - `surface` 'web' | 'ios' | 'android' | 'mcp'

## Response `200`

Checkout session created

- BillingCheckoutResponse
  - `ok` true, required
  - `url` string, nullable, required
  - `sessionId` string, nullable
  - `consentRequired` boolean
  - `consentId` string, nullable

## Other responses

- `400`: Bad request
- `401`: Unauthorized

---

[API](https://skmtc.dev/lizzflix/apis/lizzflix-api.md) · [All operations](https://skmtc.dev/lizzflix/apis/lizzflix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lizzflix/apis/lizzflix-api/revisions/4536ce9d80ff?raw)
