• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stripe / stripe-go / 11295426688

11 Oct 2024 03:52PM UTC coverage: 62.991% (-0.02%) from 63.015%
11295426688

Pull #1934

github

stripe-openapi[bot]
Merge upstream and update generated code for v1290
Pull Request #1934: Update generated code for beta

0 of 8 new or added lines in 2 files covered. (0.0%)

472 existing lines in 21 files now uncovered.

6209 of 9857 relevant lines covered (62.99%)

15.67 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

10.45
/paymentintent.go
1
//
2
//
3
// File generated from our OpenAPI spec
4
//
5
//
6

7
package stripe
8

9
import "encoding/json"
10

11
// Controls whether this PaymentIntent will accept redirect-based payment methods.
12
//
13
// Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the payment.
14
type PaymentIntentAutomaticPaymentMethodsAllowRedirects string
15

16
// List of values that PaymentIntentAutomaticPaymentMethodsAllowRedirects can take
17
const (
18
        PaymentIntentAutomaticPaymentMethodsAllowRedirectsAlways PaymentIntentAutomaticPaymentMethodsAllowRedirects = "always"
19
        PaymentIntentAutomaticPaymentMethodsAllowRedirectsNever  PaymentIntentAutomaticPaymentMethodsAllowRedirects = "never"
20
)
21

22
// 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`).
23
type PaymentIntentCancellationReason string
24

25
// List of values that PaymentIntentCancellationReason can take
26
const (
27
        PaymentIntentCancellationReasonAbandoned           PaymentIntentCancellationReason = "abandoned"
28
        PaymentIntentCancellationReasonAutomatic           PaymentIntentCancellationReason = "automatic"
29
        PaymentIntentCancellationReasonDuplicate           PaymentIntentCancellationReason = "duplicate"
30
        PaymentIntentCancellationReasonFailedInvoice       PaymentIntentCancellationReason = "failed_invoice"
31
        PaymentIntentCancellationReasonFraudulent          PaymentIntentCancellationReason = "fraudulent"
32
        PaymentIntentCancellationReasonRequestedByCustomer PaymentIntentCancellationReason = "requested_by_customer"
33
        PaymentIntentCancellationReasonVoidInvoice         PaymentIntentCancellationReason = "void_invoice"
34
)
35

36
// Controls when the funds will be captured from the customer's account.
37
type PaymentIntentCaptureMethod string
38

39
// List of values that PaymentIntentCaptureMethod can take
40
const (
41
        PaymentIntentCaptureMethodAutomatic      PaymentIntentCaptureMethod = "automatic"
42
        PaymentIntentCaptureMethodAutomaticAsync PaymentIntentCaptureMethod = "automatic_async"
43
        PaymentIntentCaptureMethodManual         PaymentIntentCaptureMethod = "manual"
44
)
45

46
// Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.
47
type PaymentIntentConfirmationMethod string
48

49
// List of values that PaymentIntentConfirmationMethod can take
50
const (
51
        PaymentIntentConfirmationMethodAutomatic PaymentIntentConfirmationMethod = "automatic"
52
        PaymentIntentConfirmationMethodManual    PaymentIntentConfirmationMethod = "manual"
53
)
54

55
// The payment networks supported by this FinancialAddress
56
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork string
57

58
// List of values that PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork can take
59
const (
60
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkACH            PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "ach"
61
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkBACS           PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "bacs"
62
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkDomesticWireUS PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "domestic_wire_us"
63
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkFPS            PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "fps"
64
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkSEPA           PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "sepa"
65
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkSpei           PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "spei"
66
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkSwift          PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "swift"
67
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetworkZengin         PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork = "zengin"
68
)
69

70
// The type of financial address
71
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType string
72

73
// List of values that PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType can take
74
const (
75
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressTypeABA      PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType = "aba"
76
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressTypeIBAN     PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType = "iban"
77
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressTypeSortCode PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType = "sort_code"
78
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressTypeSpei     PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType = "spei"
79
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressTypeSwift    PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType = "swift"
80
        PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressTypeZengin   PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType = "zengin"
81
)
82

83
// Type of bank transfer
84
type PaymentIntentNextActionDisplayBankTransferInstructionsType string
85

86
// List of values that PaymentIntentNextActionDisplayBankTransferInstructionsType can take
87
const (
88
        PaymentIntentNextActionDisplayBankTransferInstructionsTypeEUBankTransfer PaymentIntentNextActionDisplayBankTransferInstructionsType = "eu_bank_transfer"
89
        PaymentIntentNextActionDisplayBankTransferInstructionsTypeGBBankTransfer PaymentIntentNextActionDisplayBankTransferInstructionsType = "gb_bank_transfer"
90
        PaymentIntentNextActionDisplayBankTransferInstructionsTypeJPBankTransfer PaymentIntentNextActionDisplayBankTransferInstructionsType = "jp_bank_transfer"
91
        PaymentIntentNextActionDisplayBankTransferInstructionsTypeMXBankTransfer PaymentIntentNextActionDisplayBankTransferInstructionsType = "mx_bank_transfer"
92
        PaymentIntentNextActionDisplayBankTransferInstructionsTypeUSBankTransfer PaymentIntentNextActionDisplayBankTransferInstructionsType = "us_bank_transfer"
93
)
94

95
// Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits`.
96
type PaymentIntentNextActionType string
97

98
// List of values that PaymentIntentNextActionType can take
99
const (
100
        PaymentIntentNextActionTypeAlipayHandleRedirect    PaymentIntentNextActionType = "alipay_handle_redirect"
101
        PaymentIntentNextActionTypeOXXODisplayDetails      PaymentIntentNextActionType = "oxxo_display_details"
102
        PaymentIntentNextActionTypeRedirectToURL           PaymentIntentNextActionType = "redirect_to_url"
103
        PaymentIntentNextActionTypeUseStripeSDK            PaymentIntentNextActionType = "use_stripe_sdk"
104
        PaymentIntentNextActionTypeVerifyWithMicrodeposits PaymentIntentNextActionType = "verify_with_microdeposits"
105
)
106

107
// The type of the microdeposit sent to the customer. Used to distinguish between different verification methods.
108
type PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType string
109

110
// List of values that PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType can take
111
const (
112
        PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositTypeAmounts        PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType = "amounts"
113
        PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositTypeDescriptorCode PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType = "descriptor_code"
114
)
115

116
// The delivery method for the payment
117
type PaymentIntentPaymentDetailsCarRentalDeliveryMode string
118

119
// List of values that PaymentIntentPaymentDetailsCarRentalDeliveryMode can take
120
const (
121
        PaymentIntentPaymentDetailsCarRentalDeliveryModeEmail  PaymentIntentPaymentDetailsCarRentalDeliveryMode = "email"
122
        PaymentIntentPaymentDetailsCarRentalDeliveryModePhone  PaymentIntentPaymentDetailsCarRentalDeliveryMode = "phone"
123
        PaymentIntentPaymentDetailsCarRentalDeliveryModePickup PaymentIntentPaymentDetailsCarRentalDeliveryMode = "pickup"
124
        PaymentIntentPaymentDetailsCarRentalDeliveryModePost   PaymentIntentPaymentDetailsCarRentalDeliveryMode = "post"
125
)
126

127
// List of additional charges being billed.
128
type PaymentIntentPaymentDetailsCarRentalExtraCharge string
129

130
// List of values that PaymentIntentPaymentDetailsCarRentalExtraCharge can take
131
const (
132
        PaymentIntentPaymentDetailsCarRentalExtraChargeExtraMileage     PaymentIntentPaymentDetailsCarRentalExtraCharge = "extra_mileage"
133
        PaymentIntentPaymentDetailsCarRentalExtraChargeGas              PaymentIntentPaymentDetailsCarRentalExtraCharge = "gas"
134
        PaymentIntentPaymentDetailsCarRentalExtraChargeLateReturn       PaymentIntentPaymentDetailsCarRentalExtraCharge = "late_return"
135
        PaymentIntentPaymentDetailsCarRentalExtraChargeOneWayService    PaymentIntentPaymentDetailsCarRentalExtraCharge = "one_way_service"
136
        PaymentIntentPaymentDetailsCarRentalExtraChargeParkingViolation PaymentIntentPaymentDetailsCarRentalExtraCharge = "parking_violation"
137
)
138

139
// The frequency at which the rate amount is applied. One of `day`, `week` or `month`
140
type PaymentIntentPaymentDetailsCarRentalRateInterval string
141

142
// List of values that PaymentIntentPaymentDetailsCarRentalRateInterval can take
143
const (
144
        PaymentIntentPaymentDetailsCarRentalRateIntervalDay   PaymentIntentPaymentDetailsCarRentalRateInterval = "day"
145
        PaymentIntentPaymentDetailsCarRentalRateIntervalMonth PaymentIntentPaymentDetailsCarRentalRateInterval = "month"
146
        PaymentIntentPaymentDetailsCarRentalRateIntervalWeek  PaymentIntentPaymentDetailsCarRentalRateInterval = "week"
147
)
148

149
// The delivery method for the payment
150
type PaymentIntentPaymentDetailsEventDetailsDeliveryMode string
151

152
// List of values that PaymentIntentPaymentDetailsEventDetailsDeliveryMode can take
153
const (
154
        PaymentIntentPaymentDetailsEventDetailsDeliveryModeEmail  PaymentIntentPaymentDetailsEventDetailsDeliveryMode = "email"
155
        PaymentIntentPaymentDetailsEventDetailsDeliveryModePhone  PaymentIntentPaymentDetailsEventDetailsDeliveryMode = "phone"
156
        PaymentIntentPaymentDetailsEventDetailsDeliveryModePickup PaymentIntentPaymentDetailsEventDetailsDeliveryMode = "pickup"
157
        PaymentIntentPaymentDetailsEventDetailsDeliveryModePost   PaymentIntentPaymentDetailsEventDetailsDeliveryMode = "post"
158
)
159

160
// Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
161
type PaymentIntentPaymentDetailsSubscriptionBillingIntervalInterval string
162

163
// List of values that PaymentIntentPaymentDetailsSubscriptionBillingIntervalInterval can take
164
const (
165
        PaymentIntentPaymentDetailsSubscriptionBillingIntervalIntervalDay   PaymentIntentPaymentDetailsSubscriptionBillingIntervalInterval = "day"
166
        PaymentIntentPaymentDetailsSubscriptionBillingIntervalIntervalMonth PaymentIntentPaymentDetailsSubscriptionBillingIntervalInterval = "month"
167
        PaymentIntentPaymentDetailsSubscriptionBillingIntervalIntervalWeek  PaymentIntentPaymentDetailsSubscriptionBillingIntervalInterval = "week"
168
        PaymentIntentPaymentDetailsSubscriptionBillingIntervalIntervalYear  PaymentIntentPaymentDetailsSubscriptionBillingIntervalInterval = "year"
169
)
170

171
// Payment schedule for the mandate.
172
type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule string
173

174
// List of values that PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule can take
175
const (
176
        PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleCombined PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "combined"
177
        PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleInterval PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "interval"
178
        PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleSporadic PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "sporadic"
179
)
180

181
// Transaction type of the mandate.
182
type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType string
183

184
// List of values that PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType can take
185
const (
186
        PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypeBusiness PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "business"
187
        PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypePersonal PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "personal"
188
)
189

190
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
191
//
192
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
193
//
194
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
195
//
196
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
197
type PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage string
198

199
// List of values that PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage can take
200
const (
201
        PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage = "none"
202
        PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage = "off_session"
203
        PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage = "on_session"
204
)
205

206
// Bank account verification method.
207
type PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod string
208

209
// List of values that PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod can take
210
const (
211
        PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodAutomatic     PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "automatic"
212
        PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodInstant       PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "instant"
213
        PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodMicrodeposits PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "microdeposits"
214
)
215

216
// Controls when the funds will be captured from the customer's account.
217
type PaymentIntentPaymentMethodOptionsAffirmCaptureMethod string
218

219
// List of values that PaymentIntentPaymentMethodOptionsAffirmCaptureMethod can take
220
const (
221
        PaymentIntentPaymentMethodOptionsAffirmCaptureMethodManual PaymentIntentPaymentMethodOptionsAffirmCaptureMethod = "manual"
222
)
223

224
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
225
//
226
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
227
//
228
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
229
//
230
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
231
type PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage string
232

233
// List of values that PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage can take
234
const (
235
        PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsageNone PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage = "none"
236
)
237

238
// Controls when the funds will be captured from the customer's account.
239
type PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod string
240

241
// List of values that PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod can take
242
const (
243
        PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethodManual PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod = "manual"
244
)
245

246
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
247
//
248
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
249
//
250
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
251
//
252
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
253
type PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage string
254

255
// List of values that PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage can take
256
const (
257
        PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage = "none"
258
)
259

260
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
261
//
262
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
263
//
264
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
265
//
266
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
267
type PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage string
268

269
// List of values that PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage can take
270
const (
271
        PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsageNone       PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage = "none"
272
        PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage = "off_session"
273
)
274

275
// Controls when the funds will be captured from the customer's account.
276
type PaymentIntentPaymentMethodOptionsAmazonPayCaptureMethod string
277

278
// List of values that PaymentIntentPaymentMethodOptionsAmazonPayCaptureMethod can take
279
const (
280
        PaymentIntentPaymentMethodOptionsAmazonPayCaptureMethodManual PaymentIntentPaymentMethodOptionsAmazonPayCaptureMethod = "manual"
281
)
282

283
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
284
//
285
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
286
//
287
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
288
//
289
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
290
type PaymentIntentPaymentMethodOptionsAmazonPaySetupFutureUsage string
291

292
// List of values that PaymentIntentPaymentMethodOptionsAmazonPaySetupFutureUsage can take
293
const (
294
        PaymentIntentPaymentMethodOptionsAmazonPaySetupFutureUsageNone       PaymentIntentPaymentMethodOptionsAmazonPaySetupFutureUsage = "none"
295
        PaymentIntentPaymentMethodOptionsAmazonPaySetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsAmazonPaySetupFutureUsage = "off_session"
296
)
297

298
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
299
//
300
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
301
//
302
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
303
//
304
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
305
type PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage string
306

307
// List of values that PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage can take
308
const (
309
        PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage = "none"
310
        PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage = "off_session"
311
        PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage = "on_session"
312
)
313

314
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
315
//
316
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
317
//
318
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
319
//
320
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
321
type PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage string
322

323
// List of values that PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage can take
324
const (
325
        PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage = "none"
326
        PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage = "off_session"
327
        PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage = "on_session"
328
)
329

330
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
331
//
332
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
333
//
334
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
335
//
336
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
337
type PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage string
338

339
// List of values that PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage can take
340
const (
341
        PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage = "none"
342
        PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage = "off_session"
343
)
344

345
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
346
//
347
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
348
//
349
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
350
//
351
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
352
type PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage string
353

354
// List of values that PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage can take
355
const (
356
        PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsageNone PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage = "none"
357
)
358

359
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
360
//
361
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
362
//
363
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
364
//
365
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
366
type PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage string
367

368
// List of values that PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage can take
369
const (
370
        PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage = "none"
371
        PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage = "off_session"
372
        PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage = "on_session"
373
)
374

375
// Controls when the funds will be captured from the customer's account.
376
type PaymentIntentPaymentMethodOptionsCardCaptureMethod string
377

378
// List of values that PaymentIntentPaymentMethodOptionsCardCaptureMethod can take
379
const (
380
        PaymentIntentPaymentMethodOptionsCardCaptureMethodManual PaymentIntentPaymentMethodOptionsCardCaptureMethod = "manual"
381
)
382

383
// For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card.
384
// One of `month`.
385
type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval string
386

387
// List of values that PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval can take
388
const (
389
        PaymentIntentPaymentMethodOptionsCardInstallmentsPlanIntervalMonth PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval = "month"
390
)
391

392
// Type of installment plan, one of `fixed_count`.
393
type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType string
394

395
// List of values that PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType can take
396
const (
397
        PaymentIntentPaymentMethodOptionsCardInstallmentsPlanTypeFixedCount PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType = "fixed_count"
398
)
399

400
// One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
401
type PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType string
402

403
// List of values that PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType can take
404
const (
405
        PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountTypeFixed   PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType = "fixed"
406
        PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountTypeMaximum PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType = "maximum"
407
)
408

409
// Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
410
type PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval string
411

412
// List of values that PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval can take
413
const (
414
        PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalDay      PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "day"
415
        PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalMonth    PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "month"
416
        PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalSporadic PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "sporadic"
417
        PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalWeek     PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "week"
418
        PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalYear     PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "year"
419
)
420

421
// Specifies the type of mandates supported. Possible values are `india`.
422
type PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType string
423

424
// List of values that PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType can take
425
const (
426
        PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypeIndia PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType = "india"
427
)
428

429
// Selected network to process this payment intent on. Depends on the available networks of the card attached to the payment intent. Can be only set confirm-time.
430
type PaymentIntentPaymentMethodOptionsCardNetwork string
431

432
// List of values that PaymentIntentPaymentMethodOptionsCardNetwork can take
433
const (
434
        PaymentIntentPaymentMethodOptionsCardNetworkAmex            PaymentIntentPaymentMethodOptionsCardNetwork = "amex"
435
        PaymentIntentPaymentMethodOptionsCardNetworkCartesBancaires PaymentIntentPaymentMethodOptionsCardNetwork = "cartes_bancaires"
436
        PaymentIntentPaymentMethodOptionsCardNetworkDiners          PaymentIntentPaymentMethodOptionsCardNetwork = "diners"
437
        PaymentIntentPaymentMethodOptionsCardNetworkDiscover        PaymentIntentPaymentMethodOptionsCardNetwork = "discover"
438
        PaymentIntentPaymentMethodOptionsCardNetworkEFTPOSAU        PaymentIntentPaymentMethodOptionsCardNetwork = "eftpos_au"
439
        PaymentIntentPaymentMethodOptionsCardNetworkGirocard        PaymentIntentPaymentMethodOptionsCardNetwork = "girocard"
440
        PaymentIntentPaymentMethodOptionsCardNetworkInterac         PaymentIntentPaymentMethodOptionsCardNetwork = "interac"
441
        PaymentIntentPaymentMethodOptionsCardNetworkJCB             PaymentIntentPaymentMethodOptionsCardNetwork = "jcb"
442
        PaymentIntentPaymentMethodOptionsCardNetworkMastercard      PaymentIntentPaymentMethodOptionsCardNetwork = "mastercard"
443
        PaymentIntentPaymentMethodOptionsCardNetworkUnionpay        PaymentIntentPaymentMethodOptionsCardNetwork = "unionpay"
444
        PaymentIntentPaymentMethodOptionsCardNetworkUnknown         PaymentIntentPaymentMethodOptionsCardNetwork = "unknown"
445
        PaymentIntentPaymentMethodOptionsCardNetworkVisa            PaymentIntentPaymentMethodOptionsCardNetwork = "visa"
446
)
447

448
// Request ability to [decrement the authorization](https://stripe.com/docs/payments/decremental-authorization) for this PaymentIntent.
449
type PaymentIntentPaymentMethodOptionsCardRequestDecrementalAuthorization string
450

451
// List of values that PaymentIntentPaymentMethodOptionsCardRequestDecrementalAuthorization can take
452
const (
453
        PaymentIntentPaymentMethodOptionsCardRequestDecrementalAuthorizationIfAvailable PaymentIntentPaymentMethodOptionsCardRequestDecrementalAuthorization = "if_available"
454
        PaymentIntentPaymentMethodOptionsCardRequestDecrementalAuthorizationNever       PaymentIntentPaymentMethodOptionsCardRequestDecrementalAuthorization = "never"
455
)
456

457
// Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent.
458
type PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization string
459

460
// List of values that PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization can take
461
const (
462
        PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorizationIfAvailable PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization = "if_available"
463
        PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorizationNever       PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization = "never"
464
)
465

466
// Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent.
467
type PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization string
468

469
// List of values that PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization can take
470
const (
471
        PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorizationIfAvailable PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization = "if_available"
472
        PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorizationNever       PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization = "never"
473
)
474

475
// Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent.
476
type PaymentIntentPaymentMethodOptionsCardRequestMulticapture string
477

478
// List of values that PaymentIntentPaymentMethodOptionsCardRequestMulticapture can take
479
const (
480
        PaymentIntentPaymentMethodOptionsCardRequestMulticaptureIfAvailable PaymentIntentPaymentMethodOptionsCardRequestMulticapture = "if_available"
481
        PaymentIntentPaymentMethodOptionsCardRequestMulticaptureNever       PaymentIntentPaymentMethodOptionsCardRequestMulticapture = "never"
482
)
483

484
// Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent.
485
type PaymentIntentPaymentMethodOptionsCardRequestOvercapture string
486

487
// List of values that PaymentIntentPaymentMethodOptionsCardRequestOvercapture can take
488
const (
489
        PaymentIntentPaymentMethodOptionsCardRequestOvercaptureIfAvailable PaymentIntentPaymentMethodOptionsCardRequestOvercapture = "if_available"
490
        PaymentIntentPaymentMethodOptionsCardRequestOvercaptureNever       PaymentIntentPaymentMethodOptionsCardRequestOvercapture = "never"
491
)
492

493
// We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
494
type PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure string
495

496
// List of values that PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure can take
497
const (
498
        PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureAny       PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "any"
499
        PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureAutomatic PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "automatic"
500
        PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureChallenge PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "challenge"
501
)
502

503
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
504
//
505
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
506
//
507
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
508
//
509
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
510
type PaymentIntentPaymentMethodOptionsCardSetupFutureUsage string
511

512
// List of values that PaymentIntentPaymentMethodOptionsCardSetupFutureUsage can take
513
const (
514
        PaymentIntentPaymentMethodOptionsCardSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "none"
515
        PaymentIntentPaymentMethodOptionsCardSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "off_session"
516
        PaymentIntentPaymentMethodOptionsCardSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "on_session"
517
)
518

519
// Requested routing priority
520
type PaymentIntentPaymentMethodOptionsCardPresentRoutingRequestedPriority string
521

522
// List of values that PaymentIntentPaymentMethodOptionsCardPresentRoutingRequestedPriority can take
523
const (
524
        PaymentIntentPaymentMethodOptionsCardPresentRoutingRequestedPriorityDomestic      PaymentIntentPaymentMethodOptionsCardPresentRoutingRequestedPriority = "domestic"
525
        PaymentIntentPaymentMethodOptionsCardPresentRoutingRequestedPriorityInternational PaymentIntentPaymentMethodOptionsCardPresentRoutingRequestedPriority = "international"
526
)
527

528
// Controls when the funds will be captured from the customer's account.
529
type PaymentIntentPaymentMethodOptionsCashAppCaptureMethod string
530

531
// List of values that PaymentIntentPaymentMethodOptionsCashAppCaptureMethod can take
532
const (
533
        PaymentIntentPaymentMethodOptionsCashAppCaptureMethodManual PaymentIntentPaymentMethodOptionsCashAppCaptureMethod = "manual"
534
)
535

536
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
537
//
538
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
539
//
540
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
541
//
542
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
543
type PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage string
544

545
// List of values that PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage can take
546
const (
547
        PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage = "none"
548
        PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage = "off_session"
549
        PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage = "on_session"
550
)
551

552
// List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.
553
//
554
// Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
555
type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType string
556

557
// List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType can take
558
const (
559
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeABA      PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "aba"
560
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeIBAN     PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "iban"
561
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSEPA     PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "sepa"
562
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSortCode PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "sort_code"
563
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSpei     PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "spei"
564
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSwift    PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "swift"
565
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeZengin   PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "zengin"
566
)
567

568
// The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.
569
type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType string
570

571
// List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType can take
572
const (
573
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeEUBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "eu_bank_transfer"
574
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeGBBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "gb_bank_transfer"
575
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeJPBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "jp_bank_transfer"
576
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeMXBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "mx_bank_transfer"
577
        PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeUSBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "us_bank_transfer"
578
)
579

580
// The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`.
581
type PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType string
582

583
// List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType can take
584
const (
585
        PaymentIntentPaymentMethodOptionsCustomerBalanceFundingTypeBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType = "bank_transfer"
586
)
587

588
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
589
//
590
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
591
//
592
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
593
//
594
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
595
type PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage string
596

597
// List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage can take
598
const (
599
        PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsageNone PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage = "none"
600
)
601

602
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
603
//
604
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
605
//
606
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
607
//
608
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
609
type PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage string
610

611
// List of values that PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage can take
612
const (
613
        PaymentIntentPaymentMethodOptionsEPSSetupFutureUsageNone PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage = "none"
614
)
615

616
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
617
//
618
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
619
//
620
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
621
//
622
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
623
type PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage string
624

625
// List of values that PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage can take
626
const (
627
        PaymentIntentPaymentMethodOptionsFPXSetupFutureUsageNone PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage = "none"
628
)
629

630
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
631
//
632
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
633
//
634
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
635
//
636
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
637
type PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage string
638

639
// List of values that PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage can take
640
const (
641
        PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage = "none"
642
)
643

644
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
645
//
646
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
647
//
648
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
649
//
650
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
651
type PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage string
652

653
// List of values that PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage can take
654
const (
655
        PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage = "none"
656
)
657

658
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
659
//
660
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
661
//
662
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
663
//
664
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
665
type PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage string
666

667
// List of values that PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage can take
668
const (
669
        PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage = "none"
670
        PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage = "off_session"
671
)
672

673
// Controls when the funds will be captured from the customer's account.
674
type PaymentIntentPaymentMethodOptionsKakaoPayCaptureMethod string
675

676
// List of values that PaymentIntentPaymentMethodOptionsKakaoPayCaptureMethod can take
677
const (
678
        PaymentIntentPaymentMethodOptionsKakaoPayCaptureMethodManual PaymentIntentPaymentMethodOptionsKakaoPayCaptureMethod = "manual"
679
)
680

681
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
682
//
683
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
684
//
685
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
686
//
687
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
688
type PaymentIntentPaymentMethodOptionsKakaoPaySetupFutureUsage string
689

690
// List of values that PaymentIntentPaymentMethodOptionsKakaoPaySetupFutureUsage can take
691
const (
692
        PaymentIntentPaymentMethodOptionsKakaoPaySetupFutureUsageNone       PaymentIntentPaymentMethodOptionsKakaoPaySetupFutureUsage = "none"
693
        PaymentIntentPaymentMethodOptionsKakaoPaySetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsKakaoPaySetupFutureUsage = "off_session"
694
)
695

696
// Controls when the funds will be captured from the customer's account.
697
type PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod string
698

699
// List of values that PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod can take
700
const (
701
        PaymentIntentPaymentMethodOptionsKlarnaCaptureMethodManual PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod = "manual"
702
)
703

704
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
705
//
706
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
707
//
708
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
709
//
710
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
711
type PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage string
712

713
// List of values that PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage can take
714
const (
715
        PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsageNone PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage = "none"
716
)
717

718
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
719
//
720
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
721
//
722
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
723
//
724
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
725
type PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage string
726

727
// List of values that PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage can take
728
const (
729
        PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsageNone PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage = "none"
730
)
731

732
// Controls when the funds will be captured from the customer's account.
733
type PaymentIntentPaymentMethodOptionsKrCardCaptureMethod string
734

735
// List of values that PaymentIntentPaymentMethodOptionsKrCardCaptureMethod can take
736
const (
737
        PaymentIntentPaymentMethodOptionsKrCardCaptureMethodManual PaymentIntentPaymentMethodOptionsKrCardCaptureMethod = "manual"
738
)
739

740
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
741
//
742
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
743
//
744
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
745
//
746
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
747
type PaymentIntentPaymentMethodOptionsKrCardSetupFutureUsage string
748

749
// List of values that PaymentIntentPaymentMethodOptionsKrCardSetupFutureUsage can take
750
const (
751
        PaymentIntentPaymentMethodOptionsKrCardSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsKrCardSetupFutureUsage = "none"
752
        PaymentIntentPaymentMethodOptionsKrCardSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsKrCardSetupFutureUsage = "off_session"
753
)
754

755
// Controls when the funds will be captured from the customer's account.
756
type PaymentIntentPaymentMethodOptionsLinkCaptureMethod string
757

758
// List of values that PaymentIntentPaymentMethodOptionsLinkCaptureMethod can take
759
const (
760
        PaymentIntentPaymentMethodOptionsLinkCaptureMethodManual PaymentIntentPaymentMethodOptionsLinkCaptureMethod = "manual"
761
)
762

763
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
764
//
765
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
766
//
767
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
768
//
769
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
770
type PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage string
771

772
// List of values that PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage can take
773
const (
774
        PaymentIntentPaymentMethodOptionsLinkSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage = "none"
775
        PaymentIntentPaymentMethodOptionsLinkSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage = "off_session"
776
)
777

778
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
779
//
780
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
781
//
782
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
783
//
784
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
785
type PaymentIntentPaymentMethodOptionsMbWaySetupFutureUsage string
786

787
// List of values that PaymentIntentPaymentMethodOptionsMbWaySetupFutureUsage can take
788
const (
789
        PaymentIntentPaymentMethodOptionsMbWaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsMbWaySetupFutureUsage = "none"
790
)
791

792
// Controls when the funds will be captured from the customer's account.
793
type PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod string
794

795
// List of values that PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod can take
796
const (
797
        PaymentIntentPaymentMethodOptionsMobilepayCaptureMethodManual PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod = "manual"
798
)
799

800
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
801
//
802
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
803
//
804
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
805
//
806
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
807
type PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage string
808

809
// List of values that PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage can take
810
const (
811
        PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage = "none"
812
)
813

814
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
815
//
816
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
817
//
818
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
819
//
820
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
821
type PaymentIntentPaymentMethodOptionsMultibancoSetupFutureUsage string
822

823
// List of values that PaymentIntentPaymentMethodOptionsMultibancoSetupFutureUsage can take
824
const (
825
        PaymentIntentPaymentMethodOptionsMultibancoSetupFutureUsageNone PaymentIntentPaymentMethodOptionsMultibancoSetupFutureUsage = "none"
826
)
827

828
// Controls when the funds will be captured from the customer's account.
829
type PaymentIntentPaymentMethodOptionsNaverPayCaptureMethod string
830

831
// List of values that PaymentIntentPaymentMethodOptionsNaverPayCaptureMethod can take
832
const (
833
        PaymentIntentPaymentMethodOptionsNaverPayCaptureMethodManual PaymentIntentPaymentMethodOptionsNaverPayCaptureMethod = "manual"
834
)
835

