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.

https://stripe.com/docs/api/payment_intents

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})
const
factory
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