Checkout Sessions: Stripe-hosted (or embedded) payment, subscription, and setup pages. See https://docs.stripe.com/api/checkout/sessions.
Functions
create-checkout-session
fn (request: CreateCheckoutSessionRequest): Map
fn (request: CreateCheckoutSessionRequest, options: ::stripe::api/RequestOptions | Map): Map
POST /v1/checkout/sessions - Create a Checkout Session. mode is "payment", "subscription", or "setup". Redirect the customer to the returned url, then fulfil on the checkout.session.completed webhook. ui_mode is "hosted_page" (default), "embedded_page", "elements", or "form"; embedded and elements modes use return_url instead of success_url/cancel_url. To restrict methods use allowed_payment_method_types (the API removed payment_method_types in 2026-09-30.endive).
Example
::checkout ::stripe::checkout
session ::checkout/create-checkout-session(::checkout/CreateCheckoutSessionRequest({
mode: "payment",
line_items: [{price: "price_...", quantity: 1}],
success_url: "https://example.com/success?session_id={CHECKOUT_SESSION_ID}",
cancel_url: "https://example.com/cancel"
}))
session.url // => "https://checkout.stripe.com/c/pay/cs_..."
expire-checkout-session
fn (session: Str): Map
fn (session: Str, opts: Map): Map
POST /v1/checkout/sessions/{session}/expire - Expire an open Checkout Session so it can no longer be used.
get-checkout-session
fn (session: Str): Map
fn (session: Str, params: Map): Map
fn (session: Str, params: Map, opts: Map): Map
GET /v1/checkout/sessions/{session} - Retrieve a Checkout Session by ID. Check payment_status ("paid", "unpaid", "no_payment_required") after redirect. Optional params such as {expand: ["line_items", "subscription"]}.
list-checkout-session-line-items
fn (session: Str): Map
fn (session: Str, params: Map): Map
fn (session: Str, params: Map, opts: Map): Map
GET /v1/checkout/sessions/{session}/line_items - List the line items of a Checkout Session. Optional params: limit, starting_after, expand.
list-checkout-sessions
fn (): Map
fn (request: ListCheckoutSessionsRequest): Map
fn (request: ListCheckoutSessionsRequest, opts: Map): Map
GET /v1/checkout/sessions - List Checkout Sessions. Filter by customer, payment_intent, subscription, or status ("open", "complete", "expired").
update-checkout-session
fn (session: Str, params: Map): Map
fn (session: Str, params: Map, opts: Map): Map
POST /v1/checkout/sessions/{session} - Update an open Checkout Session. params takes the API's fields directly: metadata, line_items, shipping_options, collected_information.
Types
CreateCheckoutSessionRequest
CreateCheckoutSessionRequest type {
mode: Str,
line_items: Vec<Map>?,
success_url: Str?,
cancel_url: Str?,
return_url: Str?,
ui_mode: Str?,
customer: Str?,
customer_email: Str?,
customer_creation: Str?,
customer_update: Map?,
client_reference_id: Str?,
currency: Str?,
locale: Str?,
metadata: Map?,
allowed_payment_method_types: Vec<Str>?,
excluded_payment_method_types: Vec<Str>?,
payment_method_collection: Str?,
subscription_data: Map?,
payment_intent_data: Map?,
setup_intent_data: Map?,
allow_promotion_codes: Bool?,
discounts: Vec<Map>?,
automatic_tax: Map?,
tax_id_collection: Map?,
billing_address_collection: Str?,
shipping_address_collection: Map?,
phone_number_collection: Map?,
invoice_creation: Map?,
submit_type: Str?,
expires_at: Int?,
expand: Vec<Str>?
}
ListCheckoutSessionsRequest
ListCheckoutSessionsRequest type {
customer: Str?,
customer_details: Map?,
payment_intent: Str?,
payment_link: Str?,
subscription: Str?,
status: Str?,
created: Any?,
limit: Int?,
starting_after: Str?,
ending_before: Str?,
expand: Vec<Str>?
}