The Checkout Session object 

Checkout
Checkout Sessions
The Checkout Session object

Attributes

  • idstring

    Unique identifier for the object.

  • automatic_taxobject

    Details on the state of automatic tax for the session, including the status of the latest tax calculation.

    • automatic_tax.enabledboolean

      Indicates whether automatic tax is enabled for the session

    • automatic_tax.liabilitynullable objectConnect only

      The account that’s liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.

      • automatic_tax.liability.accountnullable stringExpandable

        The connected account being referenced when type is account.

      • automatic_tax.liability.typeenum

        Type of the account referenced.

        Possible enum values
        account

        Indicates that the account being referenced is a connected account which is different from the account making the API request but related to it.

        self

        Indicates that the account being referenced is the account making the API request.

    • automatic_tax.providernullable string

      The tax provider powering automatic tax.

    • automatic_tax.statusnullable enum

      The status of the most recent automated tax calculation for this session.

      Possible enum values
      complete

      The automatic tax calculation was successful.

      failed

      The tax calculation failed, please try again later.

      requires_location_inputs

      The location details supplied on the customer aren’t valid or don’t provide enough location information to accurately determine tax rates for the customer.

  • client_reference_idnullable string

    A 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.

  • currencynullable enum

    Three-letter ISO currency code, in lowercase. Must be a supported currency.

  • customernullable stringExpandable

    The ID of the customer for this Session. For Checkout Sessions in subscription mode or Checkout Sessions with customer_creation set as always in payment mode, Checkout will create a new customer object based on information provided during the payment flow unless an existing customer was provided when the Session was created.

  • customer_emailnullable string

    If 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 the payment flow is complete, use the customer attribute.

  • line_itemsnullable objectExpandable

    The line items purchased by the customer.

    • line_items.objectstring

      String representing the object’s type. Objects of the same type share the same value. Always has the value list.

    • line_items.dataarray of objects

      Details about each object.

      • line_items.data.idstring

        Unique identifier for the object.

      • line_items.data.objectstring

        String representing the object’s type. Objects of the same type share the same value.

      • line_items.data.amount_discountinteger

        Total discount amount applied. If no discounts were applied, defaults to 0.

      • line_items.data.amount_subtotalinteger

        Total before any discounts or taxes are applied.

      • line_items.data.amount_taxinteger

        Total tax amount applied. If no tax was applied, defaults to 0.

      • line_items.data.amount_totalinteger

        Total after discounts and taxes.

      • line_items.data.currencyenum

        Three-letter ISO currency code, in lowercase. Must be a supported currency.

      • line_items.data.descriptionnullable string

        An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name.

      • line_items.data.discountsnullable array of objectsExpandable

        The discounts applied to the line item.

        • line_items.data.discounts.amountinteger

          The amount discounted.

        • line_items.data.discounts.discountobject

          The discount applied.

          • line_items.data.discounts.discount.idstring

            The ID of the discount object. Discounts cannot be fetched by ID. Use expand[]=discounts in API calls to expand discount IDs in an array.

          • line_items.data.discounts.discount.objectstring

            String representing the object’s type. Objects of the same type share the same value.

          • line_items.data.discounts.discount.checkout_sessionnullable string

            The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.

          • line_items.data.discounts.discount.couponobject

            Hash describing the coupon applied to create this discount.

            • line_items.data.discounts.discount.coupon.idstring

              Unique identifier for the object.

            • line_items.data.discounts.discount.coupon.objectstring

              String representing the object’s type. Objects of the same type share the same value.

            • line_items.data.discounts.discount.coupon.amount_offnullable integer

              Amount (in the currency specified) that will be taken off the subtotal of any invoices for this customer.

            • line_items.data.discounts.discount.coupon.applies_tonullable objectExpandable

              Contains information about what this coupon applies to.

              • line_items.data.discounts.discount.coupon.applies_to.productsarray of strings

                A list of product IDs this coupon applies to

            • line_items.data.discounts.discount.coupon.createdtimestamp

              Time at which the object was created. Measured in seconds since the Unix epoch.

            • line_items.data.discounts.discount.coupon.currencynullable enum

              If amount_off has been set, the three-letter ISO code for the currency of the amount to take off.

            • line_items.data.discounts.discount.coupon.currency_optionsnullable objectExpandable

              Coupons defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.

              • line_items.data.discounts.discount.coupon.currency_options.<currency>.amount_offinteger

                Amount (in the currency specified) that will be taken off the subtotal of any invoices for this customer.

            • line_items.data.discounts.discount.coupon.durationenum

              One of forever, once, or repeating. Describes how long a customer who applies this coupon will get the discount.

              Possible enum values
              forever

              Applies to all charges from a subscription with this coupon applied.

              once

              Applies to the first charge from a subscription with this coupon applied.

              repeating

              Applies to charges in the first duration_in_months months from a subscription with this coupon applied. This value is deprecated and will be replaced in future versions of the API.

            • line_items.data.discounts.discount.coupon.duration_in_monthsnullable integerDeprecated

              If duration is repeating, the number of months the coupon applies. Null if coupon duration is forever or once.

            • line_items.data.discounts.discount.coupon.livemodeboolean

              Has the value true if the object exists in live mode or the value false if the object exists in test mode.

            • line_items.data.discounts.discount.coupon.max_redemptionsnullable integer

              Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.

            • line_items.data.discounts.discount.coupon.metadatanullable object

              Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

            • line_items.data.discounts.discount.coupon.namenullable string

              Name of the coupon displayed to customers on for instance invoices or receipts.

            • line_items.data.discounts.discount.coupon.percent_offnullable float

              Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $100 invoice $50 instead.

            • line_items.data.discounts.discount.coupon.redeem_bynullable timestamp

              Date after which the coupon can no longer be redeemed.

            • line_items.data.discounts.discount.coupon.times_redeemedinteger

              Number of times this coupon has been applied to a customer.

            • line_items.data.discounts.discount.coupon.validboolean

              Taking account of the above properties, whether this coupon can still be applied to a customer.

          • line_items.data.discounts.discount.customernullable stringExpandable

            The ID of the customer associated with this discount.

          • line_items.data.discounts.discount.endnullable timestamp

            If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.

          • line_items.data.discounts.discount.invoicenullable string

            The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice.

          • line_items.data.discounts.discount.invoice_itemnullable string

            The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.

          • line_items.data.discounts.discount.promotion_codenullable stringExpandable

            The promotion code applied to create this discount.

          • line_items.data.discounts.discount.starttimestamp

            Date that the coupon was applied.

          • line_items.data.discounts.discount.subscriptionnullable string

            The subscription that this coupon is applied to, if it is applied to a particular subscription.

          • line_items.data.discounts.discount.subscription_itemnullable string

            The subscription item that this coupon is applied to, if it is applied to a particular subscription item.

      • line_items.data.pricenullable object

        The price used to generate the line item.

        • line_items.data.price.idstring

          Unique identifier for the object.

        • line_items.data.price.objectstring

          String representing the object’s type. Objects of the same type share the same value.

        • line_items.data.price.activeboolean

          Whether the price can be used for new purchases.

        • line_items.data.price.billing_schemeenum

          Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.

          Possible enum values
          per_unit
          tiered
        • line_items.data.price.createdtimestamp

          Time at which the object was created. Measured in seconds since the Unix epoch.

        • line_items.data.price.currencyenum

          Three-letter ISO currency code, in lowercase. Must be a supported currency.

        • line_items.data.price.currency_optionsnullable objectExpandable

          Prices defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.

          • line_items.data.price.currency_options.<currency>.custom_unit_amountnullable object

            When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.

            • line_items.data.price.currency_options.<currency>.custom_unit_amount.maximumnullable integer

              The maximum unit amount the customer can specify for this item.

            • line_items.data.price.currency_options.<currency>.custom_unit_amount.minimumnullable integer

              The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.

            • line_items.data.price.currency_options.<currency>.custom_unit_amount.presetnullable integer

              The starting unit amount which can be updated by the customer.

          • line_items.data.price.currency_options.<currency>.tax_behaviornullable enum

            Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of inclusive, exclusive, or unspecified. Once specified as either inclusive or exclusive, it cannot be changed.

            Possible enum values
            exclusive
            inclusive
            unspecified
          • line_items.data.price.currency_options.<currency>.tiersnullable array of objectsExpandable

            Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.

            • line_items.data.price.currency_options.<currency>.tiers.flat_amountnullable integer

              Price for the entire tier.

            • line_items.data.price.currency_options.<currency>.tiers.flat_amount_decimalnullable decimal string

              Same as flat_amount, but contains a decimal value with at most 12 decimal places.

            • line_items.data.price.currency_options.<currency>.tiers.unit_amountnullable integer

              Per unit price for units relevant to the tier.

            • line_items.data.price.currency_options.<currency>.tiers.unit_amount_decimalnullable decimal string

              Same as unit_amount, but contains a decimal value with at most 12 decimal places.

            • line_items.data.price.currency_options.<currency>.tiers.up_tonullable integer

              Up to and including to this quantity will be contained in the tier.

          • line_items.data.price.currency_options.<currency>.unit_amountnullable integer

            The unit amount in cents to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.

          • line_items.data.price.currency_options.<currency>.unit_amount_decimalnullable decimal string

            The unit amount in cents to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.

        • line_items.data.price.custom_unit_amountnullable object

          When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.

          • line_items.data.price.custom_unit_amount.maximumnullable integer

            The maximum unit amount the customer can specify for this item.

          • line_items.data.price.custom_unit_amount.minimumnullable integer

            The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.

          • line_items.data.price.custom_unit_amount.presetnullable integer

            The starting unit amount which can be updated by the customer.

        • line_items.data.price.livemodeboolean

          Has the value true if the object exists in live mode or the value false if the object exists in test mode.

        • line_items.data.price.lookup_keynullable string

          A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.

        • line_items.data.price.metadataobject

          Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

        • line_items.data.price.nicknamenullable string

          A brief description of the price, hidden from customers.

        • line_items.data.price.productstringExpandable

          The ID of the product this price is associated with.

        • line_items.data.price.recurringnullable object

          The recurring components of a price such as interval and usage_type.

          • line_items.data.price.recurring.intervalenum

            The frequency at which a subscription is billed. One of day, week, month or year.

          • line_items.data.price.recurring.interval_countinteger

            The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.

          • line_items.data.price.recurring.meternullable string

            The meter tracking the usage of a metered price

          • line_items.data.price.recurring.usage_typeenum

            Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.

        • line_items.data.price.tax_behaviornullable enum

          Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of inclusive, exclusive, or unspecified. Once specified as either inclusive or exclusive, it cannot be changed.

          Possible enum values
          exclusive
          inclusive
          unspecified
        • line_items.data.price.tiersnullable array of objectsExpandable

          Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.

          • line_items.data.price.tiers.flat_amountnullable integer

            Price for the entire tier.

          • line_items.data.price.tiers.flat_amount_decimalnullable decimal string

            Same as flat_amount, but contains a decimal value with at most 12 decimal places.

          • line_items.data.price.tiers.unit_amountnullable integer

            Per unit price for units relevant to the tier.

          • line_items.data.price.tiers.unit_amount_decimalnullable decimal string

            Same as unit_amount, but contains a decimal value with at most 12 decimal places.

          • line_items.data.price.tiers.up_tonullable integer

            Up to and including to this quantity will be contained in the tier.

        • line_items.data.price.tiers_modenullable enum

          Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.

          Possible enum values
          graduated
          volume
        • line_items.data.price.transform_quantitynullable object

          Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with tiers.

          • line_items.data.price.transform_quantity.divide_byinteger

            Divide usage by this number.

          • line_items.data.price.transform_quantity.roundenum

            After division, either round the result up or down.

        • line_items.data.price.typeenum

          One of one_time or recurring depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.

          Possible enum values
          one_time
          recurring
        • line_items.data.price.unit_amountnullable integer

          The unit amount in cents to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.

        • line_items.data.price.unit_amount_decimalnullable decimal string

          The unit amount in cents to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.

      • line_items.data.quantitynullable integer

        The quantity of products being purchased.

      • line_items.data.taxesnullable array of objectsExpandable

        The taxes applied to the line item.

        • line_items.data.taxes.amountinteger

          Amount of tax applied for this rate.

        • line_items.data.taxes.rateobject

          The tax rate applied.

          • line_items.data.taxes.rate.idstring

            Unique identifier for the object.

          • line_items.data.taxes.rate.objectstring

            String representing the object’s type. Objects of the same type share the same value.

          • line_items.data.taxes.rate.activeboolean

            Defaults to true. When set to false, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.

          • line_items.data.taxes.rate.countrynullable string

            Two-letter country code (ISO 3166-1 alpha-2).

          • line_items.data.taxes.rate.createdtimestamp

            Time at which the object was created. Measured in seconds since the Unix epoch.

          • line_items.data.taxes.rate.descriptionnullable string

            An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.

          • line_items.data.taxes.rate.display_namestring

            The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.

          • line_items.data.taxes.rate.effective_percentagenullable float

            Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product’s taxability and whether the user is registered to collect taxes in the corresponding jurisdiction.

          • line_items.data.taxes.rate.flat_amountnullable object

            The amount of the tax rate when the rate_type is flat_amount. Tax rates with rate_type percentage can vary based on the transaction, resulting in this field being null. This field exposes the amount and currency of the flat tax rate.

            • line_items.data.taxes.rate.flat_amount.amountinteger

              Amount of the tax when the rate_type is flat_amount. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).

            • line_items.data.taxes.rate.flat_amount.currencystring

              Three-letter ISO currency code, in lowercase.

          • line_items.data.taxes.rate.inclusiveboolean

            This specifies if the tax rate is inclusive or exclusive.

          • line_items.data.taxes.rate.jurisdictionnullable string

            The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.

          • line_items.data.taxes.rate.jurisdiction_levelnullable enum

            The level of the jurisdiction that imposes this tax rate. Will be null for manually defined tax rates.

            Possible enum values
            city
            country
            county
            district
            multiple
            state
          • line_items.data.taxes.rate.livemodeboolean

            Has the value true if the object exists in live mode or the value false if the object exists in test mode.

          • line_items.data.taxes.rate.metadatanullable object

            Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

          • line_items.data.taxes.rate.percentagefloat

            Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.

          • line_items.data.taxes.rate.rate_typenullable enum

            Indicates the type of tax rate applied to the taxable amount. This value can be null when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax.

            Possible enum values
            flat_amount

            A fixed amount applied as tax, regardless of the taxable amount, such as a retail delivery fee.

            percentage

            A tax rate expressed as a percentage of the taxable amount, such as the sales tax rate in California.

          • line_items.data.taxes.rate.statenullable string

            ISO 3166-2 subdivision code, without country prefix. For example, “NY” for New York, United States.

          • line_items.data.taxes.rate.tax_typenullable enum

            The high-level tax type, such as vat or sales_tax.

            Possible enum values
            amusement_tax

            Amusement Tax

            communications_tax

            Communications Tax

            gst

            Goods and Services Tax

            hst

            Harmonized Sales Tax

            igst

            Integrated Goods and Services Tax

            jct

            Japanese Consumption Tax

            lease_tax

            Chicago Lease Tax

            pst

            Provincial Sales Tax

            qst

            Quebec Sales Tax

            retail_delivery_fee

            Retail Delivery Fee

            Show 4 more
        • line_items.data.taxes.taxability_reasonnullable enum

          The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.

          Possible enum values
          customer_exempt

          No tax is applied as the customer is exempt from tax.

          not_collecting

          No tax is collected either because you are not registered to collect tax in this jurisdiction, or because the non-taxable product tax code (txcd_00000000) was used.

          not_subject_to_tax

          No tax is imposed on this transaction.

          not_supported

          No tax applied. Stripe doesn’t support this jurisdiction, territory, or product.

          portion_product_exempt

          A portion of the price is exempt from tax.

          portion_reduced_rated

          A portion of the price is taxed at a reduced rate.

          portion_standard_rated

          A portion of the price is taxed at the standard rate.

          product_exempt

          The product or service is nontaxable or exempt from tax.

          product_exempt_holiday

          The product or service is not taxed due to a sales tax holiday.

          proportionally_rated

          The shipping cost tax rate is calculated as a weighted average of the other line items’ rates, weighted by their amounts.

          Show 5 more
        • line_items.data.taxes.taxable_amountnullable integer

          The amount on which tax is calculated, in cents.

    • line_items.has_moreboolean

      True if this list has another page of items after this one that can be fetched.

    • line_items.urlstring

      The URL where this list can be accessed.

  • metadatanullable object

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

  • modeenum

    The mode of the Checkout Session.

    Possible enum values
    payment

    Accept one-time payments for cards, iDEAL, and more.

    setup

    Save payment details to charge your customers later.

    subscription

    Use Stripe Billing to set up fixed-price subscriptions.

  • payment_intentnullable stringExpandable

    The ID of the PaymentIntent for Checkout Sessions in payment mode. You can’t confirm or cancel the PaymentIntent for a Checkout Session. To cancel, expire the Checkout Session instead.

  • payment_statusenum

    The payment status of the Checkout Session, one of paid, unpaid, or no_payment_required. You can use this value to decide when to fulfill your customer’s order.

    Possible enum values
    no_payment_required

    The payment is delayed to a future date, or the Checkout Session is in setup mode and doesn’t require a payment at this time.

    paid

    The payment funds are available in your account.

    unpaid

    The payment funds are not yet available in your account.

  • return_urlnullable string

    Applies to Checkout Sessions with ui_mode: embedded or ui_mode: custom. The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method’s app or site.

  • statusnullable enum

    The status of the Checkout Session, one of open, complete, or expired.

    Possible enum values
    complete

    The checkout session is complete. Payment processing may still be in progress

    expired

    The checkout session has expired. No further processing will occur

    open

    The checkout session is still in progress. Payment processing has not started

  • success_urlnullable string

    The URL the customer will be directed to after the payment or subscription creation is successful.

  • ui_modenullable enum

    The UI mode of the Session. Defaults to hosted.

    Possible enum values
    custom

    The Checkout Session will be displayed using embedded components on your website

    embedded

    The Checkout Session will be displayed as an embedded form on your website.

    hosted

    The Checkout Session will be displayed on a hosted page that customers will be redirected to.

  • urlnullable string

    The URL to the Checkout Session. Applies to Checkout Sessions with ui_mode: hosted. Redirect customers to this URL to take them to Checkout. If you’re using Custom Domains, the URL will use your subdomain. Otherwise, it’ll use checkout.stripe.com. This value is only present when the session is active.