836
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
837
//
838
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
839
//
840
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
841
//
842
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
843
type PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage string
844

845
// List of values that PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage can take
846
const (
847
        PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsageNone PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage = "none"
848
)
849

850
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
851
//
852
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
853
//
854
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
855
//
856
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
857
type PaymentIntentPaymentMethodOptionsP24SetupFutureUsage string
858

859
// List of values that PaymentIntentPaymentMethodOptionsP24SetupFutureUsage can take
860
const (
861
        PaymentIntentPaymentMethodOptionsP24SetupFutureUsageNone PaymentIntentPaymentMethodOptionsP24SetupFutureUsage = "none"
862
)
863

864
// Controls when the funds will be captured from the customer's account.
865
type PaymentIntentPaymentMethodOptionsPaycoCaptureMethod string
866

867
// List of values that PaymentIntentPaymentMethodOptionsPaycoCaptureMethod can take
868
const (
869
        PaymentIntentPaymentMethodOptionsPaycoCaptureMethodManual PaymentIntentPaymentMethodOptionsPaycoCaptureMethod = "manual"
870
)
871

872
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
873
//
874
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
875
//
876
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
877
//
878
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
879
type PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage string
880

881
// List of values that PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage can take
882
const (
883
        PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsageNone PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage = "none"
884
)
885

886
// Controls when the funds will be captured from the customer's account.
887
type PaymentIntentPaymentMethodOptionsPaypalCaptureMethod string
888

889
// List of values that PaymentIntentPaymentMethodOptionsPaypalCaptureMethod can take
890
const (
891
        PaymentIntentPaymentMethodOptionsPaypalCaptureMethodManual PaymentIntentPaymentMethodOptionsPaypalCaptureMethod = "manual"
892
)
893

894
// Type of the line item.
895
type PaymentIntentPaymentMethodOptionsPaypalLineItemCategory string
896

897
// List of values that PaymentIntentPaymentMethodOptionsPaypalLineItemCategory can take
898
const (
899
        PaymentIntentPaymentMethodOptionsPaypalLineItemCategoryDigitalGoods  PaymentIntentPaymentMethodOptionsPaypalLineItemCategory = "digital_goods"
900
        PaymentIntentPaymentMethodOptionsPaypalLineItemCategoryDonation      PaymentIntentPaymentMethodOptionsPaypalLineItemCategory = "donation"
901
        PaymentIntentPaymentMethodOptionsPaypalLineItemCategoryPhysicalGoods PaymentIntentPaymentMethodOptionsPaypalLineItemCategory = "physical_goods"
902
)
903

904
// The tax behavior for the line item.
905
type PaymentIntentPaymentMethodOptionsPaypalLineItemTaxBehavior string
906

907
// List of values that PaymentIntentPaymentMethodOptionsPaypalLineItemTaxBehavior can take
908
const (
909
        PaymentIntentPaymentMethodOptionsPaypalLineItemTaxBehaviorExclusive PaymentIntentPaymentMethodOptionsPaypalLineItemTaxBehavior = "exclusive"
910
        PaymentIntentPaymentMethodOptionsPaypalLineItemTaxBehaviorInclusive PaymentIntentPaymentMethodOptionsPaypalLineItemTaxBehavior = "inclusive"
911
)
912

913
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
914
//
915
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
916
//
917
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
918
//
919
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
920
type PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage string
921

922
// List of values that PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage can take
923
const (
924
        PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage = "none"
925
        PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage = "off_session"
926
)
927

928
// The type of amount that will be collected. The amount charged must be exact or up to the value of `amount` param for `fixed` or `maximum` type respectively.
929
type PaymentIntentPaymentMethodOptionsPaytoMandateOptionsAmountType string
930

931
// List of values that PaymentIntentPaymentMethodOptionsPaytoMandateOptionsAmountType can take
932
const (
933
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsAmountTypeFixed   PaymentIntentPaymentMethodOptionsPaytoMandateOptionsAmountType = "fixed"
934
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsAmountTypeMaximum PaymentIntentPaymentMethodOptionsPaytoMandateOptionsAmountType = "maximum"
935
)
936

937
// The periodicity at which payments will be collected.
938
type PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule string
939

940
// List of values that PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule can take
941
const (
942
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleAdhoc       PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "adhoc"
943
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleAnnual      PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "annual"
944
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleDaily       PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "daily"
945
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleFortnightly PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "fortnightly"
946
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleMonthly     PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "monthly"
947
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleQuarterly   PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "quarterly"
948
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleSemiAnnual  PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "semi_annual"
949
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentScheduleWeekly      PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule = "weekly"
950
)
951

952
// The purpose for which payments are made. Defaults to retail.
953
type PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose string
954

955
// List of values that PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose can take
956
const (
957
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeDependantSupport PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "dependant_support"
958
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeGovernment       PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "government"
959
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeLoan             PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "loan"
960
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeMortgage         PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "mortgage"
961
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeOther            PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "other"
962
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposePension          PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "pension"
963
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposePersonal         PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "personal"
964
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeRetail           PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "retail"
965
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeSalary           PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "salary"
966
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeTax              PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "tax"
967
        PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurposeUtility          PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose = "utility"
968
)
969

970
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
971
//
972
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
973
//
974
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
975
//
976
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
977
type PaymentIntentPaymentMethodOptionsPaytoSetupFutureUsage string
978

979
// List of values that PaymentIntentPaymentMethodOptionsPaytoSetupFutureUsage can take
980
const (
981
        PaymentIntentPaymentMethodOptionsPaytoSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsPaytoSetupFutureUsage = "none"
982
        PaymentIntentPaymentMethodOptionsPaytoSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsPaytoSetupFutureUsage = "off_session"
983
)
984

985
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
986
//
987
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
988
//
989
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
990
//
991
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
992
type PaymentIntentPaymentMethodOptionsPixSetupFutureUsage string
993

994
// List of values that PaymentIntentPaymentMethodOptionsPixSetupFutureUsage can take
995
const (
996
        PaymentIntentPaymentMethodOptionsPixSetupFutureUsageNone PaymentIntentPaymentMethodOptionsPixSetupFutureUsage = "none"
997
)
998

999
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1000
//
1001
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1002
//
1003
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1004
//
1005
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1006
type PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage string
1007

1008
// List of values that PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage can take
1009
const (
1010
        PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage = "none"
1011
)
1012

1013
// Controls when the funds will be captured from the customer's account.
1014
type PaymentIntentPaymentMethodOptionsRevolutPayCaptureMethod string
1015

1016
// List of values that PaymentIntentPaymentMethodOptionsRevolutPayCaptureMethod can take
1017
const (
1018
        PaymentIntentPaymentMethodOptionsRevolutPayCaptureMethodManual PaymentIntentPaymentMethodOptionsRevolutPayCaptureMethod = "manual"
1019
)
1020

1021
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1022
//
1023
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1024
//
1025
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1026
//
1027
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1028
type PaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage string
1029

1030
// List of values that PaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage can take
1031
const (
1032
        PaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsageNone       PaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage = "none"
1033
        PaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage = "off_session"
1034
)
1035

1036
// Controls when the funds will be captured from the customer's account.
1037
type PaymentIntentPaymentMethodOptionsSamsungPayCaptureMethod string
1038

1039
// List of values that PaymentIntentPaymentMethodOptionsSamsungPayCaptureMethod can take
1040
const (
1041
        PaymentIntentPaymentMethodOptionsSamsungPayCaptureMethodManual PaymentIntentPaymentMethodOptionsSamsungPayCaptureMethod = "manual"
1042
)
1043

1044
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1045
//
1046
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1047
//
1048
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1049
//
1050
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1051
type PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage string
1052

1053
// List of values that PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage can take
1054
const (
1055
        PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage = "none"
1056
        PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage = "off_session"
1057
        PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage = "on_session"
1058
)
1059

1060
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1061
//
1062
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1063
//
1064
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1065
//
1066
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1067
type PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage string
1068

1069
// List of values that PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage can take
1070
const (
1071
        PaymentIntentPaymentMethodOptionsSofortSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage = "none"
1072
        PaymentIntentPaymentMethodOptionsSofortSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage = "off_session"
1073
)
1074

1075
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1076
//
1077
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1078
//
1079
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1080
//
1081
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1082
type PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage string
1083

1084
// List of values that PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage can take
1085
const (
1086
        PaymentIntentPaymentMethodOptionsSwishSetupFutureUsageNone PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage = "none"
1087
)
1088

1089
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1090
//
1091
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1092
//
1093
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1094
//
1095
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1096
type PaymentIntentPaymentMethodOptionsTWINTSetupFutureUsage string
1097

1098
// List of values that PaymentIntentPaymentMethodOptionsTWINTSetupFutureUsage can take
1099
const (
1100
        PaymentIntentPaymentMethodOptionsTWINTSetupFutureUsageNone PaymentIntentPaymentMethodOptionsTWINTSetupFutureUsage = "none"
1101
)
1102

1103
// The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`.
1104
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersAccountSubcategory string
1105

1106
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersAccountSubcategory can take
1107
const (
1108
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersAccountSubcategoryChecking PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersAccountSubcategory = "checking"
1109
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersAccountSubcategorySavings  PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersAccountSubcategory = "savings"
1110
)
1111

1112
// Settings for configuring manual entry of account details.
1113
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryMode string
1114

1115
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryMode can take
1116
const (
1117
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryModeAutomatic PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryMode = "automatic"
1118
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryModeCustom    PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryMode = "custom"
1119
)
1120

1121
// The list of permissions to request. The `payment_method` permission must be included.
1122
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission string
1123

1124
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission can take
1125
const (
1126
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionBalances      PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "balances"
1127
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionOwnership     PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "ownership"
1128
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionPaymentMethod PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "payment_method"
1129
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionTransactions  PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "transactions"
1130
)
1131

1132
// Data features requested to be retrieved upon account creation.
1133
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch string
1134

1135
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch can take
1136
const (
1137
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetchBalances         PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch = "balances"
1138
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetchInferredBalances PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch = "inferred_balances"
1139
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetchOwnership        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch = "ownership"
1140
        PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetchTransactions     PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch = "transactions"
1141
)
1142

1143
// Mandate collection method
1144
type PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod string
1145

1146
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod can take
1147
const (
1148
        PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethodPaper PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod = "paper"
1149
)
1150

1151
// Preferred transaction settlement speed
1152
type PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed string
1153

1154
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed can take
1155
const (
1156
        PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeedFastest  PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed = "fastest"
1157
        PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeedStandard PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed = "standard"
1158
)
1159

1160
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1161
//
1162
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1163
//
1164
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1165
//
1166
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1167
type PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage string
1168

1169
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage can take
1170
const (
1171
        PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage = "none"
1172
        PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage = "off_session"
1173
        PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage = "on_session"
1174
)
1175

1176
// Bank account verification method.
1177
type PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod string
1178

1179
// List of values that PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod can take
1180
const (
1181
        PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethodAutomatic     PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod = "automatic"
1182
        PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethodInstant       PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod = "instant"
1183
        PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethodMicrodeposits PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod = "microdeposits"
1184
)
1185

1186
// The client type that the end customer will pay from
1187
type PaymentIntentPaymentMethodOptionsWeChatPayClient string
1188

1189
// List of values that PaymentIntentPaymentMethodOptionsWeChatPayClient can take
1190
const (
1191
        PaymentIntentPaymentMethodOptionsWeChatPayClientAndroid PaymentIntentPaymentMethodOptionsWeChatPayClient = "android"
1192
        PaymentIntentPaymentMethodOptionsWeChatPayClientIOS     PaymentIntentPaymentMethodOptionsWeChatPayClient = "ios"
1193
        PaymentIntentPaymentMethodOptionsWeChatPayClientWeb     PaymentIntentPaymentMethodOptionsWeChatPayClient = "web"
1194
)
1195

1196
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1197
//
1198
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1199
//
1200
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1201
//
1202
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1203
type PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage string
1204

1205
// List of values that PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage can take
1206
const (
1207
        PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage = "none"
1208
)
1209

1210
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1211
//
1212
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1213
//
1214
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1215
//
1216
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1217
type PaymentIntentPaymentMethodOptionsZipSetupFutureUsage string
1218

1219
// List of values that PaymentIntentPaymentMethodOptionsZipSetupFutureUsage can take
1220
const (
1221
        PaymentIntentPaymentMethodOptionsZipSetupFutureUsageNone PaymentIntentPaymentMethodOptionsZipSetupFutureUsage = "none"
1222
)
1223

1224
// Type of the payment method for which payment is in `processing` state, one of `card`.
1225
type PaymentIntentProcessingType string
1226

1227
// List of values that PaymentIntentProcessingType can take
1228
const (
1229
        PaymentIntentProcessingTypeCard PaymentIntentProcessingType = "card"
1230
)
1231

1232
// Indicates whether confirmation for this PaymentIntent using a secret key is `required` or `optional`.
1233
type PaymentIntentSecretKeyConfirmation string
1234

1235
// List of values that PaymentIntentSecretKeyConfirmation can take
1236
const (
1237
        PaymentIntentSecretKeyConfirmationOptional PaymentIntentSecretKeyConfirmation = "optional"
1238
        PaymentIntentSecretKeyConfirmationRequired PaymentIntentSecretKeyConfirmation = "required"
1239
)
1240

1241
// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1242
//
1243
// If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1244
//
1245
// If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1246
//
1247
// When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1248
type PaymentIntentSetupFutureUsage string
1249

1250
// List of values that PaymentIntentSetupFutureUsage can take
1251
const (
1252
        PaymentIntentSetupFutureUsageOffSession PaymentIntentSetupFutureUsage = "off_session"
1253
        PaymentIntentSetupFutureUsageOnSession  PaymentIntentSetupFutureUsage = "on_session"
1254
)
1255

1256
// Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses).
1257
type PaymentIntentStatus string
1258

1259
// List of values that PaymentIntentStatus can take
1260
const (
1261
        PaymentIntentStatusCanceled              PaymentIntentStatus = "canceled"
1262
        PaymentIntentStatusProcessing            PaymentIntentStatus = "processing"
1263
        PaymentIntentStatusRequiresAction        PaymentIntentStatus = "requires_action"
1264
        PaymentIntentStatusRequiresCapture       PaymentIntentStatus = "requires_capture"
1265
        PaymentIntentStatusRequiresConfirmation  PaymentIntentStatus = "requires_confirmation"
1266
        PaymentIntentStatusRequiresPaymentMethod PaymentIntentStatus = "requires_payment_method"
1267
        PaymentIntentStatusSucceeded             PaymentIntentStatus = "succeeded"
1268
)
1269

1270
// Returns a list of PaymentIntents.
1271
type PaymentIntentListParams struct {
1272
        ListParams `form:"*"`
1273
        // A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp or a dictionary with a number of different query options.
1274
        Created *int64 `form:"created"`
1275
        // A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp or a dictionary with a number of different query options.
1276
        CreatedRange *RangeQueryParams `form:"created"`
1277
        // Only return PaymentIntents for the customer that this customer ID specifies.
1278
        Customer *string `form:"customer"`
1279
        // Specifies which fields in the response should be expanded.
1280
        Expand []*string `form:"expand"`
1281
}
1282

1283
// AddExpand appends a new field to expand.
UNCOV
1284
func (p *PaymentIntentListParams) AddExpand(f string) {
×
UNCOV
1285
        p.Expand = append(p.Expand, &f)
×
UNCOV
1286
}
×
1287

1288
// Tax arguments for automations
1289
type PaymentIntentAsyncWorkflowsInputsTaxParams struct {
1290
        // The [TaxCalculation](https://stripe.com/docs/api/tax/calculations) id
1291
        Calculation *string `form:"calculation"`
1292
}
1293

1294
// Arguments passed in automations
1295
type PaymentIntentAsyncWorkflowsInputsParams struct {
1296
        // Tax arguments for automations
1297
        Tax *PaymentIntentAsyncWorkflowsInputsTaxParams `form:"tax"`
1298
}
1299

1300
// Automations to be run during the PaymentIntent lifecycle
1301
type PaymentIntentAsyncWorkflowsParams struct {
1302
        // Arguments passed in automations
1303
        Inputs *PaymentIntentAsyncWorkflowsInputsParams `form:"inputs"`
1304
}
1305

1306
// When you enable this parameter, this PaymentIntent accepts payment methods that you enable in the Dashboard and that are compatible with this PaymentIntent's other parameters.
1307
type PaymentIntentAutomaticPaymentMethodsParams struct {
1308
        // Controls whether this PaymentIntent will accept redirect-based payment methods.
1309
        //
1310
        // Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the payment.
1311
        AllowRedirects *string `form:"allow_redirects"`
1312
        // Whether this feature is enabled.
1313
        Enabled *bool `form:"enabled"`
1314
}
1315

1316
// If this is a Mandate accepted offline, this hash contains details about the offline acceptance.
1317
type PaymentIntentMandateDataCustomerAcceptanceOfflineParams struct{}
1318

1319
// If this is a Mandate accepted online, this hash contains details about the online acceptance.
1320
type PaymentIntentMandateDataCustomerAcceptanceOnlineParams struct {
1321
        // The IP address from which the Mandate was accepted by the customer.
1322
        IPAddress *string `form:"ip_address"`
1323
        // The user agent of the browser from which the Mandate was accepted by the customer.
1324
        UserAgent *string `form:"user_agent"`
1325
}
1326

1327
// This hash contains details about the customer acceptance of the Mandate.
1328
type PaymentIntentMandateDataCustomerAcceptanceParams struct {
1329
        // The time at which the customer accepted the Mandate.
1330
        AcceptedAt *int64 `form:"accepted_at"`
1331
        // If this is a Mandate accepted offline, this hash contains details about the offline acceptance.
1332
        Offline *PaymentIntentMandateDataCustomerAcceptanceOfflineParams `form:"offline"`
1333
        // If this is a Mandate accepted online, this hash contains details about the online acceptance.
1334
        Online *PaymentIntentMandateDataCustomerAcceptanceOnlineParams `form:"online"`
1335
        // The type of customer acceptance information included with the Mandate. One of `online` or `offline`.
1336
        Type *string `form:"type"`
1337
}
1338

1339
// This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
1340
type PaymentIntentMandateDataParams struct {
1341
        // This hash contains details about the customer acceptance of the Mandate.
1342
        CustomerAcceptance *PaymentIntentMandateDataCustomerAcceptanceParams `form:"customer_acceptance"`
1343
}
1344

1345
// Affiliate details for this purchase.
1346
type PaymentIntentPaymentDetailsCarRentalAffiliateParams struct {
1347
        // The name of the affiliate that originated the purchase.
1348
        Name *string `form:"name"`
1349
}
1350

1351
// Details of the recipient.
1352
type PaymentIntentPaymentDetailsCarRentalDeliveryRecipientParams struct {
1353
        // The email of the recipient the ticket is delivered to.
1354
        Email *string `form:"email"`
1355
        // The name of the recipient the ticket is delivered to.
1356
        Name *string `form:"name"`
1357
        // The phone number of the recipient the ticket is delivered to.
1358
        Phone *string `form:"phone"`
1359
}
1360

1361
// Delivery details for this purchase.
1362
type PaymentIntentPaymentDetailsCarRentalDeliveryParams struct {
1363
        // The delivery method for the payment
1364
        Mode *string `form:"mode"`
1365
        // Details of the recipient.
1366
        Recipient *PaymentIntentPaymentDetailsCarRentalDeliveryRecipientParams `form:"recipient"`
1367
}
1368

1369
// The details of the passengers in the travel reservation
1370
type PaymentIntentPaymentDetailsCarRentalDriverParams struct {
1371
        // Full name of the person or entity on the car reservation.
1372
        Name *string `form:"name"`
1373
}
1374

1375
// Car rental details for this PaymentIntent.
1376
type PaymentIntentPaymentDetailsCarRentalParams struct {
1377
        // Affiliate details for this purchase.
1378
        Affiliate *PaymentIntentPaymentDetailsCarRentalAffiliateParams `form:"affiliate"`
1379
        // The booking number associated with the car rental.
1380
        BookingNumber *string `form:"booking_number"`
1381
        // Class code of the car.
1382
        CarClassCode *string `form:"car_class_code"`
1383
        // Make of the car.
1384
        CarMake *string `form:"car_make"`
1385
        // Model of the car.
1386
        CarModel *string `form:"car_model"`
1387
        // The name of the rental car company.
1388
        Company *string `form:"company"`
1389
        // The customer service phone number of the car rental company.
1390
        CustomerServicePhoneNumber *string `form:"customer_service_phone_number"`
1391
        // Number of days the car is being rented.
1392
        DaysRented *int64 `form:"days_rented"`
1393
        // Delivery details for this purchase.
1394
        Delivery *PaymentIntentPaymentDetailsCarRentalDeliveryParams `form:"delivery"`
1395
        // The details of the passengers in the travel reservation
1396
        Drivers []*PaymentIntentPaymentDetailsCarRentalDriverParams `form:"drivers"`
1397
        // List of additional charges being billed.
1398
        ExtraCharges []*string `form:"extra_charges"`
1399
        // Indicates if the customer did not keep nor cancel their booking.
1400
        NoShow *bool `form:"no_show"`
1401
        // Car pick-up address.
1402
        PickupAddress *AddressParams `form:"pickup_address"`
1403
        // Car pick-up time. Measured in seconds since the Unix epoch.
1404
        PickupAt *int64 `form:"pickup_at"`
1405
        // Rental rate.
1406
        RateAmount *int64 `form:"rate_amount"`
1407
        // The frequency at which the rate amount is applied. One of `day`, `week` or `month`
1408
        RateInterval *string `form:"rate_interval"`
1409
        // The name of the person or entity renting the car.
1410
        RenterName *string `form:"renter_name"`
1411
        // Car return address.
1412
        ReturnAddress *AddressParams `form:"return_address"`
1413
        // Car return time. Measured in seconds since the Unix epoch.
1414
        ReturnAt *int64 `form:"return_at"`
1415
        // Indicates whether the goods or services are tax-exempt or tax is not collected.
1416
        TaxExempt *bool `form:"tax_exempt"`
1417
}
1418

1419
// Affiliate details for this purchase.
1420
type PaymentIntentPaymentDetailsEventDetailsAffiliateParams struct {
1421
        // The name of the affiliate that originated the purchase.
1422
        Name *string `form:"name"`
1423
}
1424

1425
// Details of the recipient.
1426
type PaymentIntentPaymentDetailsEventDetailsDeliveryRecipientParams struct {
1427
        // The email of the recipient the ticket is delivered to.
1428
        Email *string `form:"email"`
1429
        // The name of the recipient the ticket is delivered to.
1430
        Name *string `form:"name"`
1431
        // The phone number of the recipient the ticket is delivered to.
1432
        Phone *string `form:"phone"`
1433
}
1434

1435
// Delivery details for this purchase.
1436
type PaymentIntentPaymentDetailsEventDetailsDeliveryParams struct {
1437
        // The delivery method for the payment
1438
        Mode *string `form:"mode"`
1439
        // Details of the recipient.
1440
        Recipient *PaymentIntentPaymentDetailsEventDetailsDeliveryRecipientParams `form:"recipient"`
1441
}
1442

1443
// Event details for this PaymentIntent
1444
type PaymentIntentPaymentDetailsEventDetailsParams struct {
1445
        // Indicates if the tickets are digitally checked when entering the venue.
1446
        AccessControlledVenue *bool `form:"access_controlled_venue"`
1447
        // The event location's address.
1448
        Address *AddressParams `form:"address"`
1449
        // Affiliate details for this purchase.
1450
        Affiliate *PaymentIntentPaymentDetailsEventDetailsAffiliateParams `form:"affiliate"`
1451
        // The name of the company
1452
        Company *string `form:"company"`
1453
        // Delivery details for this purchase.
1454
        Delivery *PaymentIntentPaymentDetailsEventDetailsDeliveryParams `form:"delivery"`
1455
        // Event end time. Measured in seconds since the Unix epoch.
1456
        EndsAt *int64 `form:"ends_at"`
1457
        // Type of the event entertainment (concert, sports event etc)
1458
        Genre *string `form:"genre"`
1459
        // The name of the event.
1460
        Name *string `form:"name"`
1461
        // Event start time. Measured in seconds since the Unix epoch.
1462
        StartsAt *int64 `form:"starts_at"`
1463
}
1464

1465
// Affiliate details for this purchase.
1466
type PaymentIntentPaymentDetailsFlightAffiliateParams struct {
1467
        // The name of the affiliate that originated the purchase.
1468
        Name *string `form:"name"`
1469
}
1470

1471
// Details of the recipient.
1472
type PaymentIntentPaymentDetailsFlightDeliveryRecipientParams struct {
1473
        // The email of the recipient the ticket is delivered to.
1474
        Email *string `form:"email"`
1475
        // The name of the recipient the ticket is delivered to.
1476
        Name *string `form:"name"`
1477
        // The phone number of the recipient the ticket is delivered to.
1478
        Phone *string `form:"phone"`
1479
}
1480

1481
// Delivery details for this purchase.
1482
type PaymentIntentPaymentDetailsFlightDeliveryParams struct {
1483
        // The delivery method for the payment
1484
        Mode *string `form:"mode"`
1485
        // Details of the recipient.
1486
        Recipient *PaymentIntentPaymentDetailsFlightDeliveryRecipientParams `form:"recipient"`
1487
}
1488

1489
// The details of the passengers in the travel reservation.
1490
type PaymentIntentPaymentDetailsFlightPassengerParams struct {
1491
        // Full name of the person or entity on the flight reservation.
1492
        Name *string `form:"name"`
1493
}
1494

1495
// The individual flight segments associated with the trip.
1496
type PaymentIntentPaymentDetailsFlightSegmentParams struct {
1497
        // The flight segment amount.
1498
        Amount *int64 `form:"amount"`
1499
        // The International Air Transport Association (IATA) airport code for the arrival airport.
1500
        ArrivalAirport *string `form:"arrival_airport"`
1501
        // The arrival time for the flight segment. Measured in seconds since the Unix epoch.
1502
        ArrivesAt *int64 `form:"arrives_at"`
1503
        // The International Air Transport Association (IATA) carrier code of the carrier operating the flight segment.
1504
        Carrier *string `form:"carrier"`
1505
        // The departure time for the flight segment. Measured in seconds since the Unix epoch.
1506
        DepartsAt *int64 `form:"departs_at"`
1507
        // The International Air Transport Association (IATA) airport code for the departure airport.
1508
        DepartureAirport *string `form:"departure_airport"`
1509
        // The flight number associated with the segment
1510
        FlightNumber *string `form:"flight_number"`
1511
        // The fare class for the segment.
1512
        ServiceClass *string `form:"service_class"`
1513
}
1514

1515
// Flight reservation details for this PaymentIntent
1516
type PaymentIntentPaymentDetailsFlightParams struct {
1517
        // Affiliate details for this purchase.
1518
        Affiliate *PaymentIntentPaymentDetailsFlightAffiliateParams `form:"affiliate"`
1519
        // The agency number (i.e. International Air Transport Association (IATA) agency number) of the travel agency that made the booking.
1520
        AgencyNumber *string `form:"agency_number"`
1521
        // The International Air Transport Association (IATA) carrier code of the carrier that issued the ticket.
1522
        Carrier *string `form:"carrier"`
1523
        // Delivery details for this purchase.
1524
        Delivery *PaymentIntentPaymentDetailsFlightDeliveryParams `form:"delivery"`
1525
        // The name of the person or entity on the reservation.
1526
        PassengerName *string `form:"passenger_name"`
1527
        // The details of the passengers in the travel reservation.
1528
        Passengers []*PaymentIntentPaymentDetailsFlightPassengerParams `form:"passengers"`
1529
        // The individual flight segments associated with the trip.
1530
        Segments []*PaymentIntentPaymentDetailsFlightSegmentParams `form:"segments"`
1531
        // The ticket number associated with the travel reservation.
1532
        TicketNumber *string `form:"ticket_number"`
1533
}
1534

1535
// Affiliate details for this purchase.
1536
type PaymentIntentPaymentDetailsLodgingAffiliateParams struct {
1537
        // The name of the affiliate that originated the purchase.
1538
        Name *string `form:"name"`
1539
}
1540

1541
// Details of the recipient.
1542
type PaymentIntentPaymentDetailsLodgingDeliveryRecipientParams struct {
1543
        // The email of the recipient the ticket is delivered to.
1544
        Email *string `form:"email"`
1545
        // The name of the recipient the ticket is delivered to.
1546
        Name *string `form:"name"`
1547
        // The phone number of the recipient the ticket is delivered to.
1548
        Phone *string `form:"phone"`
1549
}
1550

1551
// Delivery details for this purchase.
1552
type PaymentIntentPaymentDetailsLodgingDeliveryParams struct {
1553
        // The delivery method for the payment
1554
        Mode *string `form:"mode"`
1555
        // Details of the recipient.
1556
        Recipient *PaymentIntentPaymentDetailsLodgingDeliveryRecipientParams `form:"recipient"`
1557
}
1558

1559
// The details of the passengers in the travel reservation
1560
type PaymentIntentPaymentDetailsLodgingPassengerParams struct {
1561
        // Full name of the person or entity on the lodging reservation.
1562
        Name *string `form:"name"`
1563
}
1564

