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  }