Skip to content

Stripe: Checkout schemas (part 2)

27 Stripe schemas with complete fields and constraints.

← Checkout operations · All schemas

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay konbini

FieldTypePresenceDescription and constraints
$objectRoot
expires_after_daysJSONOptional
expires_after_days (anyOf 1)JSONAlternative
expires_after_days (anyOf 1) (anyOf 1)integerAlternativeThe number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST.
expires_after_days (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
expires_after_days (anyOf 2)nullAlternative
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay link

FieldTypePresenceDescription and constraints
$objectRoot
capture_methodstringOptionalControls when the funds will be captured from the customer's account.
Known values: manual
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay oxxo

FieldTypePresenceDescription and constraints
$objectRoot
expires_after_daysJSONRequired within parent
expires_after_days (anyOf 1)integerAlternativeThe number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time.
expires_after_days (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay payco

FieldTypePresenceDescription and constraints
$objectRoot
capture_methodstringOptionalControls when the funds will be captured from the customer's account.
Known values: manual
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay paypal

FieldTypePresenceDescription and constraints
$objectRoot
capture_methodstringOptionalControls when the funds will be captured from the customer's account.
Known values: manual
preferred_localeJSONOptional
preferred_locale (anyOf 1)stringAlternativePreferred locale of the PayPal checkout page that the customer is redirected to.
Maximum length: 5000
preferred_locale (anyOf 2)nullAlternative
referenceJSONOptional
reference (anyOf 1)stringAlternativeA reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
Maximum length: 5000
reference (anyOf 2)nullAlternative
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay payto

FieldTypePresenceDescription and constraints
$objectRoot
mandate_optionsModelOptionalExpand Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay payto mandate options
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session

Referenced models: Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay payto mandate options

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay payto mandate options

FieldTypePresenceDescription and constraints
$objectRoot
amountJSONOptional
amount (anyOf 1)JSONAlternative
amount (anyOf 1) (anyOf 1)integerAlternativeAmount that will be collected. It is required when `amount_type` is `fixed`.
amount (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount (anyOf 2)nullAlternative
amount_typeJSONOptional
amount_type (anyOf 1)stringAlternativeThe type of amount that will be collected. The amount charged must be exact or up to the value of `amount` param for `fixed` or `maximum` type respectively. Defaults to `maximum`.
Known values: fixed, maximum
amount_type (anyOf 2)nullAlternative
end_dateJSONOptional
end_date (anyOf 1)stringAlternativeDate, in YYYY-MM-DD format, after which payments will not be collected. Defaults to no end date.
Maximum length: 5000
end_date (anyOf 2)nullAlternative
payment_scheduleJSONOptional
payment_schedule (anyOf 1)stringAlternativeThe periodicity at which payments will be collected. Defaults to `adhoc`.
Known values: adhoc, annual, daily, fortnightly, monthly, quarterly, semi_annual, weekly
payment_schedule (anyOf 2)nullAlternative
payments_per_periodJSONOptional
payments_per_period (anyOf 1)JSONAlternative
payments_per_period (anyOf 1) (anyOf 1)integerAlternativeThe number of payments that will be made during a payment period. Defaults to 1 except for when `payment_schedule` is `adhoc`. In that case, it defaults to no limit.
payments_per_period (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
payments_per_period (anyOf 2)nullAlternative
purposeJSONOptional
purpose (anyOf 1)stringAlternativeThe purpose for which payments are made. Has a default value based on your merchant category code.
Known values: dependant_support, government, loan, mortgage, other, pension, personal, retail, salary, tax, utility
purpose (anyOf 2)nullAlternative
start_dateJSONOptional
start_date (anyOf 1)stringAlternativeDate, in YYYY-MM-DD format, from which payments will be collected. Defaults to confirmation time.
Maximum length: 5000
start_date (anyOf 2)nullAlternative

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay pix

FieldTypePresenceDescription and constraints
$objectRoot
amount_includes_iofstringOptionalDetermines if the amount includes the IOF tax.
Known values: always, never
expires_after_secondsJSONOptional
expires_after_seconds (anyOf 1)JSONAlternative
expires_after_seconds (anyOf 1) (anyOf 1)integerAlternativeThe number of seconds after which Pix payment will expire.
expires_after_seconds (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
expires_after_seconds (anyOf 2)nullAlternative
mandate_optionsModelOptionalExpand Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay pix mandate options
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session

Referenced models: Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay pix mandate options

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay pix mandate options

FieldTypePresenceDescription and constraints
$objectRoot
amountJSONOptional
amount (anyOf 1)integerAlternativeAmount to be charged for future payments.
amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount_includes_iofstringOptionalDetermines if the amount includes the IOF tax.
Known values: always, never
amount_typestringOptionalType of amount.
Known values: fixed, maximum
currencystringOptionalThree-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
Format: currency
end_datestringOptionalDate when the mandate expires and no further payments will be charged, in `YYYY-MM-DD`.
Maximum length: 5000
payment_schedulestringOptionalSchedule at which the future payments will be charged.
Known values: halfyearly, monthly, quarterly, weekly, yearly
referencestringOptionalSubscription name displayed to buyers in their bank app.
Maximum length: 5000
start_datestringOptionalStart date of the mandate, in `YYYY-MM-DD`.
Maximum length: 5000

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay sepa debit

FieldTypePresenceDescription and constraints
$objectRoot
mandate_optionsModelOptionalExpand Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay sepa debit mandate options
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session, on_session
target_datestringOptionalControls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now.
Maximum length: 5000

Referenced models: Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay sepa debit mandate options

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay sepa debit mandate options

FieldTypePresenceDescription and constraints
$objectRoot
reference_prefixstringOptionalPrefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'.
Maximum length: 5000

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay swish

FieldTypePresenceDescription and constraints
$objectRoot
referenceJSONOptional
reference (anyOf 1)stringAlternativeThe order reference that will be displayed to customers in the Swish application. Defaults to the `id` of the Payment Intent.
Maximum length: 5000
reference (anyOf 2)nullAlternative

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay twint

FieldTypePresenceDescription and constraints
$objectRoot
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay upi

FieldTypePresenceDescription and constraints
$objectRoot
mandate_optionsModelOptionalExpand Retrieve a Mandate — response body — payment method details upi
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session, on_session

Referenced models: Retrieve a Mandate — response body — payment method details upi

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay us bank account

FieldTypePresenceDescription and constraints
$objectRoot
financial_connectionsModelOptionalExpand Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay us bank account financial connections
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none, off_session, on_session
target_datestringOptionalControls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now.
Maximum length: 5000
verification_methodstringOptionalBank account verification method. The default value is `automatic`.
Known values: automatic, instant

Referenced models: Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay us bank account financial connections

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay us bank account financial connections

FieldTypePresenceDescription and constraints
$objectRoot
filtersModelOptionalExpand Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay us bank account financial connections filters
permissionsarrayOptionalThe list of permissions to request. The `payment_method` permission must be included.
permissions[]stringEach itemKnown values: balances, ownership, payment_method, transactions
prefetchJSONOptional
prefetch (anyOf 1)arrayAlternativeData features requested to be retrieved upon account creation.
prefetch (anyOf 1)[]stringEach itemKnown values: balances, ownership, transactions
prefetch (anyOf 2)nullAlternative
return_urlstringOptionalFor webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
Maximum length: 5000

Referenced models: Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay us bank account financial connections filters

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay us bank account financial connections filters

FieldTypePresenceDescription and constraints
$objectRoot
account_subcategoriesarrayOptionalThe account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`.
account_subcategories[]stringEach itemKnown values: checking, savings

Create a Checkout Session — response body — payment method options value acss debit, affirm, afterpay clearpay, alipay, alma, amazon pay, au becs debit, bacs debit, bancontact, billie, boleto, card, cashapp, customer balance, eps, fpx, giropay, grabpay, ideal, kakao pay, klarna, konbini, kr card, link, mobilepay, multibanco, naver pay, oxxo, p24, payco, paynow, paypal, payto, pix, revolut pay, samsung pay, satispay, scalapay, sepa debit, sequra, sofort, sunbit, swish, twint, upi, us bank account, wechat pay wechat pay

FieldTypePresenceDescription and constraints
$objectRoot
app_idJSONOptional
app_id (anyOf 1)stringAlternativeThe app ID registered with WeChat Pay. Only required when client is iOS or Android.
Maximum length: 5000
app_id (anyOf 2)nullAlternative
clientJSONOptional
client (anyOf 1)stringAlternativeThe client type that the end customer will pay from
Known values: android, ios, web
client (anyOf 2)nullAlternative
setup_future_usagestringOptionalIndicates that you intend to make future payments with this PaymentIntent's payment method.

If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.

If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.

When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).
Known values: none

Create a Checkout Session — response body — permissions value update shipping details

FieldTypePresenceDescription and constraints
$objectRoot
update_shipping_detailsJSONOptional
update_shipping_details (anyOf 1)stringAlternativeDetermines which entity is allowed to update the shipping details.

Default is `client_only`. Stripe Checkout client will automatically update the shipping details. If set to `server_only`, only your server is allowed to update the shipping details.

This parameter is only supported when `ui_mode=elements`.
Known values: client_only, server_only
update_shipping_details (anyOf 2)nullAlternative

Create a Checkout Session — response body — phone number collection

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIndicates whether phone number collection is enabled for the session

Create a Checkout Session — response body — saved payment method options value allow redisplay filters, payment method remove, payment method save

FieldTypePresenceDescription and constraints
$objectRoot
allow_redisplay_filtersJSONOptional
allow_redisplay_filters (anyOf 1)arrayAlternativeUses the `allow_redisplay` value of each saved payment method to filter the set presented to a returning customer. By default, only saved payment methods with ’allow_redisplay: ‘always’ are shown in Checkout.
allow_redisplay_filters (anyOf 1)[]stringEach itemKnown values: always, limited, unspecified
allow_redisplay_filters (anyOf 2)nullAlternative
payment_method_removeJSONOptional
payment_method_remove (anyOf 1)stringAlternativeEnable customers to choose if they wish to remove their saved payment methods. Disabled by default.
Known values: disabled, enabled
payment_method_remove (anyOf 2)nullAlternative
payment_method_saveJSONOptional
payment_method_save (anyOf 1)stringAlternativeEnable customers to choose if they wish to save their payment method for future use. Disabled by default.
Known values: disabled, enabled
payment_method_save (anyOf 2)nullAlternative

Create a Checkout Session — response body — shipping address collection value allowed countries

FieldTypePresenceDescription and constraints
$objectRoot
allowed_countriesarrayRequired within parentAn array of two-letter ISO country codes representing which countries Checkout should provide as options for
shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SY, UM, VI`.
allowed_countries[]stringEach itemKnown values: 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

Create a Checkout Session — response body — shipping cost value amount subtotal, amount tax, amount total, shipping rate, taxes

FieldTypePresenceDescription and constraints
$objectRoot
amount_subtotalJSONRequired within parent
amount_subtotal (anyOf 1)integerAlternativeTotal shipping cost before any discounts or taxes are applied.
amount_subtotal (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount_taxJSONRequired within parent
amount_tax (anyOf 1)integerAlternativeTotal tax amount applied due to shipping costs. If no tax was applied, defaults to 0.
amount_tax (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
amount_totalJSONRequired within parent
amount_total (anyOf 1)integerAlternativeTotal shipping cost after discounts and taxes are applied.
amount_total (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
shipping_rateJSONOptional
shipping_rate (anyOf 1)JSONAlternativeThe ID of the ShippingRate for this order.
shipping_rate (anyOf 1) (anyOf 1)stringAlternativeMaximum length: 5000
shipping_rate (anyOf 1) (anyOf 2)ModelAlternativeExpand Create a shipping rate — response body
shipping_rate (anyOf 2)nullAlternative
taxesarrayOptionalThe taxes applied to the shipping rate.
taxes[]ModelEach itemExpand Retrieve a quote's line items — response body — data item taxes item

Referenced models: Retrieve a quote's line items — response body — data item taxes item, Create a shipping rate — response body

Create a Checkout Session — response body — shipping options item

FieldTypePresenceDescription and constraints
$objectRoot
shipping_amountJSONRequired within parent
shipping_amount (anyOf 1)integerAlternativeA non-negative integer in cents representing how much to charge.
shipping_amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
shipping_rateJSONRequired within parentThe shipping rate.
shipping_rate (anyOf 1)stringAlternativeMaximum length: 5000
shipping_rate (anyOf 2)ModelAlternativeExpand Create a shipping rate — response body

Referenced models: Create a shipping rate — response body

Create a Checkout Session — response body — tax id collection

FieldTypePresenceDescription and constraints
$objectRoot
enabledbooleanRequired within parentIndicates whether tax ID collection is enabled for the session
requiredstringRequired within parentIndicates whether a tax ID is required on the payment page
Known values: if_supported, never

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

Create a Checkout Session — response body — wallet options value link link

FieldTypePresenceDescription and constraints
$objectRoot
displaystringOptionalDescribes whether Checkout should display Link. Defaults to `auto`.
Known values: auto, never

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.