1565
// Lodging reservation details for this PaymentIntent
1566
type PaymentIntentPaymentDetailsLodgingParams struct {
1567
        // The lodging location's address.
1568
        Address *AddressParams `form:"address"`
1569
        // The number of adults on the booking
1570
        Adults *int64 `form:"adults"`
1571
        // Affiliate details for this purchase.
1572
        Affiliate *PaymentIntentPaymentDetailsLodgingAffiliateParams `form:"affiliate"`
1573
        // The booking number associated with the lodging reservation.
1574
        BookingNumber *string `form:"booking_number"`
1575
        // The lodging category
1576
        Category *string `form:"category"`
1577
        // Loding check-in time. Measured in seconds since the Unix epoch.
1578
        CheckinAt *int64 `form:"checkin_at"`
1579
        // Lodging check-out time. Measured in seconds since the Unix epoch.
1580
        CheckoutAt *int64 `form:"checkout_at"`
1581
        // The customer service phone number of the lodging company.
1582
        CustomerServicePhoneNumber *string `form:"customer_service_phone_number"`
1583
        // The daily lodging room rate.
1584
        DailyRoomRateAmount *int64 `form:"daily_room_rate_amount"`
1585
        // Delivery details for this purchase.
1586
        Delivery *PaymentIntentPaymentDetailsLodgingDeliveryParams `form:"delivery"`
1587
        // List of additional charges being billed.
1588
        ExtraCharges []*string `form:"extra_charges"`
1589
        // Indicates whether the lodging location is compliant with the Fire Safety Act.
1590
        FireSafetyActCompliance *bool `form:"fire_safety_act_compliance"`
1591
        // The name of the lodging location.
1592
        Name *string `form:"name"`
1593
        // Indicates if the customer did not keep their booking while failing to cancel the reservation.
1594
        NoShow *bool `form:"no_show"`
1595
        // The number of rooms on the booking
1596
        NumberOfRooms *int64 `form:"number_of_rooms"`
1597
        // The details of the passengers in the travel reservation
1598
        Passengers []*PaymentIntentPaymentDetailsLodgingPassengerParams `form:"passengers"`
1599
        // The phone number of the lodging location.
1600
        PropertyPhoneNumber *string `form:"property_phone_number"`
1601
        // The room class for this purchase.
1602
        RoomClass *string `form:"room_class"`
1603
        // The number of room nights
1604
        RoomNights *int64 `form:"room_nights"`
1605
        // The total tax amount associating with the room reservation.
1606
        TotalRoomTaxAmount *int64 `form:"total_room_tax_amount"`
1607
        // The total tax amount
1608
        TotalTaxAmount *int64 `form:"total_tax_amount"`
1609
}
1610

1611
// Affiliate details for this purchase.
1612
type PaymentIntentPaymentDetailsSubscriptionAffiliateParams struct {
1613
        // The name of the affiliate that originated the purchase.
1614
        Name *string `form:"name"`
1615
}
1616

1617
// Subscription billing details for this purchase.
1618
type PaymentIntentPaymentDetailsSubscriptionBillingIntervalParams struct {
1619
        // The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1620
        Count *int64 `form:"count"`
1621
        // Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1622
        Interval *string `form:"interval"`
1623
}
1624

1625
// Subscription details for this PaymentIntent
1626
type PaymentIntentPaymentDetailsSubscriptionParams struct {
1627
        // Affiliate details for this purchase.
1628
        Affiliate *PaymentIntentPaymentDetailsSubscriptionAffiliateParams `form:"affiliate"`
1629
        // Info whether the subscription will be auto renewed upon expiry.
1630
        AutoRenewal *bool `form:"auto_renewal"`
1631
        // Subscription billing details for this purchase.
1632
        BillingInterval *PaymentIntentPaymentDetailsSubscriptionBillingIntervalParams `form:"billing_interval"`
1633
        // Subscription end time. Measured in seconds since the Unix epoch.
1634
        EndsAt *int64 `form:"ends_at"`
1635
        // Name of the product on subscription. e.g. Apple Music Subscription
1636
        Name *string `form:"name"`
1637
        // Subscription start time. Measured in seconds since the Unix epoch.
1638
        StartsAt *int64 `form:"starts_at"`
1639
}
1640

1641
// Provides industry-specific information about the charge.
1642
type PaymentIntentPaymentDetailsParams struct {
1643
        // Car rental details for this PaymentIntent.
1644
        CarRental *PaymentIntentPaymentDetailsCarRentalParams `form:"car_rental"`
1645
        // Event details for this PaymentIntent
1646
        EventDetails *PaymentIntentPaymentDetailsEventDetailsParams `form:"event_details"`
1647
        // Flight reservation details for this PaymentIntent
1648
        Flight *PaymentIntentPaymentDetailsFlightParams `form:"flight"`
1649
        // Lodging reservation details for this PaymentIntent
1650
        Lodging *PaymentIntentPaymentDetailsLodgingParams `form:"lodging"`
1651
        // Subscription details for this PaymentIntent
1652
        Subscription *PaymentIntentPaymentDetailsSubscriptionParams `form:"subscription"`
1653
}
1654

1655
// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
1656
type PaymentIntentPaymentMethodDataBillingDetailsParams struct {
1657
        // Billing address.
1658
        Address *AddressParams `form:"address"`
1659
        // Email address.
1660
        Email *string `form:"email"`
1661
        // Full name.
1662
        Name *string `form:"name"`
1663
        // Billing phone number (including extension).
1664
        Phone *string `form:"phone"`
1665
}
1666

1667
// Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
1668
type PaymentIntentPaymentMethodDataRadarOptionsParams struct {
1669
        // A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
1670
        Session *string `form:"session"`
1671
}
1672

1673
// If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
1674
// in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)
1675
// property on the PaymentIntent.
1676
type PaymentIntentPaymentMethodDataParams struct {
1677
        // If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
1678
        ACSSDebit *PaymentMethodACSSDebitParams `form:"acss_debit"`
1679
        // If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
1680
        Affirm *PaymentMethodAffirmParams `form:"affirm"`
1681
        // If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
1682
        AfterpayClearpay *PaymentMethodAfterpayClearpayParams `form:"afterpay_clearpay"`
1683
        // If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
1684
        Alipay *PaymentMethodAlipayParams `form:"alipay"`
1685
        // This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.
1686
        AllowRedisplay *string `form:"allow_redisplay"`
1687
        // If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.
1688
        AmazonPay *PaymentMethodAmazonPayParams `form:"amazon_pay"`
1689
        // If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
1690
        AUBECSDebit *PaymentMethodAUBECSDebitParams `form:"au_becs_debit"`
1691
        // If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
1692
        BACSDebit *PaymentMethodBACSDebitParams `form:"bacs_debit"`
1693
        // If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
1694
        Bancontact *PaymentMethodBancontactParams `form:"bancontact"`
1695
        // Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
1696
        BillingDetails *PaymentIntentPaymentMethodDataBillingDetailsParams `form:"billing_details"`
1697
        // If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
1698
        BLIK *PaymentMethodBLIKParams `form:"blik"`
1699
        // If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
1700
        Boleto *PaymentMethodBoletoParams `form:"boleto"`
1701
        // If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
1702
        CashApp *PaymentMethodCashAppParams `form:"cashapp"`
1703
        // If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
1704
        CustomerBalance *PaymentMethodCustomerBalanceParams `form:"customer_balance"`
1705
        // If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
1706
        EPS *PaymentMethodEPSParams `form:"eps"`
1707
        // If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
1708
        FPX *PaymentMethodFPXParams `form:"fpx"`
1709
        // If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
1710
        Giropay *PaymentMethodGiropayParams `form:"giropay"`
1711
        // If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
1712
        Grabpay *PaymentMethodGrabpayParams `form:"grabpay"`
1713
        // If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
1714
        IDEAL *PaymentMethodIDEALParams `form:"ideal"`
1715
        // If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
1716
        InteracPresent *PaymentMethodInteracPresentParams `form:"interac_present"`
1717
        // If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method.
1718
        KakaoPay *PaymentMethodKakaoPayParams `form:"kakao_pay"`
1719
        // If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
1720
        Klarna *PaymentMethodKlarnaParams `form:"klarna"`
1721
        // If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
1722
        Konbini *PaymentMethodKonbiniParams `form:"konbini"`
1723
        // If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method.
1724
        KrCard *PaymentMethodKrCardParams `form:"kr_card"`
1725
        // If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
1726
        Link *PaymentMethodLinkParams `form:"link"`
1727
        // If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method.
1728
        MbWay *PaymentMethodMbWayParams `form:"mb_way"`
1729
        // Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
1730
        Metadata map[string]string `form:"metadata"`
1731
        // If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method.
1732
        Mobilepay *PaymentMethodMobilepayParams `form:"mobilepay"`
1733
        // If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method.
1734
        Multibanco *PaymentMethodMultibancoParams `form:"multibanco"`
1735
        // If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method.
1736
        NaverPay *PaymentMethodNaverPayParams `form:"naver_pay"`
1737
        // If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
1738
        OXXO *PaymentMethodOXXOParams `form:"oxxo"`
1739
        // If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
1740
        P24 *PaymentMethodP24Params `form:"p24"`
1741
        // If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method.
1742
        Payco *PaymentMethodPaycoParams `form:"payco"`
1743
        // If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
1744
        PayNow *PaymentMethodPayNowParams `form:"paynow"`
1745
        // If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
1746
        Paypal *PaymentMethodPaypalParams `form:"paypal"`
1747
        // If this is a `payto` PaymentMethod, this hash contains details about the PayTo payment method.
1748
        Payto *PaymentMethodPaytoParams `form:"payto"`
1749
        // If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
1750
        Pix *PaymentMethodPixParams `form:"pix"`
1751
        // If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
1752
        PromptPay *PaymentMethodPromptPayParams `form:"promptpay"`
1753
        // Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
1754
        RadarOptions *PaymentIntentPaymentMethodDataRadarOptionsParams `form:"radar_options"`
1755
        // If this is a `rechnung` PaymentMethod, this hash contains details about the Rechnung payment method.
1756
        Rechnung *PaymentMethodRechnungParams `form:"rechnung"`
1757
        // If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
1758
        RevolutPay *PaymentMethodRevolutPayParams `form:"revolut_pay"`
1759
        // If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method.
1760
        SamsungPay *PaymentMethodSamsungPayParams `form:"samsung_pay"`
1761
        // If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
1762
        SEPADebit *PaymentMethodSEPADebitParams `form:"sepa_debit"`
1763
        // If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
1764
        Sofort *PaymentMethodSofortParams `form:"sofort"`
1765
        // If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
1766
        Swish *PaymentMethodSwishParams `form:"swish"`
1767
        // If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
1768
        TWINT *PaymentMethodTWINTParams `form:"twint"`
1769
        // The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
1770
        Type *string `form:"type"`
1771
        // If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
1772
        USBankAccount *PaymentMethodUSBankAccountParams `form:"us_bank_account"`
1773
        // If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
1774
        WeChatPay *PaymentMethodWeChatPayParams `form:"wechat_pay"`
1775
        // If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
1776
        Zip *PaymentMethodZipParams `form:"zip"`
1777
}
1778

1779
// AddMetadata adds a new key-value pair to the Metadata.
UNCOV
1780
func (p *PaymentIntentPaymentMethodDataParams) AddMetadata(key string, value string) {
×
UNCOV
1781
        if p.Metadata == nil {
×
UNCOV
1782
                p.Metadata = make(map[string]string)
×
UNCOV
1783
        }
×
1784

UNCOV
1785
        p.Metadata[key] = value
×
1786
}
1787

1788
// Additional fields for Mandate creation
1789
type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams struct {
1790
        // A URL for custom mandate text to render during confirmation step.
1791
        // The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
1792
        // or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
1793
        CustomMandateURL *string `form:"custom_mandate_url"`
1794
        // Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
1795
        IntervalDescription *string `form:"interval_description"`
1796
        // Payment schedule for the mandate.
1797
        PaymentSchedule *string `form:"payment_schedule"`
1798
        // Transaction type of the mandate.
1799
        TransactionType *string `form:"transaction_type"`
1800
}
1801

1802
// If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options.
1803
type PaymentIntentPaymentMethodOptionsACSSDebitParams struct {
1804
        // Additional fields for Mandate creation
1805
        MandateOptions *PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams `form:"mandate_options"`
1806
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1807
        //
1808
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1809
        //
1810
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1811
        //
1812
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1813
        //
1814
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1815
        SetupFutureUsage *string `form:"setup_future_usage"`
1816
        // Bank account verification method.
1817
        VerificationMethod *string `form:"verification_method"`
1818
}
1819

1820
// If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options.
1821
type PaymentIntentPaymentMethodOptionsAffirmParams struct {
1822
        // Controls when the funds are captured from the customer's account.
1823
        //
1824
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
1825
        //
1826
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
1827
        CaptureMethod *string `form:"capture_method"`
1828
        // Preferred language of the Affirm authorization page that the customer is redirected to.
1829
        PreferredLocale *string `form:"preferred_locale"`
1830
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1831
        //
1832
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1833
        //
1834
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1835
        //
1836
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1837
        //
1838
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1839
        SetupFutureUsage *string `form:"setup_future_usage"`
1840
}
1841

1842
// If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options.
1843
type PaymentIntentPaymentMethodOptionsAfterpayClearpayParams struct {
1844
        // Controls when the funds are captured from the customer's account.
1845
        //
1846
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
1847
        //
1848
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
1849
        CaptureMethod *string `form:"capture_method"`
1850
        // An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes.
1851
        // This field differs from the statement descriptor and item name.
1852
        Reference *string `form:"reference"`
1853
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1854
        //
1855
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1856
        //
1857
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1858
        //
1859
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1860
        //
1861
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1862
        SetupFutureUsage *string `form:"setup_future_usage"`
1863
}
1864

1865
// If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options.
1866
type PaymentIntentPaymentMethodOptionsAlipayParams struct {
1867
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1868
        //
1869
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1870
        //
1871
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1872
        //
1873
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1874
        //
1875
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1876
        SetupFutureUsage *string `form:"setup_future_usage"`
1877
}
1878

1879
// If this is a `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options.
1880
type PaymentIntentPaymentMethodOptionsAmazonPayParams struct {
1881
        // Controls when the funds are captured from the customer's account.
1882
        //
1883
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
1884
        //
1885
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
1886
        CaptureMethod *string `form:"capture_method"`
1887
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1888
        //
1889
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1890
        //
1891
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1892
        //
1893
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1894
        SetupFutureUsage *string `form:"setup_future_usage"`
1895
}
1896

1897
// If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options.
1898
type PaymentIntentPaymentMethodOptionsAUBECSDebitParams struct {
1899
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1900
        //
1901
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1902
        //
1903
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1904
        //
1905
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1906
        //
1907
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1908
        SetupFutureUsage *string `form:"setup_future_usage"`
1909
}
1910

1911
// Additional fields for Mandate creation
1912
type PaymentIntentPaymentMethodOptionsBACSDebitMandateOptionsParams struct{}
1913

1914
// If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options.
1915
type PaymentIntentPaymentMethodOptionsBACSDebitParams struct {
1916
        // Additional fields for Mandate creation
1917
        MandateOptions *PaymentIntentPaymentMethodOptionsBACSDebitMandateOptionsParams `form:"mandate_options"`
1918
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1919
        //
1920
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1921
        //
1922
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1923
        //
1924
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1925
        //
1926
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1927
        SetupFutureUsage *string `form:"setup_future_usage"`
1928
}
1929

1930
// If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options.
1931
type PaymentIntentPaymentMethodOptionsBancontactParams struct {
1932
        // Preferred language of the Bancontact authorization page that the customer is redirected to.
1933
        PreferredLanguage *string `form:"preferred_language"`
1934
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1935
        //
1936
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1937
        //
1938
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1939
        //
1940
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1941
        //
1942
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1943
        SetupFutureUsage *string `form:"setup_future_usage"`
1944
}
1945

1946
// If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options.
1947
type PaymentIntentPaymentMethodOptionsBLIKParams struct {
1948
        // The 6-digit BLIK code that a customer has generated using their banking application. Can only be set on confirmation.
1949
        Code *string `form:"code"`
1950
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1951
        //
1952
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1953
        //
1954
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1955
        //
1956
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1957
        //
1958
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1959
        SetupFutureUsage *string `form:"setup_future_usage"`
1960
}
1961

1962
// If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options.
1963
type PaymentIntentPaymentMethodOptionsBoletoParams struct {
1964
        // The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto invoice will expire on Wednesday at 23:59 America/Sao_Paulo time.
1965
        ExpiresAfterDays *int64 `form:"expires_after_days"`
1966
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
1967
        //
1968
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
1969
        //
1970
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
1971
        //
1972
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
1973
        //
1974
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
1975
        SetupFutureUsage *string `form:"setup_future_usage"`
1976
}
1977

1978
// The selected installment plan to use for this payment attempt.
1979
// This parameter can only be provided during confirmation.
1980
type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams struct {
1981
        // For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card.
1982
        Count *int64 `form:"count"`
1983
        // For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card.
1984
        // One of `month`.
1985
        Interval *string `form:"interval"`
1986
        // Type of installment plan, one of `fixed_count`.
1987
        Type *string `form:"type"`
1988
}
1989

1990
// Installment configuration for payments attempted on this PaymentIntent (Mexico Only).
1991
//
1992
// For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).
1993
type PaymentIntentPaymentMethodOptionsCardInstallmentsParams struct {
1994
        // Setting to true enables installments for this PaymentIntent.
1995
        // This will cause the response to contain a list of available installment plans.
1996
        // Setting to false will prevent any selected plan from applying to a charge.
1997
        Enabled *bool `form:"enabled"`
1998
        // The selected installment plan to use for this payment attempt.
1999
        // This parameter can only be provided during confirmation.
2000
        Plan *PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams `form:"plan"`
2001
}
2002

2003
// Configuration options for setting up an eMandate for cards issued in India.
2004
type PaymentIntentPaymentMethodOptionsCardMandateOptionsParams struct {
2005
        // Amount to be charged for future payments.
2006
        Amount *int64 `form:"amount"`
2007
        // One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
2008
        AmountType *string `form:"amount_type"`
2009
        // A description of the mandate or subscription that is meant to be displayed to the customer.
2010
        Description *string `form:"description"`
2011
        // End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.
2012
        EndDate *int64 `form:"end_date"`
2013
        // Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
2014
        Interval *string `form:"interval"`
2015
        // The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.
2016
        IntervalCount *int64 `form:"interval_count"`
2017
        // Unique identifier for the mandate or subscription.
2018
        Reference *string `form:"reference"`
2019
        // Start date of the mandate or subscription. Start date should not be lesser than yesterday.
2020
        StartDate *int64 `form:"start_date"`
2021
        // Specifies the type of mandates supported. Possible values are `india`.
2022
        SupportedTypes []*string `form:"supported_types"`
2023
}
2024

2025
// Statement details for this payment intent. You can use this to override the merchant details shown on your customers' statements.
2026
type PaymentIntentPaymentMethodOptionsCardStatementDetailsParams struct {
2027
        // Please pass in an address that is within your Stripe user account country
2028
        Address *AddressParams `form:"address"`
2029
        // Phone number (e.g., a toll-free number that customers can call)
2030
        Phone *string `form:"phone"`
2031
}
2032

2033
// Cartes Bancaires-specific 3DS fields.
2034
type PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesParams struct {
2035
        // The cryptogram calculation algorithm used by the card Issuer's ACS
2036
        // to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`.
2037
        // messageExtension: CB-AVALGO
2038
        CbAvalgo *string `form:"cb_avalgo"`
2039
        // The exemption indicator returned from Cartes Bancaires in the ARes.
2040
        // message extension: CB-EXEMPTION; string (4 characters)
2041
        // This is a 3 byte bitmap (low significant byte first and most significant
2042
        // bit first) that has been Base64 encoded
2043
        CbExemption *string `form:"cb_exemption"`
2044
        // The risk score returned from Cartes Bancaires in the ARes.
2045
        // message extension: CB-SCORE; numeric value 0-99
2046
        CbScore *int64 `form:"cb_score"`
2047
}
2048

2049
// Network specific 3DS fields. Network specific arguments require an
2050
// explicit card brand choice. The parameter `payment_method_options.card.network“
2051
// must be populated accordingly
2052
type PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsParams struct {
2053
        // Cartes Bancaires-specific 3DS fields.
2054
        CartesBancaires *PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesParams `form:"cartes_bancaires"`
2055
}
2056

2057
// If 3D Secure authentication was performed with a third-party provider,
2058
// the authentication details to use for this payment.
2059
type PaymentIntentPaymentMethodOptionsCardThreeDSecureParams struct {
2060
        // The `transStatus` returned from the card Issuer's ACS in the ARes.
2061
        AresTransStatus *string `form:"ares_trans_status"`
2062
        // The cryptogram, also known as the "authentication value" (AAV, CAVV or
2063
        // AEVV). This value is 20 bytes, base64-encoded into a 28-character string.
2064
        // (Most 3D Secure providers will return the base64-encoded version, which
2065
        // is what you should specify here.)
2066
        Cryptogram *string `form:"cryptogram"`
2067
        // The Electronic Commerce Indicator (ECI) is returned by your 3D Secure
2068
        // provider and indicates what degree of authentication was performed.
2069
        ElectronicCommerceIndicator *string `form:"electronic_commerce_indicator"`
2070
        // The exemption requested via 3DS and accepted by the issuer at authentication time.
2071
        ExemptionIndicator *string `form:"exemption_indicator"`
2072
        // Network specific 3DS fields. Network specific arguments require an
2073
        // explicit card brand choice. The parameter `payment_method_options.card.network``
2074
        // must be populated accordingly
2075
        NetworkOptions *PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsParams `form:"network_options"`
2076
        // The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the
2077
        // AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
2078
        RequestorChallengeIndicator *string `form:"requestor_challenge_indicator"`
2079
        // For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server
2080
        // Transaction ID (dsTransID).
2081
        TransactionID *string `form:"transaction_id"`
2082
        // The version of 3D Secure that was performed.
2083
        Version *string `form:"version"`
2084
}
2085

2086
// Configuration for any card payments attempted on this PaymentIntent.
2087
type PaymentIntentPaymentMethodOptionsCardParams struct {
2088
        // Controls when the funds are captured from the customer's account.
2089
        //
2090
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2091
        //
2092
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2093
        CaptureMethod *string `form:"capture_method"`
2094
        // A single-use `cvc_update` Token that represents a card CVC value. When provided, the CVC value will be verified during the card payment attempt. This parameter can only be provided during confirmation.
2095
        CVCToken *string `form:"cvc_token"`
2096
        // Installment configuration for payments attempted on this PaymentIntent (Mexico Only).
2097
        //
2098
        // For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).
2099
        Installments *PaymentIntentPaymentMethodOptionsCardInstallmentsParams `form:"installments"`
2100
        // Configuration options for setting up an eMandate for cards issued in India.
2101
        MandateOptions *PaymentIntentPaymentMethodOptionsCardMandateOptionsParams `form:"mandate_options"`
2102
        // When specified, this parameter indicates that a transaction will be marked
2103
        // as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This
2104
        // parameter can only be provided during confirmation.
2105
        MOTO *bool `form:"moto"`
2106
        // Selected network to process this PaymentIntent on. Depends on the available networks of the card attached to the PaymentIntent. Can be only set confirm-time.
2107
        Network *string `form:"network"`
2108
        // Request ability to [decrement the authorization](https://stripe.com/docs/payments/decremental-authorization) for this PaymentIntent.
2109
        RequestDecrementalAuthorization *string `form:"request_decremental_authorization"`
2110
        // Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent.
2111
        RequestExtendedAuthorization *string `form:"request_extended_authorization"`
2112
        // Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent.
2113
        RequestIncrementalAuthorization *string `form:"request_incremental_authorization"`
2114
        // Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent.
2115
        RequestMulticapture *string `form:"request_multicapture"`
2116
        // Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent.
2117
        RequestOvercapture *string `form:"request_overcapture"`
2118
        // We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
2119
        RequestThreeDSecure *string `form:"request_three_d_secure"`
2120
        // When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter).
2121
        RequireCVCRecollection *bool `form:"require_cvc_recollection"`
2122
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2123
        //
2124
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2125
        //
2126
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2127
        //
2128
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2129
        //
2130
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2131
        SetupFutureUsage *string `form:"setup_future_usage"`
2132
        // Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.
2133
        StatementDescriptorSuffixKana *string `form:"statement_descriptor_suffix_kana"`
2134
        // Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.
2135
        StatementDescriptorSuffixKanji *string `form:"statement_descriptor_suffix_kanji"`
2136
        // Statement details for this payment intent. You can use this to override the merchant details shown on your customers' statements.
2137
        StatementDetails *PaymentIntentPaymentMethodOptionsCardStatementDetailsParams `form:"statement_details"`
2138
        // If 3D Secure authentication was performed with a third-party provider,
2139
        // the authentication details to use for this payment.
2140
        ThreeDSecure *PaymentIntentPaymentMethodOptionsCardThreeDSecureParams `form:"three_d_secure"`
2141
}
2142

2143
// Network routing priority on co-branded EMV cards supporting domestic debit and international card schemes.
2144
type PaymentIntentPaymentMethodOptionsCardPresentRoutingParams struct {
2145
        // Routing requested priority
2146
        RequestedPriority *string `form:"requested_priority"`
2147
}
2148

2149
// If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2150
type PaymentIntentPaymentMethodOptionsCardPresentParams struct {
2151
        // Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity)
2152
        RequestExtendedAuthorization *bool `form:"request_extended_authorization"`
2153
        // Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support.
2154
        RequestIncrementalAuthorizationSupport *bool `form:"request_incremental_authorization_support"`
2155
        // Network routing priority on co-branded EMV cards supporting domestic debit and international card schemes.
2156
        Routing *PaymentIntentPaymentMethodOptionsCardPresentRoutingParams `form:"routing"`
2157
}
2158

2159
// If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options.
2160
type PaymentIntentPaymentMethodOptionsCashAppParams struct {
2161
        // Controls when the funds are captured from the customer's account.
2162
        //
2163
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2164
        //
2165
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2166
        CaptureMethod *string `form:"capture_method"`
2167
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2168
        //
2169
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2170
        //
2171
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2172
        //
2173
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2174
        //
2175
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2176
        SetupFutureUsage *string `form:"setup_future_usage"`
2177
}
2178

2179
// Configuration for the eu_bank_transfer funding type.
2180
type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransferParams struct {
2181
        // The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.
2182
        Country *string `form:"country"`
2183
}
2184

2185
// Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`.
2186
type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferParams struct {
2187
        // Configuration for the eu_bank_transfer funding type.
2188
        EUBankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransferParams `form:"eu_bank_transfer"`
2189
        // List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.
2190
        //
2191
        // Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
2192
        RequestedAddressTypes []*string `form:"requested_address_types"`
2193
        // The list of bank transfer types that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.
2194
        Type *string `form:"type"`
2195
}
2196

2197
// If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options.
2198
type PaymentIntentPaymentMethodOptionsCustomerBalanceParams struct {
2199
        // Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`.
2200
        BankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferParams `form:"bank_transfer"`
2201
        // The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`.
2202
        FundingType *string `form:"funding_type"`
2203
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2204
        //
2205
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2206
        //
2207
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2208
        //
2209
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2210
        //
2211
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2212
        SetupFutureUsage *string `form:"setup_future_usage"`
2213
}
2214

2215
// If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options.
2216
type PaymentIntentPaymentMethodOptionsEPSParams struct {
2217
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2218
        //
2219
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2220
        //
2221
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2222
        //
2223
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2224
        //
2225
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2226
        SetupFutureUsage *string `form:"setup_future_usage"`
2227
}
2228

2229
// If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options.
2230
type PaymentIntentPaymentMethodOptionsFPXParams struct {
2231
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2232
        //
2233
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2234
        //
2235
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2236
        //
2237
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2238
        //
2239
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2240
        SetupFutureUsage *string `form:"setup_future_usage"`
2241
}
2242

2243
// If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options.
2244
type PaymentIntentPaymentMethodOptionsGiropayParams struct {
2245
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2246
        //
2247
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2248
        //
2249
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2250
        //
2251
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2252
        //
2253
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2254
        SetupFutureUsage *string `form:"setup_future_usage"`
2255
}
2256

2257
// If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options.
2258
type PaymentIntentPaymentMethodOptionsGrabpayParams struct {
2259
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2260
        //
2261
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2262
        //
2263
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2264
        //
2265
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2266
        //
2267
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2268
        SetupFutureUsage *string `form:"setup_future_usage"`
2269
}
2270

2271
// If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options.
2272
type PaymentIntentPaymentMethodOptionsIDEALParams struct {
2273
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2274
        //
2275
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2276
        //
2277
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2278
        //
2279
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2280
        //
2281
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2282
        SetupFutureUsage *string `form:"setup_future_usage"`
2283
}
2284

2285
// If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2286
type PaymentIntentPaymentMethodOptionsInteracPresentParams struct{}
2287

2288
// If this is a `kakao_pay` PaymentMethod, this sub-hash contains details about the Kakao Pay payment method options.
2289
type PaymentIntentPaymentMethodOptionsKakaoPayParams struct {
2290
        // Controls when the funds are captured from the customer's account.
2291
        //
2292
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2293
        //
2294
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2295
        CaptureMethod *string `form:"capture_method"`
2296
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2297
        //
2298
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2299
        //
2300
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2301
        //
2302
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2303
        SetupFutureUsage *string `form:"setup_future_usage"`
2304
}
2305

2306
// If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options.
2307
type PaymentIntentPaymentMethodOptionsKlarnaParams struct {
2308
        // Controls when the funds are captured from the customer's account.
2309
        //
2310
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2311
        //
2312
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2313
        CaptureMethod *string `form:"capture_method"`
2314
        // Preferred language of the Klarna authorization page that the customer is redirected to
2315
        PreferredLocale *string `form:"preferred_locale"`
2316
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2317
        //
2318
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2319
        //
2320
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2321
        //
2322
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2323
        //
2324
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2325
        SetupFutureUsage *string `form:"setup_future_usage"`
2326
}
2327

2328
// If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options.
2329
type PaymentIntentPaymentMethodOptionsKonbiniParams struct {
2330
        // An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. Must not consist of only zeroes and could be rejected in case of insufficient uniqueness. We recommend to use the customer's phone number.
2331
        ConfirmationNumber *string `form:"confirmation_number"`
2332
        // The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. Defaults to 3 days.
2333
        ExpiresAfterDays *int64 `form:"expires_after_days"`
2334
        // The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set.
2335
        ExpiresAt *int64 `form:"expires_at"`
2336
        // A product descriptor of up to 22 characters, which will appear to customers at the convenience store.
2337
        ProductDescription *string `form:"product_description"`
2338
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2339
        //
2340
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2341
        //
2342
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2343
        //
2344
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2345
        //
2346
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2347
        SetupFutureUsage *string `form:"setup_future_usage"`
2348
}
2349

2350
// If this is a `kr_card` PaymentMethod, this sub-hash contains details about the KR Card payment method options.
2351
type PaymentIntentPaymentMethodOptionsKrCardParams struct {
2352
        // Controls when the funds are captured from the customer's account.
2353
        //
2354
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2355
        //
2356
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2357
        CaptureMethod *string `form:"capture_method"`
2358
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2359
        //
2360
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2361
        //
2362
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2363
        //
2364
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2365
        SetupFutureUsage *string `form:"setup_future_usage"`
2366
}
2367

