PaymentIntent class
A PaymentIntent guides you through the process of collecting a payment from your customer. We recommend that you create exactly one PaymentIntent for each order or customer session in your system.
You can reference the PaymentIntent later to see the history of payment attempts for a particular session. A PaymentIntent transitions through multiple statuses throughout its lifetime as it interfaces with Stripe.js to perform authentication flows and ultimately creates at most one successful charge.
- Annotations
-
- @freezed
Constructors
-
PaymentIntent({required String id, @Default("payment_intent") String object, required int amount, @JsonKey(name: "amount_capturable") int? amountCapturable, @Default(PaymentIntentAmountDetails()) @JsonKey(name: "amount_details") PaymentIntentAmountDetails? amountDetails, @JsonKey(name: "amount_received") int? amountReceived, String? application, @JsonKey(name: "application_fee_amount") int? applicationFeeAmount, @JsonKey(name: "automatic_payment_methods") PaymentIntentAutomaticPaymentMethods? automaticPaymentMethods, @JsonKey(name: "canceled_at") int? canceledAt, @JsonKey(name: "cancellation_reason") PaymentIntentCancellationReason? cancellationReason, @JsonKey(name: "client_secret") required String clientSecret, @JsonKey(name: "capture_method") @Default(PaymentIntentCaptureMethod.automatic) PaymentIntentCaptureMethod captureMethod, @JsonKey(name: "confirmation_method") @Default(PaymentIntentConfirmationMethod.automatic) PaymentIntentConfirmationMethod confirmationMethod, int? created, required String currency, String? customer, String? description, String? invoice, @JsonKey(name: "last_payment_error") StripeError? lastPaymentError, @JsonKey(name: "latest_charge") String? latestCharge, required bool livemode, @Default({}) Map<
String, dynamic> metadata, @JsonKey(name: "next_action") dynamic nextAction, @JsonKey(name: "on_behalf_of") String? onBehalfOf, @JsonKey(name: "payment_method") String? paymentMethod, @Default({}) @JsonKey(name: "payment_method_options") Map paymentMethodOptions, @JsonKey(name: "payment_method_types") @Default([]) List<PaymentMethodType> paymentMethodTypes, dynamic processing, @JsonKey(name: "receipt_email") String? receiptEmail, String? review, @JsonKey(name: "setup_future_usage") PaymentIntentSetupFutureUsage? setupFutureUsage, ShippingDetails? shipping, @JsonKey(name: "statement_descriptor") String? statementDescriptor, @JsonKey(name: "statement_descriptor_suffix") String? statementDescriptorSuffix, required PaymentIntentsStatus status, @JsonKey(name: "transfer_data") dynamic transferData, @JsonKey(name: "transfer_group") dynamic transferGroup}) -
constfactory
-
PaymentIntent.fromJson(Map<
String, dynamic> json) -
factory
Properties
- amount → int
-
Amount intended to be collected by this PaymentIntent.
A positive integer representing 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 minimum amount is $0.50 US or equivalent in charge currency.
The amount value supports up to eight digits
(e.g., a value of 99999999 for a USD charge of $999,999.99).
no setterinherited
- amountCapturable → int?
-
The amount that can be captured with from this PaymentIntent (in cents).
no setterinherited
- amountDetails → PaymentIntentAmountDetails?
-
Details about items included in the amount
no setterinherited
- amountReceived → int?
-
The amount that was collected from this PaymentIntent (in cents).
no setterinherited
- application → String?
-
CONNECT ONLY
ID of the Connect application that created the PaymentIntent.
no setterinherited
- applicationFeeAmount → int?
-
CONNECT ONLY
The amount of the application fee (if any) that will be requested to
be applied to the payment and transferred to the application owner’s
Stripe account. The amount of the application fee collected will be
capped at the total payment amount.
For more information, see the PaymentIntents use
case for connected accounts..
no setterinherited
- automaticPaymentMethods → PaymentIntentAutomaticPaymentMethods?
-
Settings to configure compatible payment methods from the
Stripe Dashboard
no setterinherited
- canceledAt → int?
-
Populated when status is canceled, this is the time at which the
PaymentIntent was canceled. Measured in seconds since the Unix epoch.
no setterinherited
- cancellationReason → PaymentIntentCancellationReason?
-
Reason for cancellation of this PaymentIntent,
either user-provided
(duplicate, fraudulent, requested_by_customer, or abandoned) or
generated by Stripe internally
(failed_invoice, void_invoice, or automatic).
no setterinherited
- captureMethod → PaymentIntentCaptureMethod
-
Controls when the funds will be captured from the customer’s account.
no setterinherited
- clientSecret → String
-
The client secret of this PaymentIntent. Used for client-side retrieval
using a publishable key.
The client secret can be used to complete a payment from your frontend.
It should not be stored, logged, or exposed to anyone other than the
customer. Make sure that you have TLS enabled on any page that includes
the client secret.
no setterinherited
- confirmationMethod → PaymentIntentConfirmationMethod
-
no setterinherited
-
copyWith
→ $PaymentIntentCopyWith<
PaymentIntent> -
no setterinherited
- created → int?
-
Time at which the object was created. Measured in seconds since the
Unix epoch.
no setterinherited
- currency → String
-
Three-letter ISO currency code, in lowercase. Must be a supported
currency.
no setterinherited
- customer → String?
-
ID of the Customer this PaymentIntent belongs to, if one exists.
Payment methods attached to other Customers cannot be used with this
PaymentIntent.
no setterinherited
- description → String?
-
An arbitrary string attached to the object.
Often useful for displaying to users.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
Unique identifier for the object.
no setterinherited
- invoice → String?
-
ID of the invoice that created this PaymentIntent, if it exists.
no setterinherited
- lastPaymentError → StripeError?
-
The payment error encountered in the previous PaymentIntent confirmation.
It will be cleared if the PaymentIntent is later updated for any reason.
no setterinherited
- latestCharge → String?
-
The latest charge created by this payment intent.
no setterinherited
- livemode → bool
-
Has the value true if the object exists in live mode or the
value false if the object exists in test mode.
no setterinherited
-
metadata
→ Map<
String, dynamic> -
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.
no setterinherited
- nextAction → dynamic
-
If present, this property tells you what actions you need to
take in order for your customer to fulfill a payment using the
provided source.
no setterinherited
- object → String
-
String representing the object’s type.
Objects of the same type share the same value.
Value is "payment_intent".
no setterinherited
- onBehalfOf → String?
-
CONNECT ONLY
The account (if any) for which the funds of the PaymentIntent are
intended. See the PaymentIntents use case for connected accounts
for details.
no setterinherited
- paymentMethod → String?
-
ID of the payment method used in this PaymentIntent.
no setterinherited
- paymentMethodOptions → Map
-
Payment-method-specific configuration for this PaymentIntent.
no setterinherited
-
paymentMethodTypes
→ List<
PaymentMethodType> -
The list of payment method types (e.g. card) that this PaymentIntent
is allowed to use.
no setterinherited
- processing → dynamic
-
If present, this property tells you about the processing state of the payment.
no setterinherited
- receiptEmail → String?
-
Email address that the receipt for the resulting payment will be sent to.
If receipt_email is specified for a payment in live mode, a receipt
will be sent regardless of your email settings.
no setterinherited
- review → String?
-
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- setupFutureUsage → PaymentIntentSetupFutureUsage?
-
Indicates that you intend to make future payments with this
PaymentIntent’s payment method.
Providing this parameter will attach the payment method to the
PaymentIntent’s Customer, if present, after the PaymentIntent is
confirmed and any required actions from the user are complete. I
If no Customer was provided, the payment method can still be attached to
a Customer after the transaction completes.
When processing card payments, Stripe also uses setup_future_usage
to dynamically optimize your payment flow and comply with regional
legislation and network rules, such as SCA.
no setterinherited
- shipping → ShippingDetails?
-
Shipping information for this PaymentIntent.
no setterinherited
- statementDescriptor → String?
-
For non-card charges, you can use this value as the complete
description that appears on your customers’ statements.
Must contain at least one letter, maximum 22 characters.
no setterinherited
- statementDescriptorSuffix → String?
-
Provides information about a card payment that customers see on
their statements.
Concatenated with the prefix (shortened descriptor) or statement
descriptor that’s set on the account to form the complete statement
descriptor. Maximum 22 characters for the concatenated descriptor.
no setterinherited
- status → PaymentIntentsStatus
-
Status of this PaymentIntent, one of requires_payment_method,
requires_confirmation, requires_action, processing, requires_capture,
canceled, or succeeded.
no setterinherited
- transferData → dynamic
-
CONNECT ONLY
The data with which to automatically create a Transfer when the payment
is finalized. See the PaymentIntents use case for connected
accounts for details.
no setterinherited
- transferGroup → dynamic
-
CONNECT ONLY
A string that identifies the resulting payment as part of a group.
See the PaymentIntents use case for connected accounts for details.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, dynamic> -
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited