SCPPaymentIntent
Objective-C
@interface SCPPaymentIntent : NSObject <NSCopying>
                Swift
class PaymentIntent : NSObject, NSCopying
                A PaymentIntent tracks 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 and ultimately creates at most one successful charge.
- 
                  
                  
The amount to be collected by this PaymentIntent, provided in the currency’s smallest unit.
Declaration
Objective-C
@property (nonatomic, readonly) NSUInteger amount;Swift
var amount: UInt { get } - 
                  
                  
Amount that can be captured for this PaymentIntent.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSNumber *amountCapturable;Swift
var amountCapturable: NSNumber? { get } - 
                  
                  
Details about items included in the amount after confirmation.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) SCPAmountDetails *amountDetails;Swift
var amountDetails: SCPAmountDetails? { get } - 
                  
                  
Amount that was received for this PaymentIntent.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSNumber *amountReceived;Swift
var amountReceived: NSNumber? { get } - 
                  
                  
The originally specified request amount if the transaction was partially authorized
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSNumber *amountRequested;Swift
var amountRequested: NSNumber? { get } - 
                  
                  
Surcharge amount to apply on top of the purchase amount.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSNumber *amountSurcharge;Swift
var amountSurcharge: NSNumber? { get } - 
                  
                  
Indicates how much the user intends to tip in addition to the amount by at confirmation time. This is only non-null in the
PaymentIntentinstance returned during collect when usingupdatePaymentIntentset to true in theCollectConfiguration.After
confirmPaymentIntenttheamountwill have this tip amount added to it and theamountDetailswill contain the breakdown of how much of the amount was a tip.Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSNumber *amountTip;Swift
var amountTip: NSNumber? { get } - 
                  
                  
The amount of the application fee (if any) for the resulting payment.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSNumber *applicationFeeAmount;Swift
var applicationFeeAmount: NSNumber? { get } - 
                  
                  
Time at which the PaymentIntent was canceled, if it was canceled.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSDate *canceledAt;Swift
var canceledAt: Date? { get } - 
                  
                  
Reason for cancellation of this PaymentIntent.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *cancellationReason;Swift
var cancellationReason: String? { get } - 
                  
                  
Controls when the funds will be captured from the customer’s account.
Declaration
Objective-C
@property (nonatomic, readonly) SCPCaptureMethod captureMethod;Swift
var captureMethod: CaptureMethod { get } - 
                  
                  
The client secret for this intent.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *clientSecret;Swift
var clientSecret: String? { get } - 
                  
                  
The confirmation method for this PaymentIntent (“automatic” or “manual”).
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *confirmationMethod;Swift
var confirmationMethod: String? { get } - 
                  
                  
When the intent was created.
Declaration
Objective-C
@property (nonatomic, readonly) NSDate *_Nonnull created;Swift
var created: Date { get } - 
                  
                  
The currency of the payment.
Declaration
Objective-C
@property (nonatomic, readonly) NSString *_Nonnull currency;Swift
var currency: String { get } - 
                  
                  
ID of the Customer this PaymentIntent belongs to, if one exists.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *customer;Swift
var customer: String? { get } - 
                  
                  
Last payment error on a charge, if any.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) SCPApiError *lastPaymentError;Swift
var lastPaymentError: SCPApiError? { get } - 
                  
                  
Whether this PaymentIntent was created in live mode or test mode.
Declaration
Objective-C
@property (nonatomic, readonly) BOOL livemode;Swift
var livemode: Bool { get } - 
                  
                  
Set of key-value pairs attached to the object.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSDictionary<NSString *, NSString *> *metadata;Swift
var metadata: [String : String]? { get } - 
                  
                  
If present, this property tells you what actions you need to take for your customer to continue payment.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) SCPNextAction *nextAction;Swift
var nextAction: SCPNextAction? { get } - 
                  
                  
The offline details for this intent, if created or processed while offline.
When an intent is created offline, the intent.stripeId will be nil. To keep track of offline payments, we recommend using the intent.metadata with your own identifiers.
The
OfflineDetailsrequiresUploadcan be used to identify that the intent was processed offline and requires the device to be brought back online so the intent can be forwarded.Declaration
Objective-C
@property (nonatomic, readonly, nullable) SCPOfflineDetails *offlineDetails;Swift
var offlineDetails: SCPOfflineDetails? { get } - 
                  
                  
The account (if any) for which the payment is intended.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *onBehalfOf;Swift
var onBehalfOf: String? { get } - 
                  
                  
The payment method to be used in this PaymentIntent. Only valid in the intent returned during
collectPaymentMethodwhen using theupdatePaymentIntentoption in theSCPCollectPaymentIntentConfiguration.Declaration
Objective-C
@property (nonatomic, readonly, nullable) SCPPaymentMethod *paymentMethod;Swift
var paymentMethod: SCPPaymentMethod? { get } - 
                  
                  
ID of the payment method used in this PaymentIntent.
Declaration
Objective-C
@property (nonatomic, copy, readonly, nullable) NSString *paymentMethodId;Swift
var paymentMethodId: String? { get } - 
                  
                  
Payment-method-specific configuration for this PaymentIntent.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) SCPPaymentMethodOptionsParameters *paymentMethodOptions;Swift
var paymentMethodOptions: PaymentMethodOptionsParameters? { get } - 
                  
                  
The list of payment method types that this PaymentIntent can use. These are NSNumber’s where the value is in
SCPPaymentMethodType.Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSArray<NSNumber *> *paymentMethodTypes;Swift
var paymentMethodTypes: [NSNumber]? { get } - 
                  
                  
Email address that the receipt for the resulting payment will be sent to.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *receiptEmail;Swift
var receiptEmail: String? { get } - 
                  
                  
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. 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.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *setupFutureUsage;Swift
var setupFutureUsage: String? { get } - 
                  
                  
Extra information about a PaymentIntent. This will appear on your customer’s statement when this PaymentIntent succeeds in creating a charge.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *statementDescriptor;Swift
var statementDescriptor: String? { get } - 
                  
                  
Extra dynamic information about a PaymentIntent. This will appear concatenated with the statementDescriptor on your customer’s statement when this PaymentIntent succeeds in creating a charge.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *statementDescriptorSuffix;Swift
var statementDescriptorSuffix: String? { get } - 
                  
                  
The status of the PaymentIntent.
Declaration
Objective-C
@property (nonatomic, readonly) SCPPaymentIntentStatus status;Swift
var status: PaymentIntentStatus { get } - 
                  
                  
An arbitrary string attached to the object. Often useful for displaying to users.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *stripeDescription;Swift
var stripeDescription: String? { get } - 
                  
                  
The unique identifier for the intent.
When an intent is created offline, the stripeId will be nil. To keep track of offline payments, we recommend using the metadata with your own identifiers.
After the payment has been forwarded the intent’s stripeId will be filled in.
Declaration
Objective-C
@property (nonatomic, copy, readonly, nullable) NSString *stripeId;Swift
var stripeId: String? { get } - 
                  
                  
A string that identifies this PaymentIntent as part of a group.
Declaration
Objective-C
@property (nonatomic, readonly, nullable) NSString *transferGroup;Swift
var transferGroup: String? { get } - 
                  
                  
Unavailable
You cannot directly instantiate
SCPPaymentIntent. You should only use one that has been returned by our SDK.See
SCPTerminal.shared.createPaymentIntent()Declaration
Objective-C
- (nonnull instancetype)init; - 
                  
                  
Unavailable
You cannot directly instantiate
SCPPaymentIntent. You should only use one that has been returned by our SDK.See
SCPTerminal.shared.createPaymentIntent()Declaration
Objective-C
+ (nonnull instancetype)new;