2368
// If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
2369
type PaymentIntentPaymentMethodOptionsLinkParams struct {
2370
        // Controls when the funds are captured from the customer's account.
2371
        //
2372
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2373
        //
2374
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2375
        CaptureMethod *string `form:"capture_method"`
2376
        // [Deprecated] This is a legacy parameter that no longer has any function.
2377
        // Deprecated:
2378
        PersistentToken *string `form:"persistent_token"`
2379
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2380
        //
2381
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2382
        //
2383
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2384
        //
2385
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2386
        //
2387
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2388
        SetupFutureUsage *string `form:"setup_future_usage"`
2389
}
2390

2391
// If this is a `mb_way` PaymentMethod, this sub-hash contains details about the MB WAY payment method options.
2392
type PaymentIntentPaymentMethodOptionsMbWayParams struct {
2393
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2394
        //
2395
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2396
        //
2397
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2398
        //
2399
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2400
        //
2401
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2402
        SetupFutureUsage *string `form:"setup_future_usage"`
2403
}
2404

2405
// If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options.
2406
type PaymentIntentPaymentMethodOptionsMobilepayParams struct {
2407
        // Controls when the funds are captured from the customer's account.
2408
        //
2409
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2410
        //
2411
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2412
        CaptureMethod *string `form:"capture_method"`
2413
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2414
        //
2415
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2416
        //
2417
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2418
        //
2419
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2420
        //
2421
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2422
        SetupFutureUsage *string `form:"setup_future_usage"`
2423
}
2424

2425
// If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options.
2426
type PaymentIntentPaymentMethodOptionsMultibancoParams struct {
2427
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2428
        //
2429
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2430
        //
2431
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2432
        //
2433
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2434
        //
2435
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2436
        SetupFutureUsage *string `form:"setup_future_usage"`
2437
}
2438

2439
// If this is a `naver_pay` PaymentMethod, this sub-hash contains details about the Naver Pay payment method options.
2440
type PaymentIntentPaymentMethodOptionsNaverPayParams struct {
2441
        // Controls when the funds are captured from the customer's account.
2442
        //
2443
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2444
        //
2445
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2446
        CaptureMethod *string `form:"capture_method"`
2447
}
2448

2449
// If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options.
2450
type PaymentIntentPaymentMethodOptionsOXXOParams struct {
2451
        // The number of calendar days before an OXXO voucher expires. For example, if you create an OXXO voucher on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time.
2452
        ExpiresAfterDays *int64 `form:"expires_after_days"`
2453
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2454
        //
2455
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2456
        //
2457
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2458
        //
2459
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2460
        //
2461
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2462
        SetupFutureUsage *string `form:"setup_future_usage"`
2463
}
2464

2465
// If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options.
2466
type PaymentIntentPaymentMethodOptionsP24Params struct {
2467
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2468
        //
2469
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2470
        //
2471
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2472
        //
2473
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2474
        //
2475
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2476
        SetupFutureUsage *string `form:"setup_future_usage"`
2477
        // Confirm that the payer has accepted the P24 terms and conditions.
2478
        TOSShownAndAccepted *bool `form:"tos_shown_and_accepted"`
2479
}
2480

2481
// If this is a `payco` PaymentMethod, this sub-hash contains details about the PAYCO payment method options.
2482
type PaymentIntentPaymentMethodOptionsPaycoParams struct {
2483
        // Controls when the funds are captured from the customer's account.
2484
        //
2485
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2486
        //
2487
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2488
        CaptureMethod *string `form:"capture_method"`
2489
}
2490

2491
// If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options.
2492
type PaymentIntentPaymentMethodOptionsPayNowParams struct {
2493
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2494
        //
2495
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2496
        //
2497
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2498
        //
2499
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2500
        //
2501
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2502
        SetupFutureUsage *string `form:"setup_future_usage"`
2503
}
2504

2505
// The tax information for the line item.
2506
type PaymentIntentPaymentMethodOptionsPaypalLineItemTaxParams struct {
2507
        // The tax for a single unit of the line item in minor units. Cannot be a negative number.
2508
        Amount *int64 `form:"amount"`
2509
        // The tax behavior for the line item.
2510
        Behavior *string `form:"behavior"`
2511
}
2512

2513
// The line items purchased by the customer.
2514
type PaymentIntentPaymentMethodOptionsPaypalLineItemParams struct {
2515
        // Type of the line item.
2516
        Category *string `form:"category"`
2517
        // Description of the line item.
2518
        Description *string `form:"description"`
2519
        // Descriptive name of the line item.
2520
        Name *string `form:"name"`
2521
        // Quantity of the line item. Must be a positive number.
2522
        Quantity *int64 `form:"quantity"`
2523
        // Client facing stock keeping unit, article number or similar.
2524
        SKU *string `form:"sku"`
2525
        // The Stripe account ID of the connected account that sells the item.
2526
        SoldBy *string `form:"sold_by"`
2527
        // The tax information for the line item.
2528
        Tax *PaymentIntentPaymentMethodOptionsPaypalLineItemTaxParams `form:"tax"`
2529
        // Price for a single unit of the line item in minor units. Cannot be a negative number.
2530
        UnitAmount *int64 `form:"unit_amount"`
2531
}
2532

2533
// If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
2534
type PaymentIntentPaymentMethodOptionsPaypalParams struct {
2535
        // Controls when the funds will be captured from the customer's account.
2536
        CaptureMethod *string `form:"capture_method"`
2537
        // The line items purchased by the customer.
2538
        LineItems []*PaymentIntentPaymentMethodOptionsPaypalLineItemParams `form:"line_items"`
2539
        // [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to.
2540
        PreferredLocale *string `form:"preferred_locale"`
2541
        // A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
2542
        Reference *string `form:"reference"`
2543
        // A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
2544
        ReferenceID *string `form:"reference_id"`
2545
        // The risk correlation ID for an on-session payment using a saved PayPal payment method.
2546
        RiskCorrelationID *string `form:"risk_correlation_id"`
2547
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2548
        //
2549
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2550
        //
2551
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2552
        //
2553
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2554
        //
2555
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2556
        SetupFutureUsage *string `form:"setup_future_usage"`
2557
        // The Stripe connected account IDs of the sellers on the platform for this transaction (optional). Only allowed when [separate charges and transfers](https://stripe.com/docs/connect/separate-charges-and-transfers) are used.
2558
        Subsellers []*string `form:"subsellers"`
2559
}
2560

2561
// Additional fields for Mandate creation. Only `purpose` field is configurable for PayTo PaymentIntent with `setup_future_usage=none`. Other fields are only applicable to PayTo PaymentIntent with `setup_future_usage=off_session`
2562
type PaymentIntentPaymentMethodOptionsPaytoMandateOptionsParams struct {
2563
        // Amount that will be collected. It is required when `amount_type` is `fixed`.
2564
        Amount *int64 `form:"amount"`
2565
        // The type of amount that will be collected. The amount charged must be exact or up to the value of `amount` param for `fixed` or `maximum` type respectively.
2566
        AmountType *string `form:"amount_type"`
2567
        // Date, in YYYY-MM-DD format, after which payments will not be collected. Defaults to no end date.
2568
        EndDate *string `form:"end_date"`
2569
        // The periodicity at which payments will be collected.
2570
        PaymentSchedule *string `form:"payment_schedule"`
2571
        // The number of payments that will be made during a payment period. Defaults to 1 except for when `payment_schedule` is `adhoc`. In that case, it defaults to no limit.
2572
        PaymentsPerPeriod *int64 `form:"payments_per_period"`
2573
        // The purpose for which payments are made. Defaults to retail.
2574
        Purpose *string `form:"purpose"`
2575
}
2576

2577
// If this is a `payto` PaymentMethod, this sub-hash contains details about the PayTo payment method options.
2578
type PaymentIntentPaymentMethodOptionsPaytoParams struct {
2579
        // Additional fields for Mandate creation. Only `purpose` field is configurable for PayTo PaymentIntent with `setup_future_usage=none`. Other fields are only applicable to PayTo PaymentIntent with `setup_future_usage=off_session`
2580
        MandateOptions *PaymentIntentPaymentMethodOptionsPaytoMandateOptionsParams `form:"mandate_options"`
2581
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2582
        //
2583
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2584
        //
2585
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2586
        //
2587
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2588
        //
2589
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2590
        SetupFutureUsage *string `form:"setup_future_usage"`
2591
}
2592

2593
// If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options.
2594
type PaymentIntentPaymentMethodOptionsPixParams struct {
2595
        // The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds.
2596
        ExpiresAfterSeconds *int64 `form:"expires_after_seconds"`
2597
        // The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future). Defaults to 1 day in the future.
2598
        ExpiresAt *int64 `form:"expires_at"`
2599
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2600
        //
2601
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2602
        //
2603
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2604
        //
2605
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2606
        //
2607
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2608
        SetupFutureUsage *string `form:"setup_future_usage"`
2609
}
2610

2611
// If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options.
2612
type PaymentIntentPaymentMethodOptionsPromptPayParams struct {
2613
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2614
        //
2615
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2616
        //
2617
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2618
        //
2619
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2620
        //
2621
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2622
        SetupFutureUsage *string `form:"setup_future_usage"`
2623
}
2624

2625
// If this is a `rechnung` PaymentMethod, this sub-hash contains details about the Rechnung payment method options.
2626
type PaymentIntentPaymentMethodOptionsRechnungParams struct{}
2627

2628
// If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options.
2629
type PaymentIntentPaymentMethodOptionsRevolutPayParams struct {
2630
        // Controls when the funds are captured from the customer's account.
2631
        //
2632
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2633
        //
2634
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2635
        CaptureMethod *string `form:"capture_method"`
2636
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2637
        //
2638
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2639
        //
2640
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2641
        //
2642
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2643
        SetupFutureUsage *string `form:"setup_future_usage"`
2644
}
2645

2646
// If this is a `samsung_pay` PaymentMethod, this sub-hash contains details about the Samsung Pay payment method options.
2647
type PaymentIntentPaymentMethodOptionsSamsungPayParams struct {
2648
        // Controls when the funds are captured from the customer's account.
2649
        //
2650
        // If provided, this parameter overrides the behavior of the top-level [capture_method](https://stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type.
2651
        //
2652
        // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type.
2653
        CaptureMethod *string `form:"capture_method"`
2654
}
2655

2656
// Additional fields for Mandate creation
2657
type PaymentIntentPaymentMethodOptionsSEPADebitMandateOptionsParams struct{}
2658

2659
// If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options.
2660
type PaymentIntentPaymentMethodOptionsSEPADebitParams struct {
2661
        // Additional fields for Mandate creation
2662
        MandateOptions *PaymentIntentPaymentMethodOptionsSEPADebitMandateOptionsParams `form:"mandate_options"`
2663
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2664
        //
2665
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2666
        //
2667
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2668
        //
2669
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2670
        //
2671
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2672
        SetupFutureUsage *string `form:"setup_future_usage"`
2673
}
2674

2675
// If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options.
2676
type PaymentIntentPaymentMethodOptionsSofortParams struct {
2677
        // Language shown to the payer on redirect.
2678
        PreferredLanguage *string `form:"preferred_language"`
2679
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2680
        //
2681
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2682
        //
2683
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2684
        //
2685
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2686
        //
2687
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2688
        SetupFutureUsage *string `form:"setup_future_usage"`
2689
}
2690

2691
// If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options.
2692
type PaymentIntentPaymentMethodOptionsSwishParams struct {
2693
        // The order ID displayed in the Swish app after the payment is authorized.
2694
        Reference *string `form:"reference"`
2695
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2696
        //
2697
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2698
        //
2699
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2700
        //
2701
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2702
        //
2703
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2704
        SetupFutureUsage *string `form:"setup_future_usage"`
2705
}
2706

2707
// If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options.
2708
type PaymentIntentPaymentMethodOptionsTWINTParams struct {
2709
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2710
        //
2711
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2712
        //
2713
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2714
        //
2715
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2716
        //
2717
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2718
        SetupFutureUsage *string `form:"setup_future_usage"`
2719
}
2720

2721
// Provide filters for the linked accounts that the customer can select for the payment method
2722
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersParams struct {
2723
        // The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`.
2724
        AccountSubcategories []*string `form:"account_subcategories"`
2725
        // ID of the institution to use to filter for selectable accounts.
2726
        Institution *string `form:"institution"`
2727
}
2728

2729
// Customize manual entry behavior
2730
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryParams struct {
2731
        // Settings for configuring manual entry of account details.
2732
        Mode *string `form:"mode"`
2733
}
2734

2735
// Additional fields for Financial Connections Session creation
2736
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsParams struct {
2737
        // Provide filters for the linked accounts that the customer can select for the payment method
2738
        Filters *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersParams `form:"filters"`
2739
        // Customize manual entry behavior
2740
        ManualEntry *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryParams `form:"manual_entry"`
2741
        // 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`.
2742
        Permissions []*string `form:"permissions"`
2743
        // List of data features that you would like to retrieve upon account creation.
2744
        Prefetch []*string `form:"prefetch"`
2745
        // For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
2746
        ReturnURL *string `form:"return_url"`
2747
}
2748

2749
// Additional fields for Mandate creation
2750
type PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsParams struct {
2751
        // The method used to collect offline mandate customer acceptance.
2752
        CollectionMethod *string `form:"collection_method"`
2753
}
2754

2755
// Additional fields for network related functions
2756
type PaymentIntentPaymentMethodOptionsUSBankAccountNetworksParams struct {
2757
        // Triggers validations to run across the selected networks
2758
        Requested []*string `form:"requested"`
2759
}
2760

2761
// If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options.
2762
type PaymentIntentPaymentMethodOptionsUSBankAccountParams struct {
2763
        // Additional fields for Financial Connections Session creation
2764
        FinancialConnections *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsParams `form:"financial_connections"`
2765
        // Additional fields for Mandate creation
2766
        MandateOptions *PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsParams `form:"mandate_options"`
2767
        // Additional fields for network related functions
2768
        Networks *PaymentIntentPaymentMethodOptionsUSBankAccountNetworksParams `form:"networks"`
2769
        // Preferred transaction settlement speed
2770
        PreferredSettlementSpeed *string `form:"preferred_settlement_speed"`
2771
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2772
        //
2773
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2774
        //
2775
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2776
        //
2777
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2778
        //
2779
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2780
        SetupFutureUsage *string `form:"setup_future_usage"`
2781
        // Bank account verification method.
2782
        VerificationMethod *string `form:"verification_method"`
2783
}
2784

2785
// If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options.
2786
type PaymentIntentPaymentMethodOptionsWeChatPayParams struct {
2787
        // The app ID registered with WeChat Pay. Only required when client is ios or android.
2788
        AppID *string `form:"app_id"`
2789
        // The client type that the end customer will pay from
2790
        Client *string `form:"client"`
2791
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2792
        //
2793
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2794
        //
2795
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2796
        //
2797
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2798
        //
2799
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2800
        SetupFutureUsage *string `form:"setup_future_usage"`
2801
}
2802

2803
// If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options.
2804
type PaymentIntentPaymentMethodOptionsZipParams struct {
2805
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
2806
        //
2807
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
2808
        //
2809
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
2810
        //
2811
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
2812
        //
2813
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
2814
        SetupFutureUsage *string `form:"setup_future_usage"`
2815
}
2816

2817
// Payment method-specific configuration for this PaymentIntent.
2818
type PaymentIntentPaymentMethodOptionsParams struct {
2819
        // If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options.
2820
        ACSSDebit *PaymentIntentPaymentMethodOptionsACSSDebitParams `form:"acss_debit"`
2821
        // If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options.
2822
        Affirm *PaymentIntentPaymentMethodOptionsAffirmParams `form:"affirm"`
2823
        // If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options.
2824
        AfterpayClearpay *PaymentIntentPaymentMethodOptionsAfterpayClearpayParams `form:"afterpay_clearpay"`
2825
        // If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options.
2826
        Alipay *PaymentIntentPaymentMethodOptionsAlipayParams `form:"alipay"`
2827
        // If this is a `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options.
2828
        AmazonPay *PaymentIntentPaymentMethodOptionsAmazonPayParams `form:"amazon_pay"`
2829
        // If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options.
2830
        AUBECSDebit *PaymentIntentPaymentMethodOptionsAUBECSDebitParams `form:"au_becs_debit"`
2831
        // If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options.
2832
        BACSDebit *PaymentIntentPaymentMethodOptionsBACSDebitParams `form:"bacs_debit"`
2833
        // If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options.
2834
        Bancontact *PaymentIntentPaymentMethodOptionsBancontactParams `form:"bancontact"`
2835
        // If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options.
2836
        BLIK *PaymentIntentPaymentMethodOptionsBLIKParams `form:"blik"`
2837
        // If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options.
2838
        Boleto *PaymentIntentPaymentMethodOptionsBoletoParams `form:"boleto"`
2839
        // Configuration for any card payments attempted on this PaymentIntent.
2840
        Card *PaymentIntentPaymentMethodOptionsCardParams `form:"card"`
2841
        // If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2842
        CardPresent *PaymentIntentPaymentMethodOptionsCardPresentParams `form:"card_present"`
2843
        // If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options.
2844
        CashApp *PaymentIntentPaymentMethodOptionsCashAppParams `form:"cashapp"`
2845
        // If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options.
2846
        CustomerBalance *PaymentIntentPaymentMethodOptionsCustomerBalanceParams `form:"customer_balance"`
2847
        // If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options.
2848
        EPS *PaymentIntentPaymentMethodOptionsEPSParams `form:"eps"`
2849
        // If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options.
2850
        FPX *PaymentIntentPaymentMethodOptionsFPXParams `form:"fpx"`
2851
        // If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options.
2852
        Giropay *PaymentIntentPaymentMethodOptionsGiropayParams `form:"giropay"`
2853
        // If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options.
2854
        Grabpay *PaymentIntentPaymentMethodOptionsGrabpayParams `form:"grabpay"`
2855
        // If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options.
2856
        IDEAL *PaymentIntentPaymentMethodOptionsIDEALParams `form:"ideal"`
2857
        // If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2858
        InteracPresent *PaymentIntentPaymentMethodOptionsInteracPresentParams `form:"interac_present"`
2859
        // If this is a `kakao_pay` PaymentMethod, this sub-hash contains details about the Kakao Pay payment method options.
2860
        KakaoPay *PaymentIntentPaymentMethodOptionsKakaoPayParams `form:"kakao_pay"`
2861
        // If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options.
2862
        Klarna *PaymentIntentPaymentMethodOptionsKlarnaParams `form:"klarna"`
2863
        // If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options.
2864
        Konbini *PaymentIntentPaymentMethodOptionsKonbiniParams `form:"konbini"`
2865
        // If this is a `kr_card` PaymentMethod, this sub-hash contains details about the KR Card payment method options.
2866
        KrCard *PaymentIntentPaymentMethodOptionsKrCardParams `form:"kr_card"`
2867
        // If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
2868
        Link *PaymentIntentPaymentMethodOptionsLinkParams `form:"link"`
2869
        // If this is a `mb_way` PaymentMethod, this sub-hash contains details about the MB WAY payment method options.
2870
        MbWay *PaymentIntentPaymentMethodOptionsMbWayParams `form:"mb_way"`
2871
        // If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options.
2872
        Mobilepay *PaymentIntentPaymentMethodOptionsMobilepayParams `form:"mobilepay"`
2873
        // If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options.
2874
        Multibanco *PaymentIntentPaymentMethodOptionsMultibancoParams `form:"multibanco"`
2875
        // If this is a `naver_pay` PaymentMethod, this sub-hash contains details about the Naver Pay payment method options.
2876
        NaverPay *PaymentIntentPaymentMethodOptionsNaverPayParams `form:"naver_pay"`
2877
        // If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options.
2878
        OXXO *PaymentIntentPaymentMethodOptionsOXXOParams `form:"oxxo"`
2879
        // If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options.
2880
        P24 *PaymentIntentPaymentMethodOptionsP24Params `form:"p24"`
2881
        // If this is a `payco` PaymentMethod, this sub-hash contains details about the PAYCO payment method options.
2882
        Payco *PaymentIntentPaymentMethodOptionsPaycoParams `form:"payco"`
2883
        // If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options.
2884
        PayNow *PaymentIntentPaymentMethodOptionsPayNowParams `form:"paynow"`
2885
        // If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
2886
        Paypal *PaymentIntentPaymentMethodOptionsPaypalParams `form:"paypal"`
2887
        // If this is a `payto` PaymentMethod, this sub-hash contains details about the PayTo payment method options.
2888
        Payto *PaymentIntentPaymentMethodOptionsPaytoParams `form:"payto"`
2889
        // If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options.
2890
        Pix *PaymentIntentPaymentMethodOptionsPixParams `form:"pix"`
2891
        // If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options.
2892
        PromptPay *PaymentIntentPaymentMethodOptionsPromptPayParams `form:"promptpay"`
2893
        // If this is a `rechnung` PaymentMethod, this sub-hash contains details about the Rechnung payment method options.
2894
        Rechnung *PaymentIntentPaymentMethodOptionsRechnungParams `form:"rechnung"`
2895
        // If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options.
2896
        RevolutPay *PaymentIntentPaymentMethodOptionsRevolutPayParams `form:"revolut_pay"`
2897
        // If this is a `samsung_pay` PaymentMethod, this sub-hash contains details about the Samsung Pay payment method options.
2898
        SamsungPay *PaymentIntentPaymentMethodOptionsSamsungPayParams `form:"samsung_pay"`
2899
        // If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options.
2900
        SEPADebit *PaymentIntentPaymentMethodOptionsSEPADebitParams `form:"sepa_debit"`
2901
        // If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options.
2902
        Sofort *PaymentIntentPaymentMethodOptionsSofortParams `form:"sofort"`
2903
        // If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options.
2904
        Swish *PaymentIntentPaymentMethodOptionsSwishParams `form:"swish"`
2905
        // If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options.
2906
        TWINT *PaymentIntentPaymentMethodOptionsTWINTParams `form:"twint"`
2907
        // If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options.
2908
        USBankAccount *PaymentIntentPaymentMethodOptionsUSBankAccountParams `form:"us_bank_account"`
2909
        // If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options.
2910
        WeChatPay *PaymentIntentPaymentMethodOptionsWeChatPayParams `form:"wechat_pay"`
2911
        // If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options.
2912
        Zip *PaymentIntentPaymentMethodOptionsZipParams `form:"zip"`
2913
}
2914

2915
// Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session).
2916
type PaymentIntentRadarOptionsParams struct {
2917
        // A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
2918
        Session *string `form:"session"`
2919
}
2920

2921
// The parameters that you can use to automatically create a Transfer.
2922
// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
2923
type PaymentIntentTransferDataParams struct {
2924
        // The amount that will be transferred automatically when a charge succeeds.
2925
        // The amount is capped at the total transaction amount and if no amount is set,
2926
        // the full amount is transferred.
2927
        //
2928
        // If you intend to collect a fee and you need a more robust reporting experience, using
2929
        // [application_fee_amount](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-application_fee_amount)
2930
        // might be a better fit for your integration.
2931
        Amount *int64 `form:"amount"`
2932
        // If specified, successful charges will be attributed to the destination
2933
        // account for tax reporting, and the funds from charges will be transferred
2934
        // to the destination account. The ID of the resulting transfer will be
2935
        // returned on the successful charge's `transfer` field.
2936
        Destination *string `form:"destination"`
2937
}
2938

2939
// Creates a PaymentIntent object.
2940
//
2941
// After the PaymentIntent is created, attach a payment method and [confirm](https://stripe.com/docs/api/payment_intents/confirm)
2942
// to continue the payment. Learn more about <a href="/docs/payments/payment-intents">the available payment flows
2943
// with the Payment Intents API.
2944
//
2945
// When you use confirm=true during creation, it's equivalent to creating
2946
// and confirming the PaymentIntent in the same call. You can use any parameters
2947
// available in the [confirm API](https://stripe.com/docs/api/payment_intents/confirm) when you supply
2948
// confirm=true.
2949
type PaymentIntentParams struct {
2950
        Params `form:"*"`
2951
        // Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#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](https://stripe.com/docs/currencies#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).
2952
        Amount *int64 `form:"amount"`
2953
        // 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](https://stripe.com/docs/payments/connected-accounts).
2954
        ApplicationFeeAmount *int64 `form:"application_fee_amount"`
2955
        // Automations to be run during the PaymentIntent lifecycle
2956
        AsyncWorkflows *PaymentIntentAsyncWorkflowsParams `form:"async_workflows"`
2957
        // When you enable this parameter, this PaymentIntent accepts payment methods that you enable in the Dashboard and that are compatible with this PaymentIntent's other parameters.
2958
        AutomaticPaymentMethods *PaymentIntentAutomaticPaymentMethodsParams `form:"automatic_payment_methods"`
2959
        // Controls when the funds will be captured from the customer's account.
2960
        CaptureMethod *string `form:"capture_method"`
2961
        // The client secret of the PaymentIntent. We require it if you use a publishable key to retrieve the source.
2962
        ClientSecret *string `form:"client_secret"`
2963
        // Set to `true` to attempt to [confirm this PaymentIntent](https://stripe.com/docs/api/payment_intents/confirm) immediately. This parameter defaults to `false`. When creating and confirming a PaymentIntent at the same time, you can also provide the parameters available in the [Confirm API](https://stripe.com/docs/api/payment_intents/confirm).
2964
        Confirm *bool `form:"confirm"`
2965
        // Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.
2966
        ConfirmationMethod *string `form:"confirmation_method"`
2967
        // ID of the ConfirmationToken used to confirm this PaymentIntent.
2968
        //
2969
        // If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.
2970
        ConfirmationToken *string `form:"confirmation_token"`
2971
        // Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
2972
        Currency *string `form:"currency"`
2973
        // ID of the Customer this PaymentIntent belongs to, if one exists.
2974
        //
2975
        // Payment methods attached to other Customers cannot be used with this PaymentIntent.
2976
        //
2977
        // If [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead.
2978
        Customer *string `form:"customer"`
2979
        // An arbitrary string attached to the object. Often useful for displaying to users.
2980
        Description *string `form:"description"`
2981
        // Specifies which fields in the response should be expanded.
2982
        Expand []*string `form:"expand"`
2983
        // ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
2984
        Mandate *string `form:"mandate"`
2985
        // This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
2986
        MandateData *PaymentIntentMandateDataParams `form:"mandate_data"`
2987
        // Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
2988
        Metadata map[string]string `form:"metadata"`
2989
        // The Stripe account ID that these funds are intended for. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
2990
        OnBehalfOf *string `form:"on_behalf_of"`
2991
        // Provides industry-specific information about the charge.
2992
        PaymentDetails *PaymentIntentPaymentDetailsParams `form:"payment_details"`
2993
        // ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods#compatibility) object) to attach to this PaymentIntent.
2994
        //
2995
        // If you don't provide the `payment_method` parameter or the `source` parameter with `confirm=true`, `source` automatically populates with `customer.default_source` to improve migration for users of the Charges API. We recommend that you explicitly provide the `payment_method` moving forward.
2996
        PaymentMethod *string `form:"payment_method"`
2997
        // The ID of the payment method configuration to use with this PaymentIntent.
2998
        PaymentMethodConfiguration *string `form:"payment_method_configuration"`
2999
        // If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
3000
        // in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)
3001
        // property on the PaymentIntent.
3002
        PaymentMethodData *PaymentIntentPaymentMethodDataParams `form:"payment_method_data"`
3003
        // Payment-method-specific configuration for this PaymentIntent.
3004
        PaymentMethodOptions *PaymentIntentPaymentMethodOptionsParams `form:"payment_method_options"`
3005
        // The list of payment method types (for example, a card) that this PaymentIntent can use. If you don't provide this, it defaults to ["card"]. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).
3006
        PaymentMethodTypes []*string `form:"payment_method_types"`
3007
        // Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session).
3008
        RadarOptions *PaymentIntentRadarOptionsParams `form:"radar_options"`
3009
        // 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](https://dashboard.stripe.com/account/emails).
3010
        ReceiptEmail *string `form:"receipt_email"`
3011
        // The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
3012
        ReturnURL *string `form:"return_url"`
3013
        // Indicates whether confirmation for this PaymentIntent using a secret key is `required` or `optional`.
3014
        SecretKeyConfirmation *string `form:"secret_key_confirmation"`
3015
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
3016
        //
3017
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
3018
        //
3019
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
3020
        //
3021
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
3022
        //
3023
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
3024
        SetupFutureUsage *string `form:"setup_future_usage"`
3025
        // Shipping information for this PaymentIntent.
3026
        Shipping *ShippingDetailsParams `form:"shipping"`
3027
        // Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors).
3028
        //
3029
        // Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead.
3030
        StatementDescriptor *string `form:"statement_descriptor"`
3031
        // Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement.
3032
        StatementDescriptorSuffix *string `form:"statement_descriptor_suffix"`
3033
        // Use this parameter to automatically create a Transfer when the payment succeeds. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
3034
        TransferData *PaymentIntentTransferDataParams `form:"transfer_data"`
3035
        // A string that identifies the resulting payment as part of a group. You can only provide `transfer_group` if it hasn't been set. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
3036
        TransferGroup *string `form:"transfer_group"`
3037
        // These parameters apply only for paymentIntent.New with `confirm=true`
3038
        // Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. Use this parameter for simpler integrations that don't handle customer actions, such as [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
3039
        ErrorOnRequiresAction *bool `form:"error_on_requires_action"`
3040
        // Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
3041
        OffSession *bool `form:"off_session"`
3042
        // Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
3043
        UseStripeSDK *bool `form:"use_stripe_sdk"`
3044
}
3045

3046
// AddExpand appends a new field to expand.
UNCOV
3047
func (p *PaymentIntentParams) AddExpand(f string) {
×
UNCOV
3048
        p.Expand = append(p.Expand, &f)
×
UNCOV
3049
}
×
3050

3051
// AddMetadata adds a new key-value pair to the Metadata.
UNCOV
3052
func (p *PaymentIntentParams) AddMetadata(key string, value string) {
×
UNCOV
3053
        if p.Metadata == nil {
×
UNCOV
3054
                p.Metadata = make(map[string]string)
×
UNCOV
3055
        }
×
3056

UNCOV
3057
        p.Metadata[key] = value
×
3058
}
3059

