Skip to content

Stripe: Create a Checkout Session

Stripe checkout.postCheckoutSessions: arguments, response, policy and SDK examples.

← Checkout operations · Get started

Operation stripe.postcheckoutsessions

Provider route: POST /v1/checkout/sessions. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/stripe with npm, or alter-sdk-stripe with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { StripeIntegration } from "@alter-ai/stripe";
async function execute(input: Parameters<StripeIntegration["checkout"]["postCheckoutSessions"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new StripeIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.checkout.postCheckoutSessions(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_stripe import StripeIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = StripeIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.checkout.post_checkout_sessions(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
headersobjectOptionalAdditional keys: not allowed
headers.Idempotency-KeystringOptionalMinimum length: 1
Maximum length: 255
bodyobjectOptionalAdditional keys: not allowed
body.adaptive_pricingobjectOptionalSettings for price localization with [Adaptive Pricing](https://docs.stripe.com/payments/checkout/adaptive-pricing).
body.adaptive_pricing.enabledbooleanOptional
body.after_expirationobjectOptionalConfigure actions after a Checkout Session has expired. You can’t set this parameter if `ui_mode` is `elements`.
body.after_expiration.recoveryobjectOptional
body.after_expiration.recovery.allow_promotion_codesbooleanOptional
body.after_expiration.recovery.enabledbooleanRequired within parent
body.allow_promotion_codesbooleanOptionalEnables user redeemable promotion codes.
body.allowed_payment_method_typesarrayOptionalA list of the types of payment methods (e.g., `card`) this Checkout Session can accept.

Unlike `payment_method_types`, this acts as a filter on the dynamically computed set of
eligible payment methods rather than an explicit static list. Only payment methods that
are both dynamically eligible and present in this list will be offered to the customer.
body.allowed_payment_method_types[]stringEach itemOne of: acss_debit, affirm, afterpay_clearpay, alipay, alma, amazon_pay, au_becs_debit, bacs_debit, bancontact, billie, bizum, blik, boleto, card, cashapp, crypto, customer_balance, eps, fpx, giropay, grabpay, ideal, kakao_pay, klarna, konbini, kr_card, link, mb_way, mobilepay, multibanco, naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, payco, paynow, paypal, paypay, payto, pix, promptpay, revolut_pay, samsung_pay, satispay, scalapay, sepa_debit, sequra, sofort, sunbit, swish, twint, upi, us_bank_account, wechat_pay, zip
body.automatic_taxobjectOptionalSettings for automatic tax lookup for this session and resulting payments, invoices, and subscriptions.
body.automatic_tax.enabledbooleanRequired within parent
body.automatic_tax.liabilityobjectOptional
body.automatic_tax.liability.accountstringOptional
body.automatic_tax.liability.typestringRequired within parentOne of: account, self
body.billing_address_collectionstringOptionalSpecify whether Checkout should collect the customer’s billing address. Defaults to `auto`.
One of: auto, required
body.branding_settingsobjectOptionalThe branding settings for the Checkout Session. This parameter is not allowed if ui_mode is `elements`.
body.branding_settings.background_colorJSONOptional
body.branding_settings.background_color (anyOf 1)stringAlternativeMaximum length: 5000
body.branding_settings.background_color (anyOf 2)stringAlternativeOne of:
body.branding_settings.border_stylestringOptionalOne of: , pill, rectangular, rounded
body.branding_settings.button_colorJSONOptional
body.branding_settings.button_color (anyOf 1)stringAlternativeMaximum length: 5000
body.branding_settings.button_color (anyOf 2)stringAlternativeOne of:
body.branding_settings.display_namestringOptionalMaximum length: 5000
body.branding_settings.font_familystringOptionalOne of: , be_vietnam_pro, bitter, chakra_petch, default, hahmlet, inconsolata, inter, lato, lora, m_plus_1_code, montserrat, noto_sans, noto_sans_jp, noto_serif, nunito, open_sans, pridi, pt_sans, pt_serif, raleway, roboto, roboto_slab, source_sans_pro, titillium_web, ubuntu_mono, zen_maru_gothic
body.branding_settings.iconobjectOptional
body.branding_settings.icon.filestringOptional
body.branding_settings.icon.typestringRequired within parentOne of: file, url
body.branding_settings.icon.urlstringOptional
body.branding_settings.logoobjectOptional
body.branding_settings.logo.filestringOptional
body.branding_settings.logo.typestringRequired within parentOne of: file, url
body.branding_settings.logo.urlstringOptional
body.cancel_urlstringOptionalIf set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is `embedded_page` or `elements`.
body.client_reference_idstringOptionalA unique string to reference the Checkout Session. This can be a
customer ID, a cart ID, or similar, and can be used to reconcile the
session with your internal systems.
Maximum length: 200
body.consent_collectionobjectOptionalConfigure fields for the Checkout Session to gather active consent from customers.
body.consent_collection.payment_method_reuse_agreementobjectOptional
body.consent_collection.payment_method_reuse_agreement.positionstringRequired within parentOne of: auto, hidden
body.consent_collection.promotionsstringOptionalOne of: auto, none
body.consent_collection.terms_of_servicestringOptionalOne of: none, required
body.currencystringOptionalThree-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Required in `setup` mode when `payment_method_types` is not set.
Format: currency
body.custom_fieldsarrayOptionalCollect additional information from your customer using custom fields. Up to 3 fields are supported. You can’t set this parameter if `ui_mode` is `elements`.
body.custom_fields[]ModelEach itemExpand Create a payment link — request body — body custom fields item
body.custom_textModelOptionalExpand Create a payment link — request body — body custom text
body.customerstringOptionalID of an existing Customer, if one exists. In `payment` mode, the customer’s most recently saved card
payment method will be used to prefill the email, name, card details, and billing address
on the Checkout page. In `subscription` mode, the customer’s [default payment method](https://docs.stripe.com/api/customers/update#update_customer-invoice_settings-default_payment_method)
will be used if it’s a card, otherwise the most recently saved card will be used. A valid billing address, billing name and billing email are required on the payment method for Checkout to prefill the customer’s card details.

If the Customer already has a valid [email](https://docs.stripe.com/api/customers/object#customer_object-email) set, the email will be prefilled and not editable in Checkout.
If the Customer does not have a valid `email`, Checkout will set the email entered during the session on the Customer.

If blank for Checkout Sessions in `subscription` mode or with `customer_creation` set as `always` in `payment` mode, Checkout will create a new Customer object based on information provided during the payment flow.

You can set [`payment_intent_data.setup_future_usage`](https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-payment_intent_data-setup_future_usage) to have Checkout automatically attach the payment method to the Customer you pass in for future reuse.
Maximum length: 5000
body.customer_accountstringOptionalID of an existing Account, if one exists. Has the same behavior as `customer`.
Maximum length: 5000
body.customer_creationstringOptionalConfigure whether a Checkout Session creates a [Customer](https://docs.stripe.com/api/customers) during Session confirmation.

When a Customer is not created, you can still retrieve email, address, and other customer data entered in Checkout
with [customer_details](https://docs.stripe.com/api/checkout/sessions/object#checkout_session_object-customer_details).

Sessions that don’t create Customers instead are grouped by [guest customers](https://docs.stripe.com/payments/checkout/guest-customers)
in the Dashboard. Promotion codes limited to first time customers will return invalid for these Sessions.

Can only be set in `payment` and `setup` mode.
One of: always, if_required
body.customer_emailstringOptionalIf provided, this value will be used when the Customer object is created.
If not provided, customers will be asked to enter their email address.
Use this parameter to prefill customer data if you already have an email
on file. To access information about the customer once a session is
complete, use the `customer` field.
body.customer_updateobjectOptionalControls what fields on Customer can be updated by the Checkout Session. Can only be provided when `customer` is provided.
body.customer_update.addressstringOptionalOne of: auto, never
body.customer_update.namestringOptionalOne of: auto, never
body.customer_update.shippingstringOptionalOne of: auto, never
body.discountsarrayOptionalThe coupon or promotion code to apply to this Session. Currently, only up to one may be specified.
body.discounts[]objectEach item
body.discounts[].couponstringOptionalMaximum length: 5000
body.discounts[].promotion_codestringOptionalMaximum length: 5000
body.excluded_payment_method_typesarrayOptionalA list of the types of payment methods (e.g., `card`) that should be excluded from this Checkout Session. This should only be used when payment methods for this Checkout Session are managed through the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).
body.excluded_payment_method_types[]stringEach itemOne of: acss_debit, affirm, afterpay_clearpay, alipay, alma, amazon_pay, au_becs_debit, bacs_debit, bancontact, billie, bizum, blik, boleto, card, cashapp, crypto, customer_balance, eps, fpx, giropay, grabpay, ideal, kakao_pay, klarna, konbini, kr_card, mb_way, mobilepay, multibanco, naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, payco, paynow, paypal, paypay, payto, pix, promptpay, revolut_pay, samsung_pay, satispay, scalapay, sepa_debit, sequra, sofort, sunbit, swish, twint, upi, us_bank_account, wechat_pay, zip
body.expandarrayOptionalSpecifies which fields in the response should be expanded.
body.expand[]stringEach itemMaximum length: 5000
body.expires_atintegerOptionalThe Epoch time in seconds at which the Checkout Session will expire. It can be anywhere from 30 minutes to 24 hours after Checkout Session creation. By default, this value is 24 hours from creation.
Format: unix-time
body.integration_identifierstringOptionalThe integration identifier for this Checkout Session. Multiple Checkout Sessions can have the same integration identifier.
Maximum length: 200
body.invoice_creationobjectOptionalGenerate a post-purchase Invoice for one-time payments.
body.invoice_creation.enabledbooleanRequired within parent
body.invoice_creation.invoice_dataobjectOptional
body.invoice_creation.invoice_data.account_tax_idsJSONOptional
body.invoice_creation.invoice_data.account_tax_ids (anyOf 1)arrayAlternative
body.invoice_creation.invoice_data.account_tax_ids (anyOf 1)[]stringEach itemMaximum length: 5000
body.invoice_creation.invoice_data.account_tax_ids (anyOf 2)stringAlternativeOne of:
body.invoice_creation.invoice_data.custom_fieldsJSONOptional
body.invoice_creation.invoice_data.custom_fields (anyOf 1)arrayAlternative
body.invoice_creation.invoice_data.custom_fields (anyOf 1)[]objectEach item
body.invoice_creation.invoice_data.custom_fields (anyOf 1)[].namestringRequired within parentMaximum length: 40
body.invoice_creation.invoice_data.custom_fields (anyOf 1)[].valuestringRequired within parentMaximum length: 140
body.invoice_creation.invoice_data.custom_fields (anyOf 2)stringAlternativeOne of:
body.invoice_creation.invoice_data.descriptionstringOptionalMaximum length: 1500
body.invoice_creation.invoice_data.footerstringOptionalMaximum length: 5000
body.invoice_creation.invoice_data.issuerobjectOptional
body.invoice_creation.invoice_data.issuer.accountstringOptional
body.invoice_creation.invoice_data.issuer.typestringRequired within parentOne of: account, self
body.invoice_creation.invoice_data.metadataobjectOptionalAdditional keys: see wildcard field
body.invoice_creation.invoice_data.metadata.*stringAdditional keys
body.invoice_creation.invoice_data.rendering_optionsJSONOptional
body.invoice_creation.invoice_data.rendering_options (anyOf 1)objectAlternative
body.invoice_creation.invoice_data.rendering_options (anyOf 1).amount_tax_displaystringOptionalOne of: , exclude_tax, include_inclusive_tax
body.invoice_creation.invoice_data.rendering_options (anyOf 1).templatestringOptionalMaximum length: 5000
body.invoice_creation.invoice_data.rendering_options (anyOf 2)stringAlternativeOne of:
body.line_itemsarrayOptionalA list of items the customer is purchasing. Use this parameter to pass one-time or recurring [Prices](https://docs.stripe.com/api/prices). The parameter is required for `payment` and `subscription` mode.

For `payment` mode, there is a maximum of 100 line items, however it is recommended to consolidate line items if there are more than a few dozen.

For `subscription` mode, there is a maximum of 20 line items with recurring Prices and 20 line items with one-time Prices. Line items with one-time Prices will be on the initial invoice only.
body.line_items[]objectEach item
body.line_items[].adjustable_quantityobjectOptional
body.line_items[].adjustable_quantity.enabledbooleanRequired within parent
body.line_items[].adjustable_quantity.maximumintegerOptional
body.line_items[].adjustable_quantity.minimumintegerOptional
body.line_items[].metadataobjectOptionalAdditional keys: see wildcard field
body.line_items[].metadata.*stringAdditional keys
body.line_items[].pricestringOptionalMaximum length: 5000
body.line_items[].price_dataModelOptionalExpand Create a payment link — request body — body line items item price data
body.line_items[].quantityintegerOptional
body.line_items[].tax_ratesarrayOptional
body.line_items[].tax_rates[]stringEach itemMaximum length: 5000
body.localestringOptionalThe IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser’s locale is used.
One of: auto, bg, cs, da, de, el, en, en-GB, es, es-419, et, fi, fil, fr, fr-CA, hr, hu, id, it, ja, ko, lt, lv, ms, mt, nb, nl, pl, pt, pt-BR, ro, ru, sk, sl, sv, th, tr, vi, zh, zh-HK, zh-TW
body.managed_paymentsobjectOptionalSettings for Managed Payments for this Checkout Session and resulting [PaymentIntents](/api/payment_intents/object), [Invoices](/api/invoices/object), and [Subscriptions](/api/subscriptions/object).
body.managed_payments.enabledbooleanOptional
body.metadataobjectOptionalSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
Additional keys: see wildcard field
body.metadata.*stringAdditional keys
body.modestringOptionalThe mode of the Checkout Session. Pass `subscription` if the Checkout Session includes at least one recurring item.
One of: payment, setup, subscription
body.name_collectionobjectOptionalControls name collection settings for the session.

You can configure Checkout to collect your customers’ business names, individual names, or both. Each name field can be either required or optional.

If a [Customer](https://docs.stripe.com/api/customers) is created or provided, the names can be saved to the Customer object as well.
body.name_collection.businessobjectOptional
body.name_collection.business.enabledbooleanRequired within parent
body.name_collection.business.optionalbooleanOptional
body.name_collection.individualobjectOptional
body.name_collection.individual.enabledbooleanRequired within parent
body.name_collection.individual.optionalbooleanOptional
body.optional_itemsarrayOptionalA list of optional items the customer can add to their order at checkout. Use this parameter to pass one-time or recurring [Prices](https://docs.stripe.com/api/prices).

There is a maximum of 10 optional items allowed on a Checkout Session, and the existing limits on the number of line items allowed on a Checkout Session apply to the combined number of line items and optional items.

For `payment` mode, there is a maximum of 100 combined line items and optional items, however it is recommended to consolidate items if there are more than a few dozen.

For `subscription` mode, there is a maximum of 20 line items and optional items with recurring Prices and 20 line items and optional items with one-time Prices.

You can’t set this parameter if `ui_mode` is `elements` or `form`.
body.optional_items[]objectEach item
body.optional_items[].adjustable_quantityobjectOptional
body.optional_items[].adjustable_quantity.enabledbooleanRequired within parent
body.optional_items[].adjustable_quantity.maximumintegerOptional
body.optional_items[].adjustable_quantity.minimumintegerOptional
body.optional_items[].pricestringRequired within parentMaximum length: 5000
body.optional_items[].quantityintegerRequired within parent
body.origin_contextstringOptionalWhere the user is coming from. This informs the optimizations that are applied to the session. You can’t set this parameter if `ui_mode` is `elements`.
One of: mobile_app, web
body.payment_intent_dataobjectOptionalA subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode.
body.payment_intent_data.application_fee_amountintegerOptional
body.payment_intent_data.capture_methodstringOptionalOne of: automatic, automatic_async, manual
body.payment_intent_data.descriptionstringOptionalMaximum length: 1000
body.payment_intent_data.metadataobjectOptionalAdditional keys: see wildcard field
body.payment_intent_data.metadata.*stringAdditional keys
body.payment_intent_data.on_behalf_ofstringOptional
body.payment_intent_data.receipt_emailstringOptional
body.payment_intent_data.setup_future_usagestringOptionalOne of: off_session, on_session
body.payment_intent_data.shippingobjectOptional
body.payment_intent_data.shipping.addressobjectRequired within parent
body.payment_intent_data.shipping.address.citystringOptionalMaximum length: 5000
body.payment_intent_data.shipping.address.countrystringOptionalMaximum length: 5000
body.payment_intent_data.shipping.address.line1stringRequired within parentMaximum length: 5000
body.payment_intent_data.shipping.address.line2stringOptionalMaximum length: 5000
body.payment_intent_data.shipping.address.postal_codestringOptionalMaximum length: 5000
body.payment_intent_data.shipping.address.statestringOptionalMaximum length: 5000
body.payment_intent_data.shipping.carrierstringOptionalMaximum length: 5000
body.payment_intent_data.shipping.namestringRequired within parentMaximum length: 5000
body.payment_intent_data.shipping.phonestringOptionalMaximum length: 5000
body.payment_intent_data.shipping.tracking_numberstringOptionalMaximum length: 5000
body.payment_intent_data.statement_descriptorstringOptionalMaximum length: 22
body.payment_intent_data.statement_descriptor_suffixstringOptionalMaximum length: 22
body.payment_intent_data.transfer_dataobjectOptional
body.payment_intent_data.transfer_data.amountintegerOptional
body.payment_intent_data.transfer_data.destinationstringRequired within parent
body.payment_intent_data.transfer_groupstringOptional
body.payment_method_collectionstringOptionalSpecify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.
This may occur if the Checkout Session includes a free trial or a discount.

Can only be set in `subscription` mode. Defaults to `always`.

If you’d like information on how to collect a payment method outside of Checkout, read the guide on configuring [subscriptions with a free trial](https://docs.stripe.com/payments/checkout/free-trials).
One of: always, if_required
body.payment_method_configurationstringOptionalThe ID of the payment method configuration to use with this Checkout session.
Maximum length: 100
body.payment_method_dataobjectOptionalThis parameter allows you to set some attributes on the payment method created during a Checkout session.
body.payment_method_data.allow_redisplaystringOptionalOne of: always, limited, unspecified
body.payment_method_optionsobjectOptionalPayment-method-specific configuration.
body.payment_method_options.acss_debitobjectOptional
body.payment_method_options.acss_debit.currencystringOptionalOne of: cad, usd
body.payment_method_options.acss_debit.mandate_optionsobjectOptional
body.payment_method_options.acss_debit.mandate_options.custom_mandate_urlJSONOptional
body.payment_method_options.acss_debit.mandate_options.custom_mandate_url (anyOf 1)stringAlternative
body.payment_method_options.acss_debit.mandate_options.custom_mandate_url (anyOf 2)stringAlternativeOne of:
body.payment_method_options.acss_debit.mandate_options.default_forarrayOptional
body.payment_method_options.acss_debit.mandate_options.default_for[]stringEach itemOne of: invoice, subscription
body.payment_method_options.acss_debit.mandate_options.interval_descriptionstringOptionalMaximum length: 500
body.payment_method_options.acss_debit.mandate_options.payment_schedulestringOptionalOne of: combined, interval, sporadic
body.payment_method_options.acss_debit.mandate_options.transaction_typestringOptionalOne of: business, personal
body.payment_method_options.acss_debit.setup_future_usagestringOptionalOne of: none, off_session, on_session
body.payment_method_options.acss_debit.target_datestringOptionalMaximum length: 5000
body.payment_method_options.acss_debit.verification_methodstringOptionalOne of: automatic, instant, microdeposits
body.payment_method_options.affirmobjectOptional
body.payment_method_options.affirm.capture_methodstringOptionalOne of: manual
body.payment_method_options.affirm.setup_future_usagestringOptionalOne of: none
body.payment_method_options.afterpay_clearpayobjectOptional
body.payment_method_options.afterpay_clearpay.capture_methodstringOptionalOne of: manual
body.payment_method_options.afterpay_clearpay.setup_future_usagestringOptionalOne of: none
body.payment_method_options.alipayobjectOptional
body.payment_method_options.alipay.setup_future_usagestringOptionalOne of: none
body.payment_method_options.almaobjectOptional
body.payment_method_options.alma.capture_methodstringOptionalOne of: manual
body.payment_method_options.amazon_payobjectOptional
body.payment_method_options.amazon_pay.capture_methodstringOptionalOne of: manual
body.payment_method_options.amazon_pay.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.au_becs_debitobjectOptional
body.payment_method_options.au_becs_debit.setup_future_usagestringOptionalOne of: none
body.payment_method_options.au_becs_debit.target_datestringOptionalMaximum length: 5000
body.payment_method_options.bacs_debitobjectOptional
body.payment_method_options.bacs_debit.mandate_optionsobjectOptional
body.payment_method_options.bacs_debit.mandate_options.reference_prefixJSONOptional
body.payment_method_options.bacs_debit.mandate_options.reference_prefix (anyOf 1)stringAlternativeMaximum length: 12
body.payment_method_options.bacs_debit.mandate_options.reference_prefix (anyOf 2)stringAlternativeOne of:
body.payment_method_options.bacs_debit.setup_future_usagestringOptionalOne of: none, off_session, on_session
body.payment_method_options.bacs_debit.target_datestringOptionalMaximum length: 5000
body.payment_method_options.bancontactobjectOptional
body.payment_method_options.bancontact.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.billieobjectOptional
body.payment_method_options.billie.capture_methodstringOptionalOne of: manual
body.payment_method_options.blikobjectOptional
body.payment_method_options.blik.mandate_optionsobjectOptional
body.payment_method_options.blik.mandate_options.expires_atintegerOptionalFormat: unix-time
body.payment_method_options.blik.setup_future_usagestringOptionalOne of: , none, off_session
body.payment_method_options.boletoobjectOptional
body.payment_method_options.boleto.expires_after_daysintegerOptional
body.payment_method_options.boleto.setup_future_usagestringOptionalOne of: none, off_session, on_session
body.payment_method_options.cardobjectOptional
body.payment_method_options.card.capture_methodstringOptionalOne of: manual
body.payment_method_options.card.installmentsobjectOptional
body.payment_method_options.card.installments.enabledbooleanOptional
body.payment_method_options.card.request_extended_authorizationstringOptionalOne of: if_available, never
body.payment_method_options.card.request_incremental_authorizationstringOptionalOne of: if_available, never
body.payment_method_options.card.request_multicapturestringOptionalOne of: if_available, never
body.payment_method_options.card.request_overcapturestringOptionalOne of: if_available, never
body.payment_method_options.card.request_three_d_securestringOptionalOne of: any, automatic, challenge
body.payment_method_options.card.restrictionsobjectOptional
body.payment_method_options.card.restrictions.brands_blockedarrayOptional
body.payment_method_options.card.restrictions.brands_blocked[]stringEach itemOne of: american_express, discover_global_network, mastercard, visa
body.payment_method_options.card.restrictions.funding_types_blockedarrayOptional
body.payment_method_options.card.restrictions.funding_types_blocked[]stringEach itemOne of: credit, debit, prepaid
body.payment_method_options.card.setup_future_usagestringOptionalOne of: off_session, on_session
body.payment_method_options.card.statement_descriptor_suffix_kanastringOptionalMaximum length: 22
body.payment_method_options.card.statement_descriptor_suffix_kanjistringOptionalMaximum length: 17
body.payment_method_options.cashappobjectOptional
body.payment_method_options.cashapp.capture_methodstringOptionalOne of: manual
body.payment_method_options.cashapp.setup_future_usagestringOptionalOne of: none, off_session, on_session
body.payment_method_options.cryptoobjectOptional
body.payment_method_options.crypto.setup_future_usagestringOptionalOne of: none
body.payment_method_options.customer_balanceModelOptionalExpand Create a Checkout Session — request body — body payment method options customer balance
body.payment_method_options.demo_payobjectOptional
body.payment_method_options.demo_pay.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.epsobjectOptional
body.payment_method_options.eps.setup_future_usagestringOptionalOne of: none
body.payment_method_options.fpxobjectOptional
body.payment_method_options.fpx.setup_future_usagestringOptionalOne of: none
body.payment_method_options.giropayobjectOptional
body.payment_method_options.giropay.setup_future_usagestringOptionalOne of: none
body.payment_method_options.grabpayobjectOptional
body.payment_method_options.grabpay.setup_future_usagestringOptionalOne of: none
body.payment_method_options.idealobjectOptional
body.payment_method_options.ideal.setup_future_usagestringOptionalOne of: none
body.payment_method_options.kakao_payobjectOptional
body.payment_method_options.kakao_pay.capture_methodstringOptionalOne of: manual
body.payment_method_options.kakao_pay.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.klarnaobjectOptional
body.payment_method_options.klarna.capture_methodstringOptionalOne of: manual
body.payment_method_options.klarna.setup_future_usagestringOptionalOne of: none
body.payment_method_options.klarna.subscriptionsJSONOptional
body.payment_method_options.klarna.subscriptions (anyOf 1)arrayAlternative
body.payment_method_options.klarna.subscriptions (anyOf 1)[]objectEach item
body.payment_method_options.klarna.subscriptions (anyOf 1)[].intervalstringRequired within parentOne of: day, month, week, year
body.payment_method_options.klarna.subscriptions (anyOf 1)[].interval_countintegerOptional
body.payment_method_options.klarna.subscriptions (anyOf 1)[].namestringOptionalMaximum length: 255
body.payment_method_options.klarna.subscriptions (anyOf 1)[].next_billingobjectRequired within parent
body.payment_method_options.klarna.subscriptions (anyOf 1)[].next_billing.amountintegerRequired within parent
body.payment_method_options.klarna.subscriptions (anyOf 1)[].next_billing.datestringRequired within parentMaximum length: 5000
body.payment_method_options.klarna.subscriptions (anyOf 1)[].referencestringRequired within parentMaximum length: 255
body.payment_method_options.klarna.subscriptions (anyOf 2)stringAlternativeOne of:
body.payment_method_options.konbiniobjectOptional
body.payment_method_options.konbini.expires_after_daysintegerOptional
body.payment_method_options.konbini.setup_future_usagestringOptionalOne of: none
body.payment_method_options.kr_cardobjectOptional
body.payment_method_options.kr_card.capture_methodstringOptionalOne of: manual
body.payment_method_options.kr_card.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.linkobjectOptional
body.payment_method_options.link.capture_methodstringOptionalOne of: manual
body.payment_method_options.link.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.mobilepayobjectOptional
body.payment_method_options.mobilepay.capture_methodstringOptionalOne of: manual
body.payment_method_options.mobilepay.setup_future_usagestringOptionalOne of: none
body.payment_method_options.multibancoobjectOptional
body.payment_method_options.multibanco.setup_future_usagestringOptionalOne of: none
body.payment_method_options.naver_payobjectOptional
body.payment_method_options.naver_pay.capture_methodstringOptionalOne of: manual
body.payment_method_options.naver_pay.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.oxxoobjectOptional
body.payment_method_options.oxxo.expires_after_daysintegerOptional
body.payment_method_options.oxxo.setup_future_usagestringOptionalOne of: none
body.payment_method_options.p24objectOptional
body.payment_method_options.p24.setup_future_usagestringOptionalOne of: none
body.payment_method_options.p24.tos_shown_and_acceptedbooleanOptional
body.payment_method_options.pay_by_bankobjectOptional
body.payment_method_options.paycoobjectOptional
body.payment_method_options.payco.capture_methodstringOptionalOne of: manual
body.payment_method_options.payco.setup_future_usagestringOptionalOne of: none
body.payment_method_options.paynowobjectOptional
body.payment_method_options.paynow.setup_future_usagestringOptionalOne of: none
body.payment_method_options.paypalModelOptionalExpand Create a Checkout Session — request body — body payment method options paypal
body.payment_method_options.paytoobjectOptional
body.payment_method_options.payto.mandate_optionsModelOptionalExpand Create a Setup Intent — request body — body payment method options payto mandate options
body.payment_method_options.payto.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.pixobjectOptional
body.payment_method_options.pix.amount_includes_iofstringOptionalOne of: always, never
body.payment_method_options.pix.expires_after_secondsintegerOptional
body.payment_method_options.pix.mandate_optionsModelOptionalExpand Create a Setup Intent — request body — body payment method options pix mandate options
body.payment_method_options.pix.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.revolut_payobjectOptional
body.payment_method_options.revolut_pay.capture_methodstringOptionalOne of: manual
body.payment_method_options.revolut_pay.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.samsung_payobjectOptional
body.payment_method_options.samsung_pay.capture_methodstringOptionalOne of: manual
body.payment_method_options.samsung_pay.setup_future_usagestringOptionalOne of: none
body.payment_method_options.satispayobjectOptional
body.payment_method_options.satispay.capture_methodstringOptionalOne of: manual
body.payment_method_options.scalapayobjectOptional
body.payment_method_options.scalapay.capture_methodstringOptionalOne of: manual
body.payment_method_options.sepa_debitobjectOptional
body.payment_method_options.sepa_debit.mandate_optionsobjectOptional
body.payment_method_options.sepa_debit.mandate_options.reference_prefixJSONOptional
body.payment_method_options.sepa_debit.mandate_options.reference_prefix (anyOf 1)stringAlternativeMaximum length: 12
body.payment_method_options.sepa_debit.mandate_options.reference_prefix (anyOf 2)stringAlternativeOne of:
body.payment_method_options.sepa_debit.setup_future_usagestringOptionalOne of: none, off_session, on_session
body.payment_method_options.sepa_debit.target_datestringOptionalMaximum length: 5000
body.payment_method_options.sequraobjectOptional
body.payment_method_options.sequra.capture_methodstringOptionalOne of: manual
body.payment_method_options.sofortobjectOptional
body.payment_method_options.sofort.setup_future_usagestringOptionalOne of: none
body.payment_method_options.sunbitobjectOptional
body.payment_method_options.sunbit.capture_methodstringOptionalOne of: manual
body.payment_method_options.sunbit.setup_future_usagestringOptionalOne of: none
body.payment_method_options.swishobjectOptional
body.payment_method_options.swish.referencestringOptionalMaximum length: 5000
body.payment_method_options.twintobjectOptional
body.payment_method_options.twint.setup_future_usagestringOptionalOne of: none, off_session
body.payment_method_options.upiobjectOptional
body.payment_method_options.upi.mandate_optionsobjectOptional
body.payment_method_options.upi.mandate_options.amountintegerOptional
body.payment_method_options.upi.mandate_options.amount_typestringOptionalOne of: fixed, maximum
body.payment_method_options.upi.mandate_options.descriptionstringOptionalMaximum length: 20
body.payment_method_options.upi.mandate_options.end_dateintegerOptionalFormat: unix-time
body.payment_method_options.upi.setup_future_usagestringOptionalOne of: , none, off_session, on_session
body.payment_method_options.us_bank_accountobjectOptional
body.payment_method_options.us_bank_account.financial_connectionsobjectOptional
body.payment_method_options.us_bank_account.financial_connections.permissionsarrayOptional
body.payment_method_options.us_bank_account.financial_connections.permissions[]stringEach itemOne of: balances, ownership, payment_method, transactions
Maximum length: 5000
body.payment_method_options.us_bank_account.financial_connections.prefetcharrayOptional
body.payment_method_options.us_bank_account.financial_connections.prefetch[]stringEach itemOne of: balances, ownership, transactions
body.payment_method_options.us_bank_account.setup_future_usagestringOptionalOne of: none, off_session, on_session
body.payment_method_options.us_bank_account.target_datestringOptionalMaximum length: 5000
body.payment_method_options.us_bank_account.verification_methodstringOptionalOne of: automatic, instant
body.payment_method_options.wechat_payobjectOptional
body.payment_method_options.wechat_pay.app_idstringOptionalMaximum length: 5000
body.payment_method_options.wechat_pay.clientstringRequired within parentOne of: android, ios, web
body.payment_method_options.wechat_pay.setup_future_usagestringOptionalOne of: none
body.permissionsobjectOptionalThis property is used to set up permissions for various actions (for example, update) on the CheckoutSession object. Can only be set when creating `embedded_page` or `elements` sessions.

For specific permissions, please refer to their dedicated subsections, such as `permissions.update_shipping_details`.
body.permissions.update_shipping_detailsstringOptionalOne of: client_only, server_only
body.phone_number_collectionobjectOptionalControls phone number collection settings for the session.

We recommend that you review your privacy policy and check with your legal contacts
before using this feature. Learn more about [collecting phone numbers with Checkout](https://docs.stripe.com/payments/checkout/phone-numbers).
body.phone_number_collection.enabledbooleanRequired within parent
body.redirect_on_completionstringOptionalThis parameter applies to `ui_mode: embedded_page`. Learn more about the [redirect behavior](https://docs.stripe.com/payments/checkout/custom-success-page?payment-ui=embedded-form) of embedded sessions. Defaults to `always`.
One of: always, if_required, never
body.return_urlstringOptionalThe URL to redirect your customer back to after they authenticate or cancel their payment on the
payment method’s app or site. This parameter is required if `ui_mode` is `embedded_page` or `elements`
and redirect-based payment methods are enabled on the session.
body.saved_payment_method_optionsobjectOptionalControls saved payment method settings for the session. Only available in `payment` and `subscription` mode.
body.saved_payment_method_options.allow_redisplay_filtersarrayOptional
body.saved_payment_method_options.allow_redisplay_filters[]stringEach itemOne of: always, limited, unspecified
body.saved_payment_method_options.payment_method_removestringOptionalOne of: disabled, enabled
body.saved_payment_method_options.payment_method_savestringOptionalOne of: disabled, enabled
body.setup_intent_dataobjectOptionalA subset of parameters to be passed to SetupIntent creation for Checkout Sessions in `setup` mode.
body.setup_intent_data.descriptionstringOptionalMaximum length: 1000
body.setup_intent_data.metadataobjectOptionalAdditional keys: see wildcard field
body.setup_intent_data.metadata.*stringAdditional keys
body.setup_intent_data.on_behalf_ofstringOptional
body.shipping_address_collectionobjectOptionalWhen set, provides configuration for Checkout to collect a shipping address from a customer.
body.shipping_address_collection.allowed_countriesarrayRequired within parent
body.shipping_address_collection.allowed_countries[]stringEach itemOne of: AC, AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MK, ML, MM, MN, MO, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SZ, TA, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VA, VC, VE, VG, VN, VU, WF, WS, XK, YE, YT, ZA, ZM, ZW, ZZ
body.shipping_optionsarrayOptionalThe shipping rate options to apply to this Session. Up to a maximum of 5.
body.shipping_options[]ModelEach itemExpand Create a Checkout Session — request body — body shipping options item
body.submit_typestringOptionalDescribes the type of transaction being performed by Checkout in order
to customize relevant text on the page, such as the submit button.
`submit_type` can only be specified on Checkout Sessions in
`payment` or `subscription` mode. If blank or `auto`, `pay` is used.
You can’t set this parameter if `ui_mode` is `elements`.
One of: auto, book, donate, pay, subscribe
body.subscription_dataobjectOptionalA subset of parameters to be passed to subscription creation for Checkout Sessions in `subscription` mode.
body.subscription_data.application_fee_percentnumberOptional
body.subscription_data.billing_cycle_anchorintegerOptionalFormat: unix-time
body.subscription_data.billing_cycle_anchor_configobjectOptional
body.subscription_data.billing_cycle_anchor_config.day_of_monthintegerRequired within parent
body.subscription_data.billing_cycle_anchor_config.hourintegerOptional
body.subscription_data.billing_cycle_anchor_config.minuteintegerOptional
body.subscription_data.billing_cycle_anchor_config.monthintegerOptional
body.subscription_data.billing_cycle_anchor_config.secondintegerOptional
body.subscription_data.billing_modeobjectOptional
body.subscription_data.billing_mode.flexibleobjectOptional
body.subscription_data.billing_mode.flexible.proration_discountsstringOptionalOne of: included, itemized
body.subscription_data.billing_mode.typestringRequired within parentOne of: classic, flexible
body.subscription_data.default_tax_ratesarrayOptional
body.subscription_data.default_tax_rates[]stringEach itemMaximum length: 5000
body.subscription_data.descriptionstringOptionalMaximum length: 500
body.subscription_data.invoice_settingsobjectOptional
body.subscription_data.invoice_settings.issuerobjectOptional
body.subscription_data.invoice_settings.issuer.accountstringOptional
body.subscription_data.invoice_settings.issuer.typestringRequired within parentOne of: account, self
body.subscription_data.metadataobjectOptionalAdditional keys: see wildcard field
body.subscription_data.metadata.*stringAdditional keys
body.subscription_data.on_behalf_ofstringOptional
body.subscription_data.pending_invoice_item_intervalobjectOptional
body.subscription_data.pending_invoice_item_interval.intervalstringRequired within parentOne of: day, month, week, year
body.subscription_data.pending_invoice_item_interval.interval_countintegerOptional
body.subscription_data.proration_behaviorstringOptionalOne of: create_prorations, none
body.subscription_data.transfer_dataobjectOptional
body.subscription_data.transfer_data.amount_percentnumberOptional
body.subscription_data.transfer_data.destinationstringRequired within parent
body.subscription_data.trial_endintegerOptionalFormat: unix-time
body.subscription_data.trial_period_daysintegerOptional
body.subscription_data.trial_settingsobjectOptional
body.subscription_data.trial_settings.end_behaviorobjectRequired within parent
body.subscription_data.trial_settings.end_behavior.missing_payment_methodstringRequired within parentOne of: cancel, create_invoice, pause
body.success_urlstringOptionalThe URL to which Stripe should send customers when payment or setup
is complete.
This parameter is not allowed if ui_mode is `embedded_page` or `elements`. If you’d like to use
information from the successful Checkout Session on your page, read the
guide on [customizing your success page](https://docs.stripe.com/payments/checkout/custom-success-page).
body.tax_id_collectionobjectOptionalControls tax ID collection during checkout.
body.tax_id_collection.enabledbooleanRequired within parent
body.tax_id_collection.requiredstringOptionalOne of: if_supported, never
body.ui_modestringOptionalThe UI mode of the Session. Defaults to `hosted_page`.
One of: elements, embedded_page, form, hosted_page
body.wallet_optionsobjectOptionalWallet-specific configuration.
body.wallet_options.linkobjectOptional
body.wallet_options.link.displaystringOptionalOne of: auto, never

Referenced models: Create a payment link — request body — body custom fields item, Create a payment link — request body — body custom text, Create a Checkout Session — request body — body payment method options customer balance, Create a Setup Intent — request body — body payment method options pix mandate options, Create a Setup Intent — request body — body payment method options payto mandate options, Create a Checkout Session — request body — body payment method options paypal, Create a payment link — request body — body line items item price data, Create a Checkout Session — request body — body shipping options item

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Create a Checkout Session — response body

Referenced models: Create a Checkout Session — response body

799 more schemas are linked from the tables above, on the schema pages.

Create a payment link — request body — body custom fields item
FieldTypePresenceDescription and constraints
$objectRoot
dropdownobjectOptional
dropdown.default_valuestringOptionalMaximum length: 100
dropdown.optionsarrayRequired within parent
dropdown.options[]objectEach item
dropdown.options[].labelstringRequired within parentMaximum length: 100
dropdown.options[].valuestringRequired within parentMaximum length: 100
keystringRequired within parentMaximum length: 200
labelobjectRequired within parent
label.customstringRequired within parentMaximum length: 100
label.typestringRequired within parentOne of: custom
numericobjectOptional
numeric.default_valuestringOptionalMaximum length: 255
numeric.maximum_lengthintegerOptional
numeric.minimum_lengthintegerOptional
optionalbooleanOptional
textobjectOptional
text.default_valuestringOptionalMaximum length: 255
text.maximum_lengthintegerOptional
text.minimum_lengthintegerOptional
typestringRequired within parentOne of: dropdown, numeric, text
Create a payment link — request body — body custom text
FieldTypePresenceDescription and constraints
$objectRootDisplay additional text for your customers using custom text. You can't set this parameter if `ui_mode` is `elements`.
after_submitJSONOptional
after_submit (anyOf 1)objectAlternative
after_submit (anyOf 1).messagestringRequired within parentMaximum length: 1200
after_submit (anyOf 2)stringAlternativeOne of:
shipping_addressJSONOptional
shipping_address (anyOf 1)objectAlternative
shipping_address (anyOf 1).messagestringRequired within parentMaximum length: 1200
shipping_address (anyOf 2)stringAlternativeOne of:
submitJSONOptional
submit (anyOf 1)objectAlternative
submit (anyOf 1).messagestringRequired within parentMaximum length: 1200
submit (anyOf 2)stringAlternativeOne of:
terms_of_service_acceptanceJSONOptional
terms_of_service_acceptance (anyOf 1)objectAlternative
terms_of_service_acceptance (anyOf 1).messagestringRequired within parentMaximum length: 1200
terms_of_service_acceptance (anyOf 2)stringAlternativeOne of:
Create a Checkout Session — request body — body payment method options customer balance
FieldTypePresenceDescription and constraints
$objectRoot
bank_transferobjectOptional
bank_transfer.eu_bank_transferobjectOptional
bank_transfer.eu_bank_transfer.countrystringRequired within parentMaximum length: 5000
bank_transfer.requested_address_typesarrayOptional
bank_transfer.requested_address_types[]stringEach itemOne of: aba, iban, sepa, sort_code, spei, swift, zengin
bank_transfer.typestringRequired within parentOne of: eu_bank_transfer, gb_bank_transfer, jp_bank_transfer, mx_bank_transfer, us_bank_transfer
funding_typestringOptionalOne of: bank_transfer
setup_future_usagestringOptionalOne of: none
Create a Setup Intent — request body — body payment method options pix mandate options
FieldTypePresenceDescription and constraints
$objectRoot
amountintegerOptional
amount_includes_iofstringOptionalOne of: always, never
amount_typestringOptionalOne of: fixed, maximum
currencystringOptionalFormat: currency
end_datestringOptionalMaximum length: 5000
payment_schedulestringOptionalOne of: halfyearly, monthly, quarterly, weekly, yearly
referencestringOptionalMaximum length: 35
start_datestringOptionalMaximum length: 5000
Create a Setup Intent — request body — body payment method options payto mandate options
FieldTypePresenceDescription and constraints
$objectRoot
amountJSONOptional
amount (anyOf 1)integerAlternative
amount (anyOf 2)stringAlternativeOne of:
amount_typestringOptionalOne of: , fixed, maximum
end_dateJSONOptional
end_date (anyOf 1)stringAlternativeMaximum length: 5000
end_date (anyOf 2)stringAlternativeOne of:
payment_schedulestringOptionalOne of: , adhoc, annual, daily, fortnightly, monthly, quarterly, semi_annual, weekly
payments_per_periodJSONOptional
payments_per_period (anyOf 1)integerAlternative
payments_per_period (anyOf 2)stringAlternativeOne of:
purposestringOptionalOne of: , dependant_support, government, loan, mortgage, other, pension, personal, retail, salary, tax, utility
start_dateJSONOptional
start_date (anyOf 1)stringAlternativeMaximum length: 5000
start_date (anyOf 2)stringAlternativeOne of:
Create a Checkout Session — request body — body payment method options paypal
FieldTypePresenceDescription and constraints
$objectRoot
capture_methodstringOptionalOne of: , manual
preferred_localestringOptionalOne of: cs-CZ, da-DK, de-AT, de-DE, de-LU, el-GR, en-GB, en-US, es-ES, fi-FI, fr-BE, fr-FR, fr-LU, hu-HU, it-IT, nl-BE, nl-NL, pl-PL, pt-PT, sk-SK, sv-SE
referencestringOptionalMaximum length: 127
risk_correlation_idstringOptionalMaximum length: 32
setup_future_usagestringOptionalOne of: , none, off_session
Create a payment link — request body — body line items item price data
FieldTypePresenceDescription and constraints
$objectRoot
currencystringRequired within parentFormat: currency
productstringOptionalMaximum length: 5000
product_dataModelOptionalExpand Update an invoice's line item — request body — body price data product data
recurringobjectOptional
recurring.intervalstringRequired within parentOne of: day, month, week, year
recurring.interval_countintegerOptional
tax_behaviorstringOptionalOne of: exclusive, inclusive, unspecified
unit_amountintegerOptional
unit_amount_decimalstringOptionalFormat: decimal

Referenced models: Update an invoice's line item — request body — body price data product data

Create a Checkout Session — request body — body shipping options item
FieldTypePresenceDescription and constraints
$objectRoot
shipping_ratestringOptionalMaximum length: 5000
shipping_rate_dataModelOptionalExpand Create an invoice — request body — body shipping cost shipping rate data

Referenced models: Create an invoice — request body — body shipping cost shipping rate data

Create a Checkout Session — response body — wallet options value link
FieldTypePresenceDescription and constraints
$objectRoot
linkModelOptionalExpand Create a Checkout Session — response body — wallet options value link link

Referenced models: Create a Checkout Session — response body — wallet options value link link

Delete a customer — response body
FieldTypePresenceDescription and constraints
$objectRoot
deletedbooleanRequired within parentAlways true for a deleted object
Known values: True
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: customer
Cancel a refund — response body — presentment details
FieldTypePresenceDescription and constraints
$objectRoot
presentment_amountJSONRequired within parent
presentment_amount (anyOf 1)integerAlternativeAmount intended to be collected by this payment, denominated in `presentment_currency`.
presentment_amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
presentment_currencystringRequired within parentCurrency presented to the customer during payment.
Maximum length: 5000

SDK function policy ID: stripe.postcheckoutsessions. Catalog operation: PostCheckoutSessions. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Pinned headers: {"Stripe-Version": "2026-09-30.endive"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.