Kong · Schema

BillingCustomerStripeCreateCheckoutSessionRequest

Request to create a Stripe Checkout Session for the customer. Checkout Sessions are used to collect payment method information from customers in a secure, Stripe-hosted interface. This integration uses setup mode to collect payment methods that can be charged later for subscription billing.

API GatewayAI GatewayAI ConnectivityAgent GatewayEvent GatewayMCP RegistryService MeshLLMKafkaKonnectOpen-Source

Properties

Name Type Description
stripe_options object Options for configuring the Stripe Checkout Session. These options are passed directly to Stripe's [checkout session creation API](https://docs.stripe.com/api/checkout/sessions/create).
View JSON Schema on GitHub

JSON Schema

kong-billingcustomerstripecreatecheckoutsessionrequest-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/BillingCustomerStripeCreateCheckoutSessionRequest",
  "title": "BillingCustomerStripeCreateCheckoutSessionRequest",
  "description": "Request to create a Stripe Checkout Session for the customer.\n\nCheckout Sessions are used to collect payment method information from customers\nin a secure, Stripe-hosted interface. This integration uses setup mode to collect\npayment methods that can be charged later for subscription billing.",
  "type": "object",
  "properties": {
    "stripe_options": {
      "description": "Options for configuring the Stripe Checkout Session.\n\nThese options are passed directly to Stripe's [checkout session creation API](https://docs.stripe.com/api/checkout/sessions/create).",
      "type": "object",
      "properties": {
        "billing_address_collection": {
          "description": "Whether to collect the customer's billing address.\n\nDefaults to auto, which only collects the address when necessary for tax calculation.",
          "type": "string",
          "default": "auto",
          "enum": [
            "auto",
            "required"
          ],
          "x-speakeasy-unknown-values": "allow"
        },
        "cancel_url": {
          "description": "URL to redirect customers who cancel the checkout session.\n\nNot allowed when ui_mode is \"embedded\".",
          "type": "string"
        },
        "client_reference_id": {
          "description": "Unique reference string for reconciling sessions with internal systems.\n\nCan be a customer ID, cart ID, or any other identifier.",
          "type": "string"
        },
        "customer_update": {
          "description": "Controls which customer fields can be updated by the checkout session.",
          "type": "object",
          "properties": {
            "address": {
              "description": "Whether to save the billing address to customer.address.\n\nDefaults to \"never\".",
              "type": "string",
              "default": "never",
              "enum": [
                "auto",
                "never"
              ],
              "x-speakeasy-unknown-values": "allow"
            },
            "name": {
              "description": "Whether to save the customer name to customer.name.\n\nDefaults to \"never\".",
              "type": "string",
              "default": "never",
              "enum": [
                "auto",
                "never"
              ],
              "x-speakeasy-unknown-values": "allow"
            },
            "shipping": {
              "description": "Whether to save shipping information to customer.shipping.\n\nDefaults to \"never\".",
              "type": "string",
              "default": "never",
              "enum": [
                "auto",
                "never"
              ],
              "x-speakeasy-unknown-values": "allow"
            }
          }
        },
        "consent_collection": {
          "description": "Configuration for collecting customer consent during checkout.",
          "type": "object",
          "properties": {
            "payment_method_reuse_agreement": {
              "description": "Controls the visibility of payment method reuse agreement.",
              "type": "object",
              "properties": {
                "position": {
                  "description": "Position and visibility of the payment method reuse agreement.",
                  "type": "string",
                  "enum": [
                    "auto",
                    "hidden"
                  ],
                  "x-speakeasy-unknown-values": "allow"
                }
              }
            },
            "promotions": {
              "description": "Enables collection of promotional communication consent.\n\nOnly available to US merchants. When set to \"auto\", Checkout determines\nwhether to show the option based on the customer's locale.",
              "type": "string",
              "enum": [
                "auto",
                "none"
              ],
              "x-speakeasy-unknown-values": "allow"
            },
            "terms_of_service": {
              "description": "Requires customers to accept terms of service before payment.\n\nRequires a valid terms of service URL in your Stripe Dashboard settings.",
              "type": "string",
              "enum": [
                "none",
                "required"
              ],
              "x-speakeasy-unknown-values": "allow"
            }
          }
        },
        "currency": {
          "description": "Three-letter ISO 4217 currency code in uppercase.\n\nRequired for payment mode sessions. Optional for setup mode sessions.",
          "type": "string",
          "example": "USD",
          "maxLength": 3,
          "minLength": 3,
          "pattern": "^[A-Z]{3}$"
        },
        "custom_text": {
          "description": "Custom text to display during checkout at various stages.",
          "type": "object",
          "properties": {
            "after_submit": {
              "description": "Text displayed after the payment confirmation button.",
              "type": "object",
              "properties": {
                "message": {
                  "description": "The custom message text (max 1200 characters).",
                  "type": "string",
                  "maxLength": 1200
                }
              }
            },
            "shipping_address": {
              "description": "Text displayed alongside shipping address collection.",
              "type": "object",
              "properties": {
                "message": {
                  "description": "The custom message text (max 1200 characters).",
                  "type": "string",
                  "maxLength": 1200
                }
              }
            },
            "submit": {
              "description": "Text displayed alongside the payment confirmation button.",
              "type": "object",
              "properties": {
                "message": {
                  "description": "The custom message text (max 1200 characters).",
                  "type": "string",
                  "maxLength": 1200
                }
              }
            },
            "terms_of_service_acceptance": {
              "description": "Text replacing the default terms of service agreement text.",
              "type": "object",
              "properties": {
                "message": {
                  "description": "The custom message text (max 1200 characters).",
                  "type": "string",
                  "maxLength": 1200
                }
              }
            }
          }
        },
        "expires_at": {
          "description": "Unix timestamp when the checkout session expires.\n\nCan be 30 minutes to 24 hours from creation. Defaults to 24 hours.",
          "type": "integer",
          "format": "int64"
        },
        "locale": {
          "description": "IETF language tag for the checkout UI locale.\n\nIf blank or \"auto\", uses the browser's locale. Example: \"en\", \"fr\", \"de\".",
          "type": "string"
        },
        "metadata": {
          "description": "Set of key-value pairs to attach to the checkout session.\n\nUseful for storing additional structured information.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "return_url": {
          "description": "Return URL for embedded checkout sessions after payment authentication.\n\nRequired if ui_mode is \"embedded\" and redirect-based payment methods are enabled.",
          "type": "string"
        },
        "success_url": {
          "description": "Success URL to redirect customers after completing payment or setup.\n\nNot allowed when ui_mode is \"embedded\".\nSee: https://docs.stripe.com/payments/checkout/custom-success-page",
          "type": "string"
        },
        "ui_mode": {
          "description": "The UI mode for the checkout session.\n\n\"hosted\" displays a Stripe-hosted page. \"embedded\" integrates directly into your app.\nDefaults to \"hosted\".",
          "type": "string",
          "default": "hosted",
          "enum": [
            "embedded",
            "hosted"
          ],
          "x-speakeasy-unknown-values": "allow"
        },
        "payment_method_types": {
          "description": "List of payment method types to enable (e.g., \"card\", \"us_bank_account\").\n\nIf not specified, Stripe enables all relevant payment methods.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "redirect_on_completion": {
          "description": "Redirect behavior for embedded checkout sessions.\n\nControls when to redirect users after completion.\nSee: https://docs.stripe.com/payments/checkout/custom-success-page?payment-ui=embedded-form",
          "type": "string",
          "enum": [
            "always",
            "if_required",
            "never"
          ],
          "x-speakeasy-unknown-values": "allow"
        },
        "tax_id_collection": {
          "description": "Configuration for collecting tax IDs during checkout.",
          "type": "object",
          "properties": {
            "enabled": {
              "description": "Enable tax ID collection during checkout.\n\nDefaults to false.",
              "type": "boolean",
              "default": false
            },
            "required": {
              "description": "Whether tax ID collection is required.\n\nDefaults to \"never\".",
              "type": "string",
              "default": "never",
              "enum": [
                "if_supported",
                "never"
              ],
              "x-speakeasy-unknown-values": "allow"
            }
          }
        }
      }
    }
  },
  "required": [
    "stripe_options"
  ]
}