3060
// Search for PaymentIntents you've previously created using Stripe's [Search Query Language](https://stripe.com/docs/search#search-query-language).
3061
// Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating
3062
// conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up
3063
// to an hour behind during outages. Search functionality is not available to merchants in India.
3064
type PaymentIntentSearchParams struct {
3065
        SearchParams `form:"*"`
3066
        // Specifies which fields in the response should be expanded.
3067
        Expand []*string `form:"expand"`
3068
        // A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
3069
        Page *string `form:"page"`
3070
}
3071

3072
// AddExpand appends a new field to expand.
UNCOV
3073
func (p *PaymentIntentSearchParams) AddExpand(f string) {
×
UNCOV
3074
        p.Expand = append(p.Expand, &f)
×
UNCOV
3075
}
×
3076

3077
// Manually reconcile the remaining amount for a customer_balance PaymentIntent.
3078
type PaymentIntentApplyCustomerBalanceParams struct {
3079
        Params `form:"*"`
3080
        // Amount that you intend to apply to this PaymentIntent from the customer's cash balance. If the PaymentIntent was created by an Invoice, the full amount of the PaymentIntent is applied regardless of this parameter.
3081
        //
3082
        // A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (for example, 100 cents to charge 1 USD or 100 to charge 100 JPY, a zero-decimal currency). The maximum amount is the amount of the PaymentIntent.
3083
        //
3084
        // When you omit the amount, it defaults to the remaining amount requested on the PaymentIntent.
3085
        Amount *int64 `form:"amount"`
3086
        // Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
3087
        Currency *string `form:"currency"`
3088
        // Specifies which fields in the response should be expanded.
3089
        Expand []*string `form:"expand"`
3090
}
3091

3092
// AddExpand appends a new field to expand.
UNCOV
3093
func (p *PaymentIntentApplyCustomerBalanceParams) AddExpand(f string) {
×
UNCOV
3094
        p.Expand = append(p.Expand, &f)
×
UNCOV
3095
}
×
3096

3097
// You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://stripe.com/docs/payments/intents), processing.
3098
//
3099
// After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded.
3100
//
3101
// You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead.
3102
type PaymentIntentCancelParams struct {
3103
        Params `form:"*"`
3104
        // Reason for canceling this PaymentIntent. Possible values are: `duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`
3105
        CancellationReason *string `form:"cancellation_reason"`
3106
        // Specifies which fields in the response should be expanded.
3107
        Expand []*string `form:"expand"`
3108
}
3109

3110
// AddExpand appends a new field to expand.
UNCOV
3111
func (p *PaymentIntentCancelParams) AddExpand(f string) {
×
UNCOV
3112
        p.Expand = append(p.Expand, &f)
×
UNCOV
3113
}
×
3114

3115
// Tax arguments for automations
3116
type PaymentIntentCaptureAsyncWorkflowsInputsTaxParams struct {
3117
        // The [TaxCalculation](https://stripe.com/docs/api/tax/calculations) id
3118
        Calculation *string `form:"calculation"`
3119
}
3120

3121
// Arguments passed in automations
3122
type PaymentIntentCaptureAsyncWorkflowsInputsParams struct {
3123
        // Tax arguments for automations
3124
        Tax *PaymentIntentCaptureAsyncWorkflowsInputsTaxParams `form:"tax"`
3125
}
3126

3127
// Automations to be run during the PaymentIntent lifecycle
3128
type PaymentIntentCaptureAsyncWorkflowsParams struct {
3129
        // Arguments passed in automations
3130
        Inputs *PaymentIntentCaptureAsyncWorkflowsInputsParams `form:"inputs"`
3131
}
3132

3133
// Affiliate details for this purchase.
3134
type PaymentIntentCapturePaymentDetailsCarRentalAffiliateParams struct {
3135
        // The name of the affiliate that originated the purchase.
3136
        Name *string `form:"name"`
3137
}
3138

3139
// Details of the recipient.
3140
type PaymentIntentCapturePaymentDetailsCarRentalDeliveryRecipientParams struct {
3141
        // The email of the recipient the ticket is delivered to.
3142
        Email *string `form:"email"`
3143
        // The name of the recipient the ticket is delivered to.
3144
        Name *string `form:"name"`
3145
        // The phone number of the recipient the ticket is delivered to.
3146
        Phone *string `form:"phone"`
3147
}
3148

3149
// Delivery details for this purchase.
3150
type PaymentIntentCapturePaymentDetailsCarRentalDeliveryParams struct {
3151
        // The delivery method for the payment
3152
        Mode *string `form:"mode"`
3153
        // Details of the recipient.
3154
        Recipient *PaymentIntentCapturePaymentDetailsCarRentalDeliveryRecipientParams `form:"recipient"`
3155
}
3156

3157
// The details of the passengers in the travel reservation
3158
type PaymentIntentCapturePaymentDetailsCarRentalDriverParams struct {
3159
        // Full name of the person or entity on the car reservation.
3160
        Name *string `form:"name"`
3161
}
3162

3163
// Car rental details for this PaymentIntent.
3164
type PaymentIntentCapturePaymentDetailsCarRentalParams struct {
3165
        // Affiliate details for this purchase.
3166
        Affiliate *PaymentIntentCapturePaymentDetailsCarRentalAffiliateParams `form:"affiliate"`
3167
        // The booking number associated with the car rental.
3168
        BookingNumber *string `form:"booking_number"`
3169
        // Class code of the car.
3170
        CarClassCode *string `form:"car_class_code"`
3171
        // Make of the car.
3172
        CarMake *string `form:"car_make"`
3173
        // Model of the car.
3174
        CarModel *string `form:"car_model"`
3175
        // The name of the rental car company.
3176
        Company *string `form:"company"`
3177
        // The customer service phone number of the car rental company.
3178
        CustomerServicePhoneNumber *string `form:"customer_service_phone_number"`
3179
        // Number of days the car is being rented.
3180
        DaysRented *int64 `form:"days_rented"`
3181
        // Delivery details for this purchase.
3182
        Delivery *PaymentIntentCapturePaymentDetailsCarRentalDeliveryParams `form:"delivery"`
3183
        // The details of the passengers in the travel reservation
3184
        Drivers []*PaymentIntentCapturePaymentDetailsCarRentalDriverParams `form:"drivers"`
3185
        // List of additional charges being billed.
3186
        ExtraCharges []*string `form:"extra_charges"`
3187
        // Indicates if the customer did not keep nor cancel their booking.
3188
        NoShow *bool `form:"no_show"`
3189
        // Car pick-up address.
3190
        PickupAddress *AddressParams `form:"pickup_address"`
3191
        // Car pick-up time. Measured in seconds since the Unix epoch.
3192
        PickupAt *int64 `form:"pickup_at"`
3193
        // Rental rate.
3194
        RateAmount *int64 `form:"rate_amount"`
3195
        // The frequency at which the rate amount is applied. One of `day`, `week` or `month`
3196
        RateInterval *string `form:"rate_interval"`
3197
        // The name of the person or entity renting the car.
3198
        RenterName *string `form:"renter_name"`
3199
        // Car return address.
3200
        ReturnAddress *AddressParams `form:"return_address"`
3201
        // Car return time. Measured in seconds since the Unix epoch.
3202
        ReturnAt *int64 `form:"return_at"`
3203
        // Indicates whether the goods or services are tax-exempt or tax is not collected.
3204
        TaxExempt *bool `form:"tax_exempt"`
3205
}
3206

3207
// Affiliate details for this purchase.
3208
type PaymentIntentCapturePaymentDetailsEventDetailsAffiliateParams struct {
3209
        // The name of the affiliate that originated the purchase.
3210
        Name *string `form:"name"`
3211
}
3212

3213
// Details of the recipient.
3214
type PaymentIntentCapturePaymentDetailsEventDetailsDeliveryRecipientParams struct {
3215
        // The email of the recipient the ticket is delivered to.
3216
        Email *string `form:"email"`
3217
        // The name of the recipient the ticket is delivered to.
3218
        Name *string `form:"name"`
3219
        // The phone number of the recipient the ticket is delivered to.
3220
        Phone *string `form:"phone"`
3221
}
3222

3223
// Delivery details for this purchase.
3224
type PaymentIntentCapturePaymentDetailsEventDetailsDeliveryParams struct {
3225
        // The delivery method for the payment
3226
        Mode *string `form:"mode"`
3227
        // Details of the recipient.
3228
        Recipient *PaymentIntentCapturePaymentDetailsEventDetailsDeliveryRecipientParams `form:"recipient"`
3229
}
3230

3231
// Event details for this PaymentIntent
3232
type PaymentIntentCapturePaymentDetailsEventDetailsParams struct {
3233
        // Indicates if the tickets are digitally checked when entering the venue.
3234
        AccessControlledVenue *bool `form:"access_controlled_venue"`
3235
        // The event location's address.
3236
        Address *AddressParams `form:"address"`
3237
        // Affiliate details for this purchase.
3238
        Affiliate *PaymentIntentCapturePaymentDetailsEventDetailsAffiliateParams `form:"affiliate"`
3239
        // The name of the company
3240
        Company *string `form:"company"`
3241
        // Delivery details for this purchase.
3242
        Delivery *PaymentIntentCapturePaymentDetailsEventDetailsDeliveryParams `form:"delivery"`
3243
        // Event end time. Measured in seconds since the Unix epoch.
3244
        EndsAt *int64 `form:"ends_at"`
3245
        // Type of the event entertainment (concert, sports event etc)
3246
        Genre *string `form:"genre"`
3247
        // The name of the event.
3248
        Name *string `form:"name"`
3249
        // Event start time. Measured in seconds since the Unix epoch.
3250
        StartsAt *int64 `form:"starts_at"`
3251
}
3252

3253
// Affiliate details for this purchase.
3254
type PaymentIntentCapturePaymentDetailsFlightAffiliateParams struct {
3255
        // The name of the affiliate that originated the purchase.
3256
        Name *string `form:"name"`
3257
}
3258

3259
// Details of the recipient.
3260
type PaymentIntentCapturePaymentDetailsFlightDeliveryRecipientParams struct {
3261
        // The email of the recipient the ticket is delivered to.
3262
        Email *string `form:"email"`
3263
        // The name of the recipient the ticket is delivered to.
3264
        Name *string `form:"name"`
3265
        // The phone number of the recipient the ticket is delivered to.
3266
        Phone *string `form:"phone"`
3267
}
3268

3269
// Delivery details for this purchase.
3270
type PaymentIntentCapturePaymentDetailsFlightDeliveryParams struct {
3271
        // The delivery method for the payment
3272
        Mode *string `form:"mode"`
3273
        // Details of the recipient.
3274
        Recipient *PaymentIntentCapturePaymentDetailsFlightDeliveryRecipientParams `form:"recipient"`
3275
}
3276

3277
// The details of the passengers in the travel reservation.
3278
type PaymentIntentCapturePaymentDetailsFlightPassengerParams struct {
3279
        // Full name of the person or entity on the flight reservation.
3280
        Name *string `form:"name"`
3281
}
3282

3283
// The individual flight segments associated with the trip.
3284
type PaymentIntentCapturePaymentDetailsFlightSegmentParams struct {
3285
        // The flight segment amount.
3286
        Amount *int64 `form:"amount"`
3287
        // The International Air Transport Association (IATA) airport code for the arrival airport.
3288
        ArrivalAirport *string `form:"arrival_airport"`
3289
        // The arrival time for the flight segment. Measured in seconds since the Unix epoch.
3290
        ArrivesAt *int64 `form:"arrives_at"`
3291
        // The International Air Transport Association (IATA) carrier code of the carrier operating the flight segment.
3292
        Carrier *string `form:"carrier"`
3293
        // The departure time for the flight segment. Measured in seconds since the Unix epoch.
3294
        DepartsAt *int64 `form:"departs_at"`
3295
        // The International Air Transport Association (IATA) airport code for the departure airport.
3296
        DepartureAirport *string `form:"departure_airport"`
3297
        // The flight number associated with the segment
3298
        FlightNumber *string `form:"flight_number"`
3299
        // The fare class for the segment.
3300
        ServiceClass *string `form:"service_class"`
3301
}
3302

3303
// Flight reservation details for this PaymentIntent
3304
type PaymentIntentCapturePaymentDetailsFlightParams struct {
3305
        // Affiliate details for this purchase.
3306
        Affiliate *PaymentIntentCapturePaymentDetailsFlightAffiliateParams `form:"affiliate"`
3307
        // The agency number (i.e. International Air Transport Association (IATA) agency number) of the travel agency that made the booking.
3308
        AgencyNumber *string `form:"agency_number"`
3309
        // The International Air Transport Association (IATA) carrier code of the carrier that issued the ticket.
3310
        Carrier *string `form:"carrier"`
3311
        // Delivery details for this purchase.
3312
        Delivery *PaymentIntentCapturePaymentDetailsFlightDeliveryParams `form:"delivery"`
3313
        // The name of the person or entity on the reservation.
3314
        PassengerName *string `form:"passenger_name"`
3315
        // The details of the passengers in the travel reservation.
3316
        Passengers []*PaymentIntentCapturePaymentDetailsFlightPassengerParams `form:"passengers"`
3317
        // The individual flight segments associated with the trip.
3318
        Segments []*PaymentIntentCapturePaymentDetailsFlightSegmentParams `form:"segments"`
3319
        // The ticket number associated with the travel reservation.
3320
        TicketNumber *string `form:"ticket_number"`
3321
}
3322

3323
// Affiliate details for this purchase.
3324
type PaymentIntentCapturePaymentDetailsLodgingAffiliateParams struct {
3325
        // The name of the affiliate that originated the purchase.
3326
        Name *string `form:"name"`
3327
}
3328

3329
// Details of the recipient.
3330
type PaymentIntentCapturePaymentDetailsLodgingDeliveryRecipientParams struct {
3331
        // The email of the recipient the ticket is delivered to.
3332
        Email *string `form:"email"`
3333
        // The name of the recipient the ticket is delivered to.
3334
        Name *string `form:"name"`
3335
        // The phone number of the recipient the ticket is delivered to.
3336
        Phone *string `form:"phone"`
3337
}
3338

3339
// Delivery details for this purchase.
3340
type PaymentIntentCapturePaymentDetailsLodgingDeliveryParams struct {
3341
        // The delivery method for the payment
3342
        Mode *string `form:"mode"`
3343
        // Details of the recipient.
3344
        Recipient *PaymentIntentCapturePaymentDetailsLodgingDeliveryRecipientParams `form:"recipient"`
3345
}
3346

3347
// The details of the passengers in the travel reservation
3348
type PaymentIntentCapturePaymentDetailsLodgingPassengerParams struct {
3349
        // Full name of the person or entity on the lodging reservation.
3350
        Name *string `form:"name"`
3351
}
3352

3353
// Lodging reservation details for this PaymentIntent
3354
type PaymentIntentCapturePaymentDetailsLodgingParams struct {
3355
        // The lodging location's address.
3356
        Address *AddressParams `form:"address"`
3357
        // The number of adults on the booking
3358
        Adults *int64 `form:"adults"`
3359
        // Affiliate details for this purchase.
3360
        Affiliate *PaymentIntentCapturePaymentDetailsLodgingAffiliateParams `form:"affiliate"`
3361
        // The booking number associated with the lodging reservation.
3362
        BookingNumber *string `form:"booking_number"`
3363
        // The lodging category
3364
        Category *string `form:"category"`
3365
        // Loding check-in time. Measured in seconds since the Unix epoch.
3366
        CheckinAt *int64 `form:"checkin_at"`
3367
        // Lodging check-out time. Measured in seconds since the Unix epoch.
3368
        CheckoutAt *int64 `form:"checkout_at"`
3369
        // The customer service phone number of the lodging company.
3370
        CustomerServicePhoneNumber *string `form:"customer_service_phone_number"`
3371
        // The daily lodging room rate.
3372
        DailyRoomRateAmount *int64 `form:"daily_room_rate_amount"`
3373
        // Delivery details for this purchase.
3374
        Delivery *PaymentIntentCapturePaymentDetailsLodgingDeliveryParams `form:"delivery"`
3375
        // List of additional charges being billed.
3376
        ExtraCharges []*string `form:"extra_charges"`
3377
        // Indicates whether the lodging location is compliant with the Fire Safety Act.
3378
        FireSafetyActCompliance *bool `form:"fire_safety_act_compliance"`
3379
        // The name of the lodging location.
3380
        Name *string `form:"name"`
3381
        // Indicates if the customer did not keep their booking while failing to cancel the reservation.
3382
        NoShow *bool `form:"no_show"`
3383
        // The number of rooms on the booking
3384
        NumberOfRooms *int64 `form:"number_of_rooms"`
3385
        // The details of the passengers in the travel reservation
3386
        Passengers []*PaymentIntentCapturePaymentDetailsLodgingPassengerParams `form:"passengers"`
3387
        // The phone number of the lodging location.
3388
        PropertyPhoneNumber *string `form:"property_phone_number"`
3389
        // The room class for this purchase.
3390
        RoomClass *string `form:"room_class"`
3391
        // The number of room nights
3392
        RoomNights *int64 `form:"room_nights"`
3393
        // The total tax amount associating with the room reservation.
3394
        TotalRoomTaxAmount *int64 `form:"total_room_tax_amount"`
3395
        // The total tax amount
3396
        TotalTaxAmount *int64 `form:"total_tax_amount"`
3397
}
3398

3399
// Affiliate details for this purchase.
3400
type PaymentIntentCapturePaymentDetailsSubscriptionAffiliateParams struct {
3401
        // The name of the affiliate that originated the purchase.
3402
        Name *string `form:"name"`
3403
}
3404

3405
// Subscription billing details for this purchase.
3406
type PaymentIntentCapturePaymentDetailsSubscriptionBillingIntervalParams struct {
3407
        // The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3408
        Count *int64 `form:"count"`
3409
        // Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3410
        Interval *string `form:"interval"`
3411
}
3412

3413
// Subscription details for this PaymentIntent
3414
type PaymentIntentCapturePaymentDetailsSubscriptionParams struct {
3415
        // Affiliate details for this purchase.
3416
        Affiliate *PaymentIntentCapturePaymentDetailsSubscriptionAffiliateParams `form:"affiliate"`
3417
        // Info whether the subscription will be auto renewed upon expiry.
3418
        AutoRenewal *bool `form:"auto_renewal"`
3419
        // Subscription billing details for this purchase.
3420
        BillingInterval *PaymentIntentCapturePaymentDetailsSubscriptionBillingIntervalParams `form:"billing_interval"`
3421
        // Subscription end time. Measured in seconds since the Unix epoch.
3422
        EndsAt *int64 `form:"ends_at"`
3423
        // Name of the product on subscription. e.g. Apple Music Subscription
3424
        Name *string `form:"name"`
3425
        // Subscription start time. Measured in seconds since the Unix epoch.
3426
        StartsAt *int64 `form:"starts_at"`
3427
}
3428

3429
// Provides industry-specific information about the charge.
3430
type PaymentIntentCapturePaymentDetailsParams struct {
3431
        // Car rental details for this PaymentIntent.
3432
        CarRental *PaymentIntentCapturePaymentDetailsCarRentalParams `form:"car_rental"`
3433
        // Event details for this PaymentIntent
3434
        EventDetails *PaymentIntentCapturePaymentDetailsEventDetailsParams `form:"event_details"`
3435
        // Flight reservation details for this PaymentIntent
3436
        Flight *PaymentIntentCapturePaymentDetailsFlightParams `form:"flight"`
3437
        // Lodging reservation details for this PaymentIntent
3438
        Lodging *PaymentIntentCapturePaymentDetailsLodgingParams `form:"lodging"`
3439
        // Subscription details for this PaymentIntent
3440
        Subscription *PaymentIntentCapturePaymentDetailsSubscriptionParams `form:"subscription"`
3441
}
3442

3443
// Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture.
3444
//
3445
// Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation.
3446
//
3447
// Learn more about [separate authorization and capture](https://stripe.com/docs/payments/capture-later).
3448
type PaymentIntentCaptureParams struct {
3449
        Params `form:"*"`
3450
        // The amount to capture from the PaymentIntent, which must be less than or equal to the original amount. Any additional amount is automatically refunded. Defaults to the full `amount_capturable` if it's not provided.
3451
        AmountToCapture *int64 `form:"amount_to_capture"`
3452
        // 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](https://stripe.com/docs/payments/connected-accounts).
3453
        ApplicationFeeAmount *int64 `form:"application_fee_amount"`
3454
        // Automations to be run during the PaymentIntent lifecycle
3455
        AsyncWorkflows *PaymentIntentCaptureAsyncWorkflowsParams `form:"async_workflows"`
3456
        // Specifies which fields in the response should be expanded.
3457
        Expand []*string `form:"expand"`
3458
        // Defaults to `true`. When capturing a PaymentIntent, setting `final_capture` to `false` notifies Stripe to not release the remaining uncaptured funds to make sure that they're captured in future requests. You can only use this setting when [multicapture](https://stripe.com/docs/payments/multicapture) is available for PaymentIntents.
3459
        FinalCapture *bool `form:"final_capture"`
3460
        // Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
3461
        Metadata map[string]string `form:"metadata"`
3462
        // Provides industry-specific information about the charge.
3463
        PaymentDetails *PaymentIntentCapturePaymentDetailsParams `form:"payment_details"`
3464
        // Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors).
3465
        //
3466
        // Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead.
3467
        StatementDescriptor *string `form:"statement_descriptor"`
3468
        // Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement.
3469
        StatementDescriptorSuffix *string `form:"statement_descriptor_suffix"`
3470
        // The parameters that you can use to automatically create a transfer after the payment
3471
        // is captured. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
3472
        TransferData *PaymentIntentTransferDataParams `form:"transfer_data"`
3473
}
3474

3475
// AddExpand appends a new field to expand.
UNCOV
3476
func (p *PaymentIntentCaptureParams) AddExpand(f string) {
×
UNCOV
3477
        p.Expand = append(p.Expand, &f)
×
UNCOV
3478
}
×
3479

3480
// AddMetadata adds a new key-value pair to the Metadata.
UNCOV
3481
func (p *PaymentIntentCaptureParams) AddMetadata(key string, value string) {
×
UNCOV
3482
        if p.Metadata == nil {
×
UNCOV
3483
                p.Metadata = make(map[string]string)
×
UNCOV
3484
        }
×
3485

UNCOV
3486
        p.Metadata[key] = value
×
3487
}
3488

3489
// Tax arguments for automations
3490
type PaymentIntentConfirmAsyncWorkflowsInputsTaxParams struct {
3491
        // The [TaxCalculation](https://stripe.com/docs/api/tax/calculations) id
3492
        Calculation *string `form:"calculation"`
3493
}
3494

3495
// Arguments passed in automations
3496
type PaymentIntentConfirmAsyncWorkflowsInputsParams struct {
3497
        // Tax arguments for automations
3498
        Tax *PaymentIntentConfirmAsyncWorkflowsInputsTaxParams `form:"tax"`
3499
}
3500

3501
// Automations to be run during the PaymentIntent lifecycle
3502
type PaymentIntentConfirmAsyncWorkflowsParams struct {
3503
        // Arguments passed in automations
3504
        Inputs *PaymentIntentConfirmAsyncWorkflowsInputsParams `form:"inputs"`
3505
}
3506

3507
// Affiliate details for this purchase.
3508
type PaymentIntentConfirmPaymentDetailsCarRentalAffiliateParams struct {
3509
        // The name of the affiliate that originated the purchase.
3510
        Name *string `form:"name"`
3511
}
3512

3513
// Details of the recipient.
3514
type PaymentIntentConfirmPaymentDetailsCarRentalDeliveryRecipientParams struct {
3515
        // The email of the recipient the ticket is delivered to.
3516
        Email *string `form:"email"`
3517
        // The name of the recipient the ticket is delivered to.
3518
        Name *string `form:"name"`
3519
        // The phone number of the recipient the ticket is delivered to.
3520
        Phone *string `form:"phone"`
3521
}
3522

3523
// Delivery details for this purchase.
3524
type PaymentIntentConfirmPaymentDetailsCarRentalDeliveryParams struct {
3525
        // The delivery method for the payment
3526
        Mode *string `form:"mode"`
3527
        // Details of the recipient.
3528
        Recipient *PaymentIntentConfirmPaymentDetailsCarRentalDeliveryRecipientParams `form:"recipient"`
3529
}
3530

3531
// The details of the passengers in the travel reservation
3532
type PaymentIntentConfirmPaymentDetailsCarRentalDriverParams struct {
3533
        // Full name of the person or entity on the car reservation.
3534
        Name *string `form:"name"`
3535
}
3536

3537
// Car rental details for this PaymentIntent.
3538
type PaymentIntentConfirmPaymentDetailsCarRentalParams struct {
3539
        // Affiliate details for this purchase.
3540
        Affiliate *PaymentIntentConfirmPaymentDetailsCarRentalAffiliateParams `form:"affiliate"`
3541
        // The booking number associated with the car rental.
3542
        BookingNumber *string `form:"booking_number"`
3543
        // Class code of the car.
3544
        CarClassCode *string `form:"car_class_code"`
3545
        // Make of the car.
3546
        CarMake *string `form:"car_make"`
3547
        // Model of the car.
3548
        CarModel *string `form:"car_model"`
3549
        // The name of the rental car company.
3550
        Company *string `form:"company"`
3551
        // The customer service phone number of the car rental company.
3552
        CustomerServicePhoneNumber *string `form:"customer_service_phone_number"`
3553
        // Number of days the car is being rented.
3554
        DaysRented *int64 `form:"days_rented"`
3555
        // Delivery details for this purchase.
3556
        Delivery *PaymentIntentConfirmPaymentDetailsCarRentalDeliveryParams `form:"delivery"`
3557
        // The details of the passengers in the travel reservation
3558
        Drivers []*PaymentIntentConfirmPaymentDetailsCarRentalDriverParams `form:"drivers"`
3559
        // List of additional charges being billed.
3560
        ExtraCharges []*string `form:"extra_charges"`
3561
        // Indicates if the customer did not keep nor cancel their booking.
3562
        NoShow *bool `form:"no_show"`
3563
        // Car pick-up address.
3564
        PickupAddress *AddressParams `form:"pickup_address"`
3565
        // Car pick-up time. Measured in seconds since the Unix epoch.
3566
        PickupAt *int64 `form:"pickup_at"`
3567
        // Rental rate.
3568
        RateAmount *int64 `form:"rate_amount"`
3569
        // The frequency at which the rate amount is applied. One of `day`, `week` or `month`
3570
        RateInterval *string `form:"rate_interval"`
3571
        // The name of the person or entity renting the car.
3572
        RenterName *string `form:"renter_name"`
3573
        // Car return address.
3574
        ReturnAddress *AddressParams `form:"return_address"`
3575
        // Car return time. Measured in seconds since the Unix epoch.
3576
        ReturnAt *int64 `form:"return_at"`
3577
        // Indicates whether the goods or services are tax-exempt or tax is not collected.
3578
        TaxExempt *bool `form:"tax_exempt"`
3579
}
3580

3581
// Affiliate details for this purchase.
3582
type PaymentIntentConfirmPaymentDetailsEventDetailsAffiliateParams struct {
3583
        // The name of the affiliate that originated the purchase.
3584
        Name *string `form:"name"`
3585
}
3586

3587
// Details of the recipient.
3588
type PaymentIntentConfirmPaymentDetailsEventDetailsDeliveryRecipientParams struct {
3589
        // The email of the recipient the ticket is delivered to.
3590
        Email *string `form:"email"`
3591
        // The name of the recipient the ticket is delivered to.
3592
        Name *string `form:"name"`
3593
        // The phone number of the recipient the ticket is delivered to.
3594
        Phone *string `form:"phone"`
3595
}
3596

3597
// Delivery details for this purchase.
3598
type PaymentIntentConfirmPaymentDetailsEventDetailsDeliveryParams struct {
3599
        // The delivery method for the payment
3600
        Mode *string `form:"mode"`
3601
        // Details of the recipient.
3602
        Recipient *PaymentIntentConfirmPaymentDetailsEventDetailsDeliveryRecipientParams `form:"recipient"`
3603
}
3604

3605
// Event details for this PaymentIntent
3606
type PaymentIntentConfirmPaymentDetailsEventDetailsParams struct {
3607
        // Indicates if the tickets are digitally checked when entering the venue.
3608
        AccessControlledVenue *bool `form:"access_controlled_venue"`
3609
        // The event location's address.
3610
        Address *AddressParams `form:"address"`
3611
        // Affiliate details for this purchase.
3612
        Affiliate *PaymentIntentConfirmPaymentDetailsEventDetailsAffiliateParams `form:"affiliate"`
3613
        // The name of the company
3614
        Company *string `form:"company"`
3615
        // Delivery details for this purchase.
3616
        Delivery *PaymentIntentConfirmPaymentDetailsEventDetailsDeliveryParams `form:"delivery"`
3617
        // Event end time. Measured in seconds since the Unix epoch.
3618
        EndsAt *int64 `form:"ends_at"`
3619
        // Type of the event entertainment (concert, sports event etc)
3620
        Genre *string `form:"genre"`
3621
        // The name of the event.
3622
        Name *string `form:"name"`
3623
        // Event start time. Measured in seconds since the Unix epoch.
3624
        StartsAt *int64 `form:"starts_at"`
3625
}
3626

3627
// Affiliate details for this purchase.
3628
type PaymentIntentConfirmPaymentDetailsFlightAffiliateParams struct {
3629
        // The name of the affiliate that originated the purchase.
3630
        Name *string `form:"name"`
3631
}
3632

3633
// Details of the recipient.
3634
type PaymentIntentConfirmPaymentDetailsFlightDeliveryRecipientParams struct {
3635
        // The email of the recipient the ticket is delivered to.
3636
        Email *string `form:"email"`
3637
        // The name of the recipient the ticket is delivered to.
3638
        Name *string `form:"name"`
3639
        // The phone number of the recipient the ticket is delivered to.
3640
        Phone *string `form:"phone"`
3641
}
3642

3643
// Delivery details for this purchase.
3644
type PaymentIntentConfirmPaymentDetailsFlightDeliveryParams struct {
3645
        // The delivery method for the payment
3646
        Mode *string `form:"mode"`
3647
        // Details of the recipient.
3648
        Recipient *PaymentIntentConfirmPaymentDetailsFlightDeliveryRecipientParams `form:"recipient"`
3649
}
3650

