SetupIntent class final
SetupIntent
A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment\_intents) to drive the payment flow. Create a SetupIntent when you're ready to collect your customer's payment credentials. Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. The SetupIntent transitions through multiple [statuses](https://stripe.com/docs/payments/intents#intent-statuses) as it guides you through the setup process. Successful SetupIntents result in payment credentials that are optimized for future payments. For example, cardholders in [certain regions](/guides/strong-customer-authentication) might need to be run through [Strong Customer Authentication](https://stripe.com/docs/strong-customer-authentication) during payment method collection to streamline later [off-session payments](https://stripe.com/docs/payments/setup-intents). If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup\_intent\_object-customer), it automatically attaches the resulting payment method to that Customer after successful setup. We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment\_intent\_object-setup\_future_usage) on PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. Related guide: [Setup Intents API](https://stripe.com/docs/payments/setup-intents)
- Implemented types
Constructors
-
SetupIntent({ApplicationOrId? application, bool? attachToSelf, PaymentFlowsAutomaticPaymentMethodsSetupIntent? automaticPaymentMethods, SetupIntentCancellationReason? cancellationReason, String? clientSecret, required DateTime created, BankAccountCustomerOrId? customer, String? description, List<
SetupAttemptFlowDirectionsItem> ? flowDirections, required String id, ApiErrors? lastSetupError, SetupAttemptOrId? latestAttempt, required bool livemode, MandateOrId? mandate, Map<String, String> ? metadata, SetupIntentNextAction? nextAction, AccountOrId? onBehalfOf, PaymentMethodOrId? paymentMethod, PaymentMethodConfigBizPaymentMethodConfigurationDetails? paymentMethodConfigurationDetails, SetupIntentPaymentMethodOptions? paymentMethodOptions, required List<String> paymentMethodTypes, MandateOrId? singleUseMandate, required SetupIntentStatus status, required String usage}) -
SetupIntent
const
- SetupIntent.fromJson(Object? json)
-
factory
Properties
- application → ApplicationOrId?
-
final
- attachToSelf → bool?
-
final
- automaticPaymentMethods → PaymentFlowsAutomaticPaymentMethodsSetupIntent?
-
final
- cancellationReason → SetupIntentCancellationReason?
-
final
- clientSecret → String?
-
final
- created → DateTime
-
final
- customer → BankAccountCustomerOrId?
-
final
- description → String?
-
final
-
flowDirections
→ List<
SetupAttemptFlowDirectionsItem> ? -
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
The ID of the SetupIntent.
final
- lastSetupError → ApiErrors?
-
final
- latestAttempt → SetupAttemptOrId?
-
final
- livemode → bool
-
final
- mandate → MandateOrId?
-
final
-
metadata
→ Map<
String, String> ? -
final
- nextAction → SetupIntentNextAction?
-
If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
final
- object → String
-
The resource's type.
final
- onBehalfOf → AccountOrId?
-
final
- paymentMethod → PaymentMethodOrId?
-
final
- paymentMethodConfigurationDetails → PaymentMethodConfigBizPaymentMethodConfigurationDetails?
-
final
- paymentMethodOptions → SetupIntentPaymentMethodOptions?
-
Payment method-specific configuration for this SetupIntent.
final
-
paymentMethodTypes
→ List<
String> -
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- singleUseMandate → MandateOrId?
-
final
- status → SetupIntentStatus
-
final
- usage → String
-
final
Methods
-
encodeWith<
V> (Encoder< V> encoder) → V -
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, Object?> -
override
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
encode<
V> (SetupIntent instance, Encoder< V> encoder) → V -
override