{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/customdomain-ai/json-schema/customdomain-ai-checkout-session-schema.json",
  "title": "CheckoutSession",
  "description": "A Stripe Checkout session for the embedded or elements payment form.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/customdomain-ai-registrar-api-openapi.yml#/components/schemas/CheckoutSession",
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "hosted checkout URL (unused for embedded and elements sessions)."
    },
    "client_secret": {
      "type": "string",
      "description": "mount Stripe Embedded Checkout or the elements checkout with this."
    },
    "ui_mode": {
      "type": "string",
      "enum": [
        "embedded",
        "elements"
      ],
      "description": "How the session was really created. An `elements` request answers `embedded` when Stripe could not create an Elements session. A domain payment has no redirect flow, so it is never `hosted`."
    }
  }
}