3651
// The details of the passengers in the travel reservation.
3652
type PaymentIntentConfirmPaymentDetailsFlightPassengerParams struct {
3653
        // Full name of the person or entity on the flight reservation.
3654
        Name *string `form:"name"`
3655
}
3656

3657
// The individual flight segments associated with the trip.
3658
type PaymentIntentConfirmPaymentDetailsFlightSegmentParams struct {
3659
        // The flight segment amount.
3660
        Amount *int64 `form:"amount"`
3661
        // The International Air Transport Association (IATA) airport code for the arrival airport.
3662
        ArrivalAirport *string `form:"arrival_airport"`
3663
        // The arrival time for the flight segment. Measured in seconds since the Unix epoch.
3664
        ArrivesAt *int64 `form:"arrives_at"`
3665
        // The International Air Transport Association (IATA) carrier code of the carrier operating the flight segment.
3666
        Carrier *string `form:"carrier"`
3667
        // The departure time for the flight segment. Measured in seconds since the Unix epoch.
3668
        DepartsAt *int64 `form:"departs_at"`
3669
        // The International Air Transport Association (IATA) airport code for the departure airport.
3670
        DepartureAirport *string `form:"departure_airport"`
3671
        // The flight number associated with the segment
3672
        FlightNumber *string `form:"flight_number"`
3673
        // The fare class for the segment.
3674
        ServiceClass *string `form:"service_class"`
3675
}
3676

3677
// Flight reservation details for this PaymentIntent
3678
type PaymentIntentConfirmPaymentDetailsFlightParams struct {
3679
        // Affiliate details for this purchase.
3680
        Affiliate *PaymentIntentConfirmPaymentDetailsFlightAffiliateParams `form:"affiliate"`
3681
        // The agency number (i.e. International Air Transport Association (IATA) agency number) of the travel agency that made the booking.
3682
        AgencyNumber *string `form:"agency_number"`
3683
        // The International Air Transport Association (IATA) carrier code of the carrier that issued the ticket.
3684
        Carrier *string `form:"carrier"`
3685
        // Delivery details for this purchase.
3686
        Delivery *PaymentIntentConfirmPaymentDetailsFlightDeliveryParams `form:"delivery"`
3687
        // The name of the person or entity on the reservation.
3688
        PassengerName *string `form:"passenger_name"`
3689
        // The details of the passengers in the travel reservation.
3690
        Passengers []*PaymentIntentConfirmPaymentDetailsFlightPassengerParams `form:"passengers"`
3691
        // The individual flight segments associated with the trip.
3692
        Segments []*PaymentIntentConfirmPaymentDetailsFlightSegmentParams `form:"segments"`
3693
        // The ticket number associated with the travel reservation.
3694
        TicketNumber *string `form:"ticket_number"`
3695
}
3696

3697
// Affiliate details for this purchase.
3698
type PaymentIntentConfirmPaymentDetailsLodgingAffiliateParams struct {
3699
        // The name of the affiliate that originated the purchase.
3700
        Name *string `form:"name"`
3701
}
3702

3703
// Details of the recipient.
3704
type PaymentIntentConfirmPaymentDetailsLodgingDeliveryRecipientParams struct {
3705
        // The email of the recipient the ticket is delivered to.
3706
        Email *string `form:"email"`
3707
        // The name of the recipient the ticket is delivered to.
3708
        Name *string `form:"name"`
3709
        // The phone number of the recipient the ticket is delivered to.
3710
        Phone *string `form:"phone"`
3711
}
3712

3713
// Delivery details for this purchase.
3714
type PaymentIntentConfirmPaymentDetailsLodgingDeliveryParams struct {
3715
        // The delivery method for the payment
3716
        Mode *string `form:"mode"`
3717
        // Details of the recipient.
3718
        Recipient *PaymentIntentConfirmPaymentDetailsLodgingDeliveryRecipientParams `form:"recipient"`
3719
}
3720

3721
// The details of the passengers in the travel reservation
3722
type PaymentIntentConfirmPaymentDetailsLodgingPassengerParams struct {
3723
        // Full name of the person or entity on the lodging reservation.
3724
        Name *string `form:"name"`
3725
}
3726

3727
// Lodging reservation details for this PaymentIntent
3728
type PaymentIntentConfirmPaymentDetailsLodgingParams struct {
3729
        // The lodging location's address.
3730
        Address *AddressParams `form:"address"`
3731
        // The number of adults on the booking
3732
        Adults *int64 `form:"adults"`
3733
        // Affiliate details for this purchase.
3734
        Affiliate *PaymentIntentConfirmPaymentDetailsLodgingAffiliateParams `form:"affiliate"`
3735
        // The booking number associated with the lodging reservation.
3736
        BookingNumber *string `form:"booking_number"`
3737
        // The lodging category
3738
        Category *string `form:"category"`
3739
        // Loding check-in time. Measured in seconds since the Unix epoch.
3740
        CheckinAt *int64 `form:"checkin_at"`
3741
        // Lodging check-out time. Measured in seconds since the Unix epoch.
3742
        CheckoutAt *int64 `form:"checkout_at"`
3743
        // The customer service phone number of the lodging company.
3744
        CustomerServicePhoneNumber *string `form:"customer_service_phone_number"`
3745
        // The daily lodging room rate.
3746
        DailyRoomRateAmount *int64 `form:"daily_room_rate_amount"`
3747
        // Delivery details for this purchase.
3748
        Delivery *PaymentIntentConfirmPaymentDetailsLodgingDeliveryParams `form:"delivery"`
3749
        // List of additional charges being billed.
3750
        ExtraCharges []*string `form:"extra_charges"`
3751
        // Indicates whether the lodging location is compliant with the Fire Safety Act.
3752
        FireSafetyActCompliance *bool `form:"fire_safety_act_compliance"`
3753
        // The name of the lodging location.
3754
        Name *string `form:"name"`
3755
        // Indicates if the customer did not keep their booking while failing to cancel the reservation.
3756
        NoShow *bool `form:"no_show"`
3757
        // The number of rooms on the booking
3758
        NumberOfRooms *int64 `form:"number_of_rooms"`
3759
        // The details of the passengers in the travel reservation
3760
        Passengers []*PaymentIntentConfirmPaymentDetailsLodgingPassengerParams `form:"passengers"`
3761
        // The phone number of the lodging location.
3762
        PropertyPhoneNumber *string `form:"property_phone_number"`
3763
        // The room class for this purchase.
3764
        RoomClass *string `form:"room_class"`
3765
        // The number of room nights
3766
        RoomNights *int64 `form:"room_nights"`
3767
        // The total tax amount associating with the room reservation.
3768
        TotalRoomTaxAmount *int64 `form:"total_room_tax_amount"`
3769
        // The total tax amount
3770
        TotalTaxAmount *int64 `form:"total_tax_amount"`
3771
}
3772

3773
// Affiliate details for this purchase.
3774
type PaymentIntentConfirmPaymentDetailsSubscriptionAffiliateParams struct {
3775
        // The name of the affiliate that originated the purchase.
3776
        Name *string `form:"name"`
3777
}
3778

3779
// Subscription billing details for this purchase.
3780
type PaymentIntentConfirmPaymentDetailsSubscriptionBillingIntervalParams struct {
3781
        // The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3782
        Count *int64 `form:"count"`
3783
        // Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3784
        Interval *string `form:"interval"`
3785
}
3786

3787
// Subscription details for this PaymentIntent
3788
type PaymentIntentConfirmPaymentDetailsSubscriptionParams struct {
3789
        // Affiliate details for this purchase.
3790
        Affiliate *PaymentIntentConfirmPaymentDetailsSubscriptionAffiliateParams `form:"affiliate"`
3791
        // Info whether the subscription will be auto renewed upon expiry.
3792
        AutoRenewal *bool `form:"auto_renewal"`
3793
        // Subscription billing details for this purchase.
3794
        BillingInterval *PaymentIntentConfirmPaymentDetailsSubscriptionBillingIntervalParams `form:"billing_interval"`
3795
        // Subscription end time. Measured in seconds since the Unix epoch.
3796
        EndsAt *int64 `form:"ends_at"`
3797
        // Name of the product on subscription. e.g. Apple Music Subscription
3798
        Name *string `form:"name"`
3799
        // Subscription start time. Measured in seconds since the Unix epoch.
3800
        StartsAt *int64 `form:"starts_at"`
3801
}
3802

3803
// Provides industry-specific information about the charge.
3804
type PaymentIntentConfirmPaymentDetailsParams struct {
3805
        // Car rental details for this PaymentIntent.
3806
        CarRental *PaymentIntentConfirmPaymentDetailsCarRentalParams `form:"car_rental"`
3807
        // Event details for this PaymentIntent
3808
        EventDetails *PaymentIntentConfirmPaymentDetailsEventDetailsParams `form:"event_details"`
3809
        // Flight reservation details for this PaymentIntent
3810
        Flight *PaymentIntentConfirmPaymentDetailsFlightParams `form:"flight"`
3811
        // Lodging reservation details for this PaymentIntent
3812
        Lodging *PaymentIntentConfirmPaymentDetailsLodgingParams `form:"lodging"`
3813
        // Subscription details for this PaymentIntent
3814
        Subscription *PaymentIntentConfirmPaymentDetailsSubscriptionParams `form:"subscription"`
3815
}
3816

3817
// Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session).
3818
type PaymentIntentConfirmRadarOptionsParams struct {
3819
        // A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
3820
        Session *string `form:"session"`
3821
}
3822

3823
// Confirm that your customer intends to pay with current or provided
3824
// payment method. Upon confirmation, the PaymentIntent will attempt to initiate
3825
// a payment.
3826
// If the selected payment method requires additional authentication steps, the
3827
// PaymentIntent will transition to the requires_action status and
3828
// suggest additional actions via next_action. If payment fails,
3829
// the PaymentIntent transitions to the requires_payment_method status or the
3830
// canceled status if the confirmation limit is reached. If
3831
// payment succeeds, the PaymentIntent will transition to the succeeded
3832
// status (or requires_capture, if capture_method is set to manual).
3833
// If the confirmation_method is automatic, payment may be attempted
3834
// using our [client SDKs](https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment)
3835
// and the PaymentIntent's [client_secret](https://stripe.com/docs/api#payment_intent_object-client_secret).
3836
// After next_actions are handled by the client, no additional
3837
// confirmation is required to complete the payment.
3838
// If the confirmation_method is manual, all payment attempts must be
3839
// initiated using a secret key.
3840
// If any actions are required for the payment, the PaymentIntent will
3841
// return to the requires_confirmation state
3842
// after those actions are completed. Your server needs to then
3843
// explicitly re-confirm the PaymentIntent to initiate the next payment
3844
// attempt.
3845
// There is a variable upper limit on how many times a PaymentIntent can be confirmed.
3846
// After this limit is reached, any further calls to this endpoint will
3847
// transition the PaymentIntent to the canceled state.
3848
type PaymentIntentConfirmParams struct {
3849
        Params `form:"*"`
3850
        // 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](https://stripe.com/docs/payments/connected-accounts).
3851
        ApplicationFeeAmount *int64 `form:"application_fee_amount"`
3852
        // Automations to be run during the PaymentIntent lifecycle
3853
        AsyncWorkflows *PaymentIntentConfirmAsyncWorkflowsParams `form:"async_workflows"`
3854
        // Controls when the funds will be captured from the customer's account.
3855
        CaptureMethod *string `form:"capture_method"`
3856
        // ID of the ConfirmationToken used to confirm this PaymentIntent.
3857
        //
3858
        // If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.
3859
        ConfirmationToken *string `form:"confirmation_token"`
3860
        // Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. This parameter is intended for simpler integrations that do not handle customer actions, like [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication).
3861
        ErrorOnRequiresAction *bool `form:"error_on_requires_action"`
3862
        // Specifies which fields in the response should be expanded.
3863
        Expand []*string `form:"expand"`
3864
        // ID of the mandate that's used for this payment.
3865
        Mandate     *string                         `form:"mandate"`
3866
        MandateData *PaymentIntentMandateDataParams `form:"mandate_data"`
3867
        // Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards).
3868
        OffSession *bool `form:"off_session"`
3869
        // Provides industry-specific information about the charge.
3870
        PaymentDetails *PaymentIntentConfirmPaymentDetailsParams `form:"payment_details"`
3871
        // ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent.
3872
        PaymentMethod *string `form:"payment_method"`
3873
        // If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
3874
        // in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)
3875
        // property on the PaymentIntent.
3876
        PaymentMethodData *PaymentIntentPaymentMethodDataParams `form:"payment_method_data"`
3877
        // Payment method-specific configuration for this PaymentIntent.
3878
        PaymentMethodOptions *PaymentIntentPaymentMethodOptionsParams `form:"payment_method_options"`
3879
        // The list of payment method types (for example, a card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).
3880
        PaymentMethodTypes []*string `form:"payment_method_types"`
3881
        // Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session).
3882
        RadarOptions *PaymentIntentConfirmRadarOptionsParams `form:"radar_options"`
3883
        // 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](https://dashboard.stripe.com/account/emails).
3884
        ReceiptEmail *string `form:"receipt_email"`
3885
        // The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site.
3886
        // If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme.
3887
        // This parameter is only used for cards and other redirect-based payment methods.
3888
        ReturnURL *string `form:"return_url"`
3889
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
3890
        //
3891
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
3892
        //
3893
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
3894
        //
3895
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
3896
        //
3897
        // If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.
3898
        SetupFutureUsage *string `form:"setup_future_usage"`
3899
        // Shipping information for this PaymentIntent.
3900
        Shipping *ShippingDetailsParams `form:"shipping"`
3901
        // Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
3902
        UseStripeSDK *bool `form:"use_stripe_sdk"`
3903
}
3904

3905
// AddExpand appends a new field to expand.
UNCOV
3906
func (p *PaymentIntentConfirmParams) AddExpand(f string) {
×
UNCOV
3907
        p.Expand = append(p.Expand, &f)
×
UNCOV
3908
}
×
3909

3910
// Tax arguments for automations
3911
type PaymentIntentDecrementAuthorizationAsyncWorkflowsInputsTaxParams struct {
3912
        // The [TaxCalculation](https://stripe.com/docs/api/tax/calculations) id
3913
        Calculation *string `form:"calculation"`
3914
}
3915

3916
// Arguments passed in automations
3917
type PaymentIntentDecrementAuthorizationAsyncWorkflowsInputsParams struct {
3918
        // Tax arguments for automations
3919
        Tax *PaymentIntentDecrementAuthorizationAsyncWorkflowsInputsTaxParams `form:"tax"`
3920
}
3921

3922
// Automations to be run during the PaymentIntent lifecycle
3923
type PaymentIntentDecrementAuthorizationAsyncWorkflowsParams struct {
3924
        // Arguments passed in automations
3925
        Inputs *PaymentIntentDecrementAuthorizationAsyncWorkflowsInputsParams `form:"inputs"`
3926
}
3927

3928
// The parameters used to automatically create a transfer after the payment is captured.
3929
// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
3930
type PaymentIntentDecrementAuthorizationTransferDataParams struct {
3931
        // The amount that will be transferred automatically when a charge succeeds.
3932
        Amount *int64 `form:"amount"`
3933
}
3934

3935
// Perform a decremental authorization on an eligible
3936
// [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
3937
// PaymentIntent's status must be requires_capture and
3938
// [decremental_authorization.status](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization)
3939
// must be available.
3940
//
3941
// Decremental authorizations decrease the authorized amount on your customer's card
3942
// to the new, lower amount provided. A single PaymentIntent can call this endpoint multiple times to further decrease the authorized amount.
3943
//
3944
// After decrement, the PaymentIntent object
3945
// returns with the updated
3946
// [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount).
3947
// The PaymentIntent will now be capturable up to the new authorized amount.
3948
//
3949
// Each PaymentIntent can have a maximum of 10 decremental or incremental authorization attempts, including declines.
3950
// After it's fully captured, a PaymentIntent can no longer be decremented.
3951
type PaymentIntentDecrementAuthorizationParams struct {
3952
        Params `form:"*"`
3953
        // The updated total amount that you intend to collect from the cardholder. This amount must be smaller than the currently authorized amount and greater than the already captured amount.
3954
        Amount *int64 `form:"amount"`
3955
        // 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](https://stripe.com/docs/payments/connected-accounts).
3956
        ApplicationFeeAmount *int64 `form:"application_fee_amount"`
3957
        // Automations to be run during the PaymentIntent lifecycle
3958
        AsyncWorkflows *PaymentIntentDecrementAuthorizationAsyncWorkflowsParams `form:"async_workflows"`
3959
        // An arbitrary string attached to the object. Often useful for displaying to users.
3960
        Description *string `form:"description"`
3961
        // Specifies which fields in the response should be expanded.
3962
        Expand []*string `form:"expand"`
3963
        // Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
3964
        Metadata map[string]string `form:"metadata"`
3965
        // The parameters used to automatically create a transfer after the payment is captured.
3966
        // Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
3967
        TransferData *PaymentIntentDecrementAuthorizationTransferDataParams `form:"transfer_data"`
3968
}
3969

3970
// AddExpand appends a new field to expand.
UNCOV
3971
func (p *PaymentIntentDecrementAuthorizationParams) AddExpand(f string) {
×
UNCOV
3972
        p.Expand = append(p.Expand, &f)
×
UNCOV
3973
}
×
3974

3975
// AddMetadata adds a new key-value pair to the Metadata.
UNCOV
3976
func (p *PaymentIntentDecrementAuthorizationParams) AddMetadata(key string, value string) {
×
UNCOV
3977
        if p.Metadata == nil {
×
UNCOV
3978
                p.Metadata = make(map[string]string)
×
UNCOV
3979
        }
×
3980

UNCOV
3981
        p.Metadata[key] = value
×
3982
}
3983

3984
// Tax arguments for automations
3985
type PaymentIntentIncrementAuthorizationAsyncWorkflowsInputsTaxParams struct {
3986
        // The [TaxCalculation](https://stripe.com/docs/api/tax/calculations) id
3987
        Calculation *string `form:"calculation"`
3988
}
3989

3990
// Arguments passed in automations
3991
type PaymentIntentIncrementAuthorizationAsyncWorkflowsInputsParams struct {
3992
        // Tax arguments for automations
3993
        Tax *PaymentIntentIncrementAuthorizationAsyncWorkflowsInputsTaxParams `form:"tax"`
3994
}
3995

3996
// Automations to be run during the PaymentIntent lifecycle
3997
type PaymentIntentIncrementAuthorizationAsyncWorkflowsParams struct {
3998
        // Arguments passed in automations
3999
        Inputs *PaymentIntentIncrementAuthorizationAsyncWorkflowsInputsParams `form:"inputs"`
4000
}
4001

4002
// The parameters used to automatically create a transfer after the payment is captured.
4003
// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
4004
type PaymentIntentIncrementAuthorizationTransferDataParams struct {
4005
        // The amount that will be transferred automatically when a charge succeeds.
4006
        Amount *int64 `form:"amount"`
4007
}
4008

4009
// Perform an incremental authorization on an eligible
4010
// [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
4011
// PaymentIntent's status must be requires_capture and
4012
// [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported)
4013
// must be true.
4014
//
4015
// Incremental authorizations attempt to increase the authorized amount on
4016
// your customer's card to the new, higher amount provided. Similar to the
4017
// initial authorization, incremental authorizations can be declined. A
4018
// single PaymentIntent can call this endpoint multiple times to further
4019
// increase the authorized amount.
4020
//
4021
// If the incremental authorization succeeds, the PaymentIntent object
4022
// returns with the updated
4023
// [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount).
4024
// If the incremental authorization fails, a
4025
// [card_declined](https://stripe.com/docs/error-codes#card-declined) error returns, and no other
4026
// fields on the PaymentIntent or Charge update. The PaymentIntent
4027
// object remains capturable for the previously authorized amount.
4028
//
4029
// Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines.
4030
// After it's captured, a PaymentIntent can no longer be incremented.
4031
//
4032
// Learn more about [incremental authorizations](https://stripe.com/docs/terminal/features/incremental-authorizations).
4033
type PaymentIntentIncrementAuthorizationParams struct {
4034
        Params `form:"*"`
4035
        // The updated total amount that you intend to collect from the cardholder. This amount must be greater than the currently authorized amount.
4036
        Amount *int64 `form:"amount"`
4037
        // 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](https://stripe.com/docs/payments/connected-accounts).
4038
        ApplicationFeeAmount *int64 `form:"application_fee_amount"`
4039
        // Automations to be run during the PaymentIntent lifecycle
4040
        AsyncWorkflows *PaymentIntentIncrementAuthorizationAsyncWorkflowsParams `form:"async_workflows"`
4041
        // An arbitrary string attached to the object. Often useful for displaying to users.
4042
        Description *string `form:"description"`
4043
        // Specifies which fields in the response should be expanded.
4044
        Expand []*string `form:"expand"`
4045
        // Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
4046
        Metadata map[string]string `form:"metadata"`
4047
        // Text that appears on the customer's statement as the statement descriptor for a non-card or card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors).
4048
        StatementDescriptor *string `form:"statement_descriptor"`
4049
        // The parameters used to automatically create a transfer after the payment is captured.
4050
        // Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
4051
        TransferData *PaymentIntentIncrementAuthorizationTransferDataParams `form:"transfer_data"`
4052
}
4053

4054
// AddExpand appends a new field to expand.
UNCOV
4055
func (p *PaymentIntentIncrementAuthorizationParams) AddExpand(f string) {
×
UNCOV
4056
        p.Expand = append(p.Expand, &f)
×
UNCOV
4057
}
×
4058

4059
// AddMetadata adds a new key-value pair to the Metadata.
UNCOV
4060
func (p *PaymentIntentIncrementAuthorizationParams) AddMetadata(key string, value string) {
×
UNCOV
4061
        if p.Metadata == nil {
×
UNCOV
4062
                p.Metadata = make(map[string]string)
×
UNCOV
4063
        }
×
4064

UNCOV
4065
        p.Metadata[key] = value
×
4066
}
4067

4068
// Verifies microdeposits on a PaymentIntent object.
4069
type PaymentIntentVerifyMicrodepositsParams struct {
4070
        Params `form:"*"`
4071
        // Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account.
4072
        Amounts []*int64 `form:"amounts"`
4073
        // A six-character code starting with SM present in the microdeposit sent to the bank account.
4074
        DescriptorCode *string `form:"descriptor_code"`
4075
        // Specifies which fields in the response should be expanded.
4076
        Expand []*string `form:"expand"`
4077
}
4078

4079
// AddExpand appends a new field to expand.
UNCOV
4080
func (p *PaymentIntentVerifyMicrodepositsParams) AddExpand(f string) {
×
UNCOV
4081
        p.Expand = append(p.Expand, &f)
×
UNCOV
4082
}
×
4083

4084
type PaymentIntentAmountDetailsTip struct {
4085
        // Portion of the amount that corresponds to a tip.
4086
        Amount int64 `json:"amount"`
4087
}
4088
type PaymentIntentAmountDetails struct {
4089
        Tip *PaymentIntentAmountDetailsTip `json:"tip"`
4090
}
4091
type PaymentIntentAsyncWorkflowsInputsTax struct {
4092
        // The [TaxCalculation](https://stripe.com/docs/api/tax/calculations) id
4093
        Calculation string `json:"calculation"`
4094
}
4095
type PaymentIntentAsyncWorkflowsInputs struct {
4096
        Tax *PaymentIntentAsyncWorkflowsInputsTax `json:"tax"`
4097
}
4098
type PaymentIntentAsyncWorkflows struct {
4099
        Inputs *PaymentIntentAsyncWorkflowsInputs `json:"inputs"`
4100
}
4101

4102
// Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods)
4103
type PaymentIntentAutomaticPaymentMethods struct {
4104
        // Controls whether this PaymentIntent will accept redirect-based payment methods.
4105
        //
4106
        // Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the payment.
4107
        AllowRedirects PaymentIntentAutomaticPaymentMethodsAllowRedirects `json:"allow_redirects"`
4108
        // Automatically calculates compatible payment methods
4109
        Enabled bool `json:"enabled"`
4110
}
4111
type PaymentIntentNextActionAlipayHandleRedirect struct {
4112
        // The native data to be used with Alipay SDK you must redirect your customer to in order to authenticate the payment in an Android App.
4113
        NativeData string `json:"native_data"`
4114
        // The native URL you must redirect your customer to in order to authenticate the payment in an iOS App.
4115
        NativeURL string `json:"native_url"`
4116
        // If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.
4117
        ReturnURL string `json:"return_url"`
4118
        // The URL you must redirect your customer to in order to authenticate the payment.
4119
        URL string `json:"url"`
4120
}
4121
type PaymentIntentNextActionBoletoDisplayDetails struct {
4122
        // The timestamp after which the boleto expires.
4123
        ExpiresAt int64 `json:"expires_at"`
4124
        // The URL to the hosted boleto voucher page, which allows customers to view the boleto voucher.
4125
        HostedVoucherURL string `json:"hosted_voucher_url"`
4126
        // The boleto number.
4127
        Number string `json:"number"`
4128
        // The URL to the downloadable boleto voucher PDF.
4129
        PDF string `json:"pdf"`
4130
}
4131
type PaymentIntentNextActionCardAwaitNotification struct {
4132
        // The time that payment will be attempted. If customer approval is required, they need to provide approval before this time.
4133
        ChargeAttemptAt int64 `json:"charge_attempt_at"`
4134
        // For payments greater than INR 15000, the customer must provide explicit approval of the payment with their bank. For payments of lower amount, no customer action is required.
4135
        CustomerApprovalRequired bool `json:"customer_approval_required"`
4136
}
4137
type PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCodeQRCode struct {
4138
        // The date (unix timestamp) when the QR code expires.
4139
        ExpiresAt int64 `json:"expires_at"`
4140
        // The image_url_png string used to render QR code
4141
        ImageURLPNG string `json:"image_url_png"`
4142
        // The image_url_svg string used to render QR code
4143
        ImageURLSVG string `json:"image_url_svg"`
4144
}
4145
type PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCode struct {
4146
        // The URL to the hosted Cash App Pay instructions page, which allows customers to view the QR code, and supports QR code refreshing on expiration.
4147
        HostedInstructionsURL string `json:"hosted_instructions_url"`
4148
        // The url for mobile redirect based auth
4149
        MobileAuthURL string                                                             `json:"mobile_auth_url"`
4150
        QRCode        *PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCodeQRCode `json:"qr_code"`
4151
}
4152

4153
// ABA Records contain U.S. bank account details per the ABA format.
4154
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressABA struct {
4155
        // The ABA account number
4156
        AccountNumber string `json:"account_number"`
4157
        // The bank name
4158
        BankName string `json:"bank_name"`
4159
        // The ABA routing number
4160
        RoutingNumber string `json:"routing_number"`
4161
}
4162

4163
// Iban Records contain E.U. bank account details per the SEPA format.
4164
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressIBAN struct {
4165
        // The name of the person or business that owns the bank account
4166
        AccountHolderName string `json:"account_holder_name"`
4167
        // The BIC/SWIFT code of the account.
4168
        BIC string `json:"bic"`
4169
        // Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
4170
        Country string `json:"country"`
4171
        // The IBAN of the account.
4172
        IBAN string `json:"iban"`
4173
}
4174

4175
// Sort Code Records contain U.K. bank account details per the sort code format.
4176
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSortCode struct {
4177
        // The name of the person or business that owns the bank account
4178
        AccountHolderName string `json:"account_holder_name"`
4179
        // The account number
4180
        AccountNumber string `json:"account_number"`
4181
        // The six-digit sort code
4182
        SortCode string `json:"sort_code"`
4183
}
4184

4185
// SPEI Records contain Mexico bank account details per the SPEI format.
4186
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSpei struct {
4187
        // The three-digit bank code
4188
        BankCode string `json:"bank_code"`
4189
        // The short banking institution name
4190
        BankName string `json:"bank_name"`
4191
        // The CLABE number
4192
        Clabe string `json:"clabe"`
4193
}
4194

4195
// SWIFT Records contain U.S. bank account details per the SWIFT format.
4196
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSwift struct {
4197
        // The account number
4198
        AccountNumber string `json:"account_number"`
4199
        // The bank name
4200
        BankName string `json:"bank_name"`
4201
        // The SWIFT code
4202
        SwiftCode string `json:"swift_code"`
4203
}
4204

4205
// Zengin Records contain Japan bank account details per the Zengin format.
4206
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressZengin struct {
4207
        // The account holder name
4208
        AccountHolderName string `json:"account_holder_name"`
4209
        // The account number
4210
        AccountNumber string `json:"account_number"`
4211
        // The bank account type. In Japan, this can only be `futsu` or `toza`.
4212
        AccountType string `json:"account_type"`
4213
        // The bank code of the account
4214
        BankCode string `json:"bank_code"`
4215
        // The bank name of the account
4216
        BankName string `json:"bank_name"`
4217
        // The branch code of the account
4218
        BranchCode string `json:"branch_code"`
4219
        // The branch name of the account
4220
        BranchName string `json:"branch_name"`
4221
}
4222

4223
// A list of financial addresses that can be used to fund the customer balance
4224
type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress struct {
4225
        // ABA Records contain U.S. bank account details per the ABA format.
4226
        ABA *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressABA `json:"aba"`
4227
        // Iban Records contain E.U. bank account details per the SEPA format.
4228
        IBAN *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressIBAN `json:"iban"`
4229
        // Sort Code Records contain U.K. bank account details per the sort code format.
4230
        SortCode *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSortCode `json:"sort_code"`
4231
        // SPEI Records contain Mexico bank account details per the SPEI format.
4232
        Spei *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSpei `json:"spei"`
4233
        // The payment networks supported by this FinancialAddress
4234
        SupportedNetworks []PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork `json:"supported_networks"`
4235
        // SWIFT Records contain U.S. bank account details per the SWIFT format.
4236
        Swift *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSwift `json:"swift"`
4237
        // The type of financial address
4238
        Type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType `json:"type"`
4239
        // Zengin Records contain Japan bank account details per the Zengin format.
4240
        Zengin *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressZengin `json:"zengin"`
4241
}
4242
type PaymentIntentNextActionDisplayBankTransferInstructions struct {
4243
        // The remaining amount that needs to be transferred to complete the payment.
4244
        AmountRemaining int64 `json:"amount_remaining"`
4245
        // Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
4246
        Currency Currency `json:"currency"`
4247
        // A list of financial addresses that can be used to fund the customer balance
4248
        FinancialAddresses []*PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress `json:"financial_addresses"`
4249
        // A link to a hosted page that guides your customer through completing the transfer.
4250
        HostedInstructionsURL string `json:"hosted_instructions_url"`
4251
        // A string identifying this payment. Instruct your customer to include this code in the reference or memo field of their bank transfer.
4252
        Reference string `json:"reference"`
4253
        // Type of bank transfer
4254
        Type PaymentIntentNextActionDisplayBankTransferInstructionsType `json:"type"`
4255
}
4256