More attributes

  • objectstring

    String representing the object’s type. Objects of the same type share the same value.

  • adaptive_pricingnullable object

    Settings for price localization with Adaptive Pricing.

    • adaptive_pricing.enabledboolean

      If enabled, Adaptive Pricing is available on eligible sessions.

  • after_expirationnullable object

    When set, provides configuration for actions to take if this Checkout Session expires.

    • after_expiration.recoverynullable object

      When set, configuration used to recover the Checkout Session on expiry.

      • after_expiration.recovery.allow_promotion_codesboolean

        Enables user redeemable promotion codes on the recovered Checkout Sessions. Defaults to false

      • after_expiration.recovery.enabledboolean

        If true, a recovery url will be generated to recover this Checkout Session if it expires before a transaction is completed. It will be attached to the Checkout Session object upon expiration.

      • after_expiration.recovery.expires_atnullable timestamp

        The timestamp at which the recovery URL will expire.

      • after_expiration.recovery.urlnullable string

        URL that creates a new Checkout Session when clicked that is a copy of this expired Checkout Session

  • allow_promotion_codesnullable boolean

    Enables user redeemable promotion codes.

  • amount_subtotalnullable integer

    Total of all items before discounts or taxes are applied.

  • amount_totalnullable integer

    Total of all items after discounts and taxes are applied.

  • billing_address_collectionnullable enum

    Describes whether Checkout should collect the customer’s billing address. Defaults to auto.

    Possible enum values
    auto

    Checkout will only collect the billing address when necessary. When using automatic_tax, Checkout will collect the minimum number of fields required for tax calculation.

    required

    Checkout will always collect the customer’s billing address.

  • cancel_urlnullable string

    If 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.

  • client_secretnullable string

    The client secret of your Checkout Session. Applies to Checkout Sessions with ui_mode: embedded or ui_mode: custom. For ui_mode: embedded, the client secret is to be used when initializing Stripe.js embedded checkout. For ui_mode: custom, use the client secret with initCheckout on your front end.

  • collected_informationnullable object

    Information about the customer collected within the Checkout Session.

    • collected_information.shipping_detailsnullable object

      Shipping information for this Checkout Session.

      • collected_information.shipping_details.addressobject

        Customer address.

        • collected_information.shipping_details.address.citynullable string

          City, district, suburb, town, or village.

        • collected_information.shipping_details.address.countrynullable string

          Two-letter country code (ISO 3166-1 alpha-2).

        • collected_information.shipping_details.address.line1nullable string

          Address line 1 (e.g., street, PO Box, or company name).

        • collected_information.shipping_details.address.line2nullable string

          Address line 2 (e.g., apartment, suite, unit, or building).

        • collected_information.shipping_details.address.postal_codenullable string

          ZIP or postal code.

        • collected_information.shipping_details.address.statenullable string

          State, county, province, or region.

      • collected_information.shipping_details.namestring

        Customer name.

  • consentnullable object

    Results of consent_collection for this session.

    • consent.promotionsnullable enum

      If opt_in, the customer consents to receiving promotional communications from the merchant about this Checkout Session.

      Possible enum values
      opt_in
      opt_out
    • consent.terms_of_servicenullable enum

      If accepted, the customer in this Checkout Session has agreed to the merchant’s terms of service.

      Possible enum values
      accepted

      The customer has accepted the specified terms of service agreement.

  • consent_collectionnullable object

    When set, provides configuration for the Checkout Session to gather active consent from customers.

    • consent_collection.payment_method_reuse_agreementnullable object

      If set to hidden, it will hide legal text related to the reuse of a payment method.

      • consent_collection.payment_method_reuse_agreement.positionenum

        Determines the position and visibility of the payment method reuse agreement in the UI. When set to auto, Stripe’s defaults will be used.

        When set to hidden, the payment method reuse agreement text will always be hidden in the UI.

        Possible enum values
        auto
        hidden
    • consent_collection.promotionsnullable enum

      If set to auto, enables the collection of customer consent for promotional communications. The Checkout Session will determine whether to display an option to opt into promotional communication from the merchant depending on the customer’s locale. Only available to US merchants.

      Possible enum values
      auto
      none
    • consent_collection.terms_of_servicenullable enum

      If set to required, it requires customers to accept the terms of service before being able to pay.

      Possible enum values
      none
      required
  • createdtimestamp

    Time at which the object was created. Measured in seconds since the Unix epoch.

  • currency_conversionnullable object

    Currency conversion details for Adaptive Pricing sessions created before 2025-03-31.

    • currency_conversion.amount_subtotalinteger

      Total of all items in source currency before discounts or taxes are applied.

    • currency_conversion.amount_totalinteger

      Total of all items in source currency after discounts and taxes are applied.

    • currency_conversion.fx_ratedecimal string

      Exchange rate used to convert source currency amounts to customer currency amounts

    • currency_conversion.source_currencystring

      Creation currency of the CheckoutSession before localization

  • custom_fieldsarray of objects

    Collect additional information from your customer using custom fields. Up to 3 fields are supported.

    • custom_fields.dropdownnullable object

      Configuration for type=dropdown fields.

      • custom_fields.dropdown.default_valuenullable string

        The value that will pre-fill on the payment page.

      • custom_fields.dropdown.optionsarray of objects

        The options available for the customer to select. Up to 200 options allowed.

        • custom_fields.dropdown.options.labelstring

          The label for the option, displayed to the customer. Up to 100 characters.

        • custom_fields.dropdown.options.valuestring

          The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters.

      • custom_fields.dropdown.valuenullable string

        The option selected by the customer. This will be the value for the option.

    • custom_fields.keystring

      String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters.

    • custom_fields.labelobject

      The label for the field, displayed to the customer.

      • custom_fields.label.customnullable string

        Custom text for the label, displayed to the customer. Up to 50 characters.

      • custom_fields.label.typeenum

        The type of the label.

        Possible enum values
        custom

        Set a custom label for the field.

    • custom_fields.numericnullable object

      Configuration for type=numeric fields.

      • custom_fields.numeric.default_valuenullable string

        The value that will pre-fill the field on the payment page.

      • custom_fields.numeric.maximum_lengthnullable integer

        The maximum character length constraint for the customer’s input.

      • custom_fields.numeric.minimum_lengthnullable integer

        The minimum character length requirement for the customer’s input.

      • custom_fields.numeric.valuenullable string

        The value entered by the customer, containing only digits.

    • custom_fields.optionalboolean

      Whether the customer is required to complete the field before completing the Checkout Session. Defaults to false.

    • custom_fields.textnullable object

      Configuration for type=text fields.

      • custom_fields.text.default_valuenullable string

        The value that will pre-fill the field on the payment page.

      • custom_fields.text.maximum_lengthnullable integer

        The maximum character length constraint for the customer’s input.

      • custom_fields.text.minimum_lengthnullable integer

        The minimum character length requirement for the customer’s input.

      • custom_fields.text.valuenullable string

        The value entered by the customer.

    • custom_fields.typeenum

      The type of the field.

      Possible enum values
      dropdown

      Provide a list of options for your customer to select.

      numeric

      Collect a numbers-only field from your customer.

      text

      Collect a string field from your customer.

  • custom_textobject

    Display additional text for your customers using custom text.

    • custom_text.after_submitnullable object

      Custom text that should be displayed after the payment confirmation button.

      • custom_text.after_submit.messagestring

        Text may be up to 1200 characters in length.

    • custom_text.shipping_addressnullable object

      Custom text that should be displayed alongside shipping address collection.

      • custom_text.shipping_address.messagestring

        Text may be up to 1200 characters in length.

    • custom_text.submitnullable object

      Custom text that should be displayed alongside the payment confirmation button.

      • custom_text.submit.messagestring

        Text may be up to 1200 characters in length.

    • custom_text.terms_of_service_acceptancenullable object

      Custom text that should be displayed in place of the default terms of service agreement text.

      • custom_text.terms_of_service_acceptance.messagestring

        Text may be up to 1200 characters in length.

  • customer_creationnullable enum

    Configure whether a Checkout Session creates a Customer when the Checkout Session completes.

    Possible enum values
    always

    The Checkout Session will always create a Customer when a Session confirmation is attempted.

    if_required

    The Checkout Session will only create a Customer if it is required for Session confirmation. Currently, only subscription mode Sessions and payment mode Sessions with post-purchase invoices enabled require a Customer.

  • customer_detailsnullable object

    The customer details including the customer’s tax exempt status and the customer’s tax IDs. Customer’s address details are not present on Sessions in setup mode.

    • customer_details.addressnullable object

      The customer’s address after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022.

      • customer_details.address.citynullable string

        City, district, suburb, town, or village.

      • customer_details.address.countrynullable string

        Two-letter country code (ISO 3166-1 alpha-2).

      • customer_details.address.line1nullable string

        Address line 1 (e.g., street, PO Box, or company name).

      • customer_details.address.line2nullable string

        Address line 2 (e.g., apartment, suite, unit, or building).

      • customer_details.address.postal_codenullable string

        ZIP or postal code.

      • customer_details.address.statenullable string

        State, county, province, or region.

    • customer_details.emailnullable string

      The email associated with the Customer, if one exists, on the Checkout Session after a completed Checkout Session or at time of session expiry. Otherwise, if the customer has consented to promotional content, this value is the most recent valid email provided by the customer on the Checkout form.

    • customer_details.namenullable string

      The customer’s name after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022.

    • customer_details.phonenullable string

      The customer’s phone number after a completed Checkout Session.

    • customer_details.tax_exemptnullable enum

      The customer’s tax exempt status after a completed Checkout Session.

      Possible enum values
      exempt
      none
      reverse
    • customer_details.tax_idsnullable array of objects

      The customer’s tax IDs after a completed Checkout Session.

      • customer_details.tax_ids.typeenum

        The type of the tax ID, one of ad_nrt, ar_cuit, eu_vat, bo_tin, br_cnpj, br_cpf, cn_tin, co_nit, cr_tin, do_rcn, ec_ruc, eu_oss_vat, hr_oib, pe_ruc, ro_tin, rs_pib, sv_nit, uy_ruc, ve_rif, vn_tin, gb_vat, nz_gst, au_abn, au_arn, in_gst, no_vat, no_voec, za_vat, ch_vat, mx_rfc, sg_uen, ru_inn, ru_kpp, ca_bn, hk_br, es_cif, tw_vat, th_vat, jp_cn, jp_rn, jp_trn, li_uid, li_vat, my_itn, us_ein, kr_brn, ca_qst, ca_gst_hst, ca_pst_bc, ca_pst_mb, ca_pst_sk, my_sst, sg_gst, ae_trn, cl_tin, sa_vat, id_npwp, my_frp, il_vat, ge_vat, ua_vat, is_vat, bg_uic, hu_tin, si_tin, ke_pin, tr_tin, eg_tin, ph_tin, al_tin, bh_vat, kz_bin, ng_tin, om_vat, de_stn, ch_uid, tz_vat, uz_vat, uz_tin, md_vat, ma_vat, by_tin, ao_tin, bs_tin, bb_tin, cd_nif, mr_nif, me_pib, zw_tin, ba_tin, gn_nif, mk_vat, sr_fin, sn_ninea, am_tin, np_pan, tj_tin, ug_tin, zm_tin, kh_tin, aw_tin, az_tin, bd_bin, bj_ifu, et_tin, kg_tin, la_tin, cm_niu, cv_nif, bf_ifu, or unknown

        Possible enum values
        ad_nrt
        ae_trn
        al_tin
        am_tin
        ao_tin
        ar_cuit
        au_abn
        au_arn
        aw_tin
        az_tin
        Show 101 more
      • customer_details.tax_ids.valuenullable string

        The value of the tax ID.

  • discountsnullable array of objects

    List of coupons and promotion codes attached to the Checkout Session.

    • discounts.couponnullable stringExpandable

      Coupon attached to the Checkout Session.

    • discounts.promotion_codenullable stringExpandable

      Promotion code attached to the Checkout Session.

  • expires_attimestamp

    The timestamp at which the Checkout Session will expire.

  • invoicenullable stringExpandable

    ID of the invoice created by the Checkout Session, if it exists.

  • invoice_creationnullable object

    Details on the state of invoice creation for the Checkout Session.

    • invoice_creation.enabledboolean

      Indicates whether invoice creation is enabled for the Checkout Session.

    • invoice_creation.invoice_dataobject

      Parameters passed when creating invoices for payment-mode Checkout Sessions.

      • invoice_creation.invoice_data.account_tax_idsnullable array of stringsExpandable

        The account tax IDs associated with the invoice.

      • invoice_creation.invoice_data.custom_fieldsnullable array of objects

        Custom fields displayed on the invoice.

        • invoice_creation.invoice_data.custom_fields.namestring

          The name of the custom field.

        • invoice_creation.invoice_data.custom_fields.valuestring

          The value of the custom field.

      • invoice_creation.invoice_data.descriptionnullable string

        An arbitrary string attached to the object. Often useful for displaying to users.

      • invoice_creation.invoice_data.footernullable string

        Footer displayed on the invoice.

      • invoice_creation.invoice_data.issuernullable objectConnect only

        The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.

        • invoice_creation.invoice_data.issuer.accountnullable stringExpandable

          The connected account being referenced when type is account.

        • invoice_creation.invoice_data.issuer.typeenum

          Type of the account referenced.

          Possible enum values
          account

          Indicates that the account being referenced is a connected account which is different from the account making the API request but related to it.

          self

          Indicates that the account being referenced is the account making the API request.

      • invoice_creation.invoice_data.metadatanullable object

        Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

      • invoice_creation.invoice_data.rendering_optionsnullable object

        Options for invoice PDF rendering.

        • invoice_creation.invoice_data.rendering_options.amount_tax_displaynullable string

          How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.

        • invoice_creation.invoice_data.rendering_options.templatenullable string

          ID of the invoice rendering template to be used for the generated invoice.

  • livemodeboolean

    Has the value true if the object exists in live mode or the value false if the object exists in test mode.

  • localenullable enum

    The IETF language tag of the locale Checkout is displayed in. If blank or auto, the browser’s locale is used.

    Possible enum values
    auto
    bg
    cs
    da
    de
    el
    en
    en-GB
    es
    es-419
    Show 31 more
  • optional_itemsnullable array of objectsExpandable

    The optional items presented to the customer at checkout.

  • origin_contextnullable enum

    Where the user is coming from. This informs the optimizations that are applied to the session.

    Possible enum values
    mobile_app

    The Checkout Session originates from a mobile app.

    web

    The Checkout Session originates from a web page.

  • payment_linknullable stringExpandable

    The ID of the Payment Link that created this Session.

  • payment_method_collectionnullable enum

    Configure whether a Checkout Session should collect a payment method. Defaults to always.

    Possible enum values
    always

    The Checkout Session will always collect a PaymentMethod.

    if_required

    The Checkout Session will only collect a PaymentMethod if there is an amount due.

  • payment_method_configuration_detailsnullable object

    Information about the payment method configuration used for this Checkout session if using dynamic payment methods.

    • payment_method_configuration_details.idstring

      ID of the payment method configuration used.

    • payment_method_configuration_details.parentnullable string

      ID of the parent payment method configuration used.

  • payment_method_optionsnullable object

    Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession.

    • payment_method_options.acss_debitnullable object

      If the Checkout Session’s payment_method_types includes acss_debit, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.acss_debit.currencynullable enum

        Currency supported by the bank account. Returned when the Session is in setup mode.

        Possible enum values
        cad

        Canadian dollars

        usd

        US dollars

      • payment_method_options.acss_debit.mandate_optionsnullable object

        Additional fields for Mandate creation

        • payment_method_options.acss_debit.mandate_options.custom_mandate_urlnullable string

          A URL for custom mandate text

        • payment_method_options.acss_debit.mandate_options.default_fornullable array of enums

          List of Stripe products where this mandate can be selected automatically. Returned when the Session is in setup mode.

          Possible enum values
          invoice

          Enables payments for Stripe Invoices. ‘subscription’ must also be provided.

          subscription

          Enables payments for Stripe Subscriptions. ‘invoice’ must also be provided.

        • payment_method_options.acss_debit.mandate_options.interval_descriptionnullable string

          Description of the interval. Only required if the ‘payment_schedule’ parameter is ‘interval’ or ‘combined’.

        • payment_method_options.acss_debit.mandate_options.payment_schedulenullable enum

          Payment schedule for the mandate.

          Possible enum values
          combined

          Payments can be initiated at a pre-defined interval or sporadically

          interval

          Payments are initiated at a regular pre-defined interval

          sporadic

          Payments are initiated sporadically

        • payment_method_options.acss_debit.mandate_options.transaction_typenullable enum

          Transaction type of the mandate.

          Possible enum values
          business

          Transactions are made for business reasons

          personal

          Transactions are made for personal reasons

      • payment_method_options.acss_debit.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

        on_session

        Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

      • payment_method_options.acss_debit.target_datenullable string

        Controls 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.

      • payment_method_options.acss_debit.verification_methodnullable enum

        Bank account verification method.

        Possible enum values
        automatic

        Instant verification with fallback to microdeposits.

        instant

        Instant verification.

        microdeposits

        Verification using microdeposits.

    • payment_method_options.affirmnullable object

      If the Checkout Session’s payment_method_types includes affirm, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.affirm.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.afterpay_clearpaynullable object

      If the Checkout Session’s payment_method_types includes afterpay_clearpay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.afterpay_clearpay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.alipaynullable object

      If the Checkout Session’s payment_method_types includes alipay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.alipay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.amazon_paynullable object

      If the Checkout Session’s payment_method_types includes amazon_pay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.amazon_pay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

    • payment_method_options.au_becs_debitnullable object

      If the Checkout Session’s payment_method_types includes au_becs_debit, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.au_becs_debit.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

      • payment_method_options.au_becs_debit.target_datenullable string

        Controls 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.

    • payment_method_options.bacs_debitnullable object

      If the Checkout Session’s payment_method_types includes bacs_debit, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.bacs_debit.mandate_optionsnullable object

        Additional fields for Mandate creation

        • payment_method_options.bacs_debit.mandate_options.reference_prefixnullable stringPreview feature

          Prefix 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 ‘DDIC’ or ‘STRIPE’.

      • payment_method_options.bacs_debit.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

        on_session

        Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

      • payment_method_options.bacs_debit.target_datenullable string

        Controls 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.

    • payment_method_options.bancontactnullable object

      If the Checkout Session’s payment_method_types includes bancontact, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.bancontact.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.boletonullable object

      If the Checkout Session’s payment_method_types includes boleto, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.boleto.expires_after_daysinteger

        The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time.

      • payment_method_options.boleto.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

        on_session

        Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

    • payment_method_options.cardnullable object

      If the Checkout Session’s payment_method_types includes card, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.card.installmentsnullable object

        Additional fields for Installments configuration

        • payment_method_options.card.installments.enablednullable boolean

          Indicates if installments are enabled

      • payment_method_options.card.request_extended_authorizationnullable enum

        Request ability to capture beyond the standard authorization validity window for this CheckoutSession.

        Possible enum values
        if_available

        Use if_available if you want to extend the capture window when eligible for extended authorization.

        never

        Use never if you don’t want to extend the capture window.

      • payment_method_options.card.request_incremental_authorizationnullable enum

        Request ability to increment the authorization for this CheckoutSession.

        Possible enum values
        if_available

        Use if_available if you want to increment the authorization on the PaymentIntent when eligible.

        never

        Use never if you don’t want to increment the authorization on the PaymentIntent.

      • payment_method_options.card.request_multicapturenullable enum

        Request ability to make multiple captures for this CheckoutSession.

        Possible enum values
        if_available

        Use if_available if you want to use multicapture when eligible.

        never

        Use never if you don’t want to use multicapture.

      • payment_method_options.card.request_overcapturenullable enum

        Request ability to overcapture for this CheckoutSession.

        Possible enum values
        if_available

        Use if_available if you want to overcapture the payment when eligible.

        never

        Use never if you don’t want to overcapture the payment.

      • payment_method_options.card.request_three_d_secureenumadvanced

        We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and other requirements. However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to automatic. Read our guide on manually requesting 3D Secure for more information on how this configuration interacts with Radar and our SCA Engine.

        Possible enum values
        any

        Use any to manually request 3DS with a preference for a frictionless flow, increasing the likelihood of the authentication being completed without any additional input from the customer. 3DS will always be attempted if it is supported for the card, but Stripe can’t guarantee your preference because the issuer determines the ultimate authentication flow. To learn more about 3DS flows, read our guide.

        automatic

        (Default) Our SCA Engine automatically prompts your customers for authentication based on risk level and other requirements.

        challenge

        Use challenge to request 3DS with a preference for a challenge flow, where the customer must respond to a prompt for active authentication. Stripe can’t guarantee your preference because the issuer determines the ultimate authentication flow. To learn more about 3DS flows, read our guide.

      • payment_method_options.card.restrictionsnullable object

        Restrictions to apply to the card payment method. For example, you can block specific card brands.

        • payment_method_options.card.restrictions.brands_blockednullable array of enums

          Specify the card brands to block in the Checkout Session. If a customer enters or selects a card belonging to a blocked brand, they can’t complete the Session.

          Possible enum values
          american_express
          discover_global_network
          mastercard
          visa
      • payment_method_options.card.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

        on_session

        Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

      • payment_method_options.card.statement_descriptor_suffix_kananullable string

        Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the concatenation of both prefix and suffix (including separators) will appear truncated to 22 characters.

      • payment_method_options.card.statement_descriptor_suffix_kanjinullable string

        Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the concatenation of both prefix and suffix (including separators) will appear truncated to 17 characters.

    • payment_method_options.cashappnullable object

      If the Checkout Session’s payment_method_types includes cashapp, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.cashapp.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.customer_balancenullable object

      If the Checkout Session’s payment_method_types includes customer_balance, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.customer_balance.bank_transfernullable object

        Configuration for the bank transfer funding type, if the funding_type is set to bank_transfer.

        • payment_method_options.customer_balance.bank_transfer.eu_bank_transfernullable object

          Configuration for eu_bank_transfer

          • payment_method_options.customer_balance.bank_transfer.eu_bank_transfer.countryenum

            The desired country code of the bank account information. Permitted values include: BE, DE, ES, FR, IE, or NL.

            Possible enum values
            BE
            DE
            ES
            FR
            IE
            NL
        • payment_method_options.customer_balance.bank_transfer.requested_address_typesnullable array of enums

          List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.

          Permitted values include: sort_code, zengin, iban, or spei.

          Possible enum values
          aba

          aba bank account address type

          iban

          iban bank account address type

          sepa

          sepa bank account address type

          sort_code

          sort_code bank account address type

          spei

          spei bank account address type

          swift

          swift bank account address type

          zengin

          zengin bank account address type

        • payment_method_options.customer_balance.bank_transfer.typenullable enum

          The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: eu_bank_transfer, gb_bank_transfer, jp_bank_transfer, mx_bank_transfer, or us_bank_transfer.

          Possible enum values
          eu_bank_transfer

          A bank transfer of type eu_bank_transfer

          gb_bank_transfer

          A bank transfer of type gb_bank_transfer

          jp_bank_transfer

          A bank transfer of type jp_bank_transfer

          mx_bank_transfer

          A bank transfer of type mx_bank_transfer

          us_bank_transfer

          A bank transfer of type us_bank_transfer

      • payment_method_options.customer_balance.funding_typenullable enum

        The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: bank_transfer.

        Possible enum values
        bank_transfer
      • payment_method_options.customer_balance.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.epsnullable object

      If the Checkout Session’s payment_method_types includes eps, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.eps.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.fpxnullable object

      If the Checkout Session’s payment_method_types includes fpx, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.fpx.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.giropaynullable object

      If the Checkout Session’s payment_method_types includes giropay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.giropay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.grabpaynullable object

      If the Checkout Session’s payment_method_types includes grabpay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.grabpay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.idealnullable object

      If the Checkout Session’s payment_method_types includes ideal, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.ideal.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.kakao_paynullable object

      If the Checkout Session’s payment_method_types includes kakao_pay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.kakao_pay.capture_methodnullable enum

        Controls when the funds will be captured from the customer’s account.

        Possible enum values
        manual

        Use manual if you intend to place the funds on hold and want to override the top-level capture_method value for this payment method.

      • payment_method_options.kakao_pay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

    • payment_method_options.klarnanullable object

      If the Checkout Session’s payment_method_types includes klarna, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.klarna.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

        on_session

        Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

    • payment_method_options.konbininullable object

      If the Checkout Session’s payment_method_types includes konbini, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.konbini.expires_after_daysnullable integer

        The 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.

      • payment_method_options.konbini.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.kr_cardnullable object

      If the Checkout Session’s payment_method_types includes kr_card, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.kr_card.capture_methodnullable enum

        Controls when the funds will be captured from the customer’s account.

        Possible enum values
        manual

        Use manual if you intend to place the funds on hold and want to override the top-level capture_method value for this payment method.

      • payment_method_options.kr_card.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

    • payment_method_options.linknullable object

      If the Checkout Session’s payment_method_types includes link, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.link.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

    • payment_method_options.mobilepaynullable object

      If the Checkout Session’s payment_method_types includes mobilepay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.mobilepay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.multibanconullable object

      If the Checkout Session’s payment_method_types includes multibanco, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.multibanco.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.naver_paynullable object

      If the Checkout Session’s payment_method_types includes naver_pay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.naver_pay.capture_methodnullable enum

        Controls when the funds will be captured from the customer’s account.

        Possible enum values
        manual

        Use manual if you intend to place the funds on hold and want to override the top-level capture_method value for this payment method.

      • payment_method_options.naver_pay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

    • payment_method_options.oxxonullable object

      If the Checkout Session’s payment_method_types includes oxxo, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.oxxo.expires_after_daysinteger

        The 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.

      • payment_method_options.oxxo.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.p24nullable object

      If the Checkout Session’s payment_method_types includes p24, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.p24.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.payconullable object

      If the Checkout Session’s payment_method_types includes payco, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.payco.capture_methodnullable enum

        Controls when the funds will be captured from the customer’s account.

        Possible enum values
        manual

        Use manual if you intend to place the funds on hold and want to override the top-level capture_method value for this payment method.

    • payment_method_options.paynownullable object

      If the Checkout Session’s payment_method_types includes paynow, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.paynow.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.paypalnullable object

      If the Checkout Session’s payment_method_types includes paypal, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.paypal.capture_methodnullable enum

        Controls when the funds will be captured from the customer’s account.

        Possible enum values
        manual

        Use manual if you intend to place the funds on hold and want to override the top-level capture_method value for this payment method.

      • payment_method_options.paypal.preferred_localenullable string

        Preferred locale of the PayPal checkout page that the customer is redirected to.

      • payment_method_options.paypal.referencenullable string

        A 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.

      • payment_method_options.paypal.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

    • payment_method_options.pixnullable object

      If the Checkout Session’s payment_method_types includes pix, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.pix.amount_includes_iofnullable enum

        Determines if the amount includes the IOF tax.

        Possible enum values
        always

        The IOF tax is included in the amount.

        never

        The IOF tax is not included in the amount.

      • payment_method_options.pix.expires_after_secondsnullable integer

        The number of seconds after which Pix payment will expire.

      • payment_method_options.pix.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.revolut_paynullable object

      If the Checkout Session’s payment_method_types includes revolut_pay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.revolut_pay.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

    • payment_method_options.samsung_paynullable object

      If the Checkout Session’s payment_method_types includes samsung_pay, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.samsung_pay.capture_methodnullable enum

        Controls when the funds will be captured from the customer’s account.

        Possible enum values
        manual

        Use manual if you intend to place the funds on hold and want to override the top-level capture_method value for this payment method.

    • payment_method_options.sepa_debitnullable object

      If the Checkout Session’s payment_method_types includes sepa_debit, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.sepa_debit.mandate_optionsnullable object

        Additional fields for Mandate creation

        • payment_method_options.sepa_debit.mandate_options.reference_prefixnullable stringPreview feature

          Prefix 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’.

      • payment_method_options.sepa_debit.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

        on_session

        Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

      • payment_method_options.sepa_debit.target_datenullable string

        Controls 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.

    • payment_method_options.sofortnullable object

      If the Checkout Session’s payment_method_types includes sofort, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.sofort.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

    • payment_method_options.swishnullable object

      If the Checkout Session’s payment_method_types includes swish, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.swish.referencenullable string

        The order reference that will be displayed to customers in the Swish application. Defaults to the id of the Payment Intent.

    • payment_method_options.us_bank_accountnullable object

      If the Checkout Session’s payment_method_types includes us_bank_account, this hash contains the configurations that will be applied to each payment attempt of that type.

      • payment_method_options.us_bank_account.financial_connectionsnullable object

        Additional fields for Financial Connections Session creation

        • payment_method_options.us_bank_account.financial_connections.filtersnullable object

          Filter the list of accounts that are allowed to be linked.

          • payment_method_options.us_bank_account.financial_connections.filters.account_subcategoriesnullable array of enums

            The account subcategories to use to filter for possible accounts to link. Valid subcategories are checking and savings.

            Possible enum values
            checking

            Bank account subcategory is checking

            savings

            Bank account subcategory is savings

        • payment_method_options.us_bank_account.financial_connections.permissionsnullable array of enums

          The list of permissions to request. The payment_method permission must be included.

          Possible enum values
          balances

          Allows accessing balance data from the account.

          ownership

          Allows accessing ownership data from the account.

          payment_method

          Allows the creation of a payment method from the account.

          transactions

          Allows accessing transactions data from the account.

        • payment_method_options.us_bank_account.financial_connections.prefetchnullable array of enums

          Data features requested to be retrieved upon account creation.

          Possible enum values
          balances

          Requests to prefetch balance data on accounts collected in this session.

          ownership

          Requests to prefetch ownership data on accounts collected in this session.

          transactions

          Requests to prefetch transaction data on accounts collected in this session.

        • payment_method_options.us_bank_account.financial_connections.return_urlnullable string

          For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.

      • payment_method_options.us_bank_account.setup_future_usagenullable enum

        Indicates 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 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 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 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.

        Possible enum values
        none

        Use none if you do not intend to reuse this payment method and want to override the top-level setup_future_usage value for this payment method.

        off_session

        Use off_session if your customer may or may not be present in your checkout flow.

        on_session

        Use on_session if you intend to only reuse the payment method when your customer is present in your checkout flow.

      • payment_method_options.us_bank_account.target_datenullable string

        Controls 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.

      • payment_method_options.us_bank_account.verification_methodnullable enum

        Bank account verification method.

        Possible enum values
        automatic

        Instant verification with fallback to microdeposits.

        instant

        Instant verification only.

  • payment_method_typesarray of strings

    A list of the types of payment methods (e.g. card) this Checkout Session is allowed to accept.

  • permissionsnullable object

    This property is used to set up permissions for various actions (e.g., update) on the CheckoutSession object.

    For specific permissions, please refer to their dedicated subsections, such as permissions.update_shipping_details.

    • permissions.update_shipping_detailsnullable enum

      Determines 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.

      When set to server_only, you must add the onShippingDetailsChange event handler when initializing the Stripe Checkout client and manually update the shipping details from your server using the Stripe API.

      Possible enum values
      client_only
      server_only
  • phone_number_collectionnullable object

    Details on the state of phone number collection for the session.

    • phone_number_collection.enabledboolean

      Indicates whether phone number collection is enabled for the session

  • presentment_detailsnullable object

    A hash containing information about the currency presentation to the customer, including the displayed currency and amount used for conversion from the integration currency.

    • presentment_details.presentment_amountinteger

      Amount intended to be collected by this payment, denominated in presentment_currency.

    • presentment_details.presentment_currencystring

      Currency presented to the customer during payment.

  • recovered_fromnullable string

    The ID of the original expired Checkout Session that triggered the recovery flow.

  • redirect_on_completionnullable enum

    This parameter applies to ui_mode: embedded. Learn more about the redirect behavior of embedded sessions. Defaults to always.

    Possible enum values
    always

    The Session will always redirect to the return_url after successful confirmation.

    if_required

    The Session will only redirect to the return_url after a redirect-based payment method is used.

    never

    The Session will never redirect to the return_url, and redirect-based payment methods will be disabled.

  • saved_payment_method_optionsnullable object

    Controls saved payment method settings for the session. Only available in payment and subscription mode.

    • saved_payment_method_options.allow_redisplay_filtersnullable array of enums

      Uses 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.

      Possible enum values
      always

      When set, Checkout will show eligible saved payment methods with the allow_redisplay value of always

      limited

      When set, Checkout will show eligible saved payment methods with the allow_redisplay value of limited

      unspecified

      When set, Checkout will show eligible saved payment methods with the allow_redisplay value of unspecified

    • saved_payment_method_options.payment_method_removenullable enum

      Enable customers to choose if they wish to remove their saved payment methods. Disabled by default.

      Possible enum values
      disabled

      Removing payment methods will be disabled for this Checkout Session. This is the default option.

      enabled

      Removing payment methods will be enabled for this Checkout Session.

    • saved_payment_method_options.payment_method_savenullable enum

      Enable customers to choose if they wish to save their payment method for future use. Disabled by default.

      Possible enum values
      disabled

      Saving payment methods will be disabled for this Checkout Session. This is the default option.

      enabled

      Saving payment methods will be enabled for this Checkout Session.

  • setup_intentnullable stringExpandable

    The ID of the SetupIntent for Checkout Sessions in setup mode. You can’t confirm or cancel the SetupIntent for a Checkout Session. To cancel, expire the Checkout Session instead.

  • shipping_address_collectionnullable object

    When set, provides configuration for Checkout to collect a shipping address from a customer.

    • shipping_address_collection.allowed_countriesarray of enums

      An 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.

      Possible enum values
      AC
      AD
      AE
      AF
      AG
      AI
      AL
      AM
      AO
      AQ
      Show 228 more
  • shipping_costnullable object

    The details of the customer cost of shipping, including the customer chosen ShippingRate.

    • shipping_cost.amount_subtotalinteger

      Total shipping cost before any discounts or taxes are applied.

    • shipping_cost.amount_taxinteger

      Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0.

    • shipping_cost.amount_totalinteger

      Total shipping cost after discounts and taxes are applied.

    • shipping_cost.shipping_ratenullable stringExpandable

      The ID of the ShippingRate for this order.

    • shipping_cost.taxesnullable array of objectsExpandable

      The taxes applied to the shipping rate.

      • shipping_cost.taxes.amountinteger

        Amount of tax applied for this rate.

      • shipping_cost.taxes.rateobject

        The tax rate applied.

        • shipping_cost.taxes.rate.idstring

          Unique identifier for the object.

        • shipping_cost.taxes.rate.objectstring

          String representing the object’s type. Objects of the same type share the same value.

        • shipping_cost.taxes.rate.activeboolean

          Defaults to true. When set to false, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.

        • shipping_cost.taxes.rate.countrynullable string

          Two-letter country code (ISO 3166-1 alpha-2).

        • shipping_cost.taxes.rate.createdtimestamp

          Time at which the object was created. Measured in seconds since the Unix epoch.

        • shipping_cost.taxes.rate.descriptionnullable string

          An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.

        • shipping_cost.taxes.rate.display_namestring

          The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.

        • shipping_cost.taxes.rate.effective_percentagenullable float

          Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product’s taxability and whether the user is registered to collect taxes in the corresponding jurisdiction.

        • shipping_cost.taxes.rate.flat_amountnullable object

          The amount of the tax rate when the rate_type is flat_amount. Tax rates with rate_type percentage can vary based on the transaction, resulting in this field being null. This field exposes the amount and currency of the flat tax rate.

          • shipping_cost.taxes.rate.flat_amount.amountinteger

            Amount of the tax when the rate_type is flat_amount. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).

          • shipping_cost.taxes.rate.flat_amount.currencystring

            Three-letter ISO currency code, in lowercase.

        • shipping_cost.taxes.rate.inclusiveboolean

          This specifies if the tax rate is inclusive or exclusive.

        • shipping_cost.taxes.rate.jurisdictionnullable string

          The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.

        • shipping_cost.taxes.rate.jurisdiction_levelnullable enum

          The level of the jurisdiction that imposes this tax rate. Will be null for manually defined tax rates.

          Possible enum values
          city
          country
          county
          district
          multiple
          state
        • shipping_cost.taxes.rate.livemodeboolean

          Has the value true if the object exists in live mode or the value false if the object exists in test mode.

        • shipping_cost.taxes.rate.metadatanullable object

          Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

        • shipping_cost.taxes.rate.percentagefloat

          Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.

        • shipping_cost.taxes.rate.rate_typenullable enum

          Indicates the type of tax rate applied to the taxable amount. This value can be null when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax.

          Possible enum values
          flat_amount

          A fixed amount applied as tax, regardless of the taxable amount, such as a retail delivery fee.

          percentage

          A tax rate expressed as a percentage of the taxable amount, such as the sales tax rate in California.

        • shipping_cost.taxes.rate.statenullable string

          ISO 3166-2 subdivision code, without country prefix. For example, “NY” for New York, United States.

        • shipping_cost.taxes.rate.tax_typenullable enum

          The high-level tax type, such as vat or sales_tax.

          Possible enum values
          amusement_tax

          Amusement Tax

          communications_tax

          Communications Tax

          gst

          Goods and Services Tax

          hst

          Harmonized Sales Tax

          igst

          Integrated Goods and Services Tax

          jct

          Japanese Consumption Tax

          lease_tax

          Chicago Lease Tax

          pst

          Provincial Sales Tax

          qst

          Quebec Sales Tax

          retail_delivery_fee

          Retail Delivery Fee

          Show 4 more
      • shipping_cost.taxes.taxability_reasonnullable enum

        The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.

        Possible enum values
        customer_exempt

        No tax is applied as the customer is exempt from tax.

        not_collecting

        No tax is collected either because you are not registered to collect tax in this jurisdiction, or because the non-taxable product tax code (txcd_00000000) was used.

        not_subject_to_tax

        No tax is imposed on this transaction.

        not_supported

        No tax applied. Stripe doesn’t support this jurisdiction, territory, or product.

        portion_product_exempt

        A portion of the price is exempt from tax.

        portion_reduced_rated

        A portion of the price is taxed at a reduced rate.

        portion_standard_rated

        A portion of the price is taxed at the standard rate.

        product_exempt

        The product or service is nontaxable or exempt from tax.

        product_exempt_holiday

        The product or service is not taxed due to a sales tax holiday.

        proportionally_rated

        The shipping cost tax rate is calculated as a weighted average of the other line items’ rates, weighted by their amounts.

        Show 5 more
      • shipping_cost.taxes.taxable_amountnullable integer

        The amount on which tax is calculated, in cents.

  • shipping_optionsarray of objects

    The shipping rate options applied to this Session.

    • shipping_options.shipping_amountinteger

      A non-negative integer in cents representing how much to charge.

    • shipping_options.shipping_ratestringExpandable

      The shipping rate.

  • submit_typenullable enum

    Describes 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 mode. If blank or auto, pay is used.

    Possible enum values
    auto

    pay will used for payment mode sessions and subscribe will be used for subscription mode sessions

    book

    Recommended when offering bookings. Submit button includes a ‘Book’ label

    donate

    Recommended when accepting donations. Submit button includes a ‘Donate’ label

    pay

    Submit button includes a ‘Buy’ label

    subscribe

    Submit button includes a ‘Subscribe’ label

  • subscriptionnullable stringExpandable

    The ID of the Subscription for Checkout Sessions in subscription mode.

  • tax_id_collectionnullable object

    Details on the state of tax ID collection for the session.

    • tax_id_collection.enabledboolean

      Indicates whether tax ID collection is enabled for the session

    • tax_id_collection.requiredenum

      Indicates whether a tax ID is required on the payment page

      Possible enum values
      if_supported

      A tax ID will be required if collection is supported for the selected billing address country.

      never

      Tax ID collection is never required.

  • total_detailsnullable object

    Tax and discount details for the computed total amount.

    • total_details.amount_discountinteger

      This is the sum of all the discounts.

    • total_details.amount_shippingnullable integer

      This is the sum of all the shipping amounts.

    • total_details.amount_taxinteger

      This is the sum of all the tax amounts.

    • total_details.breakdownnullable objectExpandable

      Breakdown of individual tax and discount amounts that add up to the totals.

      • total_details.breakdown.discountsarray of objects

        The aggregated discounts.

        • total_details.breakdown.discounts.amountinteger

          The amount discounted.

        • total_details.breakdown.discounts.discountobject

          The discount applied.

          • total_details.breakdown.discounts.discount.idstring

            The ID of the discount object. Discounts cannot be fetched by ID. Use expand[]=discounts in API calls to expand discount IDs in an array.

          • total_details.breakdown.discounts.discount.objectstring

            String representing the object’s type. Objects of the same type share the same value.

          • total_details.breakdown.discounts.discount.checkout_sessionnullable string

            The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.

          • total_details.breakdown.discounts.discount.couponobject

            Hash describing the coupon applied to create this discount.

            • total_details.breakdown.discounts.discount.coupon.idstring

              Unique identifier for the object.

            • total_details.breakdown.discounts.discount.coupon.objectstring

              String representing the object’s type. Objects of the same type share the same value.

            • total_details.breakdown.discounts.discount.coupon.amount_offnullable integer

              Amount (in the currency specified) that will be taken off the subtotal of any invoices for this customer.

            • total_details.breakdown.discounts.discount.coupon.applies_tonullable objectExpandable

              Contains information about what this coupon applies to.

              • total_details.breakdown.discounts.discount.coupon.applies_to.productsarray of strings

                A list of product IDs this coupon applies to

            • total_details.breakdown.discounts.discount.coupon.createdtimestamp

              Time at which the object was created. Measured in seconds since the Unix epoch.

            • total_details.breakdown.discounts.discount.coupon.currencynullable enum

              If amount_off has been set, the three-letter ISO code for the currency of the amount to take off.

            • total_details.breakdown.discounts.discount.coupon.currency_optionsnullable objectExpandable

              Coupons defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.

              • total_details.breakdown.discounts.discount.coupon.currency_options.<currency>.amount_offinteger

                Amount (in the currency specified) that will be taken off the subtotal of any invoices for this customer.

            • total_details.breakdown.discounts.discount.coupon.durationenum

              One of forever, once, or repeating. Describes how long a customer who applies this coupon will get the discount.

              Possible enum values
              forever

              Applies to all charges from a subscription with this coupon applied.

              once

              Applies to the first charge from a subscription with this coupon applied.

              repeating

              Applies to charges in the first duration_in_months months from a subscription with this coupon applied. This value is deprecated and will be replaced in future versions of the API.

            • total_details.breakdown.discounts.discount.coupon.duration_in_monthsnullable integerDeprecated

              If duration is repeating, the number of months the coupon applies. Null if coupon duration is forever or once.

            • total_details.breakdown.discounts.discount.coupon.livemodeboolean

              Has the value true if the object exists in live mode or the value false if the object exists in test mode.

            • total_details.breakdown.discounts.discount.coupon.max_redemptionsnullable integer

              Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.

            • total_details.breakdown.discounts.discount.coupon.metadatanullable object

              Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

            • total_details.breakdown.discounts.discount.coupon.namenullable string

              Name of the coupon displayed to customers on for instance invoices or receipts.

            • total_details.breakdown.discounts.discount.coupon.percent_offnullable float

              Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $100 invoice $50 instead.

            • total_details.breakdown.discounts.discount.coupon.redeem_bynullable timestamp

              Date after which the coupon can no longer be redeemed.

            • total_details.breakdown.discounts.discount.coupon.times_redeemedinteger

              Number of times this coupon has been applied to a customer.

            • total_details.breakdown.discounts.discount.coupon.validboolean

              Taking account of the above properties, whether this coupon can still be applied to a customer.

          • total_details.breakdown.discounts.discount.customernullable stringExpandable

            The ID of the customer associated with this discount.

          • total_details.breakdown.discounts.discount.endnullable timestamp

            If the coupon has a duration of repeating, the date that this discount will end. If the coupon has a duration of once or forever, this attribute will be null.

          • total_details.breakdown.discounts.discount.invoicenullable string

            The invoice that the discount’s coupon was applied to, if it was applied directly to a particular invoice.

          • total_details.breakdown.discounts.discount.invoice_itemnullable string

            The invoice item id (or invoice line item id for invoice line items of type=‘subscription’) that the discount’s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.

          • total_details.breakdown.discounts.discount.promotion_codenullable stringExpandable

            The promotion code applied to create this discount.

          • total_details.breakdown.discounts.discount.starttimestamp

            Date that the coupon was applied.

          • total_details.breakdown.discounts.discount.subscriptionnullable string

            The subscription that this coupon is applied to, if it is applied to a particular subscription.

          • total_details.breakdown.discounts.discount.subscription_itemnullable string

            The subscription item that this coupon is applied to, if it is applied to a particular subscription item.

      • total_details.breakdown.taxesarray of objects

        The aggregated tax amounts by rate.

        • total_details.breakdown.taxes.amountinteger

          Amount of tax applied for this rate.

        • total_details.breakdown.taxes.rateobject

          The tax rate applied.

          • total_details.breakdown.taxes.rate.idstring

            Unique identifier for the object.

          • total_details.breakdown.taxes.rate.objectstring

            String representing the object’s type. Objects of the same type share the same value.

          • total_details.breakdown.taxes.rate.activeboolean

            Defaults to true. When set to false, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.

          • total_details.breakdown.taxes.rate.countrynullable string

            Two-letter country code (ISO 3166-1 alpha-2).

          • total_details.breakdown.taxes.rate.createdtimestamp

            Time at which the object was created. Measured in seconds since the Unix epoch.

          • total_details.breakdown.taxes.rate.descriptionnullable string

            An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.

          • total_details.breakdown.taxes.rate.display_namestring

            The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.

          • total_details.breakdown.taxes.rate.effective_percentagenullable float

            Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage reflects the rate actually used to calculate tax based on the product’s taxability and whether the user is registered to collect taxes in the corresponding jurisdiction.

          • total_details.breakdown.taxes.rate.flat_amountnullable object

            The amount of the tax rate when the rate_type is flat_amount. Tax rates with rate_type percentage can vary based on the transaction, resulting in this field being null. This field exposes the amount and currency of the flat tax rate.

            • total_details.breakdown.taxes.rate.flat_amount.amountinteger

              Amount of the tax when the rate_type is flat_amount. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).

            • total_details.breakdown.taxes.rate.flat_amount.currencystring

              Three-letter ISO currency code, in lowercase.

          • total_details.breakdown.taxes.rate.inclusiveboolean

            This specifies if the tax rate is inclusive or exclusive.

          • total_details.breakdown.taxes.rate.jurisdictionnullable string

            The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.

          • total_details.breakdown.taxes.rate.jurisdiction_levelnullable enum

            The level of the jurisdiction that imposes this tax rate. Will be null for manually defined tax rates.

            Possible enum values
            city
            country
            county
            district
            multiple
            state
          • total_details.breakdown.taxes.rate.livemodeboolean

            Has the value true if the object exists in live mode or the value false if the object exists in test mode.

          • total_details.breakdown.taxes.rate.metadatanullable object

            Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

          • total_details.breakdown.taxes.rate.percentagefloat

            Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.

          • total_details.breakdown.taxes.rate.rate_typenullable enum

            Indicates the type of tax rate applied to the taxable amount. This value can be null when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax.

            Possible enum values
            flat_amount

            A fixed amount applied as tax, regardless of the taxable amount, such as a retail delivery fee.

            percentage

            A tax rate expressed as a percentage of the taxable amount, such as the sales tax rate in California.

          • total_details.breakdown.taxes.rate.statenullable string

            ISO 3166-2 subdivision code, without country prefix. For example, “NY” for New York, United States.

          • total_details.breakdown.taxes.rate.tax_typenullable enum

            The high-level tax type, such as vat or sales_tax.

            Possible enum values
            amusement_tax

            Amusement Tax

            communications_tax

            Communications Tax

            gst

            Goods and Services Tax

            hst

            Harmonized Sales Tax

            igst

            Integrated Goods and Services Tax

            jct

            Japanese Consumption Tax

            lease_tax

            Chicago Lease Tax

            pst

            Provincial Sales Tax

            qst

            Quebec Sales Tax

            retail_delivery_fee

            Retail Delivery Fee

            Show 4 more
        • total_details.breakdown.taxes.taxability_reasonnullable enum

          The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.

          Possible enum values
          customer_exempt

          No tax is applied as the customer is exempt from tax.

          not_collecting

          No tax is collected either because you are not registered to collect tax in this jurisdiction, or because the non-taxable product tax code (txcd_00000000) was used.

          not_subject_to_tax

          No tax is imposed on this transaction.

          not_supported

          No tax applied. Stripe doesn’t support this jurisdiction, territory, or product.

          portion_product_exempt

          A portion of the price is exempt from tax.

          portion_reduced_rated

          A portion of the price is taxed at a reduced rate.

          portion_standard_rated

          A portion of the price is taxed at the standard rate.

          product_exempt

          The product or service is nontaxable or exempt from tax.

          product_exempt_holiday

          The product or service is not taxed due to a sales tax holiday.

          proportionally_rated

          The shipping cost tax rate is calculated as a weighted average of the other line items’ rates, weighted by their amounts.

          Show 5 more
        • total_details.breakdown.taxes.taxable_amountnullable integer

          The amount on which tax is calculated, in cents.

  • wallet_optionsnullable object

    Wallet-specific configuration for this Checkout Session.

    • wallet_options.linknullable object

      This hash contains the configurations that will be applied to the wallet of this type.

      • wallet_options.link.displaynullable enum

        Describes whether Checkout should display Link. Defaults to auto.

        Possible enum values
        auto

        The Checkout Session will automatically determine if Link is a supported payment option and display accordingly.

        never

        The Checkout Session will not display Link as a payment option.

