github.com/stripe/stripe-go/v76@v76.25.0/paymentintent.go (about) 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 // Payment schedule for the mandate. 117 type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule string 118 119 // List of values that PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule can take 120 const ( 121 PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleCombined PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "combined" 122 PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleInterval PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "interval" 123 PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleSporadic PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "sporadic" 124 ) 125 126 // Transaction type of the mandate. 127 type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType string 128 129 // List of values that PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType can take 130 const ( 131 PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypeBusiness PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "business" 132 PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypePersonal PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "personal" 133 ) 134 135 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 136 // 137 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 138 // 139 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 140 type PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage string 141 142 // List of values that PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage can take 143 const ( 144 PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsageNone PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage = "none" 145 PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage = "off_session" 146 PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage = "on_session" 147 ) 148 149 // Bank account verification method. 150 type PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod string 151 152 // List of values that PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod can take 153 const ( 154 PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodAutomatic PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "automatic" 155 PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodInstant PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "instant" 156 PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodMicrodeposits PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "microdeposits" 157 ) 158 159 // Controls when the funds will be captured from the customer's account. 160 type PaymentIntentPaymentMethodOptionsAffirmCaptureMethod string 161 162 // List of values that PaymentIntentPaymentMethodOptionsAffirmCaptureMethod can take 163 const ( 164 PaymentIntentPaymentMethodOptionsAffirmCaptureMethodManual PaymentIntentPaymentMethodOptionsAffirmCaptureMethod = "manual" 165 ) 166 167 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 168 // 169 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 170 // 171 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 172 type PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage string 173 174 // List of values that PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage can take 175 const ( 176 PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsageNone PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage = "none" 177 ) 178 179 // Controls when the funds will be captured from the customer's account. 180 type PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod string 181 182 // List of values that PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod can take 183 const ( 184 PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethodManual PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod = "manual" 185 ) 186 187 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 188 // 189 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 190 // 191 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 192 type PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage string 193 194 // List of values that PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage can take 195 const ( 196 PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage = "none" 197 ) 198 199 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 200 // 201 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 202 // 203 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 204 type PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage string 205 206 // List of values that PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage can take 207 const ( 208 PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage = "none" 209 PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage = "off_session" 210 ) 211 212 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 213 // 214 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 215 // 216 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 217 type PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage string 218 219 // List of values that PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage can take 220 const ( 221 PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsageNone PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage = "none" 222 PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage = "off_session" 223 PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage = "on_session" 224 ) 225 226 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 227 // 228 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 229 // 230 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 231 type PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage string 232 233 // List of values that PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage can take 234 const ( 235 PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsageNone PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage = "none" 236 PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage = "off_session" 237 PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage = "on_session" 238 ) 239 240 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 241 // 242 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 243 // 244 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 245 type PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage string 246 247 // List of values that PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage can take 248 const ( 249 PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsageNone PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage = "none" 250 PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage = "off_session" 251 ) 252 253 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 254 // 255 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 256 // 257 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 258 type PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage string 259 260 // List of values that PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage can take 261 const ( 262 PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsageNone PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage = "none" 263 ) 264 265 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 266 // 267 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 268 // 269 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 270 type PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage string 271 272 // List of values that PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage can take 273 const ( 274 PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsageNone PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage = "none" 275 PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage = "off_session" 276 PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage = "on_session" 277 ) 278 279 // Controls when the funds will be captured from the customer's account. 280 type PaymentIntentPaymentMethodOptionsCardCaptureMethod string 281 282 // List of values that PaymentIntentPaymentMethodOptionsCardCaptureMethod can take 283 const ( 284 PaymentIntentPaymentMethodOptionsCardCaptureMethodManual PaymentIntentPaymentMethodOptionsCardCaptureMethod = "manual" 285 ) 286 287 // For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. 288 // One of `month`. 289 type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval string 290 291 // List of values that PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval can take 292 const ( 293 PaymentIntentPaymentMethodOptionsCardInstallmentsPlanIntervalMonth PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval = "month" 294 ) 295 296 // Type of installment plan, one of `fixed_count`. 297 type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType string 298 299 // List of values that PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType can take 300 const ( 301 PaymentIntentPaymentMethodOptionsCardInstallmentsPlanTypeFixedCount PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType = "fixed_count" 302 ) 303 304 // 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. 305 type PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType string 306 307 // List of values that PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType can take 308 const ( 309 PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountTypeFixed PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType = "fixed" 310 PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountTypeMaximum PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType = "maximum" 311 ) 312 313 // Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. 314 type PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval string 315 316 // List of values that PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval can take 317 const ( 318 PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalDay PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "day" 319 PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalMonth PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "month" 320 PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalSporadic PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "sporadic" 321 PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalWeek PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "week" 322 PaymentIntentPaymentMethodOptionsCardMandateOptionsIntervalYear PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval = "year" 323 ) 324 325 // Specifies the type of mandates supported. Possible values are `india`. 326 type PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType string 327 328 // List of values that PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType can take 329 const ( 330 PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypeIndia PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType = "india" 331 ) 332 333 // 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. 334 type PaymentIntentPaymentMethodOptionsCardNetwork string 335 336 // List of values that PaymentIntentPaymentMethodOptionsCardNetwork can take 337 const ( 338 PaymentIntentPaymentMethodOptionsCardNetworkAmex PaymentIntentPaymentMethodOptionsCardNetwork = "amex" 339 PaymentIntentPaymentMethodOptionsCardNetworkCartesBancaires PaymentIntentPaymentMethodOptionsCardNetwork = "cartes_bancaires" 340 PaymentIntentPaymentMethodOptionsCardNetworkDiners PaymentIntentPaymentMethodOptionsCardNetwork = "diners" 341 PaymentIntentPaymentMethodOptionsCardNetworkDiscover PaymentIntentPaymentMethodOptionsCardNetwork = "discover" 342 PaymentIntentPaymentMethodOptionsCardNetworkEFTPOSAU PaymentIntentPaymentMethodOptionsCardNetwork = "eftpos_au" 343 PaymentIntentPaymentMethodOptionsCardNetworkInterac PaymentIntentPaymentMethodOptionsCardNetwork = "interac" 344 PaymentIntentPaymentMethodOptionsCardNetworkJCB PaymentIntentPaymentMethodOptionsCardNetwork = "jcb" 345 PaymentIntentPaymentMethodOptionsCardNetworkMastercard PaymentIntentPaymentMethodOptionsCardNetwork = "mastercard" 346 PaymentIntentPaymentMethodOptionsCardNetworkUnionpay PaymentIntentPaymentMethodOptionsCardNetwork = "unionpay" 347 PaymentIntentPaymentMethodOptionsCardNetworkUnknown PaymentIntentPaymentMethodOptionsCardNetwork = "unknown" 348 PaymentIntentPaymentMethodOptionsCardNetworkVisa PaymentIntentPaymentMethodOptionsCardNetwork = "visa" 349 ) 350 351 // Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. 352 type PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization string 353 354 // List of values that PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization can take 355 const ( 356 PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorizationIfAvailable PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization = "if_available" 357 PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorizationNever PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization = "never" 358 ) 359 360 // Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. 361 type PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization string 362 363 // List of values that PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization can take 364 const ( 365 PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorizationIfAvailable PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization = "if_available" 366 PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorizationNever PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization = "never" 367 ) 368 369 // Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. 370 type PaymentIntentPaymentMethodOptionsCardRequestMulticapture string 371 372 // List of values that PaymentIntentPaymentMethodOptionsCardRequestMulticapture can take 373 const ( 374 PaymentIntentPaymentMethodOptionsCardRequestMulticaptureIfAvailable PaymentIntentPaymentMethodOptionsCardRequestMulticapture = "if_available" 375 PaymentIntentPaymentMethodOptionsCardRequestMulticaptureNever PaymentIntentPaymentMethodOptionsCardRequestMulticapture = "never" 376 ) 377 378 // Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. 379 type PaymentIntentPaymentMethodOptionsCardRequestOvercapture string 380 381 // List of values that PaymentIntentPaymentMethodOptionsCardRequestOvercapture can take 382 const ( 383 PaymentIntentPaymentMethodOptionsCardRequestOvercaptureIfAvailable PaymentIntentPaymentMethodOptionsCardRequestOvercapture = "if_available" 384 PaymentIntentPaymentMethodOptionsCardRequestOvercaptureNever PaymentIntentPaymentMethodOptionsCardRequestOvercapture = "never" 385 ) 386 387 // 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. 388 type PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure string 389 390 // List of values that PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure can take 391 const ( 392 PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureAny PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "any" 393 PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureAutomatic PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "automatic" 394 PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureChallenge PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "challenge" 395 ) 396 397 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 398 // 399 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 400 // 401 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 402 type PaymentIntentPaymentMethodOptionsCardSetupFutureUsage string 403 404 // List of values that PaymentIntentPaymentMethodOptionsCardSetupFutureUsage can take 405 const ( 406 PaymentIntentPaymentMethodOptionsCardSetupFutureUsageNone PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "none" 407 PaymentIntentPaymentMethodOptionsCardSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "off_session" 408 PaymentIntentPaymentMethodOptionsCardSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "on_session" 409 ) 410 411 // Controls when the funds will be captured from the customer's account. 412 type PaymentIntentPaymentMethodOptionsCashAppCaptureMethod string 413 414 // List of values that PaymentIntentPaymentMethodOptionsCashAppCaptureMethod can take 415 const ( 416 PaymentIntentPaymentMethodOptionsCashAppCaptureMethodManual PaymentIntentPaymentMethodOptionsCashAppCaptureMethod = "manual" 417 ) 418 419 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 420 // 421 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 422 // 423 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 424 type PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage string 425 426 // List of values that PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage can take 427 const ( 428 PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsageNone PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage = "none" 429 PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage = "off_session" 430 PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage = "on_session" 431 ) 432 433 // List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. 434 // 435 // Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. 436 type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType string 437 438 // List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType can take 439 const ( 440 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeABA PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "aba" 441 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeIBAN PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "iban" 442 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSEPA PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "sepa" 443 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSortCode PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "sort_code" 444 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSpei PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "spei" 445 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeSwift PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "swift" 446 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypeZengin PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType = "zengin" 447 ) 448 449 // 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`. 450 type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType string 451 452 // List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType can take 453 const ( 454 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeEUBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "eu_bank_transfer" 455 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeGBBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "gb_bank_transfer" 456 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeJPBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "jp_bank_transfer" 457 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeMXBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "mx_bank_transfer" 458 PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferTypeUSBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType = "us_bank_transfer" 459 ) 460 461 // The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. 462 type PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType string 463 464 // List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType can take 465 const ( 466 PaymentIntentPaymentMethodOptionsCustomerBalanceFundingTypeBankTransfer PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType = "bank_transfer" 467 ) 468 469 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 470 // 471 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 472 // 473 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 474 type PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage string 475 476 // List of values that PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage can take 477 const ( 478 PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsageNone PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage = "none" 479 ) 480 481 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 482 // 483 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 484 // 485 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 486 type PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage string 487 488 // List of values that PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage can take 489 const ( 490 PaymentIntentPaymentMethodOptionsEPSSetupFutureUsageNone PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage = "none" 491 ) 492 493 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 494 // 495 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 496 // 497 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 498 type PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage string 499 500 // List of values that PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage can take 501 const ( 502 PaymentIntentPaymentMethodOptionsFPXSetupFutureUsageNone PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage = "none" 503 ) 504 505 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 506 // 507 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 508 // 509 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 510 type PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage string 511 512 // List of values that PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage can take 513 const ( 514 PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage = "none" 515 ) 516 517 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 518 // 519 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 520 // 521 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 522 type PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage string 523 524 // List of values that PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage can take 525 const ( 526 PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage = "none" 527 ) 528 529 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 530 // 531 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 532 // 533 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 534 type PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage string 535 536 // List of values that PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage can take 537 const ( 538 PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsageNone PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage = "none" 539 PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage = "off_session" 540 ) 541 542 // Controls when the funds will be captured from the customer's account. 543 type PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod string 544 545 // List of values that PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod can take 546 const ( 547 PaymentIntentPaymentMethodOptionsKlarnaCaptureMethodManual PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod = "manual" 548 ) 549 550 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 551 // 552 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 553 // 554 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 555 type PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage string 556 557 // List of values that PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage can take 558 const ( 559 PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsageNone PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage = "none" 560 ) 561 562 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 563 // 564 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 565 // 566 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 567 type PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage string 568 569 // List of values that PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage can take 570 const ( 571 PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsageNone PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage = "none" 572 ) 573 574 // Controls when the funds will be captured from the customer's account. 575 type PaymentIntentPaymentMethodOptionsLinkCaptureMethod string 576 577 // List of values that PaymentIntentPaymentMethodOptionsLinkCaptureMethod can take 578 const ( 579 PaymentIntentPaymentMethodOptionsLinkCaptureMethodManual PaymentIntentPaymentMethodOptionsLinkCaptureMethod = "manual" 580 ) 581 582 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 583 // 584 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 585 // 586 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 587 type PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage string 588 589 // List of values that PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage can take 590 const ( 591 PaymentIntentPaymentMethodOptionsLinkSetupFutureUsageNone PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage = "none" 592 PaymentIntentPaymentMethodOptionsLinkSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage = "off_session" 593 ) 594 595 // Controls when the funds will be captured from the customer's account. 596 type PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod string 597 598 // List of values that PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod can take 599 const ( 600 PaymentIntentPaymentMethodOptionsMobilepayCaptureMethodManual PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod = "manual" 601 ) 602 603 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 604 // 605 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 606 // 607 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 608 type PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage string 609 610 // List of values that PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage can take 611 const ( 612 PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage = "none" 613 ) 614 615 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 616 // 617 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 618 // 619 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 620 type PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage string 621 622 // List of values that PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage can take 623 const ( 624 PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsageNone PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage = "none" 625 ) 626 627 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 628 // 629 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 630 // 631 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 632 type PaymentIntentPaymentMethodOptionsP24SetupFutureUsage string 633 634 // List of values that PaymentIntentPaymentMethodOptionsP24SetupFutureUsage can take 635 const ( 636 PaymentIntentPaymentMethodOptionsP24SetupFutureUsageNone PaymentIntentPaymentMethodOptionsP24SetupFutureUsage = "none" 637 ) 638 639 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 640 // 641 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 642 // 643 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 644 type PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage string 645 646 // List of values that PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage can take 647 const ( 648 PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsageNone PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage = "none" 649 ) 650 651 // Controls when the funds will be captured from the customer's account. 652 type PaymentIntentPaymentMethodOptionsPaypalCaptureMethod string 653 654 // List of values that PaymentIntentPaymentMethodOptionsPaypalCaptureMethod can take 655 const ( 656 PaymentIntentPaymentMethodOptionsPaypalCaptureMethodManual PaymentIntentPaymentMethodOptionsPaypalCaptureMethod = "manual" 657 ) 658 659 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 660 // 661 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 662 // 663 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 664 type PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage string 665 666 // List of values that PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage can take 667 const ( 668 PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsageNone PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage = "none" 669 PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage = "off_session" 670 ) 671 672 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 673 // 674 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 675 // 676 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 677 type PaymentIntentPaymentMethodOptionsPixSetupFutureUsage string 678 679 // List of values that PaymentIntentPaymentMethodOptionsPixSetupFutureUsage can take 680 const ( 681 PaymentIntentPaymentMethodOptionsPixSetupFutureUsageNone PaymentIntentPaymentMethodOptionsPixSetupFutureUsage = "none" 682 ) 683 684 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 685 // 686 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 687 // 688 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 689 type PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage string 690 691 // List of values that PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage can take 692 const ( 693 PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage = "none" 694 ) 695 696 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 697 // 698 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 699 // 700 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 701 type PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage string 702 703 // List of values that PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage can take 704 const ( 705 PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsageNone PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage = "none" 706 PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage = "off_session" 707 PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage = "on_session" 708 ) 709 710 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 711 // 712 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 713 // 714 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 715 type PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage string 716 717 // List of values that PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage can take 718 const ( 719 PaymentIntentPaymentMethodOptionsSofortSetupFutureUsageNone PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage = "none" 720 PaymentIntentPaymentMethodOptionsSofortSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage = "off_session" 721 ) 722 723 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 724 // 725 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 726 // 727 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 728 type PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage string 729 730 // List of values that PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage can take 731 const ( 732 PaymentIntentPaymentMethodOptionsSwishSetupFutureUsageNone PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage = "none" 733 ) 734 735 // The list of permissions to request. The `payment_method` permission must be included. 736 type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission string 737 738 // List of values that PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission can take 739 const ( 740 PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionBalances PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "balances" 741 PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionOwnership PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "ownership" 742 PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionPaymentMethod PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "payment_method" 743 PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermissionTransactions PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission = "transactions" 744 ) 745 746 // Data features requested to be retrieved upon account creation. 747 type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch string 748 749 // List of values that PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch can take 750 const ( 751 PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetchBalances PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch = "balances" 752 PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetchTransactions PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch = "transactions" 753 ) 754 755 // Mandate collection method 756 type PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod string 757 758 // List of values that PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod can take 759 const ( 760 PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethodPaper PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod = "paper" 761 ) 762 763 // Preferred transaction settlement speed 764 type PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed string 765 766 // List of values that PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed can take 767 const ( 768 PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeedFastest PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed = "fastest" 769 PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeedStandard PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed = "standard" 770 ) 771 772 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 773 // 774 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 775 // 776 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 777 type PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage string 778 779 // List of values that PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage can take 780 const ( 781 PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsageNone PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage = "none" 782 PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage = "off_session" 783 PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsageOnSession PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage = "on_session" 784 ) 785 786 // Bank account verification method. 787 type PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod string 788 789 // List of values that PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod can take 790 const ( 791 PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethodAutomatic PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod = "automatic" 792 PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethodInstant PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod = "instant" 793 PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethodMicrodeposits PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod = "microdeposits" 794 ) 795 796 // The client type that the end customer will pay from 797 type PaymentIntentPaymentMethodOptionsWeChatPayClient string 798 799 // List of values that PaymentIntentPaymentMethodOptionsWeChatPayClient can take 800 const ( 801 PaymentIntentPaymentMethodOptionsWeChatPayClientAndroid PaymentIntentPaymentMethodOptionsWeChatPayClient = "android" 802 PaymentIntentPaymentMethodOptionsWeChatPayClientIOS PaymentIntentPaymentMethodOptionsWeChatPayClient = "ios" 803 PaymentIntentPaymentMethodOptionsWeChatPayClientWeb PaymentIntentPaymentMethodOptionsWeChatPayClient = "web" 804 ) 805 806 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 807 // 808 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 809 // 810 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 811 type PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage string 812 813 // List of values that PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage can take 814 const ( 815 PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsageNone PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage = "none" 816 ) 817 818 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 819 // 820 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 821 // 822 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 823 type PaymentIntentPaymentMethodOptionsZipSetupFutureUsage string 824 825 // List of values that PaymentIntentPaymentMethodOptionsZipSetupFutureUsage can take 826 const ( 827 PaymentIntentPaymentMethodOptionsZipSetupFutureUsageNone PaymentIntentPaymentMethodOptionsZipSetupFutureUsage = "none" 828 ) 829 830 // Type of the payment method for which payment is in `processing` state, one of `card`. 831 type PaymentIntentProcessingType string 832 833 // List of values that PaymentIntentProcessingType can take 834 const ( 835 PaymentIntentProcessingTypeCard PaymentIntentProcessingType = "card" 836 ) 837 838 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 839 // 840 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 841 // 842 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 843 type PaymentIntentSetupFutureUsage string 844 845 // List of values that PaymentIntentSetupFutureUsage can take 846 const ( 847 PaymentIntentSetupFutureUsageOffSession PaymentIntentSetupFutureUsage = "off_session" 848 PaymentIntentSetupFutureUsageOnSession PaymentIntentSetupFutureUsage = "on_session" 849 ) 850 851 // 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). 852 type PaymentIntentStatus string 853 854 // List of values that PaymentIntentStatus can take 855 const ( 856 PaymentIntentStatusCanceled PaymentIntentStatus = "canceled" 857 PaymentIntentStatusProcessing PaymentIntentStatus = "processing" 858 PaymentIntentStatusRequiresAction PaymentIntentStatus = "requires_action" 859 PaymentIntentStatusRequiresCapture PaymentIntentStatus = "requires_capture" 860 PaymentIntentStatusRequiresConfirmation PaymentIntentStatus = "requires_confirmation" 861 PaymentIntentStatusRequiresPaymentMethod PaymentIntentStatus = "requires_payment_method" 862 PaymentIntentStatusSucceeded PaymentIntentStatus = "succeeded" 863 ) 864 865 // Returns a list of PaymentIntents. 866 type PaymentIntentListParams struct { 867 ListParams `form:"*"` 868 // 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. 869 Created *int64 `form:"created"` 870 // 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. 871 CreatedRange *RangeQueryParams `form:"created"` 872 // Only return PaymentIntents for the customer that this customer ID specifies. 873 Customer *string `form:"customer"` 874 // Specifies which fields in the response should be expanded. 875 Expand []*string `form:"expand"` 876 } 877 878 // AddExpand appends a new field to expand. 879 func (p *PaymentIntentListParams) AddExpand(f string) { 880 p.Expand = append(p.Expand, &f) 881 } 882 883 // 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. 884 type PaymentIntentAutomaticPaymentMethodsParams struct { 885 // Controls whether this PaymentIntent will accept redirect-based payment methods. 886 // 887 // 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. 888 AllowRedirects *string `form:"allow_redirects"` 889 // Whether this feature is enabled. 890 Enabled *bool `form:"enabled"` 891 } 892 893 // If this is a Mandate accepted offline, this hash contains details about the offline acceptance. 894 type PaymentIntentMandateDataCustomerAcceptanceOfflineParams struct{} 895 896 // If this is a Mandate accepted online, this hash contains details about the online acceptance. 897 type PaymentIntentMandateDataCustomerAcceptanceOnlineParams struct { 898 // The IP address from which the Mandate was accepted by the customer. 899 IPAddress *string `form:"ip_address"` 900 // The user agent of the browser from which the Mandate was accepted by the customer. 901 UserAgent *string `form:"user_agent"` 902 } 903 904 // This hash contains details about the customer acceptance of the Mandate. 905 type PaymentIntentMandateDataCustomerAcceptanceParams struct { 906 // The time at which the customer accepted the Mandate. 907 AcceptedAt *int64 `form:"accepted_at"` 908 // If this is a Mandate accepted offline, this hash contains details about the offline acceptance. 909 Offline *PaymentIntentMandateDataCustomerAcceptanceOfflineParams `form:"offline"` 910 // If this is a Mandate accepted online, this hash contains details about the online acceptance. 911 Online *PaymentIntentMandateDataCustomerAcceptanceOnlineParams `form:"online"` 912 // The type of customer acceptance information included with the Mandate. One of `online` or `offline`. 913 Type *string `form:"type"` 914 } 915 916 // 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). 917 type PaymentIntentMandateDataParams struct { 918 // This hash contains details about the customer acceptance of the Mandate. 919 CustomerAcceptance *PaymentIntentMandateDataCustomerAcceptanceParams `form:"customer_acceptance"` 920 } 921 922 // If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. 923 type PaymentIntentPaymentMethodDataAffirmParams struct{} 924 925 // Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. 926 type PaymentIntentPaymentMethodDataBillingDetailsParams struct { 927 // Billing address. 928 Address *AddressParams `form:"address"` 929 // Email address. 930 Email *string `form:"email"` 931 // Full name. 932 Name *string `form:"name"` 933 // Billing phone number (including extension). 934 Phone *string `form:"phone"` 935 } 936 937 // If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. 938 type PaymentIntentPaymentMethodDataBLIKParams struct{} 939 940 // If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. 941 type PaymentIntentPaymentMethodDataCashAppParams struct{} 942 943 // If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. 944 type PaymentIntentPaymentMethodDataCustomerBalanceParams struct{} 945 946 // If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. 947 type PaymentIntentPaymentMethodDataKonbiniParams struct{} 948 949 // If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. 950 type PaymentIntentPaymentMethodDataLinkParams struct{} 951 952 // If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. 953 type PaymentIntentPaymentMethodDataPayNowParams struct{} 954 955 // If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. 956 type PaymentIntentPaymentMethodDataPaypalParams struct{} 957 958 // If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. 959 type PaymentIntentPaymentMethodDataPixParams struct{} 960 961 // If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. 962 type PaymentIntentPaymentMethodDataPromptPayParams struct{} 963 964 // Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. 965 type PaymentIntentPaymentMethodDataRadarOptionsParams struct { 966 // 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. 967 Session *string `form:"session"` 968 } 969 970 // If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. 971 type PaymentIntentPaymentMethodDataRevolutPayParams struct{} 972 973 // If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. 974 type PaymentIntentPaymentMethodDataUSBankAccountParams struct { 975 // Account holder type: individual or company. 976 AccountHolderType *string `form:"account_holder_type"` 977 // Account number of the bank account. 978 AccountNumber *string `form:"account_number"` 979 // Account type: checkings or savings. Defaults to checking if omitted. 980 AccountType *string `form:"account_type"` 981 // The ID of a Financial Connections Account to use as a payment method. 982 FinancialConnectionsAccount *string `form:"financial_connections_account"` 983 // Routing number of the bank account. 984 RoutingNumber *string `form:"routing_number"` 985 } 986 987 // If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. 988 type PaymentIntentPaymentMethodDataZipParams struct{} 989 990 // If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear 991 // in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) 992 // property on the PaymentIntent. 993 type PaymentIntentPaymentMethodDataParams struct { 994 // If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. 995 ACSSDebit *PaymentMethodACSSDebitParams `form:"acss_debit"` 996 // If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. 997 Affirm *PaymentIntentPaymentMethodDataAffirmParams `form:"affirm"` 998 // If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. 999 AfterpayClearpay *PaymentMethodAfterpayClearpayParams `form:"afterpay_clearpay"` 1000 // If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. 1001 Alipay *PaymentMethodAlipayParams `form:"alipay"` 1002 // If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. 1003 AUBECSDebit *PaymentMethodAUBECSDebitParams `form:"au_becs_debit"` 1004 // If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. 1005 BACSDebit *PaymentMethodBACSDebitParams `form:"bacs_debit"` 1006 // If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. 1007 Bancontact *PaymentMethodBancontactParams `form:"bancontact"` 1008 // Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. 1009 BillingDetails *PaymentIntentPaymentMethodDataBillingDetailsParams `form:"billing_details"` 1010 // If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. 1011 BLIK *PaymentIntentPaymentMethodDataBLIKParams `form:"blik"` 1012 // If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. 1013 Boleto *PaymentMethodBoletoParams `form:"boleto"` 1014 // If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. 1015 CashApp *PaymentIntentPaymentMethodDataCashAppParams `form:"cashapp"` 1016 // If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. 1017 CustomerBalance *PaymentIntentPaymentMethodDataCustomerBalanceParams `form:"customer_balance"` 1018 // If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. 1019 EPS *PaymentMethodEPSParams `form:"eps"` 1020 // If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. 1021 FPX *PaymentMethodFPXParams `form:"fpx"` 1022 // If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. 1023 Giropay *PaymentMethodGiropayParams `form:"giropay"` 1024 // If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. 1025 Grabpay *PaymentMethodGrabpayParams `form:"grabpay"` 1026 // If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. 1027 IDEAL *PaymentMethodIDEALParams `form:"ideal"` 1028 // If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. 1029 InteracPresent *PaymentMethodInteracPresentParams `form:"interac_present"` 1030 // If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. 1031 Klarna *PaymentMethodKlarnaParams `form:"klarna"` 1032 // If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. 1033 Konbini *PaymentIntentPaymentMethodDataKonbiniParams `form:"konbini"` 1034 // If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. 1035 Link *PaymentIntentPaymentMethodDataLinkParams `form:"link"` 1036 // 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`. 1037 Metadata map[string]string `form:"metadata"` 1038 // If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. 1039 Mobilepay *PaymentMethodMobilepayParams `form:"mobilepay"` 1040 // If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. 1041 OXXO *PaymentMethodOXXOParams `form:"oxxo"` 1042 // If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. 1043 P24 *PaymentMethodP24Params `form:"p24"` 1044 // If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. 1045 PayNow *PaymentIntentPaymentMethodDataPayNowParams `form:"paynow"` 1046 // If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. 1047 Paypal *PaymentIntentPaymentMethodDataPaypalParams `form:"paypal"` 1048 // If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. 1049 Pix *PaymentIntentPaymentMethodDataPixParams `form:"pix"` 1050 // If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. 1051 PromptPay *PaymentIntentPaymentMethodDataPromptPayParams `form:"promptpay"` 1052 // Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. 1053 RadarOptions *PaymentIntentPaymentMethodDataRadarOptionsParams `form:"radar_options"` 1054 // If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. 1055 RevolutPay *PaymentIntentPaymentMethodDataRevolutPayParams `form:"revolut_pay"` 1056 // If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. 1057 SEPADebit *PaymentMethodSEPADebitParams `form:"sepa_debit"` 1058 // If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. 1059 Sofort *PaymentMethodSofortParams `form:"sofort"` 1060 // If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. 1061 Swish *PaymentMethodSwishParams `form:"swish"` 1062 // 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. 1063 Type *string `form:"type"` 1064 // If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. 1065 USBankAccount *PaymentIntentPaymentMethodDataUSBankAccountParams `form:"us_bank_account"` 1066 // If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. 1067 WeChatPay *PaymentMethodWeChatPayParams `form:"wechat_pay"` 1068 // If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. 1069 Zip *PaymentIntentPaymentMethodDataZipParams `form:"zip"` 1070 } 1071 1072 // AddMetadata adds a new key-value pair to the Metadata. 1073 func (p *PaymentIntentPaymentMethodDataParams) AddMetadata(key string, value string) { 1074 if p.Metadata == nil { 1075 p.Metadata = make(map[string]string) 1076 } 1077 1078 p.Metadata[key] = value 1079 } 1080 1081 // Additional fields for Mandate creation 1082 type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams struct { 1083 // A URL for custom mandate text to render during confirmation step. 1084 // The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, 1085 // or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. 1086 CustomMandateURL *string `form:"custom_mandate_url"` 1087 // Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. 1088 IntervalDescription *string `form:"interval_description"` 1089 // Payment schedule for the mandate. 1090 PaymentSchedule *string `form:"payment_schedule"` 1091 // Transaction type of the mandate. 1092 TransactionType *string `form:"transaction_type"` 1093 } 1094 1095 // If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. 1096 type PaymentIntentPaymentMethodOptionsACSSDebitParams struct { 1097 // Additional fields for Mandate creation 1098 MandateOptions *PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams `form:"mandate_options"` 1099 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1100 // 1101 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1102 // 1103 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1104 // 1105 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1106 SetupFutureUsage *string `form:"setup_future_usage"` 1107 // Bank account verification method. 1108 VerificationMethod *string `form:"verification_method"` 1109 } 1110 1111 // If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. 1112 type PaymentIntentPaymentMethodOptionsAffirmParams struct { 1113 // Controls when the funds will be captured from the customer's account. 1114 // 1115 // If provided, this parameter will override the top level behavior of `capture_method` when finalizing the payment with this payment method type. 1116 // 1117 // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter will unset the stored value for this payment method type. 1118 CaptureMethod *string `form:"capture_method"` 1119 // Preferred language of the Affirm authorization page that the customer is redirected to. 1120 PreferredLocale *string `form:"preferred_locale"` 1121 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1122 // 1123 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1124 // 1125 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1126 // 1127 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1128 SetupFutureUsage *string `form:"setup_future_usage"` 1129 } 1130 1131 // If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options. 1132 type PaymentIntentPaymentMethodOptionsAfterpayClearpayParams struct { 1133 // Controls when the funds will be captured from the customer's account. 1134 // 1135 // If provided, this parameter will override the top level behavior of `capture_method` when finalizing the payment with this payment method type. 1136 // 1137 // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter will unset the stored value for this payment method type. 1138 CaptureMethod *string `form:"capture_method"` 1139 // 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. 1140 // This field differs from the statement descriptor and item name. 1141 Reference *string `form:"reference"` 1142 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1143 // 1144 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1145 // 1146 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1147 // 1148 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1149 SetupFutureUsage *string `form:"setup_future_usage"` 1150 } 1151 1152 // If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. 1153 type PaymentIntentPaymentMethodOptionsAlipayParams struct { 1154 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1155 // 1156 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1157 // 1158 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1159 // 1160 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1161 SetupFutureUsage *string `form:"setup_future_usage"` 1162 } 1163 1164 // If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options. 1165 type PaymentIntentPaymentMethodOptionsAUBECSDebitParams struct { 1166 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1167 // 1168 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1169 // 1170 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1171 // 1172 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1173 SetupFutureUsage *string `form:"setup_future_usage"` 1174 } 1175 1176 // If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options. 1177 type PaymentIntentPaymentMethodOptionsBACSDebitParams struct { 1178 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1179 // 1180 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1181 // 1182 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1183 // 1184 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1185 SetupFutureUsage *string `form:"setup_future_usage"` 1186 } 1187 1188 // If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. 1189 type PaymentIntentPaymentMethodOptionsBancontactParams struct { 1190 // Preferred language of the Bancontact authorization page that the customer is redirected to. 1191 PreferredLanguage *string `form:"preferred_language"` 1192 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1193 // 1194 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1195 // 1196 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1197 // 1198 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1199 SetupFutureUsage *string `form:"setup_future_usage"` 1200 } 1201 1202 // If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. 1203 type PaymentIntentPaymentMethodOptionsBLIKParams struct { 1204 // The 6-digit BLIK code that a customer has generated using their banking application. Can only be set on confirmation. 1205 Code *string `form:"code"` 1206 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1207 // 1208 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1209 // 1210 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1211 // 1212 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1213 SetupFutureUsage *string `form:"setup_future_usage"` 1214 } 1215 1216 // If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. 1217 type PaymentIntentPaymentMethodOptionsBoletoParams struct { 1218 // 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. 1219 ExpiresAfterDays *int64 `form:"expires_after_days"` 1220 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1221 // 1222 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1223 // 1224 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1225 // 1226 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1227 SetupFutureUsage *string `form:"setup_future_usage"` 1228 } 1229 1230 // The selected installment plan to use for this payment attempt. 1231 // This parameter can only be provided during confirmation. 1232 type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams struct { 1233 // For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card. 1234 Count *int64 `form:"count"` 1235 // For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. 1236 // One of `month`. 1237 Interval *string `form:"interval"` 1238 // Type of installment plan, one of `fixed_count`. 1239 Type *string `form:"type"` 1240 } 1241 1242 // Installment configuration for payments attempted on this PaymentIntent (Mexico Only). 1243 // 1244 // For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). 1245 type PaymentIntentPaymentMethodOptionsCardInstallmentsParams struct { 1246 // Setting to true enables installments for this PaymentIntent. 1247 // This will cause the response to contain a list of available installment plans. 1248 // Setting to false will prevent any selected plan from applying to a charge. 1249 Enabled *bool `form:"enabled"` 1250 // The selected installment plan to use for this payment attempt. 1251 // This parameter can only be provided during confirmation. 1252 Plan *PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams `form:"plan"` 1253 } 1254 1255 // Configuration options for setting up an eMandate for cards issued in India. 1256 type PaymentIntentPaymentMethodOptionsCardMandateOptionsParams struct { 1257 // Amount to be charged for future payments. 1258 Amount *int64 `form:"amount"` 1259 // 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. 1260 AmountType *string `form:"amount_type"` 1261 // A description of the mandate or subscription that is meant to be displayed to the customer. 1262 Description *string `form:"description"` 1263 // 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. 1264 EndDate *int64 `form:"end_date"` 1265 // Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. 1266 Interval *string `form:"interval"` 1267 // 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`. 1268 IntervalCount *int64 `form:"interval_count"` 1269 // Unique identifier for the mandate or subscription. 1270 Reference *string `form:"reference"` 1271 // Start date of the mandate or subscription. Start date should not be lesser than yesterday. 1272 StartDate *int64 `form:"start_date"` 1273 // Specifies the type of mandates supported. Possible values are `india`. 1274 SupportedTypes []*string `form:"supported_types"` 1275 } 1276 1277 // Cartes Bancaires-specific 3DS fields. 1278 type PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesParams struct { 1279 // The cryptogram calculation algorithm used by the card Issuer's ACS 1280 // to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. 1281 // messageExtension: CB-AVALGO 1282 CbAvalgo *string `form:"cb_avalgo"` 1283 // The exemption indicator returned from Cartes Bancaires in the ARes. 1284 // message extension: CB-EXEMPTION; string (4 characters) 1285 // This is a 3 byte bitmap (low significant byte first and most significant 1286 // bit first) that has been Base64 encoded 1287 CbExemption *string `form:"cb_exemption"` 1288 // The risk score returned from Cartes Bancaires in the ARes. 1289 // message extension: CB-SCORE; numeric value 0-99 1290 CbScore *int64 `form:"cb_score"` 1291 } 1292 1293 // Network specific 3DS fields. Network specific arguments require an 1294 // explicit card brand choice. The parameter `payment_method_options.card.network“ 1295 // must be populated accordingly 1296 type PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsParams struct { 1297 // Cartes Bancaires-specific 3DS fields. 1298 CartesBancaires *PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesParams `form:"cartes_bancaires"` 1299 } 1300 1301 // If 3D Secure authentication was performed with a third-party provider, 1302 // the authentication details to use for this payment. 1303 type PaymentIntentPaymentMethodOptionsCardThreeDSecureParams struct { 1304 // The `transStatus` returned from the card Issuer's ACS in the ARes. 1305 AresTransStatus *string `form:"ares_trans_status"` 1306 // The cryptogram, also known as the "authentication value" (AAV, CAVV or 1307 // AEVV). This value is 20 bytes, base64-encoded into a 28-character string. 1308 // (Most 3D Secure providers will return the base64-encoded version, which 1309 // is what you should specify here.) 1310 Cryptogram *string `form:"cryptogram"` 1311 // The Electronic Commerce Indicator (ECI) is returned by your 3D Secure 1312 // provider and indicates what degree of authentication was performed. 1313 ElectronicCommerceIndicator *string `form:"electronic_commerce_indicator"` 1314 // The exemption requested via 3DS and accepted by the issuer at authentication time. 1315 ExemptionIndicator *string `form:"exemption_indicator"` 1316 // Network specific 3DS fields. Network specific arguments require an 1317 // explicit card brand choice. The parameter `payment_method_options.card.network`` 1318 // must be populated accordingly 1319 NetworkOptions *PaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsParams `form:"network_options"` 1320 // The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the 1321 // AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. 1322 RequestorChallengeIndicator *string `form:"requestor_challenge_indicator"` 1323 // For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server 1324 // Transaction ID (dsTransID). 1325 TransactionID *string `form:"transaction_id"` 1326 // The version of 3D Secure that was performed. 1327 Version *string `form:"version"` 1328 } 1329 1330 // Configuration for any card payments attempted on this PaymentIntent. 1331 type PaymentIntentPaymentMethodOptionsCardParams struct { 1332 // Controls when the funds will be captured from the customer's account. 1333 // 1334 // If provided, this parameter will override the top level behavior of `capture_method` when finalizing the payment with this payment method type. 1335 // 1336 // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter will unset the stored value for this payment method type. 1337 CaptureMethod *string `form:"capture_method"` 1338 // 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. 1339 CVCToken *string `form:"cvc_token"` 1340 // Installment configuration for payments attempted on this PaymentIntent (Mexico Only). 1341 // 1342 // For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). 1343 Installments *PaymentIntentPaymentMethodOptionsCardInstallmentsParams `form:"installments"` 1344 // Configuration options for setting up an eMandate for cards issued in India. 1345 MandateOptions *PaymentIntentPaymentMethodOptionsCardMandateOptionsParams `form:"mandate_options"` 1346 // When specified, this parameter indicates that a transaction will be marked 1347 // as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This 1348 // parameter can only be provided during confirmation. 1349 MOTO *bool `form:"moto"` 1350 // 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. 1351 Network *string `form:"network"` 1352 // Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. 1353 RequestExtendedAuthorization *string `form:"request_extended_authorization"` 1354 // Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. 1355 RequestIncrementalAuthorization *string `form:"request_incremental_authorization"` 1356 // Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. 1357 RequestMulticapture *string `form:"request_multicapture"` 1358 // Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. 1359 RequestOvercapture *string `form:"request_overcapture"` 1360 // 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. 1361 RequestThreeDSecure *string `form:"request_three_d_secure"` 1362 // 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). 1363 RequireCVCRecollection *bool `form:"require_cvc_recollection"` 1364 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1365 // 1366 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1367 // 1368 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1369 // 1370 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1371 SetupFutureUsage *string `form:"setup_future_usage"` 1372 // 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. 1373 StatementDescriptorSuffixKana *string `form:"statement_descriptor_suffix_kana"` 1374 // 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. 1375 StatementDescriptorSuffixKanji *string `form:"statement_descriptor_suffix_kanji"` 1376 // If 3D Secure authentication was performed with a third-party provider, 1377 // the authentication details to use for this payment. 1378 ThreeDSecure *PaymentIntentPaymentMethodOptionsCardThreeDSecureParams `form:"three_d_secure"` 1379 } 1380 1381 // If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. 1382 type PaymentIntentPaymentMethodOptionsCardPresentParams struct { 1383 // Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) 1384 RequestExtendedAuthorization *bool `form:"request_extended_authorization"` 1385 // This field was released by mistake and will be removed in the next major version 1386 RequestIncrementalAuthorization *string `form:"request_incremental_authorization"` 1387 // 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. 1388 RequestIncrementalAuthorizationSupport *bool `form:"request_incremental_authorization_support"` 1389 } 1390 1391 // If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. 1392 type PaymentIntentPaymentMethodOptionsCashAppParams struct { 1393 // Controls when the funds will be captured from the customer's account. 1394 // 1395 // If provided, this parameter will override the top level behavior of `capture_method` when finalizing the payment with this payment method type. 1396 // 1397 // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter will unset the stored value for this payment method type. 1398 CaptureMethod *string `form:"capture_method"` 1399 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1400 // 1401 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1402 // 1403 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1404 // 1405 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1406 SetupFutureUsage *string `form:"setup_future_usage"` 1407 } 1408 1409 // Configuration for the eu_bank_transfer funding type. 1410 type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransferParams struct { 1411 // The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. 1412 Country *string `form:"country"` 1413 } 1414 1415 // Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. 1416 type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferParams struct { 1417 // Configuration for the eu_bank_transfer funding type. 1418 EUBankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransferParams `form:"eu_bank_transfer"` 1419 // List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. 1420 // 1421 // Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. 1422 RequestedAddressTypes []*string `form:"requested_address_types"` 1423 // 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`. 1424 Type *string `form:"type"` 1425 } 1426 1427 // If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options. 1428 type PaymentIntentPaymentMethodOptionsCustomerBalanceParams struct { 1429 // Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. 1430 BankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferParams `form:"bank_transfer"` 1431 // The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. 1432 FundingType *string `form:"funding_type"` 1433 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1434 // 1435 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1436 // 1437 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1438 // 1439 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1440 SetupFutureUsage *string `form:"setup_future_usage"` 1441 } 1442 1443 // If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. 1444 type PaymentIntentPaymentMethodOptionsEPSParams struct { 1445 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1446 // 1447 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1448 // 1449 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1450 // 1451 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1452 SetupFutureUsage *string `form:"setup_future_usage"` 1453 } 1454 1455 // If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. 1456 type PaymentIntentPaymentMethodOptionsFPXParams struct { 1457 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1458 // 1459 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1460 // 1461 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1462 // 1463 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1464 SetupFutureUsage *string `form:"setup_future_usage"` 1465 } 1466 1467 // If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options. 1468 type PaymentIntentPaymentMethodOptionsGiropayParams struct { 1469 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1470 // 1471 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1472 // 1473 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1474 // 1475 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1476 SetupFutureUsage *string `form:"setup_future_usage"` 1477 } 1478 1479 // If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options. 1480 type PaymentIntentPaymentMethodOptionsGrabpayParams struct { 1481 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1482 // 1483 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1484 // 1485 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1486 // 1487 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1488 SetupFutureUsage *string `form:"setup_future_usage"` 1489 } 1490 1491 // If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options. 1492 type PaymentIntentPaymentMethodOptionsIDEALParams struct { 1493 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1494 // 1495 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1496 // 1497 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1498 // 1499 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1500 SetupFutureUsage *string `form:"setup_future_usage"` 1501 } 1502 1503 // If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. 1504 type PaymentIntentPaymentMethodOptionsInteracPresentParams struct{} 1505 1506 // If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. 1507 type PaymentIntentPaymentMethodOptionsKlarnaParams struct { 1508 // Controls when the funds will be captured from the customer's account. 1509 // 1510 // If provided, this parameter will override the top level behavior of `capture_method` when finalizing the payment with this payment method type. 1511 // 1512 // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter will unset the stored value for this payment method type. 1513 CaptureMethod *string `form:"capture_method"` 1514 // Preferred language of the Klarna authorization page that the customer is redirected to 1515 PreferredLocale *string `form:"preferred_locale"` 1516 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1517 // 1518 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1519 // 1520 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1521 // 1522 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1523 SetupFutureUsage *string `form:"setup_future_usage"` 1524 } 1525 1526 // If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. 1527 type PaymentIntentPaymentMethodOptionsKonbiniParams struct { 1528 // 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. 1529 ConfirmationNumber *string `form:"confirmation_number"` 1530 // 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. 1531 ExpiresAfterDays *int64 `form:"expires_after_days"` 1532 // The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set. 1533 ExpiresAt *int64 `form:"expires_at"` 1534 // A product descriptor of up to 22 characters, which will appear to customers at the convenience store. 1535 ProductDescription *string `form:"product_description"` 1536 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1537 // 1538 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1539 // 1540 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1541 // 1542 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1543 SetupFutureUsage *string `form:"setup_future_usage"` 1544 } 1545 1546 // If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. 1547 type PaymentIntentPaymentMethodOptionsLinkParams struct { 1548 // Controls when the funds will be captured from the customer's account. 1549 // 1550 // If provided, this parameter will override the top level behavior of `capture_method` when finalizing the payment with this payment method type. 1551 // 1552 // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter will unset the stored value for this payment method type. 1553 CaptureMethod *string `form:"capture_method"` 1554 // [Deprecated] This is a legacy parameter that no longer has any function. 1555 PersistentToken *string `form:"persistent_token"` 1556 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1557 // 1558 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1559 // 1560 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1561 // 1562 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1563 SetupFutureUsage *string `form:"setup_future_usage"` 1564 } 1565 1566 // If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. 1567 type PaymentIntentPaymentMethodOptionsMobilepayParams struct { 1568 // Controls when the funds will be captured from the customer's account. 1569 // 1570 // If provided, this parameter will override the top level behavior of `capture_method` when finalizing the payment with this payment method type. 1571 // 1572 // If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter will unset the stored value for this payment method type. 1573 CaptureMethod *string `form:"capture_method"` 1574 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1575 // 1576 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1577 // 1578 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1579 // 1580 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1581 SetupFutureUsage *string `form:"setup_future_usage"` 1582 } 1583 1584 // If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. 1585 type PaymentIntentPaymentMethodOptionsOXXOParams struct { 1586 // 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. 1587 ExpiresAfterDays *int64 `form:"expires_after_days"` 1588 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1589 // 1590 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1591 // 1592 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1593 // 1594 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1595 SetupFutureUsage *string `form:"setup_future_usage"` 1596 } 1597 1598 // If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. 1599 type PaymentIntentPaymentMethodOptionsP24Params struct { 1600 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1601 // 1602 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1603 // 1604 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1605 // 1606 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1607 SetupFutureUsage *string `form:"setup_future_usage"` 1608 // Confirm that the payer has accepted the P24 terms and conditions. 1609 TOSShownAndAccepted *bool `form:"tos_shown_and_accepted"` 1610 } 1611 1612 // If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. 1613 type PaymentIntentPaymentMethodOptionsPayNowParams struct { 1614 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1615 // 1616 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1617 // 1618 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1619 // 1620 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1621 SetupFutureUsage *string `form:"setup_future_usage"` 1622 } 1623 1624 // If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. 1625 type PaymentIntentPaymentMethodOptionsPaypalParams struct { 1626 // Controls when the funds will be captured from the customer's account. 1627 CaptureMethod *string `form:"capture_method"` 1628 // [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to. 1629 PreferredLocale *string `form:"preferred_locale"` 1630 // 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. 1631 Reference *string `form:"reference"` 1632 // The risk correlation ID for an on-session payment using a saved PayPal payment method. 1633 RiskCorrelationID *string `form:"risk_correlation_id"` 1634 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1635 // 1636 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1637 // 1638 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1639 // 1640 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1641 SetupFutureUsage *string `form:"setup_future_usage"` 1642 } 1643 1644 // If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options. 1645 type PaymentIntentPaymentMethodOptionsPixParams struct { 1646 // The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds. 1647 ExpiresAfterSeconds *int64 `form:"expires_after_seconds"` 1648 // The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future). Defaults to 1 day in the future. 1649 ExpiresAt *int64 `form:"expires_at"` 1650 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1651 // 1652 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1653 // 1654 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1655 // 1656 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1657 SetupFutureUsage *string `form:"setup_future_usage"` 1658 } 1659 1660 // If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. 1661 type PaymentIntentPaymentMethodOptionsPromptPayParams struct { 1662 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1663 // 1664 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1665 // 1666 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1667 // 1668 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1669 SetupFutureUsage *string `form:"setup_future_usage"` 1670 } 1671 1672 // If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. 1673 type PaymentIntentPaymentMethodOptionsRevolutPayParams struct { 1674 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1675 // 1676 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1677 // 1678 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1679 SetupFutureUsage *string `form:"setup_future_usage"` 1680 } 1681 1682 // Additional fields for Mandate creation 1683 type PaymentIntentPaymentMethodOptionsSEPADebitMandateOptionsParams struct{} 1684 1685 // If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options. 1686 type PaymentIntentPaymentMethodOptionsSEPADebitParams struct { 1687 // Additional fields for Mandate creation 1688 MandateOptions *PaymentIntentPaymentMethodOptionsSEPADebitMandateOptionsParams `form:"mandate_options"` 1689 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1690 // 1691 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1692 // 1693 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1694 // 1695 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1696 SetupFutureUsage *string `form:"setup_future_usage"` 1697 } 1698 1699 // If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options. 1700 type PaymentIntentPaymentMethodOptionsSofortParams struct { 1701 // Language shown to the payer on redirect. 1702 PreferredLanguage *string `form:"preferred_language"` 1703 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1704 // 1705 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1706 // 1707 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1708 // 1709 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1710 SetupFutureUsage *string `form:"setup_future_usage"` 1711 } 1712 1713 // If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. 1714 type PaymentIntentPaymentMethodOptionsSwishParams struct { 1715 // The order ID displayed in the Swish app after the payment is authorized. 1716 Reference *string `form:"reference"` 1717 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1718 // 1719 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1720 // 1721 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1722 // 1723 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1724 SetupFutureUsage *string `form:"setup_future_usage"` 1725 } 1726 1727 // Additional fields for Financial Connections Session creation 1728 type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsParams struct { 1729 // 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`. 1730 Permissions []*string `form:"permissions"` 1731 // List of data features that you would like to retrieve upon account creation. 1732 Prefetch []*string `form:"prefetch"` 1733 // 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. 1734 ReturnURL *string `form:"return_url"` 1735 } 1736 1737 // Additional fields for Mandate creation 1738 type PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsParams struct { 1739 // The method used to collect offline mandate customer acceptance. 1740 CollectionMethod *string `form:"collection_method"` 1741 } 1742 1743 // Additional fields for network related functions 1744 type PaymentIntentPaymentMethodOptionsUSBankAccountNetworksParams struct { 1745 // Triggers validations to run across the selected networks 1746 Requested []*string `form:"requested"` 1747 } 1748 1749 // If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. 1750 type PaymentIntentPaymentMethodOptionsUSBankAccountParams struct { 1751 // Additional fields for Financial Connections Session creation 1752 FinancialConnections *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsParams `form:"financial_connections"` 1753 // Additional fields for Mandate creation 1754 MandateOptions *PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsParams `form:"mandate_options"` 1755 // Additional fields for network related functions 1756 Networks *PaymentIntentPaymentMethodOptionsUSBankAccountNetworksParams `form:"networks"` 1757 // Preferred transaction settlement speed 1758 PreferredSettlementSpeed *string `form:"preferred_settlement_speed"` 1759 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1760 // 1761 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1762 // 1763 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1764 // 1765 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1766 SetupFutureUsage *string `form:"setup_future_usage"` 1767 // Bank account verification method. 1768 VerificationMethod *string `form:"verification_method"` 1769 } 1770 1771 // If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. 1772 type PaymentIntentPaymentMethodOptionsWeChatPayParams struct { 1773 // The app ID registered with WeChat Pay. Only required when client is ios or android. 1774 AppID *string `form:"app_id"` 1775 // The client type that the end customer will pay from 1776 Client *string `form:"client"` 1777 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1778 // 1779 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1780 // 1781 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1782 // 1783 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1784 SetupFutureUsage *string `form:"setup_future_usage"` 1785 } 1786 1787 // If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. 1788 type PaymentIntentPaymentMethodOptionsZipParams struct { 1789 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1790 // 1791 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1792 // 1793 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1794 // 1795 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1796 SetupFutureUsage *string `form:"setup_future_usage"` 1797 } 1798 1799 // Payment method-specific configuration for this PaymentIntent. 1800 type PaymentIntentPaymentMethodOptionsParams struct { 1801 // If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. 1802 ACSSDebit *PaymentIntentPaymentMethodOptionsACSSDebitParams `form:"acss_debit"` 1803 // If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. 1804 Affirm *PaymentIntentPaymentMethodOptionsAffirmParams `form:"affirm"` 1805 // If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options. 1806 AfterpayClearpay *PaymentIntentPaymentMethodOptionsAfterpayClearpayParams `form:"afterpay_clearpay"` 1807 // If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. 1808 Alipay *PaymentIntentPaymentMethodOptionsAlipayParams `form:"alipay"` 1809 // If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options. 1810 AUBECSDebit *PaymentIntentPaymentMethodOptionsAUBECSDebitParams `form:"au_becs_debit"` 1811 // If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options. 1812 BACSDebit *PaymentIntentPaymentMethodOptionsBACSDebitParams `form:"bacs_debit"` 1813 // If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. 1814 Bancontact *PaymentIntentPaymentMethodOptionsBancontactParams `form:"bancontact"` 1815 // If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. 1816 BLIK *PaymentIntentPaymentMethodOptionsBLIKParams `form:"blik"` 1817 // If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. 1818 Boleto *PaymentIntentPaymentMethodOptionsBoletoParams `form:"boleto"` 1819 // Configuration for any card payments attempted on this PaymentIntent. 1820 Card *PaymentIntentPaymentMethodOptionsCardParams `form:"card"` 1821 // If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. 1822 CardPresent *PaymentIntentPaymentMethodOptionsCardPresentParams `form:"card_present"` 1823 // If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. 1824 CashApp *PaymentIntentPaymentMethodOptionsCashAppParams `form:"cashapp"` 1825 // If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options. 1826 CustomerBalance *PaymentIntentPaymentMethodOptionsCustomerBalanceParams `form:"customer_balance"` 1827 // If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. 1828 EPS *PaymentIntentPaymentMethodOptionsEPSParams `form:"eps"` 1829 // If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. 1830 FPX *PaymentIntentPaymentMethodOptionsFPXParams `form:"fpx"` 1831 // If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options. 1832 Giropay *PaymentIntentPaymentMethodOptionsGiropayParams `form:"giropay"` 1833 // If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options. 1834 Grabpay *PaymentIntentPaymentMethodOptionsGrabpayParams `form:"grabpay"` 1835 // If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options. 1836 IDEAL *PaymentIntentPaymentMethodOptionsIDEALParams `form:"ideal"` 1837 // If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. 1838 InteracPresent *PaymentIntentPaymentMethodOptionsInteracPresentParams `form:"interac_present"` 1839 // If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. 1840 Klarna *PaymentIntentPaymentMethodOptionsKlarnaParams `form:"klarna"` 1841 // If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. 1842 Konbini *PaymentIntentPaymentMethodOptionsKonbiniParams `form:"konbini"` 1843 // If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. 1844 Link *PaymentIntentPaymentMethodOptionsLinkParams `form:"link"` 1845 // If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. 1846 Mobilepay *PaymentIntentPaymentMethodOptionsMobilepayParams `form:"mobilepay"` 1847 // If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. 1848 OXXO *PaymentIntentPaymentMethodOptionsOXXOParams `form:"oxxo"` 1849 // If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. 1850 P24 *PaymentIntentPaymentMethodOptionsP24Params `form:"p24"` 1851 // If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. 1852 PayNow *PaymentIntentPaymentMethodOptionsPayNowParams `form:"paynow"` 1853 // If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. 1854 Paypal *PaymentIntentPaymentMethodOptionsPaypalParams `form:"paypal"` 1855 // If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options. 1856 Pix *PaymentIntentPaymentMethodOptionsPixParams `form:"pix"` 1857 // If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. 1858 PromptPay *PaymentIntentPaymentMethodOptionsPromptPayParams `form:"promptpay"` 1859 // If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. 1860 RevolutPay *PaymentIntentPaymentMethodOptionsRevolutPayParams `form:"revolut_pay"` 1861 // If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options. 1862 SEPADebit *PaymentIntentPaymentMethodOptionsSEPADebitParams `form:"sepa_debit"` 1863 // If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options. 1864 Sofort *PaymentIntentPaymentMethodOptionsSofortParams `form:"sofort"` 1865 // If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. 1866 Swish *PaymentIntentPaymentMethodOptionsSwishParams `form:"swish"` 1867 // If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. 1868 USBankAccount *PaymentIntentPaymentMethodOptionsUSBankAccountParams `form:"us_bank_account"` 1869 // If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. 1870 WeChatPay *PaymentIntentPaymentMethodOptionsWeChatPayParams `form:"wechat_pay"` 1871 // If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. 1872 Zip *PaymentIntentPaymentMethodOptionsZipParams `form:"zip"` 1873 } 1874 1875 // Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session). 1876 type PaymentIntentRadarOptionsParams struct { 1877 // 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. 1878 Session *string `form:"session"` 1879 } 1880 1881 // The parameters that you can use to automatically create a Transfer. 1882 // Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). 1883 type PaymentIntentTransferDataParams struct { 1884 // The amount that will be transferred automatically when a charge succeeds. 1885 // The amount is capped at the total transaction amount and if no amount is set, 1886 // the full amount is transferred. 1887 // 1888 // If you intend to collect a fee and you need a more robust reporting experience, using 1889 // [application_fee_amount](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-application_fee_amount) 1890 // might be a better fit for your integration. 1891 Amount *int64 `form:"amount"` 1892 // If specified, successful charges will be attributed to the destination 1893 // account for tax reporting, and the funds from charges will be transferred 1894 // to the destination account. The ID of the resulting transfer will be 1895 // returned on the successful charge's `transfer` field. 1896 Destination *string `form:"destination"` 1897 } 1898 1899 // Creates a PaymentIntent object. 1900 // 1901 // After the PaymentIntent is created, attach a payment method and [confirm](https://stripe.com/docs/api/payment_intents/confirm) 1902 // to continue the payment. Learn more about <a href="/docs/payments/payment-intents">the available payment flows 1903 // with the Payment Intents API. 1904 // 1905 // When you use confirm=true during creation, it's equivalent to creating 1906 // and confirming the PaymentIntent in the same call. You can use any parameters 1907 // available in the [confirm API](https://stripe.com/docs/api/payment_intents/confirm) when you supply 1908 // confirm=true. 1909 type PaymentIntentParams struct { 1910 Params `form:"*"` 1911 // 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). 1912 Amount *int64 `form:"amount"` 1913 // 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). 1914 ApplicationFeeAmount *int64 `form:"application_fee_amount"` 1915 // 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. 1916 AutomaticPaymentMethods *PaymentIntentAutomaticPaymentMethodsParams `form:"automatic_payment_methods"` 1917 // Controls when the funds will be captured from the customer's account. 1918 CaptureMethod *string `form:"capture_method"` 1919 // The client secret of the PaymentIntent. We require it if you use a publishable key to retrieve the source. 1920 ClientSecret *string `form:"client_secret"` 1921 // 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). 1922 Confirm *bool `form:"confirm"` 1923 // Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment. 1924 ConfirmationMethod *string `form:"confirmation_method"` 1925 // ID of the ConfirmationToken used to confirm this PaymentIntent. 1926 // 1927 // 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. 1928 ConfirmationToken *string `form:"confirmation_token"` 1929 // 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). 1930 Currency *string `form:"currency"` 1931 // ID of the Customer this PaymentIntent belongs to, if one exists. 1932 // 1933 // Payment methods attached to other Customers cannot be used with this PaymentIntent. 1934 // 1935 // If present in combination with [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage), this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. 1936 Customer *string `form:"customer"` 1937 // An arbitrary string attached to the object. Often useful for displaying to users. 1938 Description *string `form:"description"` 1939 // Specifies which fields in the response should be expanded. 1940 Expand []*string `form:"expand"` 1941 // 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). 1942 Mandate *string `form:"mandate"` 1943 // 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). 1944 MandateData *PaymentIntentMandateDataParams `form:"mandate_data"` 1945 // 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`. 1946 Metadata map[string]string `form:"metadata"` 1947 // 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). 1948 OnBehalfOf *string `form:"on_behalf_of"` 1949 // 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. 1950 // 1951 // 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. 1952 PaymentMethod *string `form:"payment_method"` 1953 // The ID of the payment method configuration to use with this PaymentIntent. 1954 PaymentMethodConfiguration *string `form:"payment_method_configuration"` 1955 // If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear 1956 // in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) 1957 // property on the PaymentIntent. 1958 PaymentMethodData *PaymentIntentPaymentMethodDataParams `form:"payment_method_data"` 1959 // Payment-method-specific configuration for this PaymentIntent. 1960 PaymentMethodOptions *PaymentIntentPaymentMethodOptionsParams `form:"payment_method_options"` 1961 // 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). 1962 PaymentMethodTypes []*string `form:"payment_method_types"` 1963 // Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session). 1964 RadarOptions *PaymentIntentRadarOptionsParams `form:"radar_options"` 1965 // 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). 1966 ReceiptEmail *string `form:"receipt_email"` 1967 // 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). 1968 ReturnURL *string `form:"return_url"` 1969 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 1970 // 1971 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 1972 // 1973 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 1974 // 1975 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 1976 SetupFutureUsage *string `form:"setup_future_usage"` 1977 // Shipping information for this PaymentIntent. 1978 Shipping *ShippingDetailsParams `form:"shipping"` 1979 // For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long. 1980 StatementDescriptor *string `form:"statement_descriptor"` 1981 // Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that's set on the account to form the complete statement descriptor. The concatenated descriptor must contain 1-22 characters. 1982 StatementDescriptorSuffix *string `form:"statement_descriptor_suffix"` 1983 // 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). 1984 TransferData *PaymentIntentTransferDataParams `form:"transfer_data"` 1985 // 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). 1986 TransferGroup *string `form:"transfer_group"` 1987 // These parameters apply only for paymentIntent.New with `confirm=true` 1988 // 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). 1989 ErrorOnRequiresAction *bool `form:"error_on_requires_action"` 1990 // 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). 1991 OffSession *bool `form:"off_session"` 1992 // Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. 1993 UseStripeSDK *bool `form:"use_stripe_sdk"` 1994 } 1995 1996 // AddExpand appends a new field to expand. 1997 func (p *PaymentIntentParams) AddExpand(f string) { 1998 p.Expand = append(p.Expand, &f) 1999 } 2000 2001 // AddMetadata adds a new key-value pair to the Metadata. 2002 func (p *PaymentIntentParams) AddMetadata(key string, value string) { 2003 if p.Metadata == nil { 2004 p.Metadata = make(map[string]string) 2005 } 2006 2007 p.Metadata[key] = value 2008 } 2009 2010 // Search for PaymentIntents you've previously created using Stripe's [Search Query Language](https://stripe.com/docs/search#search-query-language). 2011 // Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating 2012 // conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up 2013 // to an hour behind during outages. Search functionality is not available to merchants in India. 2014 type PaymentIntentSearchParams struct { 2015 SearchParams `form:"*"` 2016 // Specifies which fields in the response should be expanded. 2017 Expand []*string `form:"expand"` 2018 // 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. 2019 Page *string `form:"page"` 2020 } 2021 2022 // AddExpand appends a new field to expand. 2023 func (p *PaymentIntentSearchParams) AddExpand(f string) { 2024 p.Expand = append(p.Expand, &f) 2025 } 2026 2027 // Manually reconcile the remaining amount for a customer_balance PaymentIntent. 2028 type PaymentIntentApplyCustomerBalanceParams struct { 2029 Params `form:"*"` 2030 // Amount that you intend to apply to this PaymentIntent from the customer's cash balance. 2031 // 2032 // 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). 2033 // 2034 // The maximum amount is the amount of the PaymentIntent. 2035 // 2036 // When you omit the amount, it defaults to the remaining amount requested on the PaymentIntent. 2037 Amount *int64 `form:"amount"` 2038 // 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). 2039 Currency *string `form:"currency"` 2040 // Specifies which fields in the response should be expanded. 2041 Expand []*string `form:"expand"` 2042 } 2043 2044 // AddExpand appends a new field to expand. 2045 func (p *PaymentIntentApplyCustomerBalanceParams) AddExpand(f string) { 2046 p.Expand = append(p.Expand, &f) 2047 } 2048 2049 // 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. 2050 // 2051 // 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. 2052 // 2053 // You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead. 2054 type PaymentIntentCancelParams struct { 2055 Params `form:"*"` 2056 // Reason for canceling this PaymentIntent. Possible values are: `duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned` 2057 CancellationReason *string `form:"cancellation_reason"` 2058 // Specifies which fields in the response should be expanded. 2059 Expand []*string `form:"expand"` 2060 } 2061 2062 // AddExpand appends a new field to expand. 2063 func (p *PaymentIntentCancelParams) AddExpand(f string) { 2064 p.Expand = append(p.Expand, &f) 2065 } 2066 2067 // Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. 2068 // 2069 // Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. 2070 // 2071 // Learn more about [separate authorization and capture](https://stripe.com/docs/payments/capture-later). 2072 type PaymentIntentCaptureParams struct { 2073 Params `form:"*"` 2074 // 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. 2075 AmountToCapture *int64 `form:"amount_to_capture"` 2076 // 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). 2077 ApplicationFeeAmount *int64 `form:"application_fee_amount"` 2078 // Specifies which fields in the response should be expanded. 2079 Expand []*string `form:"expand"` 2080 // 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. 2081 FinalCapture *bool `form:"final_capture"` 2082 // 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`. 2083 Metadata map[string]string `form:"metadata"` 2084 // For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long. 2085 StatementDescriptor *string `form:"statement_descriptor"` 2086 // Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that's set on the account to form the complete statement descriptor. The concatenated descriptor must be 1-22 characters long. 2087 StatementDescriptorSuffix *string `form:"statement_descriptor_suffix"` 2088 // The parameters that you can use to automatically create a transfer after the payment 2089 // is captured. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). 2090 TransferData *PaymentIntentTransferDataParams `form:"transfer_data"` 2091 } 2092 2093 // AddExpand appends a new field to expand. 2094 func (p *PaymentIntentCaptureParams) AddExpand(f string) { 2095 p.Expand = append(p.Expand, &f) 2096 } 2097 2098 // AddMetadata adds a new key-value pair to the Metadata. 2099 func (p *PaymentIntentCaptureParams) AddMetadata(key string, value string) { 2100 if p.Metadata == nil { 2101 p.Metadata = make(map[string]string) 2102 } 2103 2104 p.Metadata[key] = value 2105 } 2106 2107 // Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session). 2108 type PaymentIntentConfirmRadarOptionsParams struct { 2109 // 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. 2110 Session *string `form:"session"` 2111 } 2112 2113 // Confirm that your customer intends to pay with current or provided 2114 // payment method. Upon confirmation, the PaymentIntent will attempt to initiate 2115 // a payment. 2116 // If the selected payment method requires additional authentication steps, the 2117 // PaymentIntent will transition to the requires_action status and 2118 // suggest additional actions via next_action. If payment fails, 2119 // the PaymentIntent transitions to the requires_payment_method status or the 2120 // canceled status if the confirmation limit is reached. If 2121 // payment succeeds, the PaymentIntent will transition to the succeeded 2122 // status (or requires_capture, if capture_method is set to manual). 2123 // If the confirmation_method is automatic, payment may be attempted 2124 // using our [client SDKs](https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) 2125 // and the PaymentIntent's [client_secret](https://stripe.com/docs/api#payment_intent_object-client_secret). 2126 // After next_actions are handled by the client, no additional 2127 // confirmation is required to complete the payment. 2128 // If the confirmation_method is manual, all payment attempts must be 2129 // initiated using a secret key. 2130 // If any actions are required for the payment, the PaymentIntent will 2131 // return to the requires_confirmation state 2132 // after those actions are completed. Your server needs to then 2133 // explicitly re-confirm the PaymentIntent to initiate the next payment 2134 // attempt. 2135 type PaymentIntentConfirmParams struct { 2136 Params `form:"*"` 2137 // Controls when the funds will be captured from the customer's account. 2138 CaptureMethod *string `form:"capture_method"` 2139 // ID of the ConfirmationToken used to confirm this PaymentIntent. 2140 // 2141 // 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. 2142 ConfirmationToken *string `form:"confirmation_token"` 2143 // 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). 2144 ErrorOnRequiresAction *bool `form:"error_on_requires_action"` 2145 // Specifies which fields in the response should be expanded. 2146 Expand []*string `form:"expand"` 2147 // ID of the mandate that's used for this payment. 2148 Mandate *string `form:"mandate"` 2149 MandateData *PaymentIntentMandateDataParams `form:"mandate_data"` 2150 // 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). 2151 OffSession *bool `form:"off_session"` 2152 // 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. 2153 PaymentMethod *string `form:"payment_method"` 2154 // If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear 2155 // in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) 2156 // property on the PaymentIntent. 2157 PaymentMethodData *PaymentIntentPaymentMethodDataParams `form:"payment_method_data"` 2158 // Payment method-specific configuration for this PaymentIntent. 2159 PaymentMethodOptions *PaymentIntentPaymentMethodOptionsParams `form:"payment_method_options"` 2160 // Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session). 2161 RadarOptions *PaymentIntentConfirmRadarOptionsParams `form:"radar_options"` 2162 // 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). 2163 ReceiptEmail *string `form:"receipt_email"` 2164 // The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. 2165 // If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. 2166 // This parameter is only used for cards and other redirect-based payment methods. 2167 ReturnURL *string `form:"return_url"` 2168 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2169 // 2170 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2171 // 2172 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2173 // 2174 // If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session`. 2175 SetupFutureUsage *string `form:"setup_future_usage"` 2176 // Shipping information for this PaymentIntent. 2177 Shipping *ShippingDetailsParams `form:"shipping"` 2178 // Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. 2179 UseStripeSDK *bool `form:"use_stripe_sdk"` 2180 } 2181 2182 // AddExpand appends a new field to expand. 2183 func (p *PaymentIntentConfirmParams) AddExpand(f string) { 2184 p.Expand = append(p.Expand, &f) 2185 } 2186 2187 // The parameters used to automatically create a transfer after the payment is captured. 2188 // Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). 2189 type PaymentIntentIncrementAuthorizationTransferDataParams struct { 2190 // The amount that will be transferred automatically when a charge succeeds. 2191 Amount *int64 `form:"amount"` 2192 } 2193 2194 // Perform an incremental authorization on an eligible 2195 // [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the 2196 // PaymentIntent's status must be requires_capture and 2197 // [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) 2198 // must be true. 2199 // 2200 // Incremental authorizations attempt to increase the authorized amount on 2201 // your customer's card to the new, higher amount provided. Similar to the 2202 // initial authorization, incremental authorizations can be declined. A 2203 // single PaymentIntent can call this endpoint multiple times to further 2204 // increase the authorized amount. 2205 // 2206 // If the incremental authorization succeeds, the PaymentIntent object 2207 // returns with the updated 2208 // [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). 2209 // If the incremental authorization fails, a 2210 // [card_declined](https://stripe.com/docs/error-codes#card-declined) error returns, and no other 2211 // fields on the PaymentIntent or Charge update. The PaymentIntent 2212 // object remains capturable for the previously authorized amount. 2213 // 2214 // Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. 2215 // After it's captured, a PaymentIntent can no longer be incremented. 2216 // 2217 // Learn more about [incremental authorizations](https://stripe.com/docs/terminal/features/incremental-authorizations). 2218 type PaymentIntentIncrementAuthorizationParams struct { 2219 Params `form:"*"` 2220 // The updated total amount that you intend to collect from the cardholder. This amount must be greater than the currently authorized amount. 2221 Amount *int64 `form:"amount"` 2222 // 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). 2223 ApplicationFeeAmount *int64 `form:"application_fee_amount"` 2224 // An arbitrary string attached to the object. Often useful for displaying to users. 2225 Description *string `form:"description"` 2226 // Specifies which fields in the response should be expanded. 2227 Expand []*string `form:"expand"` 2228 // 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`. 2229 Metadata map[string]string `form:"metadata"` 2230 // For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long. 2231 StatementDescriptor *string `form:"statement_descriptor"` 2232 // The parameters used to automatically create a transfer after the payment is captured. 2233 // Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). 2234 TransferData *PaymentIntentIncrementAuthorizationTransferDataParams `form:"transfer_data"` 2235 } 2236 2237 // AddExpand appends a new field to expand. 2238 func (p *PaymentIntentIncrementAuthorizationParams) AddExpand(f string) { 2239 p.Expand = append(p.Expand, &f) 2240 } 2241 2242 // AddMetadata adds a new key-value pair to the Metadata. 2243 func (p *PaymentIntentIncrementAuthorizationParams) AddMetadata(key string, value string) { 2244 if p.Metadata == nil { 2245 p.Metadata = make(map[string]string) 2246 } 2247 2248 p.Metadata[key] = value 2249 } 2250 2251 // Verifies microdeposits on a PaymentIntent object. 2252 type PaymentIntentVerifyMicrodepositsParams struct { 2253 Params `form:"*"` 2254 // Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account. 2255 Amounts []*int64 `form:"amounts"` 2256 // A six-character code starting with SM present in the microdeposit sent to the bank account. 2257 DescriptorCode *string `form:"descriptor_code"` 2258 // Specifies which fields in the response should be expanded. 2259 Expand []*string `form:"expand"` 2260 } 2261 2262 // AddExpand appends a new field to expand. 2263 func (p *PaymentIntentVerifyMicrodepositsParams) AddExpand(f string) { 2264 p.Expand = append(p.Expand, &f) 2265 } 2266 2267 type PaymentIntentAmountDetailsTip struct { 2268 // Portion of the amount that corresponds to a tip. 2269 Amount int64 `json:"amount"` 2270 } 2271 type PaymentIntentAmountDetails struct { 2272 Tip *PaymentIntentAmountDetailsTip `json:"tip"` 2273 } 2274 2275 // Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) 2276 type PaymentIntentAutomaticPaymentMethods struct { 2277 // Controls whether this PaymentIntent will accept redirect-based payment methods. 2278 // 2279 // 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. 2280 AllowRedirects PaymentIntentAutomaticPaymentMethodsAllowRedirects `json:"allow_redirects"` 2281 // Automatically calculates compatible payment methods 2282 Enabled bool `json:"enabled"` 2283 } 2284 type PaymentIntentNextActionAlipayHandleRedirect struct { 2285 // 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. 2286 NativeData string `json:"native_data"` 2287 // The native URL you must redirect your customer to in order to authenticate the payment in an iOS App. 2288 NativeURL string `json:"native_url"` 2289 // If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion. 2290 ReturnURL string `json:"return_url"` 2291 // The URL you must redirect your customer to in order to authenticate the payment. 2292 URL string `json:"url"` 2293 } 2294 type PaymentIntentNextActionBoletoDisplayDetails struct { 2295 // The timestamp after which the boleto expires. 2296 ExpiresAt int64 `json:"expires_at"` 2297 // The URL to the hosted boleto voucher page, which allows customers to view the boleto voucher. 2298 HostedVoucherURL string `json:"hosted_voucher_url"` 2299 // The boleto number. 2300 Number string `json:"number"` 2301 // The URL to the downloadable boleto voucher PDF. 2302 PDF string `json:"pdf"` 2303 } 2304 type PaymentIntentNextActionCardAwaitNotification struct { 2305 // The time that payment will be attempted. If customer approval is required, they need to provide approval before this time. 2306 ChargeAttemptAt int64 `json:"charge_attempt_at"` 2307 // 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. 2308 CustomerApprovalRequired bool `json:"customer_approval_required"` 2309 } 2310 type PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCodeQRCode struct { 2311 // The date (unix timestamp) when the QR code expires. 2312 ExpiresAt int64 `json:"expires_at"` 2313 // The image_url_png string used to render QR code 2314 ImageURLPNG string `json:"image_url_png"` 2315 // The image_url_svg string used to render QR code 2316 ImageURLSVG string `json:"image_url_svg"` 2317 } 2318 type PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCode struct { 2319 // 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. 2320 HostedInstructionsURL string `json:"hosted_instructions_url"` 2321 // The url for mobile redirect based auth 2322 MobileAuthURL string `json:"mobile_auth_url"` 2323 QRCode *PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCodeQRCode `json:"qr_code"` 2324 } 2325 2326 // ABA Records contain U.S. bank account details per the ABA format. 2327 type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressABA struct { 2328 // The ABA account number 2329 AccountNumber string `json:"account_number"` 2330 // The bank name 2331 BankName string `json:"bank_name"` 2332 // The ABA routing number 2333 RoutingNumber string `json:"routing_number"` 2334 } 2335 2336 // Iban Records contain E.U. bank account details per the SEPA format. 2337 type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressIBAN struct { 2338 // The name of the person or business that owns the bank account 2339 AccountHolderName string `json:"account_holder_name"` 2340 // The BIC/SWIFT code of the account. 2341 BIC string `json:"bic"` 2342 // Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). 2343 Country string `json:"country"` 2344 // The IBAN of the account. 2345 IBAN string `json:"iban"` 2346 } 2347 2348 // Sort Code Records contain U.K. bank account details per the sort code format. 2349 type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSortCode struct { 2350 // The name of the person or business that owns the bank account 2351 AccountHolderName string `json:"account_holder_name"` 2352 // The account number 2353 AccountNumber string `json:"account_number"` 2354 // The six-digit sort code 2355 SortCode string `json:"sort_code"` 2356 } 2357 2358 // SPEI Records contain Mexico bank account details per the SPEI format. 2359 type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSpei struct { 2360 // The three-digit bank code 2361 BankCode string `json:"bank_code"` 2362 // The short banking institution name 2363 BankName string `json:"bank_name"` 2364 // The CLABE number 2365 Clabe string `json:"clabe"` 2366 } 2367 2368 // SWIFT Records contain U.S. bank account details per the SWIFT format. 2369 type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSwift struct { 2370 // The account number 2371 AccountNumber string `json:"account_number"` 2372 // The bank name 2373 BankName string `json:"bank_name"` 2374 // The SWIFT code 2375 SwiftCode string `json:"swift_code"` 2376 } 2377 2378 // Zengin Records contain Japan bank account details per the Zengin format. 2379 type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressZengin struct { 2380 // The account holder name 2381 AccountHolderName string `json:"account_holder_name"` 2382 // The account number 2383 AccountNumber string `json:"account_number"` 2384 // The bank account type. In Japan, this can only be `futsu` or `toza`. 2385 AccountType string `json:"account_type"` 2386 // The bank code of the account 2387 BankCode string `json:"bank_code"` 2388 // The bank name of the account 2389 BankName string `json:"bank_name"` 2390 // The branch code of the account 2391 BranchCode string `json:"branch_code"` 2392 // The branch name of the account 2393 BranchName string `json:"branch_name"` 2394 } 2395 2396 // A list of financial addresses that can be used to fund the customer balance 2397 type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress struct { 2398 // ABA Records contain U.S. bank account details per the ABA format. 2399 ABA *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressABA `json:"aba"` 2400 // Iban Records contain E.U. bank account details per the SEPA format. 2401 IBAN *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressIBAN `json:"iban"` 2402 // Sort Code Records contain U.K. bank account details per the sort code format. 2403 SortCode *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSortCode `json:"sort_code"` 2404 // SPEI Records contain Mexico bank account details per the SPEI format. 2405 Spei *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSpei `json:"spei"` 2406 // The payment networks supported by this FinancialAddress 2407 SupportedNetworks []PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSupportedNetwork `json:"supported_networks"` 2408 // SWIFT Records contain U.S. bank account details per the SWIFT format. 2409 Swift *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressSwift `json:"swift"` 2410 // The type of financial address 2411 Type PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressType `json:"type"` 2412 // Zengin Records contain Japan bank account details per the Zengin format. 2413 Zengin *PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddressZengin `json:"zengin"` 2414 } 2415 type PaymentIntentNextActionDisplayBankTransferInstructions struct { 2416 // The remaining amount that needs to be transferred to complete the payment. 2417 AmountRemaining int64 `json:"amount_remaining"` 2418 // 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). 2419 Currency Currency `json:"currency"` 2420 // A list of financial addresses that can be used to fund the customer balance 2421 FinancialAddresses []*PaymentIntentNextActionDisplayBankTransferInstructionsFinancialAddress `json:"financial_addresses"` 2422 // A link to a hosted page that guides your customer through completing the transfer. 2423 HostedInstructionsURL string `json:"hosted_instructions_url"` 2424 // A string identifying this payment. Instruct your customer to include this code in the reference or memo field of their bank transfer. 2425 Reference string `json:"reference"` 2426 // Type of bank transfer 2427 Type PaymentIntentNextActionDisplayBankTransferInstructionsType `json:"type"` 2428 } 2429 2430 // FamilyMart instruction details. 2431 type PaymentIntentNextActionKonbiniDisplayDetailsStoresFamilyMart struct { 2432 // The confirmation number. 2433 ConfirmationNumber string `json:"confirmation_number"` 2434 // The payment code. 2435 PaymentCode string `json:"payment_code"` 2436 } 2437 2438 // Lawson instruction details. 2439 type PaymentIntentNextActionKonbiniDisplayDetailsStoresLawson struct { 2440 // The confirmation number. 2441 ConfirmationNumber string `json:"confirmation_number"` 2442 // The payment code. 2443 PaymentCode string `json:"payment_code"` 2444 } 2445 2446 // Ministop instruction details. 2447 type PaymentIntentNextActionKonbiniDisplayDetailsStoresMinistop struct { 2448 // The confirmation number. 2449 ConfirmationNumber string `json:"confirmation_number"` 2450 // The payment code. 2451 PaymentCode string `json:"payment_code"` 2452 } 2453 2454 // Seicomart instruction details. 2455 type PaymentIntentNextActionKonbiniDisplayDetailsStoresSeicomart struct { 2456 // The confirmation number. 2457 ConfirmationNumber string `json:"confirmation_number"` 2458 // The payment code. 2459 PaymentCode string `json:"payment_code"` 2460 } 2461 type PaymentIntentNextActionKonbiniDisplayDetailsStores struct { 2462 // FamilyMart instruction details. 2463 FamilyMart *PaymentIntentNextActionKonbiniDisplayDetailsStoresFamilyMart `json:"familymart"` 2464 // Lawson instruction details. 2465 Lawson *PaymentIntentNextActionKonbiniDisplayDetailsStoresLawson `json:"lawson"` 2466 // Ministop instruction details. 2467 Ministop *PaymentIntentNextActionKonbiniDisplayDetailsStoresMinistop `json:"ministop"` 2468 // Seicomart instruction details. 2469 Seicomart *PaymentIntentNextActionKonbiniDisplayDetailsStoresSeicomart `json:"seicomart"` 2470 } 2471 type PaymentIntentNextActionKonbiniDisplayDetails struct { 2472 // The timestamp at which the pending Konbini payment expires. 2473 ExpiresAt int64 `json:"expires_at"` 2474 // The URL for the Konbini payment instructions page, which allows customers to view and print a Konbini voucher. 2475 HostedVoucherURL string `json:"hosted_voucher_url"` 2476 Stores *PaymentIntentNextActionKonbiniDisplayDetailsStores `json:"stores"` 2477 } 2478 type PaymentIntentNextActionOXXODisplayDetails struct { 2479 // The timestamp after which the OXXO voucher expires. 2480 ExpiresAfter int64 `json:"expires_after"` 2481 // The URL for the hosted OXXO voucher page, which allows customers to view and print an OXXO voucher. 2482 HostedVoucherURL string `json:"hosted_voucher_url"` 2483 // OXXO reference number. 2484 Number string `json:"number"` 2485 } 2486 type PaymentIntentNextActionPayNowDisplayQRCode struct { 2487 // The raw data string used to generate QR code, it should be used together with QR code library. 2488 Data string `json:"data"` 2489 // The URL to the hosted PayNow instructions page, which allows customers to view the PayNow QR code. 2490 HostedInstructionsURL string `json:"hosted_instructions_url"` 2491 // The image_url_png string used to render QR code 2492 ImageURLPNG string `json:"image_url_png"` 2493 // The image_url_svg string used to render QR code 2494 ImageURLSVG string `json:"image_url_svg"` 2495 } 2496 type PaymentIntentNextActionPixDisplayQRCode struct { 2497 // The raw data string used to generate QR code, it should be used together with QR code library. 2498 Data string `json:"data"` 2499 // The date (unix timestamp) when the PIX expires. 2500 ExpiresAt int64 `json:"expires_at"` 2501 // The URL to the hosted pix instructions page, which allows customers to view the pix QR code. 2502 HostedInstructionsURL string `json:"hosted_instructions_url"` 2503 // The image_url_png string used to render png QR code 2504 ImageURLPNG string `json:"image_url_png"` 2505 // The image_url_svg string used to render svg QR code 2506 ImageURLSVG string `json:"image_url_svg"` 2507 } 2508 type PaymentIntentNextActionPromptPayDisplayQRCode struct { 2509 // The raw data string used to generate QR code, it should be used together with QR code library. 2510 Data string `json:"data"` 2511 // The URL to the hosted PromptPay instructions page, which allows customers to view the PromptPay QR code. 2512 HostedInstructionsURL string `json:"hosted_instructions_url"` 2513 // The PNG path used to render the QR code, can be used as the source in an HTML img tag 2514 ImageURLPNG string `json:"image_url_png"` 2515 // The SVG path used to render the QR code, can be used as the source in an HTML img tag 2516 ImageURLSVG string `json:"image_url_svg"` 2517 } 2518 type PaymentIntentNextActionRedirectToURL struct { 2519 // If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion. 2520 ReturnURL string `json:"return_url"` 2521 // The URL you must redirect your customer to in order to authenticate the payment. 2522 URL string `json:"url"` 2523 } 2524 type PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCodeQRCode struct { 2525 // The raw data string used to generate QR code, it should be used together with QR code library. 2526 Data string `json:"data"` 2527 // The image_url_png string used to render QR code 2528 ImageURLPNG string `json:"image_url_png"` 2529 // The image_url_svg string used to render QR code 2530 ImageURLSVG string `json:"image_url_svg"` 2531 } 2532 type PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCode struct { 2533 // The URL to the hosted Swish instructions page, which allows customers to view the QR code. 2534 HostedInstructionsURL string `json:"hosted_instructions_url"` 2535 // The url for mobile redirect based auth (for internal use only and not typically available in standard API requests). 2536 MobileAuthURL string `json:"mobile_auth_url"` 2537 QRCode *PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCodeQRCode `json:"qr_code"` 2538 } 2539 2540 // 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. 2541 type PaymentIntentNextActionUseStripeSDK struct{} 2542 type PaymentIntentNextActionVerifyWithMicrodeposits struct { 2543 // The timestamp when the microdeposits are expected to land. 2544 ArrivalDate int64 `json:"arrival_date"` 2545 // The URL for the hosted verification page, which allows customers to verify their bank account. 2546 HostedVerificationURL string `json:"hosted_verification_url"` 2547 // The type of the microdeposit sent to the customer. Used to distinguish between different verification methods. 2548 MicrodepositType PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType `json:"microdeposit_type"` 2549 } 2550 type PaymentIntentNextActionWeChatPayDisplayQRCode struct { 2551 // The data being used to generate QR code 2552 Data string `json:"data"` 2553 // The URL to the hosted WeChat Pay instructions page, which allows customers to view the WeChat Pay QR code. 2554 HostedInstructionsURL string `json:"hosted_instructions_url"` 2555 // The base64 image data for a pre-generated QR code 2556 ImageDataURL string `json:"image_data_url"` 2557 // The image_url_png string used to render QR code 2558 ImageURLPNG string `json:"image_url_png"` 2559 // The image_url_svg string used to render QR code 2560 ImageURLSVG string `json:"image_url_svg"` 2561 } 2562 type PaymentIntentNextActionWeChatPayRedirectToAndroidApp struct { 2563 // app_id is the APP ID registered on WeChat open platform 2564 AppID string `json:"app_id"` 2565 // nonce_str is a random string 2566 NonceStr string `json:"nonce_str"` 2567 // package is static value 2568 Package string `json:"package"` 2569 // an unique merchant ID assigned by WeChat Pay 2570 PartnerID string `json:"partner_id"` 2571 // an unique trading ID assigned by WeChat Pay 2572 PrepayID string `json:"prepay_id"` 2573 // A signature 2574 Sign string `json:"sign"` 2575 // Specifies the current time in epoch format 2576 Timestamp string `json:"timestamp"` 2577 } 2578 type PaymentIntentNextActionWeChatPayRedirectToIOSApp struct { 2579 // An universal link that redirect to WeChat Pay app 2580 NativeURL string `json:"native_url"` 2581 } 2582 2583 // 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. 2584 type PaymentIntentNextAction struct { 2585 AlipayHandleRedirect *PaymentIntentNextActionAlipayHandleRedirect `json:"alipay_handle_redirect"` 2586 BoletoDisplayDetails *PaymentIntentNextActionBoletoDisplayDetails `json:"boleto_display_details"` 2587 CardAwaitNotification *PaymentIntentNextActionCardAwaitNotification `json:"card_await_notification"` 2588 CashAppHandleRedirectOrDisplayQRCode *PaymentIntentNextActionCashAppHandleRedirectOrDisplayQRCode `json:"cashapp_handle_redirect_or_display_qr_code"` 2589 DisplayBankTransferInstructions *PaymentIntentNextActionDisplayBankTransferInstructions `json:"display_bank_transfer_instructions"` 2590 KonbiniDisplayDetails *PaymentIntentNextActionKonbiniDisplayDetails `json:"konbini_display_details"` 2591 OXXODisplayDetails *PaymentIntentNextActionOXXODisplayDetails `json:"oxxo_display_details"` 2592 PayNowDisplayQRCode *PaymentIntentNextActionPayNowDisplayQRCode `json:"paynow_display_qr_code"` 2593 PixDisplayQRCode *PaymentIntentNextActionPixDisplayQRCode `json:"pix_display_qr_code"` 2594 PromptPayDisplayQRCode *PaymentIntentNextActionPromptPayDisplayQRCode `json:"promptpay_display_qr_code"` 2595 RedirectToURL *PaymentIntentNextActionRedirectToURL `json:"redirect_to_url"` 2596 SwishHandleRedirectOrDisplayQRCode *PaymentIntentNextActionSwishHandleRedirectOrDisplayQRCode `json:"swish_handle_redirect_or_display_qr_code"` 2597 // 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`. 2598 Type PaymentIntentNextActionType `json:"type"` 2599 // 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. 2600 UseStripeSDK *PaymentIntentNextActionUseStripeSDK `json:"use_stripe_sdk"` 2601 VerifyWithMicrodeposits *PaymentIntentNextActionVerifyWithMicrodeposits `json:"verify_with_microdeposits"` 2602 WeChatPayDisplayQRCode *PaymentIntentNextActionWeChatPayDisplayQRCode `json:"wechat_pay_display_qr_code"` 2603 WeChatPayRedirectToAndroidApp *PaymentIntentNextActionWeChatPayRedirectToAndroidApp `json:"wechat_pay_redirect_to_android_app"` 2604 WeChatPayRedirectToIOSApp *PaymentIntentNextActionWeChatPayRedirectToIOSApp `json:"wechat_pay_redirect_to_ios_app"` 2605 } 2606 2607 // Information about the payment method configuration used for this PaymentIntent. 2608 type PaymentIntentPaymentMethodConfigurationDetails struct { 2609 // ID of the payment method configuration used. 2610 ID string `json:"id"` 2611 // ID of the parent payment method configuration used. 2612 Parent string `json:"parent"` 2613 } 2614 type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions struct { 2615 // A URL for custom mandate text 2616 CustomMandateURL string `json:"custom_mandate_url"` 2617 // Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'. 2618 IntervalDescription string `json:"interval_description"` 2619 // Payment schedule for the mandate. 2620 PaymentSchedule PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule `json:"payment_schedule"` 2621 // Transaction type of the mandate. 2622 TransactionType PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType `json:"transaction_type"` 2623 } 2624 type PaymentIntentPaymentMethodOptionsACSSDebit struct { 2625 MandateOptions *PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions `json:"mandate_options"` 2626 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2627 // 2628 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2629 // 2630 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2631 SetupFutureUsage PaymentIntentPaymentMethodOptionsACSSDebitSetupFutureUsage `json:"setup_future_usage"` 2632 // Bank account verification method. 2633 VerificationMethod PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod `json:"verification_method"` 2634 } 2635 type PaymentIntentPaymentMethodOptionsAffirm struct { 2636 // Controls when the funds will be captured from the customer's account. 2637 CaptureMethod PaymentIntentPaymentMethodOptionsAffirmCaptureMethod `json:"capture_method"` 2638 // Preferred language of the Affirm authorization page that the customer is redirected to. 2639 PreferredLocale string `json:"preferred_locale"` 2640 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2641 // 2642 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2643 // 2644 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2645 SetupFutureUsage PaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage `json:"setup_future_usage"` 2646 } 2647 type PaymentIntentPaymentMethodOptionsAfterpayClearpay struct { 2648 // Controls when the funds will be captured from the customer's account. 2649 CaptureMethod PaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod `json:"capture_method"` 2650 // 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. 2651 // This field differs from the statement descriptor and item name. 2652 Reference string `json:"reference"` 2653 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2654 // 2655 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2656 // 2657 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2658 SetupFutureUsage PaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage `json:"setup_future_usage"` 2659 } 2660 type PaymentIntentPaymentMethodOptionsAlipay struct { 2661 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2662 // 2663 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2664 // 2665 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2666 SetupFutureUsage PaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage `json:"setup_future_usage"` 2667 } 2668 type PaymentIntentPaymentMethodOptionsAUBECSDebit struct { 2669 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2670 // 2671 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2672 // 2673 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2674 SetupFutureUsage PaymentIntentPaymentMethodOptionsAUBECSDebitSetupFutureUsage `json:"setup_future_usage"` 2675 } 2676 type PaymentIntentPaymentMethodOptionsBACSDebit struct { 2677 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2678 // 2679 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2680 // 2681 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2682 SetupFutureUsage PaymentIntentPaymentMethodOptionsBACSDebitSetupFutureUsage `json:"setup_future_usage"` 2683 } 2684 type PaymentIntentPaymentMethodOptionsBancontact struct { 2685 // Preferred language of the Bancontact authorization page that the customer is redirected to. 2686 PreferredLanguage string `json:"preferred_language"` 2687 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2688 // 2689 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2690 // 2691 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2692 SetupFutureUsage PaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage `json:"setup_future_usage"` 2693 } 2694 type PaymentIntentPaymentMethodOptionsBLIK struct { 2695 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2696 // 2697 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2698 // 2699 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2700 SetupFutureUsage PaymentIntentPaymentMethodOptionsBLIKSetupFutureUsage `json:"setup_future_usage"` 2701 } 2702 type PaymentIntentPaymentMethodOptionsBoleto struct { 2703 // 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. 2704 ExpiresAfterDays int64 `json:"expires_after_days"` 2705 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2706 // 2707 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2708 // 2709 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2710 SetupFutureUsage PaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage `json:"setup_future_usage"` 2711 } 2712 2713 // Installment plan selected for this PaymentIntent. 2714 type PaymentIntentPaymentMethodOptionsCardInstallmentsPlan struct { 2715 // For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card. 2716 Count int64 `json:"count"` 2717 // For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. 2718 // One of `month`. 2719 Interval PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval `json:"interval"` 2720 // Type of installment plan, one of `fixed_count`. 2721 Type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType `json:"type"` 2722 } 2723 2724 // Installment details for this payment (Mexico only). 2725 // 2726 // For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). 2727 type PaymentIntentPaymentMethodOptionsCardInstallments struct { 2728 // Installment plans that may be selected for this PaymentIntent. 2729 AvailablePlans []*PaymentIntentPaymentMethodOptionsCardInstallmentsPlan `json:"available_plans"` 2730 // Whether Installments are enabled for this PaymentIntent. 2731 Enabled bool `json:"enabled"` 2732 // Installment plan selected for this PaymentIntent. 2733 Plan *PaymentIntentPaymentMethodOptionsCardInstallmentsPlan `json:"plan"` 2734 } 2735 2736 // Configuration options for setting up an eMandate for cards issued in India. 2737 type PaymentIntentPaymentMethodOptionsCardMandateOptions struct { 2738 // Amount to be charged for future payments. 2739 Amount int64 `json:"amount"` 2740 // 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. 2741 AmountType PaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType `json:"amount_type"` 2742 // A description of the mandate or subscription that is meant to be displayed to the customer. 2743 Description string `json:"description"` 2744 // 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. 2745 EndDate int64 `json:"end_date"` 2746 // Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. 2747 Interval PaymentIntentPaymentMethodOptionsCardMandateOptionsInterval `json:"interval"` 2748 // 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`. 2749 IntervalCount int64 `json:"interval_count"` 2750 // Unique identifier for the mandate or subscription. 2751 Reference string `json:"reference"` 2752 // Start date of the mandate or subscription. Start date should not be lesser than yesterday. 2753 StartDate int64 `json:"start_date"` 2754 // Specifies the type of mandates supported. Possible values are `india`. 2755 SupportedTypes []PaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedType `json:"supported_types"` 2756 } 2757 type PaymentIntentPaymentMethodOptionsCard struct { 2758 // Controls when the funds will be captured from the customer's account. 2759 CaptureMethod PaymentIntentPaymentMethodOptionsCardCaptureMethod `json:"capture_method"` 2760 // Installment details for this payment (Mexico only). 2761 // 2762 // For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). 2763 Installments *PaymentIntentPaymentMethodOptionsCardInstallments `json:"installments"` 2764 // Configuration options for setting up an eMandate for cards issued in India. 2765 MandateOptions *PaymentIntentPaymentMethodOptionsCardMandateOptions `json:"mandate_options"` 2766 // 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. 2767 Network PaymentIntentPaymentMethodOptionsCardNetwork `json:"network"` 2768 // Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. 2769 RequestExtendedAuthorization PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization `json:"request_extended_authorization"` 2770 // Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. 2771 RequestIncrementalAuthorization PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization `json:"request_incremental_authorization"` 2772 // Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. 2773 RequestMulticapture PaymentIntentPaymentMethodOptionsCardRequestMulticapture `json:"request_multicapture"` 2774 // Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. 2775 RequestOvercapture PaymentIntentPaymentMethodOptionsCardRequestOvercapture `json:"request_overcapture"` 2776 // 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. 2777 RequestThreeDSecure PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure `json:"request_three_d_secure"` 2778 // 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). 2779 RequireCVCRecollection bool `json:"require_cvc_recollection"` 2780 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2781 // 2782 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2783 // 2784 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2785 SetupFutureUsage PaymentIntentPaymentMethodOptionsCardSetupFutureUsage `json:"setup_future_usage"` 2786 // 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. 2787 StatementDescriptorSuffixKana string `json:"statement_descriptor_suffix_kana"` 2788 // 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. 2789 StatementDescriptorSuffixKanji string `json:"statement_descriptor_suffix_kanji"` 2790 } 2791 type PaymentIntentPaymentMethodOptionsCardPresent struct { 2792 // Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) 2793 RequestExtendedAuthorization bool `json:"request_extended_authorization"` 2794 // 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. 2795 RequestIncrementalAuthorizationSupport bool `json:"request_incremental_authorization_support"` 2796 } 2797 type PaymentIntentPaymentMethodOptionsCashApp struct { 2798 // Controls when the funds will be captured from the customer's account. 2799 CaptureMethod PaymentIntentPaymentMethodOptionsCashAppCaptureMethod `json:"capture_method"` 2800 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2801 // 2802 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2803 // 2804 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2805 SetupFutureUsage PaymentIntentPaymentMethodOptionsCashAppSetupFutureUsage `json:"setup_future_usage"` 2806 } 2807 type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransfer struct { 2808 // The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. 2809 Country string `json:"country"` 2810 } 2811 type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer struct { 2812 EUBankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEUBankTransfer `json:"eu_bank_transfer"` 2813 // List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. 2814 // 2815 // Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. 2816 RequestedAddressTypes []PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressType `json:"requested_address_types"` 2817 // 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`. 2818 Type PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType `json:"type"` 2819 } 2820 type PaymentIntentPaymentMethodOptionsCustomerBalance struct { 2821 BankTransfer *PaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer `json:"bank_transfer"` 2822 // The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. 2823 FundingType PaymentIntentPaymentMethodOptionsCustomerBalanceFundingType `json:"funding_type"` 2824 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2825 // 2826 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2827 // 2828 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2829 SetupFutureUsage PaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage `json:"setup_future_usage"` 2830 } 2831 type PaymentIntentPaymentMethodOptionsEPS struct { 2832 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2833 // 2834 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2835 // 2836 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2837 SetupFutureUsage PaymentIntentPaymentMethodOptionsEPSSetupFutureUsage `json:"setup_future_usage"` 2838 } 2839 type PaymentIntentPaymentMethodOptionsFPX struct { 2840 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2841 // 2842 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2843 // 2844 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2845 SetupFutureUsage PaymentIntentPaymentMethodOptionsFPXSetupFutureUsage `json:"setup_future_usage"` 2846 } 2847 type PaymentIntentPaymentMethodOptionsGiropay struct { 2848 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2849 // 2850 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2851 // 2852 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2853 SetupFutureUsage PaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage `json:"setup_future_usage"` 2854 } 2855 type PaymentIntentPaymentMethodOptionsGrabpay struct { 2856 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2857 // 2858 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2859 // 2860 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2861 SetupFutureUsage PaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage `json:"setup_future_usage"` 2862 } 2863 type PaymentIntentPaymentMethodOptionsIDEAL struct { 2864 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2865 // 2866 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2867 // 2868 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2869 SetupFutureUsage PaymentIntentPaymentMethodOptionsIDEALSetupFutureUsage `json:"setup_future_usage"` 2870 } 2871 type PaymentIntentPaymentMethodOptionsInteracPresent struct{} 2872 type PaymentIntentPaymentMethodOptionsKlarna struct { 2873 // Controls when the funds will be captured from the customer's account. 2874 CaptureMethod PaymentIntentPaymentMethodOptionsKlarnaCaptureMethod `json:"capture_method"` 2875 // Preferred locale of the Klarna checkout page that the customer is redirected to. 2876 PreferredLocale string `json:"preferred_locale"` 2877 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2878 // 2879 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2880 // 2881 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2882 SetupFutureUsage PaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage `json:"setup_future_usage"` 2883 } 2884 type PaymentIntentPaymentMethodOptionsKonbini struct { 2885 // An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. 2886 ConfirmationNumber string `json:"confirmation_number"` 2887 // 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. 2888 ExpiresAfterDays int64 `json:"expires_after_days"` 2889 // The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set. 2890 ExpiresAt int64 `json:"expires_at"` 2891 // A product descriptor of up to 22 characters, which will appear to customers at the convenience store. 2892 ProductDescription string `json:"product_description"` 2893 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2894 // 2895 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2896 // 2897 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2898 SetupFutureUsage PaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage `json:"setup_future_usage"` 2899 } 2900 type PaymentIntentPaymentMethodOptionsLink struct { 2901 // Controls when the funds will be captured from the customer's account. 2902 CaptureMethod PaymentIntentPaymentMethodOptionsLinkCaptureMethod `json:"capture_method"` 2903 // [Deprecated] This is a legacy parameter that no longer has any function. 2904 PersistentToken string `json:"persistent_token"` 2905 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2906 // 2907 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2908 // 2909 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2910 SetupFutureUsage PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage `json:"setup_future_usage"` 2911 } 2912 type PaymentIntentPaymentMethodOptionsMobilepay struct { 2913 // Controls when the funds will be captured from the customer's account. 2914 CaptureMethod PaymentIntentPaymentMethodOptionsMobilepayCaptureMethod `json:"capture_method"` 2915 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2916 // 2917 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2918 // 2919 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2920 SetupFutureUsage PaymentIntentPaymentMethodOptionsMobilepaySetupFutureUsage `json:"setup_future_usage"` 2921 } 2922 type PaymentIntentPaymentMethodOptionsOXXO struct { 2923 // 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. 2924 ExpiresAfterDays int64 `json:"expires_after_days"` 2925 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2926 // 2927 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2928 // 2929 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2930 SetupFutureUsage PaymentIntentPaymentMethodOptionsOXXOSetupFutureUsage `json:"setup_future_usage"` 2931 } 2932 type PaymentIntentPaymentMethodOptionsP24 struct { 2933 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2934 // 2935 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2936 // 2937 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2938 SetupFutureUsage PaymentIntentPaymentMethodOptionsP24SetupFutureUsage `json:"setup_future_usage"` 2939 } 2940 type PaymentIntentPaymentMethodOptionsPayNow struct { 2941 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2942 // 2943 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2944 // 2945 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2946 SetupFutureUsage PaymentIntentPaymentMethodOptionsPayNowSetupFutureUsage `json:"setup_future_usage"` 2947 } 2948 type PaymentIntentPaymentMethodOptionsPaypal struct { 2949 // Controls when the funds will be captured from the customer's account. 2950 CaptureMethod PaymentIntentPaymentMethodOptionsPaypalCaptureMethod `json:"capture_method"` 2951 // Preferred locale of the PayPal checkout page that the customer is redirected to. 2952 PreferredLocale string `json:"preferred_locale"` 2953 // 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. 2954 Reference string `json:"reference"` 2955 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2956 // 2957 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2958 // 2959 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2960 SetupFutureUsage PaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage `json:"setup_future_usage"` 2961 } 2962 type PaymentIntentPaymentMethodOptionsPix struct { 2963 // The number of seconds (between 10 and 1209600) after which Pix payment will expire. 2964 ExpiresAfterSeconds int64 `json:"expires_after_seconds"` 2965 // The timestamp at which the Pix expires. 2966 ExpiresAt int64 `json:"expires_at"` 2967 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2968 // 2969 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2970 // 2971 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2972 SetupFutureUsage PaymentIntentPaymentMethodOptionsPixSetupFutureUsage `json:"setup_future_usage"` 2973 } 2974 type PaymentIntentPaymentMethodOptionsPromptPay struct { 2975 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2976 // 2977 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2978 // 2979 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2980 SetupFutureUsage PaymentIntentPaymentMethodOptionsPromptPaySetupFutureUsage `json:"setup_future_usage"` 2981 } 2982 type PaymentIntentPaymentMethodOptionsRevolutPay struct{} 2983 type PaymentIntentPaymentMethodOptionsSEPADebitMandateOptions struct{} 2984 type PaymentIntentPaymentMethodOptionsSEPADebit struct { 2985 MandateOptions *PaymentIntentPaymentMethodOptionsSEPADebitMandateOptions `json:"mandate_options"` 2986 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2987 // 2988 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2989 // 2990 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 2991 SetupFutureUsage PaymentIntentPaymentMethodOptionsSEPADebitSetupFutureUsage `json:"setup_future_usage"` 2992 } 2993 type PaymentIntentPaymentMethodOptionsSofort struct { 2994 // Preferred language of the SOFORT authorization page that the customer is redirected to. 2995 PreferredLanguage string `json:"preferred_language"` 2996 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 2997 // 2998 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 2999 // 3000 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 3001 SetupFutureUsage PaymentIntentPaymentMethodOptionsSofortSetupFutureUsage `json:"setup_future_usage"` 3002 } 3003 type PaymentIntentPaymentMethodOptionsSwish struct { 3004 // The order ID displayed in the Swish app after the payment is authorized. 3005 Reference string `json:"reference"` 3006 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 3007 // 3008 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 3009 // 3010 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 3011 SetupFutureUsage PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage `json:"setup_future_usage"` 3012 } 3013 type PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnections struct { 3014 // The list of permissions to request. The `payment_method` permission must be included. 3015 Permissions []PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPermission `json:"permissions"` 3016 // Data features requested to be retrieved upon account creation. 3017 Prefetch []PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnectionsPrefetch `json:"prefetch"` 3018 // 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. 3019 ReturnURL string `json:"return_url"` 3020 } 3021 type PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptions struct { 3022 // Mandate collection method 3023 CollectionMethod PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptionsCollectionMethod `json:"collection_method"` 3024 } 3025 type PaymentIntentPaymentMethodOptionsUSBankAccount struct { 3026 FinancialConnections *PaymentIntentPaymentMethodOptionsUSBankAccountFinancialConnections `json:"financial_connections"` 3027 MandateOptions *PaymentIntentPaymentMethodOptionsUSBankAccountMandateOptions `json:"mandate_options"` 3028 // Preferred transaction settlement speed 3029 PreferredSettlementSpeed PaymentIntentPaymentMethodOptionsUSBankAccountPreferredSettlementSpeed `json:"preferred_settlement_speed"` 3030 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 3031 // 3032 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 3033 // 3034 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 3035 SetupFutureUsage PaymentIntentPaymentMethodOptionsUSBankAccountSetupFutureUsage `json:"setup_future_usage"` 3036 // Bank account verification method. 3037 VerificationMethod PaymentIntentPaymentMethodOptionsUSBankAccountVerificationMethod `json:"verification_method"` 3038 } 3039 type PaymentIntentPaymentMethodOptionsWeChatPay struct { 3040 // The app ID registered with WeChat Pay. Only required when client is ios or android. 3041 AppID string `json:"app_id"` 3042 // The client type that the end customer will pay from 3043 Client PaymentIntentPaymentMethodOptionsWeChatPayClient `json:"client"` 3044 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 3045 // 3046 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 3047 // 3048 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 3049 SetupFutureUsage PaymentIntentPaymentMethodOptionsWeChatPaySetupFutureUsage `json:"setup_future_usage"` 3050 } 3051 type PaymentIntentPaymentMethodOptionsZip struct { 3052 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 3053 // 3054 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 3055 // 3056 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 3057 SetupFutureUsage PaymentIntentPaymentMethodOptionsZipSetupFutureUsage `json:"setup_future_usage"` 3058 } 3059 3060 // Payment-method-specific configuration for this PaymentIntent. 3061 type PaymentIntentPaymentMethodOptions struct { 3062 ACSSDebit *PaymentIntentPaymentMethodOptionsACSSDebit `json:"acss_debit"` 3063 Affirm *PaymentIntentPaymentMethodOptionsAffirm `json:"affirm"` 3064 AfterpayClearpay *PaymentIntentPaymentMethodOptionsAfterpayClearpay `json:"afterpay_clearpay"` 3065 Alipay *PaymentIntentPaymentMethodOptionsAlipay `json:"alipay"` 3066 AUBECSDebit *PaymentIntentPaymentMethodOptionsAUBECSDebit `json:"au_becs_debit"` 3067 BACSDebit *PaymentIntentPaymentMethodOptionsBACSDebit `json:"bacs_debit"` 3068 Bancontact *PaymentIntentPaymentMethodOptionsBancontact `json:"bancontact"` 3069 BLIK *PaymentIntentPaymentMethodOptionsBLIK `json:"blik"` 3070 Boleto *PaymentIntentPaymentMethodOptionsBoleto `json:"boleto"` 3071 Card *PaymentIntentPaymentMethodOptionsCard `json:"card"` 3072 CardPresent *PaymentIntentPaymentMethodOptionsCardPresent `json:"card_present"` 3073 CashApp *PaymentIntentPaymentMethodOptionsCashApp `json:"cashapp"` 3074 CustomerBalance *PaymentIntentPaymentMethodOptionsCustomerBalance `json:"customer_balance"` 3075 EPS *PaymentIntentPaymentMethodOptionsEPS `json:"eps"` 3076 FPX *PaymentIntentPaymentMethodOptionsFPX `json:"fpx"` 3077 Giropay *PaymentIntentPaymentMethodOptionsGiropay `json:"giropay"` 3078 Grabpay *PaymentIntentPaymentMethodOptionsGrabpay `json:"grabpay"` 3079 IDEAL *PaymentIntentPaymentMethodOptionsIDEAL `json:"ideal"` 3080 InteracPresent *PaymentIntentPaymentMethodOptionsInteracPresent `json:"interac_present"` 3081 Klarna *PaymentIntentPaymentMethodOptionsKlarna `json:"klarna"` 3082 Konbini *PaymentIntentPaymentMethodOptionsKonbini `json:"konbini"` 3083 Link *PaymentIntentPaymentMethodOptionsLink `json:"link"` 3084 Mobilepay *PaymentIntentPaymentMethodOptionsMobilepay `json:"mobilepay"` 3085 OXXO *PaymentIntentPaymentMethodOptionsOXXO `json:"oxxo"` 3086 P24 *PaymentIntentPaymentMethodOptionsP24 `json:"p24"` 3087 PayNow *PaymentIntentPaymentMethodOptionsPayNow `json:"paynow"` 3088 Paypal *PaymentIntentPaymentMethodOptionsPaypal `json:"paypal"` 3089 Pix *PaymentIntentPaymentMethodOptionsPix `json:"pix"` 3090 PromptPay *PaymentIntentPaymentMethodOptionsPromptPay `json:"promptpay"` 3091 RevolutPay *PaymentIntentPaymentMethodOptionsRevolutPay `json:"revolut_pay"` 3092 SEPADebit *PaymentIntentPaymentMethodOptionsSEPADebit `json:"sepa_debit"` 3093 Sofort *PaymentIntentPaymentMethodOptionsSofort `json:"sofort"` 3094 Swish *PaymentIntentPaymentMethodOptionsSwish `json:"swish"` 3095 USBankAccount *PaymentIntentPaymentMethodOptionsUSBankAccount `json:"us_bank_account"` 3096 WeChatPay *PaymentIntentPaymentMethodOptionsWeChatPay `json:"wechat_pay"` 3097 Zip *PaymentIntentPaymentMethodOptionsZip `json:"zip"` 3098 } 3099 type PaymentIntentProcessingCardCustomerNotification struct { 3100 // 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. 3101 ApprovalRequested bool `json:"approval_requested"` 3102 // If customer approval is required, they need to provide approval before this time. 3103 CompletesAt int64 `json:"completes_at"` 3104 } 3105 type PaymentIntentProcessingCard struct { 3106 CustomerNotification *PaymentIntentProcessingCardCustomerNotification `json:"customer_notification"` 3107 } 3108 3109 // If present, this property tells you about the processing state of the payment. 3110 type PaymentIntentProcessing struct { 3111 Card *PaymentIntentProcessingCard `json:"card"` 3112 // Type of the payment method for which payment is in `processing` state, one of `card`. 3113 Type PaymentIntentProcessingType `json:"type"` 3114 } 3115 3116 // 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). 3117 type PaymentIntentTransferData struct { 3118 // 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). 3119 Amount int64 `json:"amount"` 3120 // The account (if any) that the payment is attributed to for tax 3121 // reporting, and where funds from the payment are transferred to after 3122 // payment success. 3123 Destination *Account `json:"destination"` 3124 } 3125 3126 // A PaymentIntent guides you through the process of collecting a payment from your customer. 3127 // We recommend that you create exactly one PaymentIntent for each order or 3128 // customer session in your system. You can reference the PaymentIntent later to 3129 // see the history of payment attempts for a particular session. 3130 // 3131 // A PaymentIntent transitions through 3132 // [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) 3133 // throughout its lifetime as it interfaces with Stripe.js to perform 3134 // authentication flows and ultimately creates at most one successful charge. 3135 // 3136 // Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents) 3137 type PaymentIntent struct { 3138 APIResource 3139 // 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). 3140 Amount int64 `json:"amount"` 3141 // Amount that can be captured from this PaymentIntent. 3142 AmountCapturable int64 `json:"amount_capturable"` 3143 AmountDetails *PaymentIntentAmountDetails `json:"amount_details"` 3144 // Amount that this PaymentIntent collects. 3145 AmountReceived int64 `json:"amount_received"` 3146 // ID of the Connect application that created the PaymentIntent. 3147 Application *Application `json:"application"` 3148 // 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). 3149 ApplicationFeeAmount int64 `json:"application_fee_amount"` 3150 // Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) 3151 AutomaticPaymentMethods *PaymentIntentAutomaticPaymentMethods `json:"automatic_payment_methods"` 3152 // Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch. 3153 CanceledAt int64 `json:"canceled_at"` 3154 // 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`). 3155 CancellationReason PaymentIntentCancellationReason `json:"cancellation_reason"` 3156 // Controls when the funds will be captured from the customer's account. 3157 CaptureMethod PaymentIntentCaptureMethod `json:"capture_method"` 3158 // The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. 3159 // 3160 // 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. 3161 // 3162 // 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. 3163 ClientSecret string `json:"client_secret"` 3164 // Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment. 3165 ConfirmationMethod PaymentIntentConfirmationMethod `json:"confirmation_method"` 3166 // Time at which the object was created. Measured in seconds since the Unix epoch. 3167 Created int64 `json:"created"` 3168 // 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). 3169 Currency Currency `json:"currency"` 3170 // ID of the Customer this PaymentIntent belongs to, if one exists. 3171 // 3172 // Payment methods attached to other Customers cannot be used with this PaymentIntent. 3173 // 3174 // If present in combination with [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage), this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. 3175 Customer *Customer `json:"customer"` 3176 // An arbitrary string attached to the object. Often useful for displaying to users. 3177 Description string `json:"description"` 3178 // Unique identifier for the object. 3179 ID string `json:"id"` 3180 // ID of the invoice that created this PaymentIntent, if it exists. 3181 Invoice *Invoice `json:"invoice"` 3182 // The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason. 3183 LastPaymentError *Error `json:"last_payment_error"` 3184 // The latest charge created by this PaymentIntent. 3185 LatestCharge *Charge `json:"latest_charge"` 3186 // Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. 3187 Livemode bool `json:"livemode"` 3188 // 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). 3189 Metadata map[string]string `json:"metadata"` 3190 // 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. 3191 NextAction *PaymentIntentNextAction `json:"next_action"` 3192 // String representing the object's type. Objects of the same type share the same value. 3193 Object string `json:"object"` 3194 // 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. 3195 OnBehalfOf *Account `json:"on_behalf_of"` 3196 // ID of the payment method used in this PaymentIntent. 3197 PaymentMethod *PaymentMethod `json:"payment_method"` 3198 // Information about the payment method configuration used for this PaymentIntent. 3199 PaymentMethodConfigurationDetails *PaymentIntentPaymentMethodConfigurationDetails `json:"payment_method_configuration_details"` 3200 // Payment-method-specific configuration for this PaymentIntent. 3201 PaymentMethodOptions *PaymentIntentPaymentMethodOptions `json:"payment_method_options"` 3202 // The list of payment method types (e.g. card) that this PaymentIntent is allowed to use. 3203 PaymentMethodTypes []string `json:"payment_method_types"` 3204 // If present, this property tells you about the processing state of the payment. 3205 Processing *PaymentIntentProcessing `json:"processing"` 3206 // 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). 3207 ReceiptEmail string `json:"receipt_email"` 3208 // ID of the review associated with this PaymentIntent, if any. 3209 Review *Review `json:"review"` 3210 // Indicates that you intend to make future payments with this PaymentIntent's payment method. 3211 // 3212 // Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. 3213 // 3214 // When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). 3215 SetupFutureUsage PaymentIntentSetupFutureUsage `json:"setup_future_usage"` 3216 // Shipping information for this PaymentIntent. 3217 Shipping *ShippingDetails `json:"shipping"` 3218 // 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. 3219 Source *PaymentSource `json:"source"` 3220 // For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long. 3221 StatementDescriptor string `json:"statement_descriptor"` 3222 // Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. 3223 StatementDescriptorSuffix string `json:"statement_descriptor_suffix"` 3224 // 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). 3225 Status PaymentIntentStatus `json:"status"` 3226 // 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). 3227 TransferData *PaymentIntentTransferData `json:"transfer_data"` 3228 // 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). 3229 TransferGroup string `json:"transfer_group"` 3230 } 3231 3232 // PaymentIntentList is a list of PaymentIntents as retrieved from a list endpoint. 3233 type PaymentIntentList struct { 3234 APIResource 3235 ListMeta 3236 Data []*PaymentIntent `json:"data"` 3237 } 3238 3239 // PaymentIntentSearchResult is a list of PaymentIntent search results as retrieved from a search endpoint. 3240 type PaymentIntentSearchResult struct { 3241 APIResource 3242 SearchMeta 3243 Data []*PaymentIntent `json:"data"` 3244 } 3245 3246 // UnmarshalJSON handles deserialization of a PaymentIntent. 3247 // This custom unmarshaling is needed because the resulting 3248 // property may be an id or the full struct if it was expanded. 3249 func (p *PaymentIntent) UnmarshalJSON(data []byte) error { 3250 if id, ok := ParseID(data); ok { 3251 p.ID = id 3252 return nil 3253 } 3254 3255 type paymentIntent PaymentIntent 3256 var v paymentIntent 3257 if err := json.Unmarshal(data, &v); err != nil { 3258 return err 3259 } 3260 3261 *p = PaymentIntent(v) 3262 return nil 3263 }