4257
// FamilyMart instruction details.
4258
type PaymentIntentNextActionKonbiniDisplayDetailsStoresFamilyMart struct {
4259
        // The confirmation number.
4260
        ConfirmationNumber string `json:"confirmation_number"`
4261
        // The payment code.
4262
        PaymentCode string `json:"payment_code"`
4263
}
4264

4265
// Lawson instruction details.
4266
type PaymentIntentNextActionKonbiniDisplayDetailsStoresLawson struct {
4267
        // The confirmation number.
4268
        ConfirmationNumber string `json:"confirmation_number"`
4269
        // The payment code.
4270
        PaymentCode string `json:"payment_code"`
4271
}
4272

4273
// Ministop instruction details.
4274
type PaymentIntentNextActionKonbiniDisplayDetailsStoresMinistop struct {
4275
        // The confirmation number.
4276
        ConfirmationNumber string `json:"confirmation_number"`
4277
        // The payment code.
4278
        PaymentCode string `json:"payment_code"`
4279
}
4280

4281
// Seicomart instruction details.
4282
type PaymentIntentNextActionKonbiniDisplayDetailsStoresSeicomart struct {
4283
        // The confirmation number.
4284
        ConfirmationNumber string `json:"confirmation_number"`
4285
        // The payment code.
4286
        PaymentCode string `json:"payment_code"`
4287
}
4288
type PaymentIntentNextActionKonbiniDisplayDetailsStores struct {
4289
        // FamilyMart instruction details.
4290
        FamilyMart *PaymentIntentNextActionKonbiniDisplayDetailsStoresFamilyMart `json:"familymart"`
4291
        // Lawson instruction details.
4292
        Lawson *PaymentIntentNextActionKonbiniDisplayDetailsStoresLawson `json:"lawson"`
4293
        // Ministop instruction details.
4294
        Ministop *PaymentIntentNextActionKonbiniDisplayDetailsStoresMinistop `json:"ministop"`
4295
        // Seicomart instruction details.
4296
        Seicomart *PaymentIntentNextActionKonbiniDisplayDetailsStoresSeicomart `json:"seicomart"`
4297
}
4298
type PaymentIntentNextActionKonbiniDisplayDetails struct {
4299
        // The timestamp at which the pending Konbini payment expires.
4300
        ExpiresAt int64 `json:"expires_at"`
4301
        // The URL for the Konbini payment instructions page, which allows customers to view and print a Konbini voucher.
4302
        HostedVoucherURL string                                              `json:"hosted_voucher_url"`
4303
        Stores           *PaymentIntentNextActionKonbiniDisplayDetailsStores `json:"stores"`
4304
}
4305
type PaymentIntentNextActionMultibancoDisplayDetails struct {
4306
        // Entity number associated with this Multibanco payment.
4307
        Entity string `json:"entity"`
4308
        // The timestamp at which the Multibanco voucher expires.
4309
        ExpiresAt int64 `json:"expires_at"`
4310
        // The URL for the hosted Multibanco voucher page, which allows customers to view a Multibanco voucher.
4311
        HostedVoucherURL string `json:"hosted_voucher_url"`
4312
        // Reference number associated with this Multibanco payment.
4313
        Reference string `json:"reference"`
4314
}
4315
type PaymentIntentNextActionOXXODisplayDetails struct {
4316
        // The timestamp after which the OXXO voucher expires.
4317
        ExpiresAfter int64 `json:"expires_after"`
4318
        // The URL for the hosted OXXO voucher page, which allows customers to view and print an OXXO voucher.
4319
        HostedVoucherURL string `json:"hosted_voucher_url"`
4320
        // OXXO reference number.
4321
        Number string `json:"number"`
4322
}
4323
type PaymentIntentNextActionPayNowDisplayQRCode struct {
4324
        // The raw data string used to generate QR code, it should be used together with QR code library.
4325
        Data string `json:"data"`
4326
        // The URL to the hosted PayNow instructions page, which allows customers to view the PayNow QR code.
4327
        HostedInstructionsURL string `json:"hosted_instructions_url"`
4328
        // The image_url_png string used to render QR code
4329
        ImageURLPNG string `json:"image_url_png"`
4330
        // The image_url_svg string used to render QR code
4331
        ImageURLSVG string `json:"image_url_svg"`
4332
}
4333
type PaymentIntentNextActionPixDisplayQRCode struct {
4334
        // The raw data string used to generate QR code, it should be used together with QR code library.
4335
        Data string `json:"data"`
4336
        // The date (unix timestamp) when the PIX expires.
4337
        ExpiresAt int64 `json:"expires_at"`
4338
        // The URL to the hosted pix instructions page, which allows customers to view the pix QR code.
4339
        HostedInstructionsURL string `json:"hosted_instructions_url"`
4340
        // The image_url_png string used to render png QR code
4341
        ImageURLPNG string `json:"image_url_png"`
4342
        // The image_url_svg string used to render svg QR code
4343
        ImageURLSVG string `json:"image_url_svg"`
4344
}
4345
type PaymentIntentNextActionPromptPayDisplayQRCode struct {
4346
        // The raw data string used to generate QR code, it should be used together with QR code library.
4347
        Data string `json:"data"`
4348
        // The URL to the hosted PromptPay instructions page, which allows customers to view the PromptPay QR code.
4349
        HostedInstructionsURL string `json:"hosted_instructions_url"`
4350
        // The PNG path used to render the QR code, can be used as the source in an HTML img tag
4351
        ImageURLPNG string `json:"image_url_png"`
4352
        // The SVG path used to render the QR code, can be used as the source in an HTML img tag
4353
        ImageURLSVG string `json:"image_url_svg"`
4354
}
4355
type PaymentIntentNextActionRedirectToURL struct {
4356
        // If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.
4357
        ReturnURL string `json:"return_url"`
4358
        // The URL you must redirect your customer to in order to authenticate the payment.
4359
        URL string `json:"url"`
4360
}
4361
type PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCodeQRCode struct {
4362
        // The raw data string used to generate QR code, it should be used together with QR code library.
4363
        Data string `json:"data"`
4364
        // The image_url_png string used to render QR code
4365
        ImageURLPNG string `json:"image_url_png"`
4366
        // The image_url_svg string used to render QR code
4367
        ImageURLSVG string `json:"image_url_svg"`
4368
}
4369
type PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCode struct {
4370
        // The URL to the hosted Swish instructions page, which allows customers to view the QR code.
4371
        HostedInstructionsURL string `json:"hosted_instructions_url"`
4372
        // The url for mobile redirect based auth (for internal use only and not typically available in standard API requests).
4373
        MobileAuthURL string                                                           `json:"mobile_auth_url"`
4374
        QRCode        *PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCodeQRCode `json:"qr_code"`
4375
}
4376

4377
// When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
4378
type PaymentIntentNextActionUseStripeSDK struct{}
4379
type PaymentIntentNextActionVerifyWithMicrodeposits struct {
4380
        // The timestamp when the microdeposits are expected to land.
4381
        ArrivalDate int64 `json:"arrival_date"`
4382
        // The URL for the hosted verification page, which allows customers to verify their bank account.
4383
        HostedVerificationURL string `json:"hosted_verification_url"`
4384
        // The type of the microdeposit sent to the customer. Used to distinguish between different verification methods.
4385
        MicrodepositType PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType `json:"microdeposit_type"`
4386
}
4387
type PaymentIntentNextActionWeChatPayDisplayQRCode struct {
4388
        // The data being used to generate QR code
4389
        Data string `json:"data"`
4390
        // The URL to the hosted WeChat Pay instructions page, which allows customers to view the WeChat Pay QR code.
4391
        HostedInstructionsURL string `json:"hosted_instructions_url"`
4392
        // The base64 image data for a pre-generated QR code
4393
        ImageDataURL string `json:"image_data_url"`
4394
        // The image_url_png string used to render QR code
4395
        ImageURLPNG string `json:"image_url_png"`
4396
        // The image_url_svg string used to render QR code
4397
        ImageURLSVG string `json:"image_url_svg"`
4398
}
4399
type PaymentIntentNextActionWeChatPayRedirectToAndroidApp struct {
4400
        // app_id is the APP ID registered on WeChat open platform
4401
        AppID string `json:"app_id"`
4402
        // nonce_str is a random string
4403
        NonceStr string `json:"nonce_str"`
4404
        // package is static value
4405
        Package string `json:"package"`
4406
        // an unique merchant ID assigned by WeChat Pay
4407
        PartnerID string `json:"partner_id"`
4408
        // an unique trading ID assigned by WeChat Pay
4409
        PrepayID string `json:"prepay_id"`
4410
        // A signature
4411
        Sign string `json:"sign"`
4412
        // Specifies the current time in epoch format
4413
        Timestamp string `json:"timestamp"`
4414
}
4415
type PaymentIntentNextActionWeChatPayRedirectToIOSApp struct {
4416
        // An universal link that redirect to WeChat Pay app
4417
        NativeURL string `json:"native_url"`
4418
}
4419

4420
// 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.
4421
type PaymentIntentNextAction struct {
4422
        AlipayHandleRedirect                 *PaymentIntentNextActionAlipayHandleRedirect                 `json:"alipay_handle_redirect"`
4423
        BoletoDisplayDetails                 *PaymentIntentNextActionBoletoDisplayDetails                 `json:"boleto_display_details"`
4424
        CardAwaitNotification                *PaymentIntentNextActionCardAwaitNotification                `json:"card_await_notification"`
4425
        CashAppHandleRedirectOrDisplayQRCode *PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCode `json:"cashapp_handle_redirect_or_display_qr_code"`
4426
        DisplayBankTransferInstructions      *PaymentIntentNextActionDisplayBankTransferInstructions      `json:"display_bank_transfer_instructions"`
4427
        KonbiniDisplayDetails                *PaymentIntentNextActionKonbiniDisplayDetails                `json:"konbini_display_details"`
4428
        MultibancoDisplayDetails             *PaymentIntentNextActionMultibancoDisplayDetails             `json:"multibanco_display_details"`
4429
        OXXODisplayDetails                   *PaymentIntentNextActionOXXODisplayDetails                   `json:"oxxo_display_details"`
4430
        PayNowDisplayQRCode                  *PaymentIntentNextActionPayNowDisplayQRCode                  `json:"paynow_display_qr_code"`
4431
        PixDisplayQRCode                     *PaymentIntentNextActionPixDisplayQRCode                     `json:"pix_display_qr_code"`
4432
        PromptPayDisplayQRCode               *PaymentIntentNextActionPromptPayDisplayQRCode               `json:"promptpay_display_qr_code"`
4433
        RedirectToURL                        *PaymentIntentNextActionRedirectToURL                        `json:"redirect_to_url"`
4434
        SwishHandleRedirectOrDisplayQRCode   *PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCode   `json:"swish_handle_redirect_or_display_qr_code"`
4435
        // Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits`.
4436
        Type PaymentIntentNextActionType `json:"type"`
4437
        // When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
4438
        UseStripeSDK                  *PaymentIntentNextActionUseStripeSDK                  `json:"use_stripe_sdk"`
4439
        VerifyWithMicrodeposits       *PaymentIntentNextActionVerifyWithMicrodeposits       `json:"verify_with_microdeposits"`
4440
        WeChatPayDisplayQRCode        *PaymentIntentNextActionWeChatPayDisplayQRCode        `json:"wechat_pay_display_qr_code"`
4441
        WeChatPayRedirectToAndroidApp *PaymentIntentNextActionWeChatPayRedirectToAndroidApp `json:"wechat_pay_redirect_to_android_app"`
4442
        WeChatPayRedirectToIOSApp     *PaymentIntentNextActionWeChatPayRedirectToIOSApp     `json:"wechat_pay_redirect_to_ios_app"`
4443
}
4444
type PaymentIntentPaymentDetailsCarRentalAffiliate struct {
4445
        // The name of the affiliate that originated the purchase.
4446
        Name string `json:"name"`
4447
}
4448
type PaymentIntentPaymentDetailsCarRentalDeliveryRecipient struct {
4449
        // The email of the recipient the ticket is delivered to.
4450
        Email string `json:"email"`
4451
        // The name of the recipient the ticket is delivered to.
4452
        Name string `json:"name"`
4453
        // The phone number of the recipient the ticket is delivered to.
4454
        Phone string `json:"phone"`
4455
}
4456
type PaymentIntentPaymentDetailsCarRentalDelivery struct {
4457
        // The delivery method for the payment
4458
        Mode      PaymentIntentPaymentDetailsCarRentalDeliveryMode       `json:"mode"`
4459
        Recipient *PaymentIntentPaymentDetailsCarRentalDeliveryRecipient `json:"recipient"`
4460
}
4461

4462
// The details of the drivers associated with the trip.
4463
type PaymentIntentPaymentDetailsCarRentalDriver struct {
4464
        // Full name of the driver on the reservation.
4465
        Name string `json:"name"`
4466
}
4467
type PaymentIntentPaymentDetailsCarRental struct {
4468
        Affiliate *PaymentIntentPaymentDetailsCarRentalAffiliate `json:"affiliate"`
4469
        // The booking number associated with the car rental.
4470
        BookingNumber string `json:"booking_number"`
4471
        // Class code of the car.
4472
        CarClassCode string `json:"car_class_code"`
4473
        // Make of the car.
4474
        CarMake string `json:"car_make"`
4475
        // Model of the car.
4476
        CarModel string `json:"car_model"`
4477
        // The name of the rental car company.
4478
        Company string `json:"company"`
4479
        // The customer service phone number of the car rental company.
4480
        CustomerServicePhoneNumber string `json:"customer_service_phone_number"`
4481
        // Number of days the car is being rented.
4482
        DaysRented int64                                         `json:"days_rented"`
4483
        Delivery   *PaymentIntentPaymentDetailsCarRentalDelivery `json:"delivery"`
4484
        // The details of the drivers associated with the trip.
4485
        Drivers []*PaymentIntentPaymentDetailsCarRentalDriver `json:"drivers"`
4486
        // List of additional charges being billed.
4487
        ExtraCharges []PaymentIntentPaymentDetailsCarRentalExtraCharge `json:"extra_charges"`
4488
        // Indicates if the customer did not keep nor cancel their booking.
4489
        NoShow        bool     `json:"no_show"`
4490
        PickupAddress *Address `json:"pickup_address"`
4491
        // Car pick-up time. Measured in seconds since the Unix epoch.
4492
        PickupAt int64 `json:"pickup_at"`
4493
        // Rental rate.
4494
        RateAmount int64 `json:"rate_amount"`
4495
        // The frequency at which the rate amount is applied. One of `day`, `week` or `month`
4496
        RateInterval PaymentIntentPaymentDetailsCarRentalRateInterval `json:"rate_interval"`
4497
        // The full name of the person or entity renting the car.
4498
        RenterName    string   `json:"renter_name"`
4499
        ReturnAddress *Address `json:"return_address"`
4500
        // Car return time. Measured in seconds since the Unix epoch.
4501
        ReturnAt int64 `json:"return_at"`
4502
        // Indicates whether the goods or services are tax-exempt or tax is not collected.
4503
        TaxExempt bool `json:"tax_exempt"`
4504
}
4505
type PaymentIntentPaymentDetailsEventDetailsAffiliate struct {
4506
        // The name of the affiliate that originated the purchase.
4507
        Name string `json:"name"`
4508
}
4509
type PaymentIntentPaymentDetailsEventDetailsDeliveryRecipient struct {
4510
        // The email of the recipient the ticket is delivered to.
4511
        Email string `json:"email"`
4512
        // The name of the recipient the ticket is delivered to.
4513
        Name string `json:"name"`
4514
        // The phone number of the recipient the ticket is delivered to.
4515
        Phone string `json:"phone"`
4516
}
4517
type PaymentIntentPaymentDetailsEventDetailsDelivery struct {
4518
        // The delivery method for the payment
4519
        Mode      PaymentIntentPaymentDetailsEventDetailsDeliveryMode       `json:"mode"`
4520
        Recipient *PaymentIntentPaymentDetailsEventDetailsDeliveryRecipient `json:"recipient"`
4521
}
4522
type PaymentIntentPaymentDetailsEventDetails struct {
4523
        // Indicates if the tickets are digitally checked when entering the venue.
4524
        AccessControlledVenue bool                                              `json:"access_controlled_venue"`
4525
        Address               *Address                                          `json:"address"`
4526
        Affiliate             *PaymentIntentPaymentDetailsEventDetailsAffiliate `json:"affiliate"`
4527
        // The name of the company
4528
        Company  string                                           `json:"company"`
4529
        Delivery *PaymentIntentPaymentDetailsEventDetailsDelivery `json:"delivery"`
4530
        // Event end time. Measured in seconds since the Unix epoch.
4531
        EndsAt int64 `json:"ends_at"`
4532
        // Type of the event entertainment (concert, sports event etc)
4533
        Genre string `json:"genre"`
4534
        // The name of the event.
4535
        Name string `json:"name"`
4536
        // Event start time. Measured in seconds since the Unix epoch.
4537
        StartsAt int64 `json:"starts_at"`
4538
}
4539
type PaymentIntentPaymentDetailsSubscriptionAffiliate struct {
4540
        // The name of the affiliate that originated the purchase.
4541
        Name string `json:"name"`
4542
}
4543
type PaymentIntentPaymentDetailsSubscriptionBillingInterval struct {
4544
        // The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
4545
        Count int64 `json:"count"`
4546
        // Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
4547
        Interval PaymentIntentPaymentDetailsSubscriptionBillingIntervalInterval `json:"interval"`
4548
}
4549
type PaymentIntentPaymentDetailsSubscription struct {
4550
        Affiliate *PaymentIntentPaymentDetailsSubscriptionAffiliate `json:"affiliate"`
4551
        // Info whether the subscription will be auto renewed upon expiry.
4552
        AutoRenewal     bool                                                    `json:"auto_renewal"`
4553
        BillingInterval *PaymentIntentPaymentDetailsSubscriptionBillingInterval `json:"billing_interval"`
4554
        // Subscription end time. Measured in seconds since the Unix epoch.
4555
        EndsAt int64 `json:"ends_at"`
4556
        // Name of the product on subscription. e.g. Apple Music Subscription.
4557
        Name string `json:"name"`
4558
        // Subscription start time. Measured in seconds since the Unix epoch.
4559
        StartsAt int64 `json:"starts_at"`
4560
}
4561
type PaymentIntentPaymentDetails struct {
4562
        CarRental    *PaymentIntentPaymentDetailsCarRental    `json:"car_rental"`
4563
        EventDetails *PaymentIntentPaymentDetailsEventDetails `json:"event_details"`
4564
        Subscription *PaymentIntentPaymentDetailsSubscription `json:"subscription"`
4565
}
4566

4567
// Information about the payment method configuration used for this PaymentIntent.
4568
type PaymentIntentPaymentMethodConfigurationDetails struct {
4569
        // ID of the payment method configuration used.
4570
        ID string `json:"id"`
4571
        // ID of the parent payment method configuration used.
4572
        Parent string `json:"parent"`
4573
}
4574
type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions struct {
4575
        // A URL for custom mandate text
4576
        CustomMandateURL string `json:"custom_mandate_url"`
4577
        // Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.
4578
        IntervalDescription string `json:"interval_description"`
4579
        // Payment schedule for the mandate.
4580
        PaymentSchedule PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule `json:"payment_schedule"`
4581
        // Transaction type of the mandate.
4582
        TransactionType PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType `json:"transaction_type"`
4583
}
4584
type PaymentIntentPaymentMethodOptionsACSSDebit struct {
4585
        MandateOptions *PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions `json:"mandate_options"`
4586
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4587
        //
4588
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4589
        //
4590
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4591
        //
4592
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4593
        SetupFutureUsage PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage `json:"setup_future_usage"`
4594
        // Bank account verification method.
4595
        VerificationMethod PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod `json:"verification_method"`
4596
}
4597
type PaymentIntentPaymentMethodOptionsAffirm struct {
4598
        // Controls when the funds will be captured from the customer's account.
4599
        CaptureMethod PaymentIntentPaymentMethodOptionsAffirmCaptureMethod `json:"capture_method"`
4600
        // Preferred language of the Affirm authorization page that the customer is redirected to.
4601
        PreferredLocale string `json:"preferred_locale"`
4602
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4603
        //
4604
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4605
        //
4606
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4607
        //
4608
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4609
        SetupFutureUsage PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage `json:"setup_future_usage"`
4610
}
4611
type PaymentIntentPaymentMethodOptionsAfterpayClearpay struct {
4612
        // Controls when the funds will be captured from the customer's account.
4613
        CaptureMethod PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod `json:"capture_method"`
4614
        // An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes.
4615
        // This field differs from the statement descriptor and item name.
4616
        Reference string `json:"reference"`
4617
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4618
        //
4619
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4620
        //
4621
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4622
        //
4623
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4624
        SetupFutureUsage PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage `json:"setup_future_usage"`
4625
}
4626
type PaymentIntentPaymentMethodOptionsAlipay struct {
4627
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4628
        //
4629
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4630
        //
4631
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4632
        //
4633
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4634
        SetupFutureUsage PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage `json:"setup_future_usage"`
4635
}
4636
type PaymentIntentPaymentMethodOptionsAmazonPay struct {
4637
        // Controls when the funds will be captured from the customer's account.
4638
        CaptureMethod PaymentIntentPaymentMethodOptionsAmazonPayCaptureMethod `json:"capture_method"`
4639
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4640
        //
4641
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4642
        //
4643
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4644
        //
4645
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4646
        SetupFutureUsage PaymentIntentPaymentMethodOptionsAmazonPaySetupFutureUsage `json:"setup_future_usage"`
4647
}
4648
type PaymentIntentPaymentMethodOptionsAUBECSDebit struct {
4649
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4650
        //
4651
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4652
        //
4653
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4654
        //
4655
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4656
        SetupFutureUsage PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage `json:"setup_future_usage"`
4657
}
4658
type PaymentIntentPaymentMethodOptionsBACSDebitMandateOptions struct{}
4659
type PaymentIntentPaymentMethodOptionsBACSDebit struct {
4660
        MandateOptions *PaymentIntentPaymentMethodOptionsBACSDebitMandateOptions `json:"mandate_options"`
4661
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4662
        //
4663
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4664
        //
4665
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4666
        //
4667
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4668
        SetupFutureUsage PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage `json:"setup_future_usage"`
4669
}
4670
type PaymentIntentPaymentMethodOptionsBancontact struct {
4671
        // Preferred language of the Bancontact authorization page that the customer is redirected to.
4672
        PreferredLanguage string `json:"preferred_language"`
4673
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4674
        //
4675
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4676
        //
4677
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4678
        //
4679
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4680
        SetupFutureUsage PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage `json:"setup_future_usage"`
4681
}
4682
type PaymentIntentPaymentMethodOptionsBLIK struct {
4683
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4684
        //
4685
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4686
        //
4687
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4688
        //
4689
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4690
        SetupFutureUsage PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage `json:"setup_future_usage"`
4691
}
4692
type PaymentIntentPaymentMethodOptionsBoleto struct {
4693
        // The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time.
4694
        ExpiresAfterDays int64 `json:"expires_after_days"`
4695
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4696
        //
4697
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4698
        //
4699
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4700
        //
4701
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4702
        SetupFutureUsage PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage `json:"setup_future_usage"`
4703
}
4704

4705
// Installment plan selected for this PaymentIntent.
4706
type PaymentIntentPaymentMethodOptionsCardInstallmentsPlan struct {
4707
        // For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card.
4708
        Count int64 `json:"count"`
4709
        // For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card.
4710
        // One of `month`.
4711
        Interval PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval `json:"interval"`
4712
        // Type of installment plan, one of `fixed_count`.
4713
        Type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType `json:"type"`
4714
}
4715

4716
// Installment details for this payment (Mexico only).
4717
//
4718
// For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).
4719
type PaymentIntentPaymentMethodOptionsCardInstallments struct {
4720
        // Installment plans that may be selected for this PaymentIntent.
4721
        AvailablePlans []*PaymentIntentPaymentMethodOptionsCardInstallmentsPlan `json:"available_plans"`
4722
        // Whether Installments are enabled for this PaymentIntent.
4723
        Enabled bool `json:"enabled"`
4724
        // Installment plan selected for this PaymentIntent.
4725
        Plan *PaymentIntentPaymentMethodOptionsCardInstallmentsPlan `json:"plan"`
4726
}
4727

