## The Elements object [Stripe Elements](/payments/elements.md) are customizable UI components used to collect sensitive information in your payment forms. Use an `Elements` instance to create and manage a group of individual [Element](/js/element.md) instances. ## Create an Elements instance This method creates an `Elements` instance, which manages a group of elements. For the [Payment Element created without an Intent](/payments/accept-a-payment-deferred.md) and the [Express Checkout Element](/elements/express-checkout-element.md), see the [Elements object without an Intent](/js/elements_object/create_without_intent.md) reference instead. **Syntax:** `stripe.elements(...)` - `options` (object) A set of options to create this `Elements` instance with. - `fonts` (array) An array of custom fonts, which elements created from the `Elements` object can use. Fonts can be specified as [CssFontSource](#css_font_source_object) or [CustomFontSource](#custom_font_source_object) objects. - `locale` (string) A [locale](#supported_locales) to display placeholders and error strings in. Default is `auto` (Stripe detects the locale of the browser). Setting the locale does not affect the behavior of postal code validation—a valid postal code for the billing country of the card is still required. To indicate the direction of text for *right to left* languages such as Arabic and Hebrew, mount Elements underneath an HTML element that includes the `dir="rtl"` attribute. - `clientSecret` (string) **required** Required to use with the [Payment Element](/payments/payment-element.md) and the [Link Authentication Element](/payments/link.md). The [client secret](/api/payment_intents/object.md#payment_intent_object-client_secret) for a PaymentIntent or SetupIntent. - `appearance` (object) Supported for the [Payment Element](/payments/payment-element.md), the [Link Authentication Element](/payments/link.md), and the [Address Element](/elements/address-element/.md). Match the design of your site with the [appearance option](/elements/appearance-api.md). The layout of each Element stays consistent, but you can modify colors, fonts, borders, padding, and more. - `loader` ('auto' | 'always' | 'never') Supported for the [Payment Element](/payments/payment-element.md), the [Link Authentication Element](/payments/link.md), and the [Address Element](/elements/address-element/.md). Display skeleton loader UI while waiting for Elements to be fully loaded, after they are mounted. Default is `'auto'` (Stripe determines if a loader UI should be shown). - `currency` (string) Used with the [Payment Element](/payments/payment-element.md). Influences available payment methods when creating SetupIntents with [automatic_payment_methods](/api/setup_intents/create.md#create_setup_intent-automatic_payment_methods). Payment Element renders the payment methods enabled in the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) that support the provided currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](/currencies.md). - `customerSessionClientSecret` (string) Used with the [Payment Element](/payments/payment-element.md) and [Address Element](/elements/address-element.md). The client_secret returned from create a [CustomerSession](/api/customer_sessions.md) associated with the [Customer ID](/api/customers/object.md#customer_object-id) for that session. - `syncAddressCheckbox` ('billing' | 'shipping' | 'none') Used with the [Address Element](/elements/address-element.md). The `syncAddressCheckbox` parameter configures which Address Element to show the checkbox above. The checkbox allows the customer the option to sync billing and shipping addresses when multiple Address Elements are used, one of each mode, in a single Elements instance. Default is `'billing'`. `'none'` opts out of showing the checkbox in either Address Element. - `paymentMethodCreation` ('manual') Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Allows PaymentMethods to be created from the Elements instance using [stripe.createPaymentMethod](/js/payment_methods/create_payment_method_elements.md). **NOTE:** The Express Checkout Element doesn't support [stripe.createPaymentMethod](/js/payment_methods/create_payment_method_elements.md) with [Amazon Pay](/payments/amazon-pay.md) or [Klarna](/payments/klarna.md). Use [stripe.createConfirmationToken](/js/confirmation_tokens/create_confirmation_token.md) instead. Card installments are also unsupported and either blocks showing the plan selection UI, or raises an error for manual enablement using `paymentMethodOptions`. - `customPaymentMethods` (array) Supported for the [Payment Element](/payments/payment-element.md). An array of [custom payment methods](/payments/payment-element/custom-payment-methods.md) to display in the [Payment Element](/payments/payment-element.md). The custom payment methods must be registered in the [Stripe Dashboard](https://dashboard.stripe.com/settings/custom_payment_methods). - `id` (string) **required** The ID of the [custom payment method type](https://dashboard.stripe.com/settings/custom_payment_methods), prefixed with `cpmt_`. - `options` (object) A set of options to configure the custom payment method with. - `type` ('static') **required** The form type of the custom payment method. - `subtitle` (string) A subtitle contains additional information about the custom payment method. - `externalPaymentMethodTypes (deprecated)` (string) _This param has been deprecated in favor of [custom payment methods](/js/elements_object/create.md#stripe_elements-options-customPaymentMethods), which offers more flexibility._ The [external payment methods](/payments/external-payment-methods.md) to be displayed in the [Payment Element](/payments/payment-element.md) that you are already integrated with. Must be an [available external payment methods](/payments/external-payment-methods.md#available-external-payment-methods). ### Create an Elements instance ```js var elements = stripe.elements({ clientSecret: 'CLIENT_SECRET', }); ``` ```es_next const elements = stripe.elements({ clientSecret: 'CLIENT_SECRET', }); ``` ## Create an Elements instance without an intent This method creates an `Elements` instance, which manages a group of elements. This reference applies to the [Payment Element created without an Intent](/payments/accept-a-payment-deferred.md), [Express Checkout Element](/elements/express-checkout-element.md), and [Card Elements](/payments/card-element.md). For other elements, see the [Elements object](/js/elements_object/create.md) reference instead. **Syntax:** `stripe.elements(...)` - `options` (object) A set of options to create this `Elements` instance with. - `fonts` (array) An array of custom fonts, which elements created from the `Elements` object can use. Fonts can be specified as [CssFontSource](#css_font_source_object) or [CustomFontSource](#custom_font_source_object) objects. - `locale` (string) A [locale](#supported_locales) to display placeholders and error strings in. Default is `auto` (Stripe detects the locale of the browser). Setting the locale does not affect the behavior of postal code validation—a valid postal code for the billing country of the card is still required. To indicate the direction of text for *right to left* languages such as Arabic and Hebrew, mount Elements underneath an HTML element that includes the `dir="rtl"` attribute. - `mode` ('payment' | 'setup' | 'subscription') **required** Required to use with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Filters out payment methods based on intended use. - `currency` (string) **required** Required to use with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](/currencies.md). - `amount` (number) **required** Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Required when `mode` is `payment` or `subscription`. Shown in Apple Pay, Google Pay, or Buy now, pay later UIs. The amount intended to be collected from the customer right now. A positive integer representing how much to charge in the [smallest currency unit](/currencies.md#zero-decimal) (e.g., 100 cents to charge 1.00 USD or 100 to charge 100 JPY, a zero-decimal currency). The minimum amount is 0.50 USD or [equivalent in charge currency](/currencies.md#minimum-and-maximum-charge-amounts). If `mode` is `subscription`, the value supports 0 to account for coupons and free trials, but any amount above 0 is subject to the minimum. The amount value supports up to eight digits (e.g., a value of 99999999 for a 999,999.99 USD charge). - `setupFutureUsage` ('on_session' | 'off_session') Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Indicates that you intend to make future payments with the payment details collected by the Payment Element. This should match the [setup_future_usage](/api/payment_intents/create.md#create_payment_intent-setup_future_usage) provided on the Intent used when confirming payment. - `captureMethod` ('automatic' | 'automatic_async' | 'manual') Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Influences available payment methods. This should match the [capture_method](/api/payment_intents/create.md#create_payment_intent-capture_method) provided on the Intent used when confirming payment. - `onBehalfOf` (string) Used with the [Payment Element](/payments/payment-element.md), [Express Checkout Element](/elements/express-checkout-element.md), and [Card Elements](/payments/card-element.md). The Stripe account ID which is the business of record. See [use cases](/connect/charges.md) to determine if this option is relevant for your integration. This should match the [on_behalf_of](/api/payment_intents/create.md#create_payment_intent-on_behalf_of) provided on the Intent used when confirming payment. - `paymentMethodTypes` (array) Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). A list of payment method types to render. You can omit this attribute to manage your payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). - `paymentMethodConfiguration` (string) Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). The [payment method configuration](/api/payment_method_configurations.md) to use when managing your payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). If none is specified, your default configuration is used. - `paymentMethodOptions` (object) Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Additional payment-method-specific options for configuring behavior when initialized without an intent. - `acss_debit` (object) If this is an `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `affirm` (object) If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `afterpay_clearpay` (object) If this is an `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay / Clearpay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `alipay` (object) If this is an `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `alma` (object) If this is an `alma` PaymentMethod, this sub-hash contains details about the Alma payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `amazon_pay` (object) If this is an `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `au_becs_debit` (object) If this is an `au_becs_debit` PaymentMethod, this sub-hash contains details about the BECS Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `bacs_debit` (object) If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the Bacs Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `bancontact` (object) If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `billie` (object) If this is a `billie` PaymentMethod, this sub-hash contains details about the Billie payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `blik` (object) If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `boleto` (object) If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `card` (object) If this is a `card` PaymentMethod, this sub-hash contains details about the card payment method options. - `require_cvc_recollection` (boolean) When enabled, using a card that is attached to a customer will require the CVC to be provided again. When providing a `customerSessionClientSecret` and using the Payment Element, the Payment Element will prompt for CVC recollection. - `installments` (object) Installment configuration. - `enabled` (boolean) When `true`, shows the card installment plan selection UI (depending on issuer and country support) if you don't manage your payment methods in the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). You must set `mode='payment'` _and_ explicitly specify `paymentMethodTypes` in the Elements `options`. Setting installments to `true` without these settings returns an error. Incompatible with `paymentMethodCreation='manual'`. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `cashapp` (object) If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `crypto` (object) If this is a `crypto` PaymentMethod, this sub-hash contains details about the Crypto payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `customer_balance` (object) If this is a `customer_balance` PaymentMethod, this sub-hash contains details about the Customer Balance payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `eps` (object) If this is an `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `fpx` (object) If this is an `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `giropay` (object) If this is a `giropay` PaymentMethod, this sub-hash contains details about the giropay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `grabpay` (object) If this is a `grabpay` PaymentMethod, this sub-hash contains details about the GrabPay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `ideal` (object) If this is an `ideal` PaymentMethod, this sub-hash contains details about the iDEAL payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `kakao_pay` (object) If this is a `kakao_pay` PaymentMethod, this sub-hash contains details about the Kakao Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `klarna` (object) If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `konbini` (object) If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `kr_card` (object) If this is a `kr_card` PaymentMethod, this sub-hash contains details about the Korean card payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `link` (object) If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `mb_way` (object) If this is a `mb_way` PaymentMethod, this sub-hash contains details about the MB WAY payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `mobilepay` (object) If this is a `mobilepay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `multibanco` (object) If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `naver_pay` (object) If this is a `naver_pay` PaymentMethod, this sub-hash contains details about the Naver Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `netbanking` (object) If this is a `netbanking` PaymentMethod, this sub-hash contains details about the NetBanking payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `nz_bank_account` (object) If this is a `nz_bank_account` PaymentMethod, this sub-hash contains details about the New Zealand bank account payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `oxxo` (object) If this is an `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `p24` (object) If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `paynow` (object) If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `pix` (object) If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `paypal` (object) If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. - `capture_method` ('automatic' | 'manual') Controls when the funds will be captured. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `promptpay` (object) If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `revolut_pay` (object) If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `satispay` (object) If this is a `satispay` PaymentMethod, this sub-hash contains details about the Satispay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `sepa_debit` (object) If this is a `sepa_debit` PaymentMethod, this sub-hash contains details about the SEPA Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `sofort` (object) If this is a `sofort` PaymentMethod, this sub-hash contains details about the Sofort payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `sunbit` (object) If this is a `sunbit` PaymentMethod, this sub-hash contains details about the Sunbit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `swish` (object) If this is a `swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `twint` (object) If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `upi` (object) If this is a `upi` PaymentMethod, this sub-hash contains details about the UPI payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `us_bank_account` (object) If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. - `verification_method` ('automatic' | 'instant') Verification method for the US bank account collection flow - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `financial_connections` (object) Additional fields for Financial Connections session creation - `permissions` (array) The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. - `prefetch` (array) The list of permissions that you would like to retrieve upon creation. Valid permissions include: `balances`, `ownership`, and `transactions`. - `wechat_pay` (object) If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `zip` (object) If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `appearance` (object) Supported for the [Payment Element](/payments/payment-element.md), the [Link Authentication Element](/payments/link.md), the [Express Checkout Element](/elements/express-checkout-element.md), and the [Address Element](/elements/address-element/.md). Match the design of your site with the [appearance option](/elements/appearance-api.md). The layout of each Element stays consistent, but you can modify colors, fonts, borders, padding, and more. - `loader` ('auto' | 'always' | 'never') Supported for the [Payment Element](/payments/payment-element.md), the [Link Authentication Element](/payments/link.md), and the [Address Element](/elements/address-element/.md). Display skeleton loader UI while waiting for Elements to be fully loaded, after they are mounted. Default is `'auto'` (Stripe determines if a loader UI should be shown). - `customerSessionClientSecret` (string) Used with the [Payment Element](/payments/payment-element.md) and [Address Element](/elements/address-element.md). The client_secret returned from create a [CustomerSession](/api/customer_sessions.md) associated with the [Customer ID](/api/customers/object.md#customer_object-id) for that session. - `syncAddressCheckbox` ('billing' | 'shipping' | 'none') Used with the [Address Element](/elements/address-element.md). The `syncAddressCheckbox` parameter configures which Address Element to show the checkbox above. The checkbox allows the customer the option to sync billing and shipping addresses when multiple Address Elements are used, one of each mode, in a single Elements instance. Default is `'billing'`. `'none'` opts out of showing the checkbox in either Address Element. - `paymentMethodCreation` ('manual') Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). Allows PaymentMethods to be created from the Elements instance using [stripe.createPaymentMethod](/js/payment_methods/create_payment_method_elements.md). **NOTE:** The Express Checkout Element doesn't support [stripe.createPaymentMethod](/js/payment_methods/create_payment_method_elements.md) with [Amazon Pay](/payments/amazon-pay.md) or [Klarna](/payments/klarna.md). Use [stripe.createConfirmationToken](/js/confirmation_tokens/create_confirmation_token.md) instead. Card installments are also unsupported and either blocks showing the plan selection UI, or raises an error for manual enablement using `paymentMethodOptions`. - `excludedPaymentMethodTypes` (array) Used with the [Payment Element](/payments/payment-element.md) and [Express Checkout Element](/elements/express-checkout-element.md). The list of payment method types to exclude from use with this payment. - `customPaymentMethods` (array) Supported for the [Payment Element](/payments/payment-element.md). An array of [custom payment methods](/payments/payment-element/custom-payment-methods.md) to display in the [Payment Element](/payments/payment-element.md). The custom payment methods must be registered in the [Stripe Dashboard](https://dashboard.stripe.com/settings/custom_payment_methods). - `id` (string) **required** The ID of the [custom payment method type](https://dashboard.stripe.com/settings/custom_payment_methods), prefixed with `cpmt_`. - `options` (object) A set of options to configure the custom payment method with. - `type` ('static') **required** The form type of the custom payment method. - `subtitle` (string) A subtitle contains additional information about the custom payment method. ### Create an Elements instance without an intent ```js var elements = stripe.elements({ mode: 'payment', currency: 'usd', amount: 1099, }); ``` ```es_next const elements = stripe.elements({ mode: 'payment', currency: 'usd', amount: 1099, }); ``` ## Update Elements Options This method updates options on an existing instance of `Elements`. Note that not all options are updatable. **Syntax:** `elements.update(...)` - `options` (object) **required** A set of options to update this `Elements` instance with. - `locale` (string) A [locale](#supported_locales) to display placeholders and error strings in. Default is `auto` (Stripe detects the locale of the browser). Setting the locale does not affect the behavior of postal code validation—a valid postal code for the billing country of the card is still required. To indicate the direction of text for *right to left* languages such as Arabic and Hebrew, mount Elements underneath an HTML element that includes the `dir="rtl"` attribute. - `mode` ('payment' | 'setup' | 'subscription') Used with the [Payment Element](/payments/payment-element.md). Filters out payment methods based on intended use. - `currency` (string) Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](/currencies.md). - `amount` (number) Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). Shown in Apple Pay, Google Pay, or Buy now pay later UIs. The amount intended to be collected from the customer right now. A positive integer representing how much to charge in the [smallest currency unit](/currencies.md#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](/currencies.md#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). - `setupFutureUsage` ('on_session' | 'off_session') Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). Influences available payment methods and the [terms](/js/elements_object/create_payment_element.md#payment_element_create-options-terms) shown by the Payment Element. This should match the [setup_future_usage](/api/payment_intents/create.md#create_payment_intent-setup_future_usage) provided on the Intent used when confirming payment. - `captureMethod` ('automatic' | 'automatic_async' | 'manual') Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). Influences available payment methods. This should match the [capture method](/api/payment_intents/create.md#create_payment_intent-capture_method) provided on the PaymentIntent or SetupIntent used when confirming payment. - `onBehalfOf` (string) Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). This property can't be updated when used with the [Card Element](/payments/card-element.md). The Stripe account ID, which is the business of record. Review the [use cases](/connect/charges.md) to determine if this option is relevant for your integration. Make sure this matches the [on_behalf_of](/api/payment_intents/create.md#create_payment_intent-on_behalf_of) provided on the Intent used when confirming payment. - `paymentMethodTypes` (array) Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). Instead of using dynamic payment methods, declare specific [payment methods](/payments/payment-methods/overview.md) to enable. - `paymentMethodOptions` (object) Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). Additional payment-method-specific options for configuring behavior when initialized without an intent. - `acss_debit` (object) If this is an `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `affirm` (object) If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `afterpay_clearpay` (object) If this is an `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay / Clearpay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `alipay` (object) If this is an `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `alma` (object) If this is an `alma` PaymentMethod, this sub-hash contains details about the Alma payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `amazon_pay` (object) If this is an `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `au_becs_debit` (object) If this is an `au_becs_debit` PaymentMethod, this sub-hash contains details about the BECS Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `bacs_debit` (object) If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the Bacs Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `bancontact` (object) If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `billie` (object) If this is a `billie` PaymentMethod, this sub-hash contains details about the Billie payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `blik` (object) If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `boleto` (object) If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `card` (object) If this is a `card` PaymentMethod, this sub-hash contains details about the card payment method options. - `require_cvc_recollection` (boolean) When enabled, using a card that is attached to a customer will require the CVC to be provided again. When providing a `customerSessionClientSecret` and using the Payment Element, the Payment Element will prompt for CVC recollection. - `installments` (object) Installment configuration. - `enabled` (boolean) When `true`, shows the card installment plan selection UI (depending on issuer and country support) if you don't manage your payment methods in the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). You must set `mode='payment'` _and_ explicitly specify `paymentMethodTypes` in the Elements `options`. Setting installments to `true` without these settings returns an error. Incompatible with `paymentMethodCreation='manual'`. - `cashapp` (object) If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `crypto` (object) If this is a `crypto` PaymentMethod, this sub-hash contains details about the Crypto payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `eps` (object) If this is an `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `fpx` (object) If this is an `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `giropay` (object) If this is a `giropay` PaymentMethod, this sub-hash contains details about the giropay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `grabpay` (object) If this is a `grabpay` PaymentMethod, this sub-hash contains details about the GrabPay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `ideal` (object) If this is an `ideal` PaymentMethod, this sub-hash contains details about the iDEAL payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `klarna` (object) If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `konbini` (object) If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `link` (object) If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `mobilepay` (object) If this is a `mobilepay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `multibanco` (object) If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `netbanking` (object) If this is a `netbanking` PaymentMethod, this sub-hash contains details about the NetBanking payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `oxxo` (object) If this is an `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `p24` (object) If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `paynow` (object) If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `paypal` (object) If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. - `capture_method` ('automatic' | 'manual') Controls when the funds will be captured. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `promptpay` (object) If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `revolut_pay` (object) If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `satispay` (object) If this is a `satispay` PaymentMethod, this sub-hash contains details about the Satispay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `sepa_debit` (object) If this is a `sepa_debit` PaymentMethod, this sub-hash contains details about the SEPA Debit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `sofort` (object) If this is a `sofort` PaymentMethod, this sub-hash contains details about the Sofort payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `sunbit` (object) If this is a `sunbit` PaymentMethod, this sub-hash contains details about the Sunbit payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `swish` (object) If this is a `swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `twint` (object) If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `upi` (object) If this is a `upi` PaymentMethod, this sub-hash contains details about the UPI payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `us_bank_account` (object) If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. - `verification_method` ('automatic' | 'instant') Verification method for the US bank account collection flow - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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` (string) Use `off_session` if your customer may or may not be present in your checkout flow. - `on_session` (string) Use `on_session` if you intend to only reuse the payment method when your customer is present in your checkout flow. - `financial_connections` (object) Additional fields for Financial Connections session creation - `permissions` (array) The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. - `prefetch` (array) The list of permissions that you would like to retrieve upon creation. Valid permissions include: `balances`, `ownership`, and `transactions`. - `wechat_pay` (object) If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `zip` (object) If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. - `setup_future_usage` (enum) Indicates that you intend to make future payments with the payment details collected by the Payment Element. - `none` (string) 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. - `appearance` (object) Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). Match the design of your site with the [appearance option](/elements/appearance-api.md). The layout of each Element stays consistent, but you can modify colors, fonts, borders, padding, and more. - `fonts` (array) An array of custom fonts, which elements created from the `Elements` object can use. Fonts can be specified as [CssFontSource](#css_font_source_object) or [CustomFontSource](#custom_font_source_object) objects. Any fonts that have already been loaded during creation or previous updates will be ignored. - `customerSessionClientSecret` (string) Used with the [Payment Element](/payments/payment-element.md) and [Address Element](/elements/address-element.md). The client_secret returned from create a [CustomerSession](/api/customer_sessions.md) associated with the [Customer ID](/api/customers/object.md#customer_object-id). When the `customerSessionClientSecret` is used with `element.update()`, saved payment methods associated with the previous session are cleared, and the payment element is re-rendered with any saved payment methods associated with the updated secret. - `excludedPaymentMethodTypes` (array) Used with the [Payment Element](/payments/payment-element.md) and the [Express Checkout Element](/elements/express-checkout-element.md). The list of payment method types to exclude from use with this payment. - `customPaymentMethods` (array) Supported for the [Payment Element](/payments/payment-element.md). An array of [custom payment methods](/payments/payment-element/custom-payment-methods.md) to display in the [Payment Element](/payments/payment-element.md). The custom payment methods must be registered in the [Stripe Dashboard](https://dashboard.stripe.com/settings/custom_payment_methods). - `id` (string) **required** The ID of the [custom payment method type](https://dashboard.stripe.com/settings/custom_payment_methods), prefixed with `cpmt_`. - `options` (object) A set of options to configure the custom payment method with. - `type` ('static') **required** The form type of the custom payment method. - `subtitle` (string) A subtitle contains additional information about the custom payment method. ### Update Elements ```js elements.update({locale: 'fr'}); ``` ```es_next elements.update({locale: 'fr'}); ``` ## Update-end event Triggered when the call to `elements.update()` is complete. **Syntax:** `elements.on(...)` - `event` ('update-end') **required** The name of the event. In this case, `update-end`. - `handler` (function) **required** `handler() => void` is a **callback function** that you provide that will be called when the event is fired. ### Handle an Elements update-end event ```js elements.on('update-end', function() { // Handle update-end }); ``` ```es_next elements.on('update-end', () => { // Handle update-end }); ``` ## Fetch Server Updates Used with the [Payment Element](/payments/payment-element.md). This method fetches updates from the associated [PaymentIntent](/api/payment_intents.md) or [SetupIntent](/api/setup_intents.md) on an existing instance of `Elements`, and reflects these updates in the Payment Element. This method returns a `Promise` which resolves with a result object. If this method succeeds, the result object will be empty. If this method fails, the result object will contain a localized error message in the `error.message` field. If the associated [PaymentIntent](/api/payment_intents) or [SetupIntent](/api/setup_intents) is in an unexpected status, the result object will also contain the intent's status in the `error.status` field. **Syntax:** `elements.fetchUpdates(...)` ### Fetch Server Updates ```js elements.fetchUpdates() .then(function(result) { // Handle result.error }); ``` ```es_next const {error} = await elements.fetchUpdates(); ``` ## Submit Use `elements.submit()` when creating the [Elements object without an Intent](#stripe_elements_no_intent). Before confirming a payment, call `elements.submit()` to validate the form fields and collect any data required for [wallets](#payment_element_create-options-wallets). You must wait for this function's promise to resolve (using `async` or `.then`) before performing any other operations. This method returns a `Promise` which resolves with a result object. If this method succeeds, the result object contains the selected payment method type in the `selectedPaymentMethod` field. If this method fails, the result object contains a localized error message in the `error.message` field. **Syntax:** `elements.submit(...)` ### Submit Elements ```js elements.submit() .then(function(result) { // Handle result.error or retrieve result.selectedPaymentMethod }); ``` ```es_next const {error, selectedPaymentMethod} = await elements.submit(); ```