The Checkout Session object
{
"id": "cs_test_a11YYufWQzNY63zpQ6QSNRQhkUpVph4WRmzW0zWJO2znZKdVujZ0N0S22u",
"object": "checkout.session",
"after_expiration": null,
"allow_promotion_codes": null,
"amount_subtotal": 2198,
"amount_total": 2198,
"automatic_tax": {
"enabled": false,
"liability": null,
"status": null
},
"billing_address_collection": null,
"cancel_url": null,
"client_reference_id": null,
"consent": null,
"consent_collection": null,
"created": 1679600215,
"currency": "usd",
"custom_fields": [],
"custom_text": {
"shipping_address": null,
"submit": null
},
"customer": null,
"customer_creation": "if_required",
"customer_details": null,
"customer_email": null,
"expires_at": 1679686615,
"invoice": null,
"invoice_creation": {
"enabled": false,
"invoice_data": {
"account_tax_ids": null,
"custom_fields": null,
"description": null,
"footer": null,
"issuer": null,
"metadata": {},
"rendering_options": null
}
},
"livemode": false,
"locale": null,
"metadata": {},
"mode": "payment",
"payment_intent": null,
"payment_link": null,
"payment_method_collection": "always",
"payment_method_options": {},
"payment_method_types": [
"card"
],
"payment_status": "unpaid",
"phone_number_collection": {
"enabled": false
},
"recovered_from": null,
"setup_intent": null,
"shipping_address_collection": null,
"shipping_cost": null,
"shipping_details": null,
"shipping_options": [],
"status": "open",
"submit_type": null,
"subscription": null,
"success_url": "https://example.com/success",
"total_details": {
"amount_discount": 0,
"amount_shipping": 0,
"amount_tax": 0
},
"url": "https://checkout.stripe.com/c/pay/cs_test_a11YYufWQzNY63zpQ6QSNRQhkUpVph4WRmzW0zWJO2znZKdVujZ0N0S22u#fidkdWxOYHwnPyd1blpxYHZxWjA0SDdPUW5JbmFMck1wMmx9N2BLZjFEfGRUNWhqTmJ%2FM2F8bUA2SDRySkFdUV81T1BSV0YxcWJcTUJcYW5rSzN3dzBLPUE0TzRKTTxzNFBjPWZEX1NKSkxpNTVjRjN8VHE0YicpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl"
}