4728
// Configuration options for setting up an eMandate for cards issued in India.
4729
type PaymentIntentPaymentMethodOptionsCardMandateOptions struct {
4730
        // Amount to be charged for future payments.
4731
        Amount int64 `json:"amount"`
4732
        // One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
4733
        AmountType PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType `json:"amount_type"`
4734
        // A description of the mandate or subscription that is meant to be displayed to the customer.
4735
        Description string `json:"description"`
4736
        // End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.
4737
        EndDate int64 `json:"end_date"`
4738
        // Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
4739
        Interval PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval `json:"interval"`
4740
        // The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.
4741
        IntervalCount int64 `json:"interval_count"`
4742
        // Unique identifier for the mandate or subscription.
4743
        Reference string `json:"reference"`
4744
        // Start date of the mandate or subscription. Start date should not be lesser than yesterday.
4745
        StartDate int64 `json:"start_date"`
4746
        // Specifies the type of mandates supported. Possible values are `india`.
4747
        SupportedTypes []PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType `json:"supported_types"`
4748
}
4749
type PaymentIntentPaymentMethodOptionsCardStatementDetails struct {
4750
        Address *Address `json:"address"`
4751
        // Phone number
4752
        Phone string `json:"phone"`
4753
}
4754
type PaymentIntentPaymentMethodOptionsCard struct {
4755
        // Controls when the funds will be captured from the customer's account.
4756
        CaptureMethod PaymentIntentPaymentMethodOptionsCardCaptureMethod `json:"capture_method"`
4757
        // Installment details for this payment (Mexico only).
4758
        //
4759
        // For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).
4760
        Installments *PaymentIntentPaymentMethodOptionsCardInstallments `json:"installments"`
4761
        // Configuration options for setting up an eMandate for cards issued in India.
4762
        MandateOptions *PaymentIntentPaymentMethodOptionsCardMandateOptions `json:"mandate_options"`
4763
        // Selected network to process this payment intent on. Depends on the available networks of the card attached to the payment intent. Can be only set confirm-time.
4764
        Network PaymentIntentPaymentMethodOptionsCardNetwork `json:"network"`
4765
        // Request ability to [decrement the authorization](https://stripe.com/docs/payments/decremental-authorization) for this PaymentIntent.
4766
        RequestDecrementalAuthorization PaymentIntentPaymentMethodOptionsCardRequestDecrementalAuthorization `json:"request_decremental_authorization"`
4767
        // Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent.
4768
        RequestExtendedAuthorization PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization `json:"request_extended_authorization"`
4769
        // Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent.
4770
        RequestIncrementalAuthorization PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization `json:"request_incremental_authorization"`
4771
        // Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent.
4772
        RequestMulticapture PaymentIntentPaymentMethodOptionsCardRequestMulticapture `json:"request_multicapture"`
4773
        // Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent.
4774
        RequestOvercapture PaymentIntentPaymentMethodOptionsCardRequestOvercapture `json:"request_overcapture"`
4775
        // We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
4776
        RequestThreeDSecure PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure `json:"request_three_d_secure"`
4777
        // When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter).
4778
        RequireCVCRecollection bool `json:"require_cvc_recollection"`
4779
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4780
        //
4781
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4782
        //
4783
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4784
        //
4785
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4786
        SetupFutureUsage PaymentIntentPaymentMethodOptionsCardSetupFutureUsage `json:"setup_future_usage"`
4787
        // Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.
4788
        StatementDescriptorSuffixKana string `json:"statement_descriptor_suffix_kana"`
4789
        // Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.
4790
        StatementDescriptorSuffixKanji string                                                 `json:"statement_descriptor_suffix_kanji"`
4791
        StatementDetails               *PaymentIntentPaymentMethodOptionsCardStatementDetails `json:"statement_details"`
4792
}
4793
type PaymentIntentPaymentMethodOptionsCardPresentRouting struct {
4794
        // Requested routing priority
4795
        RequestedPriority PaymentIntentPaymentMethodOptionsCardPresentRoutingRequestedPriority `json:"requested_priority"`
4796
}
4797
type PaymentIntentPaymentMethodOptionsCardPresent struct {
4798
        // Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity)
4799
        RequestExtendedAuthorization bool `json:"request_extended_authorization"`
4800
        // Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support.
4801
        RequestIncrementalAuthorizationSupport bool                                                 `json:"request_incremental_authorization_support"`
4802
        Routing                                *PaymentIntentPaymentMethodOptionsCardPresentRouting `json:"routing"`
4803
}
4804
type PaymentIntentPaymentMethodOptionsCashApp struct {
4805
        // Controls when the funds will be captured from the customer's account.
4806
        CaptureMethod PaymentIntentPaymentMethodOptionsCashAppCaptureMethod `json:"capture_method"`
4807
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4808
        //
4809
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4810
        //
4811
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4812
        //
4813
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4814
        SetupFutureUsage PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage `json:"setup_future_usage"`
4815
}
4816
type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransfer struct {
4817
        // The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.
4818
        Country string `json:"country"`
4819
}
4820
type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer struct {
4821
        EUBankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransfer `json:"eu_bank_transfer"`
4822
        // List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.
4823
        //
4824
        // Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
4825
        RequestedAddressTypes []PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType `json:"requested_address_types"`
4826
        // The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.
4827
        Type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType `json:"type"`
4828
}
4829
type PaymentIntentPaymentMethodOptionsCustomerBalance struct {
4830
        BankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer `json:"bank_transfer"`
4831
        // The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`.
4832
        FundingType PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType `json:"funding_type"`
4833
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4834
        //
4835
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4836
        //
4837
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4838
        //
4839
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4840
        SetupFutureUsage PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage `json:"setup_future_usage"`
4841
}
4842
type PaymentIntentPaymentMethodOptionsEPS struct {
4843
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4844
        //
4845
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4846
        //
4847
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4848
        //
4849
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4850
        SetupFutureUsage PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage `json:"setup_future_usage"`
4851
}
4852
type PaymentIntentPaymentMethodOptionsFPX struct {
4853
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4854
        //
4855
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4856
        //
4857
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4858
        //
4859
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4860
        SetupFutureUsage PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage `json:"setup_future_usage"`
4861
}
4862
type PaymentIntentPaymentMethodOptionsGiropay struct {
4863
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4864
        //
4865
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4866
        //
4867
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4868
        //
4869
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4870
        SetupFutureUsage PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage `json:"setup_future_usage"`
4871
}
4872
type PaymentIntentPaymentMethodOptionsGrabpay struct {
4873
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4874
        //
4875
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4876
        //
4877
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4878
        //
4879
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4880
        SetupFutureUsage PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage `json:"setup_future_usage"`
4881
}
4882
type PaymentIntentPaymentMethodOptionsIDEAL struct {
4883
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4884
        //
4885
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4886
        //
4887
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4888
        //
4889
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4890
        SetupFutureUsage PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage `json:"setup_future_usage"`
4891
}
4892
type PaymentIntentPaymentMethodOptionsInteracPresent struct{}
4893
type PaymentIntentPaymentMethodOptionsKakaoPay struct {
4894
        // Controls when the funds will be captured from the customer's account.
4895
        CaptureMethod PaymentIntentPaymentMethodOptionsKakaoPayCaptureMethod `json:"capture_method"`
4896
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4897
        //
4898
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4899
        //
4900
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4901
        //
4902
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4903
        SetupFutureUsage PaymentIntentPaymentMethodOptionsKakaoPaySetupFutureUsage `json:"setup_future_usage"`
4904
}
4905
type PaymentIntentPaymentMethodOptionsKlarna struct {
4906
        // Controls when the funds will be captured from the customer's account.
4907
        CaptureMethod PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod `json:"capture_method"`
4908
        // Preferred locale of the Klarna checkout page that the customer is redirected to.
4909
        PreferredLocale string `json:"preferred_locale"`
4910
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4911
        //
4912
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4913
        //
4914
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4915
        //
4916
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4917
        SetupFutureUsage PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage `json:"setup_future_usage"`
4918
}
4919
type PaymentIntentPaymentMethodOptionsKonbini struct {
4920
        // An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores.
4921
        ConfirmationNumber string `json:"confirmation_number"`
4922
        // The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST.
4923
        ExpiresAfterDays int64 `json:"expires_after_days"`
4924
        // The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set.
4925
        ExpiresAt int64 `json:"expires_at"`
4926
        // A product descriptor of up to 22 characters, which will appear to customers at the convenience store.
4927
        ProductDescription string `json:"product_description"`
4928
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4929
        //
4930
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4931
        //
4932
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4933
        //
4934
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4935
        SetupFutureUsage PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage `json:"setup_future_usage"`
4936
}
4937
type PaymentIntentPaymentMethodOptionsKrCard struct {
4938
        // Controls when the funds will be captured from the customer's account.
4939
        CaptureMethod PaymentIntentPaymentMethodOptionsKrCardCaptureMethod `json:"capture_method"`
4940
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4941
        //
4942
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4943
        //
4944
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4945
        //
4946
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4947
        SetupFutureUsage PaymentIntentPaymentMethodOptionsKrCardSetupFutureUsage `json:"setup_future_usage"`
4948
}
4949
type PaymentIntentPaymentMethodOptionsLink struct {
4950
        // Controls when the funds will be captured from the customer's account.
4951
        CaptureMethod PaymentIntentPaymentMethodOptionsLinkCaptureMethod `json:"capture_method"`
4952
        // [Deprecated] This is a legacy parameter that no longer has any function.
4953
        // Deprecated:
4954
        PersistentToken string `json:"persistent_token"`
4955
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4956
        //
4957
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4958
        //
4959
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4960
        //
4961
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4962
        SetupFutureUsage PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage `json:"setup_future_usage"`
4963
}
4964
type PaymentIntentPaymentMethodOptionsMbWay struct {
4965
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4966
        //
4967
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4968
        //
4969
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4970
        //
4971
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4972
        SetupFutureUsage PaymentIntentPaymentMethodOptionsMbWaySetupFutureUsage `json:"setup_future_usage"`
4973
}
4974
type PaymentIntentPaymentMethodOptionsMobilepay struct {
4975
        // Controls when the funds will be captured from the customer's account.
4976
        CaptureMethod PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod `json:"capture_method"`
4977
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4978
        //
4979
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4980
        //
4981
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4982
        //
4983
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4984
        SetupFutureUsage PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage `json:"setup_future_usage"`
4985
}
4986
type PaymentIntentPaymentMethodOptionsMultibanco struct {
4987
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
4988
        //
4989
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
4990
        //
4991
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
4992
        //
4993
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
4994
        SetupFutureUsage PaymentIntentPaymentMethodOptionsMultibancoSetupFutureUsage `json:"setup_future_usage"`
4995
}
4996
type PaymentIntentPaymentMethodOptionsNaverPay struct {
4997
        // Controls when the funds will be captured from the customer's account.
4998
        CaptureMethod PaymentIntentPaymentMethodOptionsNaverPayCaptureMethod `json:"capture_method"`
4999
}
5000
type PaymentIntentPaymentMethodOptionsOXXO struct {
5001
        // The number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time.
5002
        ExpiresAfterDays int64 `json:"expires_after_days"`
5003
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5004
        //
5005
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5006
        //
5007
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5008
        //
5009
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5010
        SetupFutureUsage PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage `json:"setup_future_usage"`
5011
}
5012
type PaymentIntentPaymentMethodOptionsP24 struct {
5013
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5014
        //
5015
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5016
        //
5017
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5018
        //
5019
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5020
        SetupFutureUsage PaymentIntentPaymentMethodOptionsP24SetupFutureUsage `json:"setup_future_usage"`
5021
}
5022
type PaymentIntentPaymentMethodOptionsPayco struct {
5023
        // Controls when the funds will be captured from the customer's account.
5024
        CaptureMethod PaymentIntentPaymentMethodOptionsPaycoCaptureMethod `json:"capture_method"`
5025
}
5026
type PaymentIntentPaymentMethodOptionsPayNow struct {
5027
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5028
        //
5029
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5030
        //
5031
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5032
        //
5033
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5034
        SetupFutureUsage PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage `json:"setup_future_usage"`
5035
}
5036
type PaymentIntentPaymentMethodOptionsPaypalLineItemTax struct {
5037
        // The tax for a single unit of the line item in minor units. Cannot be a negative number.
5038
        Amount int64 `json:"amount"`
5039
        // The tax behavior for the line item.
5040
        Behavior PaymentIntentPaymentMethodOptionsPaypalLineItemTaxBehavior `json:"behavior"`
5041
}
5042

5043
// The line items purchased by the customer.
5044
type PaymentIntentPaymentMethodOptionsPaypalLineItem struct {
5045
        // Type of the line item.
5046
        Category PaymentIntentPaymentMethodOptionsPaypalLineItemCategory `json:"category"`
5047
        // Description of the line item.
5048
        Description string `json:"description"`
5049
        // Descriptive name of the line item.
5050
        Name string `json:"name"`
5051
        // Quantity of the line item. Cannot be a negative number.
5052
        Quantity int64 `json:"quantity"`
5053
        // Client facing stock keeping unit, article number or similar.
5054
        SKU string `json:"sku"`
5055
        // The Stripe account ID of the connected account that sells the item. This is only needed when using [Separate Charges and Transfers](https://docs.stripe.com/connect/separate-charges-and-transfers).
5056
        SoldBy string                                              `json:"sold_by"`
5057
        Tax    *PaymentIntentPaymentMethodOptionsPaypalLineItemTax `json:"tax"`
5058
        // Price for a single unit of the line item in minor units. Cannot be a negative number.
5059
        UnitAmount int64 `json:"unit_amount"`
5060
}
5061
type PaymentIntentPaymentMethodOptionsPaypal struct {
5062
        // Controls when the funds will be captured from the customer's account.
5063
        CaptureMethod PaymentIntentPaymentMethodOptionsPaypalCaptureMethod `json:"capture_method"`
5064
        // The line items purchased by the customer.
5065
        LineItems []*PaymentIntentPaymentMethodOptionsPaypalLineItem `json:"line_items"`
5066
        // Preferred locale of the PayPal checkout page that the customer is redirected to.
5067
        PreferredLocale string `json:"preferred_locale"`
5068
        // A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
5069
        Reference string `json:"reference"`
5070
        // A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
5071
        ReferenceID string `json:"reference_id"`
5072
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5073
        //
5074
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5075
        //
5076
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5077
        //
5078
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5079
        SetupFutureUsage PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage `json:"setup_future_usage"`
5080
        // The Stripe connected account IDs of the sellers on the platform for this transaction (optional). Only allowed when [separate charges and transfers](https://stripe.com/docs/connect/separate-charges-and-transfers) are used.
5081
        Subsellers []string `json:"subsellers"`
5082
}
5083
type PaymentIntentPaymentMethodOptionsPaytoMandateOptions struct {
5084
        // Amount that will be collected. It is required when `amount_type` is `fixed`.
5085
        Amount int64 `json:"amount"`
5086
        // The type of amount that will be collected. The amount charged must be exact or up to the value of `amount` param for `fixed` or `maximum` type respectively.
5087
        AmountType PaymentIntentPaymentMethodOptionsPaytoMandateOptionsAmountType `json:"amount_type"`
5088
        // Date, in YYYY-MM-DD format, after which payments will not be collected. Defaults to no end date.
5089
        EndDate string `json:"end_date"`
5090
        // The periodicity at which payments will be collected.
5091
        PaymentSchedule PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPaymentSchedule `json:"payment_schedule"`
5092
        // The number of payments that will be made during a payment period. Defaults to 1 except for when `payment_schedule` is `adhoc`. In that case, it defaults to no limit.
5093
        PaymentsPerPeriod int64 `json:"payments_per_period"`
5094
        // The purpose for which payments are made. Defaults to retail.
5095
        Purpose PaymentIntentPaymentMethodOptionsPaytoMandateOptionsPurpose `json:"purpose"`
5096
}
5097
type PaymentIntentPaymentMethodOptionsPayto struct {
5098
        MandateOptions *PaymentIntentPaymentMethodOptionsPaytoMandateOptions `json:"mandate_options"`
5099
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5100
        //
5101
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5102
        //
5103
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5104
        //
5105
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5106
        SetupFutureUsage PaymentIntentPaymentMethodOptionsPaytoSetupFutureUsage `json:"setup_future_usage"`
5107
}
5108
type PaymentIntentPaymentMethodOptionsPix struct {
5109
        // The number of seconds (between 10 and 1209600) after which Pix payment will expire.
5110
        ExpiresAfterSeconds int64 `json:"expires_after_seconds"`
5111
        // The timestamp at which the Pix expires.
5112
        ExpiresAt int64 `json:"expires_at"`
5113
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5114
        //
5115
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5116
        //
5117
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5118
        //
5119
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5120
        SetupFutureUsage PaymentIntentPaymentMethodOptionsPixSetupFutureUsage `json:"setup_future_usage"`
5121
}
5122
type PaymentIntentPaymentMethodOptionsPromptPay struct {
5123
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5124
        //
5125
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5126
        //
5127
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5128
        //
5129
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5130
        SetupFutureUsage PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage `json:"setup_future_usage"`
5131
}
5132
type PaymentIntentPaymentMethodOptionsRechnung struct{}
5133
type PaymentIntentPaymentMethodOptionsRevolutPay struct {
5134
        // Controls when the funds will be captured from the customer's account.
5135
        CaptureMethod PaymentIntentPaymentMethodOptionsRevolutPayCaptureMethod `json:"capture_method"`
5136
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5137
        //
5138
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5139
        //
5140
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5141
        //
5142
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5143
        SetupFutureUsage PaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage `json:"setup_future_usage"`
5144
}
5145
type PaymentIntentPaymentMethodOptionsSamsungPay struct {
5146
        // Controls when the funds will be captured from the customer's account.
5147
        CaptureMethod PaymentIntentPaymentMethodOptionsSamsungPayCaptureMethod `json:"capture_method"`
5148
}
5149
type PaymentIntentPaymentMethodOptionsSEPADebitMandateOptions struct{}
5150
type PaymentIntentPaymentMethodOptionsSEPADebit struct {
5151
        MandateOptions *PaymentIntentPaymentMethodOptionsSEPADebitMandateOptions `json:"mandate_options"`
5152
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5153
        //
5154
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5155
        //
5156
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5157
        //
5158
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5159
        SetupFutureUsage PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage `json:"setup_future_usage"`
5160
}
5161
type PaymentIntentPaymentMethodOptionsSofort struct {
5162
        // Preferred language of the SOFORT authorization page that the customer is redirected to.
5163
        PreferredLanguage string `json:"preferred_language"`
5164
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5165
        //
5166
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5167
        //
5168
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5169
        //
5170
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5171
        SetupFutureUsage PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage `json:"setup_future_usage"`
5172
}
5173
type PaymentIntentPaymentMethodOptionsSwish struct {
5174
        // The order ID displayed in the Swish app after the payment is authorized.
5175
        Reference string `json:"reference"`
5176
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5177
        //
5178
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5179
        //
5180
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5181
        //
5182
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5183
        SetupFutureUsage PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage `json:"setup_future_usage"`
5184
}
5185
type PaymentIntentPaymentMethodOptionsTWINT struct {
5186
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5187
        //
5188
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5189
        //
5190
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5191
        //
5192
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5193
        SetupFutureUsage PaymentIntentPaymentMethodOptionsTWINTSetupFutureUsage `json:"setup_future_usage"`
5194
}
5195
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFilters struct {
5196
        // The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`.
5197
        AccountSubcategories []PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFiltersAccountSubcategory `json:"account_subcategories"`
5198
        // The institution to use to filter for possible accounts to link.
5199
        Institution string `json:"institution"`
5200
}
5201
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntry struct {
5202
        // Settings for configuring manual entry of account details.
5203
        Mode PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntryMode `json:"mode"`
5204
}
5205
type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnections struct {
5206
        Filters     *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsFilters     `json:"filters"`
5207
        ManualEntry *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsManualEntry `json:"manual_entry"`
5208
        // The list of permissions to request. The `payment_method` permission must be included.
5209
        Permissions []PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission `json:"permissions"`
5210
        // Data features requested to be retrieved upon account creation.
5211
        Prefetch []PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch `json:"prefetch"`
5212
        // For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
5213
        ReturnURL string `json:"return_url"`
5214
}
5215
type PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptions struct {
5216
        // Mandate collection method
5217
        CollectionMethod PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod `json:"collection_method"`
5218
}
5219
type PaymentIntentPaymentMethodOptionsUSBankAccount struct {
5220
        FinancialConnections *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnections `json:"financial_connections"`
5221
        MandateOptions       *PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptions       `json:"mandate_options"`
5222
        // Preferred transaction settlement speed
5223
        PreferredSettlementSpeed PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed `json:"preferred_settlement_speed"`
5224
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5225
        //
5226
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5227
        //
5228
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5229
        //
5230
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5231
        SetupFutureUsage PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage `json:"setup_future_usage"`
5232
        // Bank account verification method.
5233
        VerificationMethod PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod `json:"verification_method"`
5234
}
5235
type PaymentIntentPaymentMethodOptionsWeChatPay struct {
5236
        // The app ID registered with WeChat Pay. Only required when client is ios or android.
5237
        AppID string `json:"app_id"`
5238
        // The client type that the end customer will pay from
5239
        Client PaymentIntentPaymentMethodOptionsWeChatPayClient `json:"client"`
5240
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5241
        //
5242
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5243
        //
5244
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5245
        //
5246
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5247
        SetupFutureUsage PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage `json:"setup_future_usage"`
5248
}
5249
type PaymentIntentPaymentMethodOptionsZip struct {
5250
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5251
        //
5252
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5253
        //
5254
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5255
        //
5256
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5257
        SetupFutureUsage PaymentIntentPaymentMethodOptionsZipSetupFutureUsage `json:"setup_future_usage"`
5258
}
5259

5260
// Payment-method-specific configuration for this PaymentIntent.
5261
type PaymentIntentPaymentMethodOptions struct {
5262
        ACSSDebit        *PaymentIntentPaymentMethodOptionsACSSDebit        `json:"acss_debit"`
5263
        Affirm           *PaymentIntentPaymentMethodOptionsAffirm           `json:"affirm"`
5264
        AfterpayClearpay *PaymentIntentPaymentMethodOptionsAfterpayClearpay `json:"afterpay_clearpay"`
5265
        Alipay           *PaymentIntentPaymentMethodOptionsAlipay           `json:"alipay"`
5266
        AmazonPay        *PaymentIntentPaymentMethodOptionsAmazonPay        `json:"amazon_pay"`
5267
        AUBECSDebit      *PaymentIntentPaymentMethodOptionsAUBECSDebit      `json:"au_becs_debit"`
5268
        BACSDebit        *PaymentIntentPaymentMethodOptionsBACSDebit        `json:"bacs_debit"`
5269
        Bancontact       *PaymentIntentPaymentMethodOptionsBancontact       `json:"bancontact"`
5270
        BLIK             *PaymentIntentPaymentMethodOptionsBLIK             `json:"blik"`
5271
        Boleto           *PaymentIntentPaymentMethodOptionsBoleto           `json:"boleto"`
5272
        Card             *PaymentIntentPaymentMethodOptionsCard             `json:"card"`
5273
        CardPresent      *PaymentIntentPaymentMethodOptionsCardPresent      `json:"card_present"`
5274
        CashApp          *PaymentIntentPaymentMethodOptionsCashApp          `json:"cashapp"`
5275
        CustomerBalance  *PaymentIntentPaymentMethodOptionsCustomerBalance  `json:"customer_balance"`
5276
        EPS              *PaymentIntentPaymentMethodOptionsEPS              `json:"eps"`
5277
        FPX              *PaymentIntentPaymentMethodOptionsFPX              `json:"fpx"`
5278
        Giropay          *PaymentIntentPaymentMethodOptionsGiropay          `json:"giropay"`
5279
        Grabpay          *PaymentIntentPaymentMethodOptionsGrabpay          `json:"grabpay"`
5280
        IDEAL            *PaymentIntentPaymentMethodOptionsIDEAL            `json:"ideal"`
5281
        InteracPresent   *PaymentIntentPaymentMethodOptionsInteracPresent   `json:"interac_present"`
5282
        KakaoPay         *PaymentIntentPaymentMethodOptionsKakaoPay         `json:"kakao_pay"`
5283
        Klarna           *PaymentIntentPaymentMethodOptionsKlarna           `json:"klarna"`
5284
        Konbini          *PaymentIntentPaymentMethodOptionsKonbini          `json:"konbini"`
5285
        KrCard           *PaymentIntentPaymentMethodOptionsKrCard           `json:"kr_card"`
5286
        Link             *PaymentIntentPaymentMethodOptionsLink             `json:"link"`
5287
        MbWay            *PaymentIntentPaymentMethodOptionsMbWay            `json:"mb_way"`
5288
        Mobilepay        *PaymentIntentPaymentMethodOptionsMobilepay        `json:"mobilepay"`
5289
        Multibanco       *PaymentIntentPaymentMethodOptionsMultibanco       `json:"multibanco"`
5290
        NaverPay         *PaymentIntentPaymentMethodOptionsNaverPay         `json:"naver_pay"`
5291
        OXXO             *PaymentIntentPaymentMethodOptionsOXXO             `json:"oxxo"`
5292
        P24              *PaymentIntentPaymentMethodOptionsP24              `json:"p24"`
5293
        Payco            *PaymentIntentPaymentMethodOptionsPayco            `json:"payco"`
5294
        PayNow           *PaymentIntentPaymentMethodOptionsPayNow           `json:"paynow"`
5295
        Paypal           *PaymentIntentPaymentMethodOptionsPaypal           `json:"paypal"`
5296
        Payto            *PaymentIntentPaymentMethodOptionsPayto            `json:"payto"`
5297
        Pix              *PaymentIntentPaymentMethodOptionsPix              `json:"pix"`
5298
        PromptPay        *PaymentIntentPaymentMethodOptionsPromptPay        `json:"promptpay"`
5299
        Rechnung         *PaymentIntentPaymentMethodOptionsRechnung         `json:"rechnung"`
5300
        RevolutPay       *PaymentIntentPaymentMethodOptionsRevolutPay       `json:"revolut_pay"`
5301
        SamsungPay       *PaymentIntentPaymentMethodOptionsSamsungPay       `json:"samsung_pay"`
5302
        SEPADebit        *PaymentIntentPaymentMethodOptionsSEPADebit        `json:"sepa_debit"`
5303
        Sofort           *PaymentIntentPaymentMethodOptionsSofort           `json:"sofort"`
5304
        Swish            *PaymentIntentPaymentMethodOptionsSwish            `json:"swish"`
5305
        TWINT            *PaymentIntentPaymentMethodOptionsTWINT            `json:"twint"`
5306
        USBankAccount    *PaymentIntentPaymentMethodOptionsUSBankAccount    `json:"us_bank_account"`
5307
        WeChatPay        *PaymentIntentPaymentMethodOptionsWeChatPay        `json:"wechat_pay"`
5308
        Zip              *PaymentIntentPaymentMethodOptionsZip              `json:"zip"`
5309
}
5310
type PaymentIntentProcessingCardCustomerNotification struct {
5311
        // Whether customer approval has been requested for this payment. For payments greater than INR 15000 or mandate amount, the customer must provide explicit approval of the payment with their bank.
5312
        ApprovalRequested bool `json:"approval_requested"`
5313
        // If customer approval is required, they need to provide approval before this time.
5314
        CompletesAt int64 `json:"completes_at"`
5315
}
5316
type PaymentIntentProcessingCard struct {
5317
        CustomerNotification *PaymentIntentProcessingCardCustomerNotification `json:"customer_notification"`
5318
}
5319

5320
// If present, this property tells you about the processing state of the payment.
5321
type PaymentIntentProcessing struct {
5322
        Card *PaymentIntentProcessingCard `json:"card"`
5323
        // Type of the payment method for which payment is in `processing` state, one of `card`.
5324
        Type PaymentIntentProcessingType `json:"type"`
5325
}
5326

5327
// The data that automatically creates a Transfer after the payment finalizes. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
5328
type PaymentIntentTransferData struct {
5329
        // Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#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](https://stripe.com/docs/currencies#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).
5330
        Amount int64 `json:"amount"`
5331
        // The account (if any) that the payment is attributed to for tax
5332
        // reporting, and where funds from the payment are transferred to after
5333
        // payment success.
5334
        Destination *Account `json:"destination"`
5335
}
5336

5337
// A PaymentIntent guides you through the process of collecting a payment from your customer.
5338
// We recommend that you create exactly one PaymentIntent for each order or
5339
// customer session in your system. You can reference the PaymentIntent later to
5340
// see the history of payment attempts for a particular session.
5341
//
5342
// A PaymentIntent transitions through
5343
// [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses)
5344
// throughout its lifetime as it interfaces with Stripe.js to perform
5345
// authentication flows and ultimately creates at most one successful charge.
5346
//
5347
// Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents)
5348
type PaymentIntent struct {
5349
        APIResource
5350
        // Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#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](https://stripe.com/docs/currencies#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).
5351
        Amount int64 `json:"amount"`
5352
        // Amount that can be captured from this PaymentIntent.
5353
        AmountCapturable int64                       `json:"amount_capturable"`
5354
        AmountDetails    *PaymentIntentAmountDetails `json:"amount_details"`
5355
        // Amount that this PaymentIntent collects.
5356
        AmountReceived int64 `json:"amount_received"`
5357
        // ID of the Connect application that created the PaymentIntent.
5358
        Application *Application `json:"application"`
5359
        // 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](https://stripe.com/docs/payments/connected-accounts).
5360
        ApplicationFeeAmount int64                        `json:"application_fee_amount"`
5361
        AsyncWorkflows       *PaymentIntentAsyncWorkflows `json:"async_workflows"`
5362
        // Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods)
5363
        AutomaticPaymentMethods *PaymentIntentAutomaticPaymentMethods `json:"automatic_payment_methods"`
5364
        // Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.
5365
        CanceledAt int64 `json:"canceled_at"`
5366
        // 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`).
5367
        CancellationReason PaymentIntentCancellationReason `json:"cancellation_reason"`
5368
        // Controls when the funds will be captured from the customer's account.
5369
        CaptureMethod PaymentIntentCaptureMethod `json:"capture_method"`
5370
        // The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key.
5371
        //
5372
        // 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.
5373
        //
5374
        // Refer to our docs to [accept a payment](https://stripe.com/docs/payments/accept-a-payment?ui=elements) and learn about how `client_secret` should be handled.
5375
        ClientSecret string `json:"client_secret"`
5376
        // Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.
5377
        ConfirmationMethod PaymentIntentConfirmationMethod `json:"confirmation_method"`
5378
        // Time at which the object was created. Measured in seconds since the Unix epoch.
5379
        Created int64 `json:"created"`
5380
        // Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
5381
        Currency Currency `json:"currency"`
5382
        // ID of the Customer this PaymentIntent belongs to, if one exists.
5383
        //
5384
        // Payment methods attached to other Customers cannot be used with this PaymentIntent.
5385
        //
5386
        // If [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead.
5387
        Customer *Customer `json:"customer"`
5388
        // An arbitrary string attached to the object. Often useful for displaying to users.
5389
        Description string `json:"description"`
5390
        // Unique identifier for the object.
5391
        ID string `json:"id"`
5392
        // ID of the invoice that created this PaymentIntent, if it exists.
5393
        Invoice *Invoice `json:"invoice"`
5394
        // The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.
5395
        LastPaymentError *Error `json:"last_payment_error"`
5396
        // ID of the latest [Charge object](https://stripe.com/docs/api/charges) created by this PaymentIntent. This property is `null` until PaymentIntent confirmation is attempted.
5397
        LatestCharge *Charge `json:"latest_charge"`
5398
        // Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
5399
        Livemode bool `json:"livemode"`
5400
        // Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Learn more about [storing information in metadata](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).
5401
        Metadata map[string]string `json:"metadata"`
5402
        // 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.
5403
        NextAction *PaymentIntentNextAction `json:"next_action"`
5404
        // String representing the object's type. Objects of the same type share the same value.
5405
        Object string `json:"object"`
5406
        // The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.
5407
        OnBehalfOf     *Account                     `json:"on_behalf_of"`
5408
        PaymentDetails *PaymentIntentPaymentDetails `json:"payment_details"`
5409
        // ID of the payment method used in this PaymentIntent.
5410
        PaymentMethod *PaymentMethod `json:"payment_method"`
5411
        // Information about the payment method configuration used for this PaymentIntent.
5412
        PaymentMethodConfigurationDetails *PaymentIntentPaymentMethodConfigurationDetails `json:"payment_method_configuration_details"`
5413
        // Payment-method-specific configuration for this PaymentIntent.
5414
        PaymentMethodOptions *PaymentIntentPaymentMethodOptions `json:"payment_method_options"`
5415
        // The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
5416
        PaymentMethodTypes []string `json:"payment_method_types"`
5417
        // If present, this property tells you about the processing state of the payment.
5418
        Processing *PaymentIntentProcessing `json:"processing"`
5419
        // 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](https://dashboard.stripe.com/account/emails).
5420
        ReceiptEmail string `json:"receipt_email"`
5421
        // ID of the review associated with this PaymentIntent, if any.
5422
        Review *Review `json:"review"`
5423
        // Indicates whether confirmation for this PaymentIntent using a secret key is `required` or `optional`.
5424
        SecretKeyConfirmation PaymentIntentSecretKeyConfirmation `json:"secret_key_confirmation"`
5425
        // Indicates that you intend to make future payments with this PaymentIntent's payment method.
5426
        //
5427
        // If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes.
5428
        //
5429
        // If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.
5430
        //
5431
        // When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://stripe.com/strong-customer-authentication).
5432
        SetupFutureUsage PaymentIntentSetupFutureUsage `json:"setup_future_usage"`
5433
        // Shipping information for this PaymentIntent.
5434
        Shipping *ShippingDetails `json:"shipping"`
5435
        // This is a legacy field that will be removed in the future. It is the ID of the Source object that is associated with this PaymentIntent, if one was supplied.
5436
        Source *PaymentSource `json:"source"`
5437
        // Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors).
5438
        //
5439
        // Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead.
5440
        StatementDescriptor string `json:"statement_descriptor"`
5441
        // Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement.
5442
        StatementDescriptorSuffix string `json:"statement_descriptor_suffix"`
5443
        // Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses).
5444
        Status PaymentIntentStatus `json:"status"`
5445
        // The data that automatically creates a Transfer after the payment finalizes. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
5446
        TransferData *PaymentIntentTransferData `json:"transfer_data"`
5447
        // A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).
5448
        TransferGroup string `json:"transfer_group"`
5449
}
5450

5451
// PaymentIntentList is a list of PaymentIntents as retrieved from a list endpoint.
5452
type PaymentIntentList struct {
5453
        APIResource
5454
        ListMeta
5455
        Data []*PaymentIntent `json:"data"`
5456
}
5457

5458
// PaymentIntentSearchResult is a list of PaymentIntent search results as retrieved from a search endpoint.
5459
type PaymentIntentSearchResult struct {
5460
        APIResource
5461
        SearchMeta
5462
        Data []*PaymentIntent `json:"data"`
5463
}
5464

5465
// UnmarshalJSON handles deserialization of a PaymentIntent.
5466
// This custom unmarshaling is needed because the resulting
5467
// property may be an id or the full struct if it was expanded.
5468
func (p *PaymentIntent) UnmarshalJSON(data []byte) error {
2✔
5469
        if id, ok := ParseID(data); ok {
2✔
UNCOV
5470
                p.ID = id
×
UNCOV
5471
                return nil
×
UNCOV
5472
        }
×
5473

5474
        type paymentIntent PaymentIntent
2✔
5475
        var v paymentIntent
2✔
5476
        if err := json.Unmarshal(data, &v); err != nil {
2✔
UNCOV
5477
                return err
×
UNCOV
5478
        }
×
5479

5480
        *p = PaymentIntent(v)
2✔
5481
        return nil
2✔
5482
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc