stripe/resources/generated/
payment_intent.rs

1// ======================================
2// This file was automatically generated.
3// ======================================
4
5use crate::client::{Client, Response};
6use crate::ids::{
7    CustomerId, MandateId, PaymentIntentId, PaymentMethodConfigurationId, PaymentMethodId,
8};
9use crate::params::{Expand, Expandable, List, Metadata, Object, Paginable, RangeQuery, Timestamp};
10use crate::resources::{
11    Account, ApiErrors, Application, Charge, Currency, Customer, Invoice,
12    LinkedAccountOptionsUsBankAccount, PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode,
13    PaymentIntentOffSession, PaymentMethod,
14    PaymentMethodConfigBizPaymentMethodConfigurationDetails,
15    PaymentMethodDetailsCardInstallmentsPlan, PaymentMethodOptionsCustomerBalanceEuBankAccount,
16    PaymentMethodOptionsUsBankAccountMandateOptions, PaymentSource, Review, Shipping,
17};
18use serde::{Deserialize, Serialize};
19
20/// The resource representing a Stripe "PaymentIntent".
21///
22/// For more details see <https://stripe.com/docs/api/payment_intents/object>
23#[derive(Clone, Debug, Default, Deserialize, Serialize)]
24pub struct PaymentIntent {
25    /// Unique identifier for the object.
26    pub id: PaymentIntentId,
27
28    /// Amount intended to be collected by this PaymentIntent.
29    ///
30    /// 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).
31    /// The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts).
32    /// The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
33    pub amount: i64,
34
35    /// Amount that can be captured from this PaymentIntent.
36    pub amount_capturable: i64,
37
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub amount_details: Option<PaymentFlowsAmountDetails>,
40
41    /// Amount that this PaymentIntent collects.
42    pub amount_received: i64,
43
44    /// ID of the Connect application that created the PaymentIntent.
45    pub application: Option<Expandable<Application>>,
46
47    /// 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.
48    ///
49    /// The amount of the application fee collected will be capped at the total payment amount.
50    /// For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
51    pub application_fee_amount: Option<i64>,
52
53    /// Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).
54    pub automatic_payment_methods: Option<PaymentFlowsAutomaticPaymentMethodsPaymentIntent>,
55
56    /// Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled.
57    ///
58    /// Measured in seconds since the Unix epoch.
59    pub canceled_at: Option<Timestamp>,
60
61    /// 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`).
62    pub cancellation_reason: Option<PaymentIntentCancellationReason>,
63
64    /// Controls when the funds will be captured from the customer's account.
65    pub capture_method: PaymentIntentCaptureMethod,
66
67    /// The client secret of this PaymentIntent.
68    ///
69    /// Used for client-side retrieval using a publishable key.
70    /// The client secret can be used to complete a payment from your frontend.
71    /// It should not be stored, logged, or exposed to anyone other than the customer.
72    /// Make sure that you have TLS enabled on any page that includes the client secret.  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.
73    pub client_secret: Option<String>,
74
75    /// Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.
76    pub confirmation_method: PaymentIntentConfirmationMethod,
77
78    /// Time at which the object was created.
79    ///
80    /// Measured in seconds since the Unix epoch.
81    pub created: Timestamp,
82
83    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
84    ///
85    /// Must be a [supported currency](https://stripe.com/docs/currencies).
86    pub currency: Currency,
87
88    /// ID of the Customer this PaymentIntent belongs to, if one exists.
89    ///
90    /// Payment methods attached to other Customers cannot be used with this PaymentIntent.
91    ///
92    /// 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.
93    pub customer: Option<Expandable<Customer>>,
94
95    /// An arbitrary string attached to the object.
96    ///
97    /// Often useful for displaying to users.
98    pub description: Option<String>,
99
100    /// ID of the invoice that created this PaymentIntent, if it exists.
101    pub invoice: Option<Expandable<Invoice>>,
102
103    /// The payment error encountered in the previous PaymentIntent confirmation.
104    ///
105    /// It will be cleared if the PaymentIntent is later updated for any reason.
106    pub last_payment_error: Option<Box<ApiErrors>>,
107
108    /// The latest charge created by this PaymentIntent.
109    pub latest_charge: Option<Expandable<Charge>>,
110
111    /// Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
112    pub livemode: bool,
113
114    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
115    ///
116    /// This can be useful for storing additional information about the object in a structured format.
117    /// Learn more about [storing information in metadata](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).
118    pub metadata: Metadata,
119
120    /// 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.
121    pub next_action: Option<PaymentIntentNextAction>,
122
123    /// The account (if any) for which the funds of the PaymentIntent are intended.
124    ///
125    /// See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.
126    pub on_behalf_of: Option<Expandable<Account>>,
127
128    /// ID of the payment method used in this PaymentIntent.
129    pub payment_method: Option<Expandable<PaymentMethod>>,
130
131    /// Information about the payment method configuration used for this PaymentIntent.
132    pub payment_method_configuration_details:
133        Option<PaymentMethodConfigBizPaymentMethodConfigurationDetails>,
134
135    /// Payment-method-specific configuration for this PaymentIntent.
136    pub payment_method_options: Option<PaymentIntentPaymentMethodOptions>,
137
138    /// The list of payment method types (e.g.
139    ///
140    /// card) that this PaymentIntent is allowed to use.
141    pub payment_method_types: Vec<String>,
142
143    /// If present, this property tells you about the processing state of the payment.
144    pub processing: Option<PaymentIntentProcessing>,
145
146    /// Email address that the receipt for the resulting payment will be sent to.
147    ///
148    /// 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).
149    pub receipt_email: Option<String>,
150
151    /// ID of the review associated with this PaymentIntent, if any.
152    pub review: Option<Expandable<Review>>,
153
154    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
155    ///
156    /// 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.
157    ///
158    /// 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.  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).
159    pub setup_future_usage: Option<PaymentIntentSetupFutureUsage>,
160
161    /// Shipping information for this PaymentIntent.
162    pub shipping: Option<Shipping>,
163
164    /// This is a legacy field that will be removed in the future.
165    ///
166    /// It is the ID of the Source object that is associated with this PaymentIntent, if one was supplied.
167    pub source: Option<Expandable<PaymentSource>>,
168
169    /// For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic).
170    ///
171    /// Otherwise, you can use this value as the complete description of a charge on your customers' statements.
172    /// It must contain at least one letter and be 1–22 characters long.
173    pub statement_descriptor: Option<String>,
174
175    /// Provides information about a card payment that customers see on their statements.
176    ///
177    /// Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor.
178    /// Maximum 22 characters for the concatenated descriptor.
179    pub statement_descriptor_suffix: Option<String>,
180
181    /// Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`.
182    ///
183    /// Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses).
184    pub status: PaymentIntentStatus,
185
186    /// The data that automatically creates a Transfer after the payment finalizes.
187    ///
188    /// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
189    pub transfer_data: Option<TransferData>,
190
191    /// A string that identifies the resulting payment as part of a group.
192    ///
193    /// Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).
194    pub transfer_group: Option<String>,
195}
196
197impl PaymentIntent {
198    /// Returns a list of PaymentIntents.
199    pub fn list(client: &Client, params: &ListPaymentIntents<'_>) -> Response<List<PaymentIntent>> {
200        client.get_query("/payment_intents", params)
201    }
202
203    /// Creates a PaymentIntent object.
204    ///
205    /// After the PaymentIntent is created, attach a payment method and [confirm](https://stripe.com/docs/api/payment_intents/confirm)
206    /// to continue the payment.
207    ///
208    /// Learn more about [the available payment flows with the Payment Intents API](https://stripe.com/docs/payments/payment-intents).  When you use `confirm=true` during creation, it’s equivalent to creating and confirming the PaymentIntent in the same call.
209    /// You can use any parameters available in the [confirm API](https://stripe.com/docs/api/payment_intents/confirm) when you supply `confirm=true`.
210    pub fn create(client: &Client, params: CreatePaymentIntent<'_>) -> Response<PaymentIntent> {
211        #[allow(clippy::needless_borrows_for_generic_args)]
212        client.post_form("/payment_intents", &params)
213    }
214
215    /// Retrieves the details of a PaymentIntent that has previously been created.
216    ///
217    /// You can retrieve a PaymentIntent client-side using a publishable key when the `client_secret` is in the query string.
218    /// If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties.
219    /// Refer to the [payment intent](https://stripe.com/docs/api#payment_intent_object) object reference for more details.
220    pub fn retrieve(
221        client: &Client,
222        id: &PaymentIntentId,
223        expand: &[&str],
224    ) -> Response<PaymentIntent> {
225        client.get_query(&format!("/payment_intents/{}", id), Expand { expand })
226    }
227
228    /// Updates properties on a PaymentIntent object without confirming.
229    ///
230    /// Depending on which properties you update, you might need to confirm the
231    /// PaymentIntent again.
232    ///
233    /// For example, updating the `payment_method` always requires you to confirm the PaymentIntent again.
234    /// If you prefer to update and confirm at the same time, we recommend updating properties through the [confirm API](https://stripe.com/docs/api/payment_intents/confirm) instead.
235    pub fn update(
236        client: &Client,
237        id: &PaymentIntentId,
238        params: UpdatePaymentIntent<'_>,
239    ) -> Response<PaymentIntent> {
240        #[allow(clippy::needless_borrows_for_generic_args)]
241        client.post_form(&format!("/payment_intents/{}", id), &params)
242    }
243}
244
245impl Object for PaymentIntent {
246    type Id = PaymentIntentId;
247    fn id(&self) -> Self::Id {
248        self.id.clone()
249    }
250    fn object(&self) -> &'static str {
251        "payment_intent"
252    }
253}
254
255#[derive(Clone, Debug, Default, Deserialize, Serialize)]
256pub struct PaymentFlowsAmountDetails {
257    #[serde(skip_serializing_if = "Option::is_none")]
258    pub tip: Option<PaymentFlowsAmountDetailsResourceTip>,
259}
260
261#[derive(Clone, Debug, Default, Deserialize, Serialize)]
262pub struct PaymentFlowsAmountDetailsResourceTip {
263    /// Portion of the amount that corresponds to a tip.
264    #[serde(skip_serializing_if = "Option::is_none")]
265    pub amount: Option<i64>,
266}
267
268#[derive(Clone, Debug, Default, Deserialize, Serialize)]
269pub struct PaymentFlowsAutomaticPaymentMethodsPaymentIntent {
270    /// Controls whether this PaymentIntent will accept redirect-based payment methods.
271    ///
272    /// Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps.
273    ///
274    /// 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.
275    #[serde(skip_serializing_if = "Option::is_none")]
276    pub allow_redirects: Option<PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects>,
277
278    /// Automatically calculates compatible payment methods.
279    pub enabled: bool,
280}
281
282#[derive(Clone, Debug, Default, Deserialize, Serialize)]
283pub struct PaymentIntentNextAction {
284    #[serde(skip_serializing_if = "Option::is_none")]
285    pub alipay_handle_redirect: Option<PaymentIntentNextActionAlipayHandleRedirect>,
286
287    #[serde(skip_serializing_if = "Option::is_none")]
288    pub boleto_display_details: Option<PaymentIntentNextActionBoleto>,
289
290    #[serde(skip_serializing_if = "Option::is_none")]
291    pub card_await_notification: Option<PaymentIntentNextActionCardAwaitNotification>,
292
293    #[serde(skip_serializing_if = "Option::is_none")]
294    pub cashapp_handle_redirect_or_display_qr_code:
295        Option<PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode>,
296
297    #[serde(skip_serializing_if = "Option::is_none")]
298    pub display_bank_transfer_instructions:
299        Option<PaymentIntentNextActionDisplayBankTransferInstructions>,
300
301    #[serde(skip_serializing_if = "Option::is_none")]
302    pub konbini_display_details: Option<PaymentIntentNextActionKonbini>,
303
304    #[serde(skip_serializing_if = "Option::is_none")]
305    pub oxxo_display_details: Option<PaymentIntentNextActionDisplayOxxoDetails>,
306
307    #[serde(skip_serializing_if = "Option::is_none")]
308    pub paynow_display_qr_code: Option<PaymentIntentNextActionPaynowDisplayQrCode>,
309
310    #[serde(skip_serializing_if = "Option::is_none")]
311    pub pix_display_qr_code: Option<PaymentIntentNextActionPixDisplayQrCode>,
312
313    #[serde(skip_serializing_if = "Option::is_none")]
314    pub promptpay_display_qr_code: Option<PaymentIntentNextActionPromptpayDisplayQrCode>,
315
316    #[serde(skip_serializing_if = "Option::is_none")]
317    pub redirect_to_url: Option<PaymentIntentNextActionRedirectToUrl>,
318
319    #[serde(skip_serializing_if = "Option::is_none")]
320    pub swish_handle_redirect_or_display_qr_code:
321        Option<PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode>,
322
323    /// 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`.
324    #[serde(rename = "type")]
325    pub type_: String,
326
327    /// When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows.
328    ///
329    /// The shape of the contents is subject to change and is only intended to be used by Stripe.js.
330    #[serde(skip_serializing_if = "Option::is_none")]
331    pub use_stripe_sdk: Option<serde_json::Value>,
332
333    #[serde(skip_serializing_if = "Option::is_none")]
334    pub verify_with_microdeposits: Option<PaymentIntentNextActionVerifyWithMicrodeposits>,
335
336    #[serde(skip_serializing_if = "Option::is_none")]
337    pub wechat_pay_display_qr_code: Option<PaymentIntentNextActionWechatPayDisplayQrCode>,
338
339    #[serde(skip_serializing_if = "Option::is_none")]
340    pub wechat_pay_redirect_to_android_app:
341        Option<PaymentIntentNextActionWechatPayRedirectToAndroidApp>,
342
343    #[serde(skip_serializing_if = "Option::is_none")]
344    pub wechat_pay_redirect_to_ios_app: Option<PaymentIntentNextActionWechatPayRedirectToIosApp>,
345}
346
347#[derive(Clone, Debug, Default, Deserialize, Serialize)]
348pub struct PaymentIntentNextActionAlipayHandleRedirect {
349    /// 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.
350    pub native_data: Option<String>,
351
352    /// The native URL you must redirect your customer to in order to authenticate the payment in an iOS App.
353    pub native_url: Option<String>,
354
355    /// If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.
356    pub return_url: Option<String>,
357
358    /// The URL you must redirect your customer to in order to authenticate the payment.
359    pub url: Option<String>,
360}
361
362#[derive(Clone, Debug, Default, Deserialize, Serialize)]
363pub struct PaymentIntentNextActionBoleto {
364    /// The timestamp after which the boleto expires.
365    pub expires_at: Option<Timestamp>,
366
367    /// The URL to the hosted boleto voucher page, which allows customers to view the boleto voucher.
368    pub hosted_voucher_url: Option<String>,
369
370    /// The boleto number.
371    pub number: Option<String>,
372
373    /// The URL to the downloadable boleto voucher PDF.
374    pub pdf: Option<String>,
375}
376
377#[derive(Clone, Debug, Default, Deserialize, Serialize)]
378pub struct PaymentIntentNextActionCardAwaitNotification {
379    /// The time that payment will be attempted.
380    ///
381    /// If customer approval is required, they need to provide approval before this time.
382    pub charge_attempt_at: Option<Timestamp>,
383
384    /// For payments greater than INR 15000, the customer must provide explicit approval of the payment with their bank.
385    ///
386    /// For payments of lower amount, no customer action is required.
387    pub customer_approval_required: Option<bool>,
388}
389
390#[derive(Clone, Debug, Default, Deserialize, Serialize)]
391pub struct PaymentIntentNextActionDisplayBankTransferInstructions {
392    /// The remaining amount that needs to be transferred to complete the payment.
393    pub amount_remaining: Option<i64>,
394
395    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
396    ///
397    /// Must be a [supported currency](https://stripe.com/docs/currencies).
398    pub currency: Option<Currency>,
399
400    /// A list of financial addresses that can be used to fund the customer balance.
401    #[serde(skip_serializing_if = "Option::is_none")]
402    pub financial_addresses: Option<Vec<FundingInstructionsBankTransferFinancialAddress>>,
403
404    /// A link to a hosted page that guides your customer through completing the transfer.
405    pub hosted_instructions_url: Option<String>,
406
407    /// A string identifying this payment.
408    ///
409    /// Instruct your customer to include this code in the reference or memo field of their bank transfer.
410    pub reference: Option<String>,
411
412    /// Type of bank transfer.
413    #[serde(rename = "type")]
414    pub type_: PaymentIntentNextActionDisplayBankTransferInstructionsType,
415}
416
417#[derive(Clone, Debug, Default, Deserialize, Serialize)]
418pub struct FundingInstructionsBankTransferFinancialAddress {
419    #[serde(skip_serializing_if = "Option::is_none")]
420    pub aba: Option<FundingInstructionsBankTransferAbaRecord>,
421
422    #[serde(skip_serializing_if = "Option::is_none")]
423    pub iban: Option<FundingInstructionsBankTransferIbanRecord>,
424
425    #[serde(skip_serializing_if = "Option::is_none")]
426    pub sort_code: Option<FundingInstructionsBankTransferSortCodeRecord>,
427
428    #[serde(skip_serializing_if = "Option::is_none")]
429    pub spei: Option<FundingInstructionsBankTransferSpeiRecord>,
430
431    /// The payment networks supported by this FinancialAddress.
432    #[serde(skip_serializing_if = "Option::is_none")]
433    pub supported_networks:
434        Option<Vec<FundingInstructionsBankTransferFinancialAddressSupportedNetworks>>,
435
436    #[serde(skip_serializing_if = "Option::is_none")]
437    pub swift: Option<FundingInstructionsBankTransferSwiftRecord>,
438
439    /// The type of financial address.
440    #[serde(rename = "type")]
441    pub type_: FundingInstructionsBankTransferFinancialAddressType,
442
443    #[serde(skip_serializing_if = "Option::is_none")]
444    pub zengin: Option<FundingInstructionsBankTransferZenginRecord>,
445}
446
447#[derive(Clone, Debug, Default, Deserialize, Serialize)]
448pub struct FundingInstructionsBankTransferAbaRecord {
449    /// The ABA account number.
450    pub account_number: String,
451
452    /// The bank name.
453    pub bank_name: String,
454
455    /// The ABA routing number.
456    pub routing_number: String,
457}
458
459#[derive(Clone, Debug, Default, Deserialize, Serialize)]
460pub struct FundingInstructionsBankTransferIbanRecord {
461    /// The name of the person or business that owns the bank account.
462    pub account_holder_name: String,
463
464    /// The BIC/SWIFT code of the account.
465    pub bic: String,
466
467    /// Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
468    pub country: String,
469
470    /// The IBAN of the account.
471    pub iban: String,
472}
473
474#[derive(Clone, Debug, Default, Deserialize, Serialize)]
475pub struct FundingInstructionsBankTransferSortCodeRecord {
476    /// The name of the person or business that owns the bank account.
477    pub account_holder_name: String,
478
479    /// The account number.
480    pub account_number: String,
481
482    /// The six-digit sort code.
483    pub sort_code: String,
484}
485
486#[derive(Clone, Debug, Default, Deserialize, Serialize)]
487pub struct FundingInstructionsBankTransferSpeiRecord {
488    /// The three-digit bank code.
489    pub bank_code: String,
490
491    /// The short banking institution name.
492    pub bank_name: String,
493
494    /// The CLABE number.
495    pub clabe: String,
496}
497
498#[derive(Clone, Debug, Default, Deserialize, Serialize)]
499pub struct FundingInstructionsBankTransferSwiftRecord {
500    /// The account number.
501    pub account_number: String,
502
503    /// The bank name.
504    pub bank_name: String,
505
506    /// The SWIFT code.
507    pub swift_code: String,
508}
509
510#[derive(Clone, Debug, Default, Deserialize, Serialize)]
511pub struct FundingInstructionsBankTransferZenginRecord {
512    /// The account holder name.
513    pub account_holder_name: Option<String>,
514
515    /// The account number.
516    pub account_number: Option<String>,
517
518    /// The bank account type.
519    ///
520    /// In Japan, this can only be `futsu` or `toza`.
521    pub account_type: Option<String>,
522
523    /// The bank code of the account.
524    pub bank_code: Option<String>,
525
526    /// The bank name of the account.
527    pub bank_name: Option<String>,
528
529    /// The branch code of the account.
530    pub branch_code: Option<String>,
531
532    /// The branch name of the account.
533    pub branch_name: Option<String>,
534}
535
536#[derive(Clone, Debug, Default, Deserialize, Serialize)]
537pub struct PaymentIntentNextActionDisplayOxxoDetails {
538    /// The timestamp after which the OXXO voucher expires.
539    pub expires_after: Option<Timestamp>,
540
541    /// The URL for the hosted OXXO voucher page, which allows customers to view and print an OXXO voucher.
542    pub hosted_voucher_url: Option<String>,
543
544    /// OXXO reference number.
545    pub number: Option<String>,
546}
547
548#[derive(Clone, Debug, Default, Deserialize, Serialize)]
549pub struct PaymentIntentNextActionKonbini {
550    /// The timestamp at which the pending Konbini payment expires.
551    pub expires_at: Timestamp,
552
553    /// The URL for the Konbini payment instructions page, which allows customers to view and print a Konbini voucher.
554    pub hosted_voucher_url: Option<String>,
555
556    pub stores: PaymentIntentNextActionKonbiniStores,
557}
558
559#[derive(Clone, Debug, Default, Deserialize, Serialize)]
560pub struct PaymentIntentNextActionKonbiniStores {
561    /// FamilyMart instruction details.
562    pub familymart: Option<PaymentIntentNextActionKonbiniFamilymart>,
563
564    /// Lawson instruction details.
565    pub lawson: Option<PaymentIntentNextActionKonbiniLawson>,
566
567    /// Ministop instruction details.
568    pub ministop: Option<PaymentIntentNextActionKonbiniMinistop>,
569
570    /// Seicomart instruction details.
571    pub seicomart: Option<PaymentIntentNextActionKonbiniSeicomart>,
572}
573
574#[derive(Clone, Debug, Default, Deserialize, Serialize)]
575pub struct PaymentIntentNextActionKonbiniFamilymart {
576    /// The confirmation number.
577    #[serde(skip_serializing_if = "Option::is_none")]
578    pub confirmation_number: Option<String>,
579
580    /// The payment code.
581    pub payment_code: String,
582}
583
584#[derive(Clone, Debug, Default, Deserialize, Serialize)]
585pub struct PaymentIntentNextActionKonbiniLawson {
586    /// The confirmation number.
587    #[serde(skip_serializing_if = "Option::is_none")]
588    pub confirmation_number: Option<String>,
589
590    /// The payment code.
591    pub payment_code: String,
592}
593
594#[derive(Clone, Debug, Default, Deserialize, Serialize)]
595pub struct PaymentIntentNextActionKonbiniMinistop {
596    /// The confirmation number.
597    #[serde(skip_serializing_if = "Option::is_none")]
598    pub confirmation_number: Option<String>,
599
600    /// The payment code.
601    pub payment_code: String,
602}
603
604#[derive(Clone, Debug, Default, Deserialize, Serialize)]
605pub struct PaymentIntentNextActionKonbiniSeicomart {
606    /// The confirmation number.
607    #[serde(skip_serializing_if = "Option::is_none")]
608    pub confirmation_number: Option<String>,
609
610    /// The payment code.
611    pub payment_code: String,
612}
613
614#[derive(Clone, Debug, Default, Deserialize, Serialize)]
615pub struct PaymentIntentNextActionPaynowDisplayQrCode {
616    /// The raw data string used to generate QR code, it should be used together with QR code library.
617    pub data: String,
618
619    /// The URL to the hosted PayNow instructions page, which allows customers to view the PayNow QR code.
620    pub hosted_instructions_url: Option<String>,
621
622    /// The image_url_png string used to render QR code.
623    pub image_url_png: String,
624
625    /// The image_url_svg string used to render QR code.
626    pub image_url_svg: String,
627}
628
629#[derive(Clone, Debug, Default, Deserialize, Serialize)]
630pub struct PaymentIntentNextActionPixDisplayQrCode {
631    /// The raw data string used to generate QR code, it should be used together with QR code library.
632    #[serde(skip_serializing_if = "Option::is_none")]
633    pub data: Option<String>,
634
635    /// The date (unix timestamp) when the PIX expires.
636    #[serde(skip_serializing_if = "Option::is_none")]
637    pub expires_at: Option<i64>,
638
639    /// The URL to the hosted pix instructions page, which allows customers to view the pix QR code.
640    #[serde(skip_serializing_if = "Option::is_none")]
641    pub hosted_instructions_url: Option<String>,
642
643    /// The image_url_png string used to render png QR code.
644    #[serde(skip_serializing_if = "Option::is_none")]
645    pub image_url_png: Option<String>,
646
647    /// The image_url_svg string used to render svg QR code.
648    #[serde(skip_serializing_if = "Option::is_none")]
649    pub image_url_svg: Option<String>,
650}
651
652#[derive(Clone, Debug, Default, Deserialize, Serialize)]
653pub struct PaymentIntentNextActionPromptpayDisplayQrCode {
654    /// The raw data string used to generate QR code, it should be used together with QR code library.
655    pub data: String,
656
657    /// The URL to the hosted PromptPay instructions page, which allows customers to view the PromptPay QR code.
658    pub hosted_instructions_url: String,
659
660    /// The PNG path used to render the QR code, can be used as the source in an HTML img tag.
661    pub image_url_png: String,
662
663    /// The SVG path used to render the QR code, can be used as the source in an HTML img tag.
664    pub image_url_svg: String,
665}
666
667#[derive(Clone, Debug, Default, Deserialize, Serialize)]
668pub struct PaymentIntentNextActionRedirectToUrl {
669    /// If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.
670    pub return_url: Option<String>,
671
672    /// The URL you must redirect your customer to in order to authenticate the payment.
673    pub url: Option<String>,
674}
675
676#[derive(Clone, Debug, Default, Deserialize, Serialize)]
677pub struct PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode {
678    /// The URL to the hosted Swish instructions page, which allows customers to view the QR code.
679    #[serde(skip_serializing_if = "Option::is_none")]
680    pub hosted_instructions_url: Option<String>,
681
682    /// The url for mobile redirect based auth.
683    #[serde(skip_serializing_if = "Option::is_none")]
684    pub mobile_auth_url: Option<String>,
685
686    #[serde(skip_serializing_if = "Option::is_none")]
687    pub qr_code: Option<PaymentIntentNextActionSwishQrCode>,
688}
689
690#[derive(Clone, Debug, Default, Deserialize, Serialize)]
691pub struct PaymentIntentNextActionSwishQrCode {
692    /// The raw data string used to generate QR code, it should be used together with QR code library.
693    #[serde(skip_serializing_if = "Option::is_none")]
694    pub data: Option<String>,
695
696    /// The image_url_png string used to render QR code.
697    #[serde(skip_serializing_if = "Option::is_none")]
698    pub image_url_png: Option<String>,
699
700    /// The image_url_svg string used to render QR code.
701    #[serde(skip_serializing_if = "Option::is_none")]
702    pub image_url_svg: Option<String>,
703}
704
705#[derive(Clone, Debug, Default, Deserialize, Serialize)]
706pub struct PaymentIntentNextActionVerifyWithMicrodeposits {
707    /// The timestamp when the microdeposits are expected to land.
708    pub arrival_date: Timestamp,
709
710    /// The URL for the hosted verification page, which allows customers to verify their bank account.
711    pub hosted_verification_url: String,
712
713    /// The type of the microdeposit sent to the customer.
714    ///
715    /// Used to distinguish between different verification methods.
716    pub microdeposit_type: Option<PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType>,
717}
718
719#[derive(Clone, Debug, Default, Deserialize, Serialize)]
720pub struct PaymentIntentNextActionWechatPayDisplayQrCode {
721    /// The data being used to generate QR code.
722    pub data: String,
723
724    /// The URL to the hosted WeChat Pay instructions page, which allows customers to view the WeChat Pay QR code.
725    pub hosted_instructions_url: String,
726
727    /// The base64 image data for a pre-generated QR code.
728    pub image_data_url: String,
729
730    /// The image_url_png string used to render QR code.
731    pub image_url_png: String,
732
733    /// The image_url_svg string used to render QR code.
734    pub image_url_svg: String,
735}
736
737#[derive(Clone, Debug, Default, Deserialize, Serialize)]
738pub struct PaymentIntentNextActionWechatPayRedirectToAndroidApp {
739    /// app_id is the APP ID registered on WeChat open platform.
740    pub app_id: String,
741
742    /// nonce_str is a random string.
743    pub nonce_str: String,
744
745    /// package is static value.
746    pub package: String,
747
748    /// an unique merchant ID assigned by WeChat Pay.
749    pub partner_id: String,
750
751    /// an unique trading ID assigned by WeChat Pay.
752    pub prepay_id: String,
753
754    /// A signature.
755    pub sign: String,
756
757    /// Specifies the current time in epoch format.
758    pub timestamp: String,
759}
760
761#[derive(Clone, Debug, Default, Deserialize, Serialize)]
762pub struct PaymentIntentNextActionWechatPayRedirectToIosApp {
763    /// An universal link that redirect to WeChat Pay app.
764    pub native_url: String,
765}
766
767#[derive(Clone, Debug, Default, Deserialize, Serialize)]
768pub struct PaymentIntentPaymentMethodOptions {
769    #[serde(skip_serializing_if = "Option::is_none")]
770    pub acss_debit: Option<PaymentIntentPaymentMethodOptionsAcssDebit>,
771
772    #[serde(skip_serializing_if = "Option::is_none")]
773    pub affirm: Option<PaymentMethodOptionsAffirm>,
774
775    #[serde(skip_serializing_if = "Option::is_none")]
776    pub afterpay_clearpay: Option<PaymentMethodOptionsAfterpayClearpay>,
777
778    #[serde(skip_serializing_if = "Option::is_none")]
779    pub alipay: Option<PaymentMethodOptionsAlipay>,
780
781    #[serde(skip_serializing_if = "Option::is_none")]
782    pub au_becs_debit: Option<PaymentIntentPaymentMethodOptionsAuBecsDebit>,
783
784    #[serde(skip_serializing_if = "Option::is_none")]
785    pub bacs_debit: Option<PaymentMethodOptionsBacsDebit>,
786
787    #[serde(skip_serializing_if = "Option::is_none")]
788    pub bancontact: Option<PaymentMethodOptionsBancontact>,
789
790    #[serde(skip_serializing_if = "Option::is_none")]
791    pub blik: Option<PaymentIntentPaymentMethodOptionsBlik>,
792
793    #[serde(skip_serializing_if = "Option::is_none")]
794    pub boleto: Option<PaymentMethodOptionsBoleto>,
795
796    #[serde(skip_serializing_if = "Option::is_none")]
797    pub card: Option<PaymentIntentPaymentMethodOptionsCard>,
798
799    #[serde(skip_serializing_if = "Option::is_none")]
800    pub card_present: Option<PaymentMethodOptionsCardPresent>,
801
802    #[serde(skip_serializing_if = "Option::is_none")]
803    pub cashapp: Option<PaymentMethodOptionsCashapp>,
804
805    #[serde(skip_serializing_if = "Option::is_none")]
806    pub customer_balance: Option<PaymentMethodOptionsCustomerBalance>,
807
808    #[serde(skip_serializing_if = "Option::is_none")]
809    pub eps: Option<PaymentIntentPaymentMethodOptionsEps>,
810
811    #[serde(skip_serializing_if = "Option::is_none")]
812    pub fpx: Option<PaymentMethodOptionsFpx>,
813
814    #[serde(skip_serializing_if = "Option::is_none")]
815    pub giropay: Option<PaymentMethodOptionsGiropay>,
816
817    #[serde(skip_serializing_if = "Option::is_none")]
818    pub grabpay: Option<PaymentMethodOptionsGrabpay>,
819
820    #[serde(skip_serializing_if = "Option::is_none")]
821    pub ideal: Option<PaymentMethodOptionsIdeal>,
822
823    #[serde(skip_serializing_if = "Option::is_none")]
824    pub interac_present: Option<PaymentMethodOptionsInteracPresent>,
825
826    #[serde(skip_serializing_if = "Option::is_none")]
827    pub klarna: Option<PaymentMethodOptionsKlarna>,
828
829    #[serde(skip_serializing_if = "Option::is_none")]
830    pub konbini: Option<PaymentMethodOptionsKonbini>,
831
832    #[serde(skip_serializing_if = "Option::is_none")]
833    pub link: Option<PaymentIntentPaymentMethodOptionsLink>,
834
835    #[serde(skip_serializing_if = "Option::is_none")]
836    pub oxxo: Option<PaymentMethodOptionsOxxo>,
837
838    #[serde(skip_serializing_if = "Option::is_none")]
839    pub p24: Option<PaymentMethodOptionsP24>,
840
841    #[serde(skip_serializing_if = "Option::is_none")]
842    pub paynow: Option<PaymentMethodOptionsPaynow>,
843
844    #[serde(skip_serializing_if = "Option::is_none")]
845    pub paypal: Option<PaymentMethodOptionsPaypal>,
846
847    #[serde(skip_serializing_if = "Option::is_none")]
848    pub pix: Option<PaymentMethodOptionsPix>,
849
850    #[serde(skip_serializing_if = "Option::is_none")]
851    pub promptpay: Option<PaymentMethodOptionsPromptpay>,
852
853    #[serde(skip_serializing_if = "Option::is_none")]
854    pub revolut_pay: Option<PaymentMethodOptionsRevolutPay>,
855
856    #[serde(skip_serializing_if = "Option::is_none")]
857    pub sepa_debit: Option<PaymentIntentPaymentMethodOptionsSepaDebit>,
858
859    #[serde(skip_serializing_if = "Option::is_none")]
860    pub sofort: Option<PaymentMethodOptionsSofort>,
861
862    #[serde(skip_serializing_if = "Option::is_none")]
863    pub swish: Option<PaymentIntentPaymentMethodOptionsSwish>,
864
865    #[serde(skip_serializing_if = "Option::is_none")]
866    pub us_bank_account: Option<PaymentIntentPaymentMethodOptionsUsBankAccount>,
867
868    #[serde(skip_serializing_if = "Option::is_none")]
869    pub wechat_pay: Option<PaymentMethodOptionsWechatPay>,
870
871    #[serde(skip_serializing_if = "Option::is_none")]
872    pub zip: Option<PaymentMethodOptionsZip>,
873}
874
875#[derive(Clone, Debug, Default, Deserialize, Serialize)]
876pub struct PaymentIntentPaymentMethodOptionsAcssDebit {
877    #[serde(skip_serializing_if = "Option::is_none")]
878    pub mandate_options: Option<PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebit>,
879
880    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
881    ///
882    /// 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.
883    ///
884    /// 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.  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).
885    #[serde(skip_serializing_if = "Option::is_none")]
886    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage>,
887
888    /// Bank account verification method.
889    #[serde(skip_serializing_if = "Option::is_none")]
890    pub verification_method: Option<PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod>,
891}
892
893#[derive(Clone, Debug, Default, Deserialize, Serialize)]
894pub struct PaymentIntentPaymentMethodOptionsAuBecsDebit {
895    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
896    ///
897    /// 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.
898    ///
899    /// 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.  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).
900    #[serde(skip_serializing_if = "Option::is_none")]
901    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage>,
902}
903
904#[derive(Clone, Debug, Default, Deserialize, Serialize)]
905pub struct PaymentIntentPaymentMethodOptionsBlik {
906    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
907    ///
908    /// 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.
909    ///
910    /// 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.  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).
911    #[serde(skip_serializing_if = "Option::is_none")]
912    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsBlikSetupFutureUsage>,
913}
914
915#[derive(Clone, Debug, Default, Deserialize, Serialize)]
916pub struct PaymentIntentPaymentMethodOptionsCard {
917    /// Controls when the funds will be captured from the customer's account.
918    #[serde(skip_serializing_if = "Option::is_none")]
919    pub capture_method: Option<PaymentIntentPaymentMethodOptionsCardCaptureMethod>,
920
921    /// Installment details for this payment (Mexico only).
922    ///
923    /// For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).
924    pub installments: Option<PaymentMethodOptionsCardInstallments>,
925
926    /// Configuration options for setting up an eMandate for cards issued in India.
927    pub mandate_options: Option<PaymentMethodOptionsCardMandateOptions>,
928
929    /// Selected network to process this payment intent on.
930    ///
931    /// Depends on the available networks of the card attached to the payment intent.
932    /// Can be only set confirm-time.
933    pub network: Option<PaymentIntentPaymentMethodOptionsCardNetwork>,
934
935    /// Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent.
936    #[serde(skip_serializing_if = "Option::is_none")]
937    pub request_extended_authorization:
938        Option<PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization>,
939
940    /// Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent.
941    #[serde(skip_serializing_if = "Option::is_none")]
942    pub request_incremental_authorization:
943        Option<PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization>,
944
945    /// Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent.
946    #[serde(skip_serializing_if = "Option::is_none")]
947    pub request_multicapture: Option<PaymentIntentPaymentMethodOptionsCardRequestMulticapture>,
948
949    /// Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent.
950    #[serde(skip_serializing_if = "Option::is_none")]
951    pub request_overcapture: Option<PaymentIntentPaymentMethodOptionsCardRequestOvercapture>,
952
953    /// 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).
954    ///
955    /// However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option.
956    /// If not provided, this value defaults to `automatic`.
957    /// Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
958    pub request_three_d_secure: Option<PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure>,
959
960    /// When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e.
961    ///
962    /// using the cvc_token parameter).
963    #[serde(skip_serializing_if = "Option::is_none")]
964    pub require_cvc_recollection: Option<bool>,
965
966    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
967    ///
968    /// 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.
969    ///
970    /// 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.  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).
971    #[serde(skip_serializing_if = "Option::is_none")]
972    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsCardSetupFutureUsage>,
973
974    /// Provides information about a card payment that customers see on their statements.
975    ///
976    /// Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor.
977    /// Maximum 22 characters.
978    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.
979    #[serde(skip_serializing_if = "Option::is_none")]
980    pub statement_descriptor_suffix_kana: Option<String>,
981
982    /// Provides information about a card payment that customers see on their statements.
983    ///
984    /// Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor.
985    /// Maximum 17 characters.
986    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.
987    #[serde(skip_serializing_if = "Option::is_none")]
988    pub statement_descriptor_suffix_kanji: Option<String>,
989}
990
991#[derive(Clone, Debug, Default, Deserialize, Serialize)]
992pub struct PaymentIntentPaymentMethodOptionsEps {
993    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
994    ///
995    /// 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.
996    ///
997    /// 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.  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).
998    #[serde(skip_serializing_if = "Option::is_none")]
999    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsEpsSetupFutureUsage>,
1000}
1001
1002#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1003pub struct PaymentIntentPaymentMethodOptionsLink {
1004    /// Controls when the funds will be captured from the customer's account.
1005    #[serde(skip_serializing_if = "Option::is_none")]
1006    pub capture_method: Option<PaymentIntentPaymentMethodOptionsLinkCaptureMethod>,
1007
1008    /// [Deprecated] This is a legacy parameter that no longer has any function.
1009    pub persistent_token: Option<String>,
1010
1011    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1012    ///
1013    /// 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.
1014    ///
1015    /// 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.  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).
1016    #[serde(skip_serializing_if = "Option::is_none")]
1017    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage>,
1018}
1019
1020#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1021pub struct PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebit {
1022    /// A URL for custom mandate text.
1023    #[serde(skip_serializing_if = "Option::is_none")]
1024    pub custom_mandate_url: Option<String>,
1025
1026    /// Description of the interval.
1027    ///
1028    /// Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.
1029    pub interval_description: Option<String>,
1030
1031    /// Payment schedule for the mandate.
1032    pub payment_schedule:
1033        Option<PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule>,
1034
1035    /// Transaction type of the mandate.
1036    pub transaction_type:
1037        Option<PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType>,
1038}
1039
1040#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1041pub struct PaymentIntentPaymentMethodOptionsSepaDebit {
1042    #[serde(skip_serializing_if = "Option::is_none")]
1043    pub mandate_options: Option<PaymentIntentPaymentMethodOptionsMandateOptionsSepaDebit>,
1044
1045    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1046    ///
1047    /// 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.
1048    ///
1049    /// 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.  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).
1050    #[serde(skip_serializing_if = "Option::is_none")]
1051    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage>,
1052}
1053
1054#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1055pub struct PaymentIntentPaymentMethodOptionsMandateOptionsSepaDebit {}
1056
1057#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1058pub struct PaymentIntentPaymentMethodOptionsSwish {
1059    /// The order ID displayed in the Swish app after the payment is authorized.
1060    #[serde(skip_serializing_if = "Option::is_none")]
1061    pub reference: Option<String>,
1062
1063    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1064    ///
1065    /// 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.
1066    ///
1067    /// 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.  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).
1068    #[serde(skip_serializing_if = "Option::is_none")]
1069    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage>,
1070}
1071
1072#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1073pub struct PaymentIntentPaymentMethodOptionsUsBankAccount {
1074    #[serde(skip_serializing_if = "Option::is_none")]
1075    pub financial_connections: Option<LinkedAccountOptionsUsBankAccount>,
1076
1077    #[serde(skip_serializing_if = "Option::is_none")]
1078    pub mandate_options: Option<PaymentMethodOptionsUsBankAccountMandateOptions>,
1079
1080    /// Preferred transaction settlement speed.
1081    #[serde(skip_serializing_if = "Option::is_none")]
1082    pub preferred_settlement_speed:
1083        Option<PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed>,
1084
1085    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1086    ///
1087    /// 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.
1088    ///
1089    /// 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.  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).
1090    #[serde(skip_serializing_if = "Option::is_none")]
1091    pub setup_future_usage: Option<PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage>,
1092
1093    /// Bank account verification method.
1094    #[serde(skip_serializing_if = "Option::is_none")]
1095    pub verification_method:
1096        Option<PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod>,
1097}
1098
1099#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1100pub struct PaymentIntentProcessing {
1101    #[serde(skip_serializing_if = "Option::is_none")]
1102    pub card: Option<PaymentIntentCardProcessing>,
1103
1104    /// Type of the payment method for which payment is in `processing` state, one of `card`.
1105    #[serde(rename = "type")]
1106    pub type_: PaymentIntentProcessingType,
1107}
1108
1109#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1110pub struct PaymentIntentCardProcessing {
1111    #[serde(skip_serializing_if = "Option::is_none")]
1112    pub customer_notification: Option<PaymentIntentProcessingCustomerNotification>,
1113}
1114
1115#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1116pub struct PaymentIntentProcessingCustomerNotification {
1117    /// Whether customer approval has been requested for this payment.
1118    ///
1119    /// For payments greater than INR 15000 or mandate amount, the customer must provide explicit approval of the payment with their bank.
1120    pub approval_requested: Option<bool>,
1121
1122    /// If customer approval is required, they need to provide approval before this time.
1123    pub completes_at: Option<Timestamp>,
1124}
1125
1126#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1127pub struct PaymentMethodOptionsAffirm {
1128    /// Controls when the funds will be captured from the customer's account.
1129    #[serde(skip_serializing_if = "Option::is_none")]
1130    pub capture_method: Option<PaymentMethodOptionsAffirmCaptureMethod>,
1131
1132    /// Preferred language of the Affirm authorization page that the customer is redirected to.
1133    #[serde(skip_serializing_if = "Option::is_none")]
1134    pub preferred_locale: Option<String>,
1135
1136    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1137    ///
1138    /// 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.
1139    ///
1140    /// 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.  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).
1141    #[serde(skip_serializing_if = "Option::is_none")]
1142    pub setup_future_usage: Option<PaymentMethodOptionsAffirmSetupFutureUsage>,
1143}
1144
1145#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1146pub struct PaymentMethodOptionsAfterpayClearpay {
1147    /// Controls when the funds will be captured from the customer's account.
1148    #[serde(skip_serializing_if = "Option::is_none")]
1149    pub capture_method: Option<PaymentMethodOptionsAfterpayClearpayCaptureMethod>,
1150
1151    /// An internal identifier or reference that this payment corresponds to.
1152    ///
1153    /// You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. This field differs from the statement descriptor and item name.
1154    pub reference: Option<String>,
1155
1156    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1157    ///
1158    /// 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.
1159    ///
1160    /// 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.  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).
1161    #[serde(skip_serializing_if = "Option::is_none")]
1162    pub setup_future_usage: Option<PaymentMethodOptionsAfterpayClearpaySetupFutureUsage>,
1163}
1164
1165#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1166pub struct PaymentMethodOptionsAlipay {
1167    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1168    ///
1169    /// 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.
1170    ///
1171    /// 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.  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).
1172    #[serde(skip_serializing_if = "Option::is_none")]
1173    pub setup_future_usage: Option<PaymentMethodOptionsAlipaySetupFutureUsage>,
1174}
1175
1176#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1177pub struct PaymentMethodOptionsBacsDebit {
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.
1181    ///
1182    /// 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.  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    #[serde(skip_serializing_if = "Option::is_none")]
1184    pub setup_future_usage: Option<PaymentMethodOptionsBacsDebitSetupFutureUsage>,
1185}
1186
1187#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1188pub struct PaymentMethodOptionsBancontact {
1189    /// Preferred language of the Bancontact authorization page that the customer is redirected to.
1190    pub preferred_language: PaymentMethodOptionsBancontactPreferredLanguage,
1191
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.
1195    ///
1196    /// 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.  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    #[serde(skip_serializing_if = "Option::is_none")]
1198    pub setup_future_usage: Option<PaymentMethodOptionsBancontactSetupFutureUsage>,
1199}
1200
1201#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1202pub struct PaymentMethodOptionsBoleto {
1203    /// The number of calendar days before a Boleto voucher expires.
1204    ///
1205    /// 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.
1206    pub expires_after_days: u32,
1207
1208    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1209    ///
1210    /// 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.
1211    ///
1212    /// 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.  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).
1213    #[serde(skip_serializing_if = "Option::is_none")]
1214    pub setup_future_usage: Option<PaymentMethodOptionsBoletoSetupFutureUsage>,
1215}
1216
1217#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1218pub struct PaymentMethodOptionsCardInstallments {
1219    /// Installment plans that may be selected for this PaymentIntent.
1220    pub available_plans: Option<Vec<PaymentMethodDetailsCardInstallmentsPlan>>,
1221
1222    /// Whether Installments are enabled for this PaymentIntent.
1223    pub enabled: bool,
1224
1225    /// Installment plan selected for this PaymentIntent.
1226    pub plan: Option<PaymentMethodDetailsCardInstallmentsPlan>,
1227}
1228
1229#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1230pub struct PaymentMethodOptionsCardMandateOptions {
1231    /// Amount to be charged for future payments.
1232    pub amount: i64,
1233
1234    /// One of `fixed` or `maximum`.
1235    ///
1236    /// If `fixed`, the `amount` param refers to the exact amount to be charged in future payments.
1237    /// If `maximum`, the amount charged can be up to the value passed for the `amount` param.
1238    pub amount_type: PaymentMethodOptionsCardMandateOptionsAmountType,
1239
1240    /// A description of the mandate or subscription that is meant to be displayed to the customer.
1241    pub description: Option<String>,
1242
1243    /// End date of the mandate or subscription.
1244    ///
1245    /// If not provided, the mandate will be active until canceled.
1246    /// If provided, end date should be after start date.
1247    pub end_date: Option<Timestamp>,
1248
1249    /// Specifies payment frequency.
1250    ///
1251    /// One of `day`, `week`, `month`, `year`, or `sporadic`.
1252    pub interval: PaymentMethodOptionsCardMandateOptionsInterval,
1253
1254    /// The number of intervals between payments.
1255    ///
1256    /// For example, `interval=month` and `interval_count=3` indicates one payment every three months.
1257    /// Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).
1258    /// This parameter is optional when `interval=sporadic`.
1259    pub interval_count: Option<u64>,
1260
1261    /// Unique identifier for the mandate or subscription.
1262    pub reference: String,
1263
1264    /// Start date of the mandate or subscription.
1265    ///
1266    /// Start date should not be lesser than yesterday.
1267    pub start_date: Timestamp,
1268
1269    /// Specifies the type of mandates supported.
1270    ///
1271    /// Possible values are `india`.
1272    pub supported_types: Option<Vec<PaymentMethodOptionsCardMandateOptionsSupportedTypes>>,
1273}
1274
1275#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1276pub struct PaymentMethodOptionsCardPresent {
1277    /// Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity).
1278    pub request_extended_authorization: Option<bool>,
1279
1280    /// Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible.
1281    ///
1282    /// 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.
1283    pub request_incremental_authorization_support: Option<bool>,
1284}
1285
1286#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1287pub struct PaymentMethodOptionsCashapp {
1288    /// Controls when the funds will be captured from the customer's account.
1289    #[serde(skip_serializing_if = "Option::is_none")]
1290    pub capture_method: Option<PaymentMethodOptionsCashappCaptureMethod>,
1291
1292    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1293    ///
1294    /// 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.
1295    ///
1296    /// 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.  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).
1297    #[serde(skip_serializing_if = "Option::is_none")]
1298    pub setup_future_usage: Option<PaymentMethodOptionsCashappSetupFutureUsage>,
1299}
1300
1301#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1302pub struct PaymentMethodOptionsCustomerBalance {
1303    #[serde(skip_serializing_if = "Option::is_none")]
1304    pub bank_transfer: Option<PaymentMethodOptionsCustomerBalanceBankTransfer>,
1305
1306    /// The funding method type to be used when there are not enough funds in the customer balance.
1307    ///
1308    /// Permitted values include: `bank_transfer`.
1309    pub funding_type: Option<PaymentMethodOptionsCustomerBalanceFundingType>,
1310
1311    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1312    ///
1313    /// 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.
1314    ///
1315    /// 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.  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).
1316    #[serde(skip_serializing_if = "Option::is_none")]
1317    pub setup_future_usage: Option<PaymentMethodOptionsCustomerBalanceSetupFutureUsage>,
1318}
1319
1320#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1321pub struct PaymentMethodOptionsCustomerBalanceBankTransfer {
1322    #[serde(skip_serializing_if = "Option::is_none")]
1323    pub eu_bank_transfer: Option<PaymentMethodOptionsCustomerBalanceEuBankAccount>,
1324
1325    /// List of address types that should be returned in the financial_addresses response.
1326    ///
1327    /// If not specified, all valid types will be returned.  Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
1328    #[serde(skip_serializing_if = "Option::is_none")]
1329    pub requested_address_types:
1330        Option<Vec<PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes>>,
1331
1332    /// 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`.
1333    #[serde(rename = "type")]
1334    pub type_: Option<PaymentMethodOptionsCustomerBalanceBankTransferType>,
1335}
1336
1337#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1338pub struct PaymentMethodOptionsFpx {
1339    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1340    ///
1341    /// 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.
1342    ///
1343    /// 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.  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).
1344    #[serde(skip_serializing_if = "Option::is_none")]
1345    pub setup_future_usage: Option<PaymentMethodOptionsFpxSetupFutureUsage>,
1346}
1347
1348#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1349pub struct PaymentMethodOptionsGiropay {
1350    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1351    ///
1352    /// 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.
1353    ///
1354    /// 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.  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).
1355    #[serde(skip_serializing_if = "Option::is_none")]
1356    pub setup_future_usage: Option<PaymentMethodOptionsGiropaySetupFutureUsage>,
1357}
1358
1359#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1360pub struct PaymentMethodOptionsGrabpay {
1361    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1362    ///
1363    /// 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.
1364    ///
1365    /// 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.  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).
1366    #[serde(skip_serializing_if = "Option::is_none")]
1367    pub setup_future_usage: Option<PaymentMethodOptionsGrabpaySetupFutureUsage>,
1368}
1369
1370#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1371pub struct PaymentMethodOptionsIdeal {
1372    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1373    ///
1374    /// 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.
1375    ///
1376    /// 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.  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).
1377    #[serde(skip_serializing_if = "Option::is_none")]
1378    pub setup_future_usage: Option<PaymentMethodOptionsIdealSetupFutureUsage>,
1379}
1380
1381#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1382pub struct PaymentMethodOptionsInteracPresent {}
1383
1384#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1385pub struct PaymentMethodOptionsKlarna {
1386    /// Controls when the funds will be captured from the customer's account.
1387    #[serde(skip_serializing_if = "Option::is_none")]
1388    pub capture_method: Option<PaymentMethodOptionsKlarnaCaptureMethod>,
1389
1390    /// Preferred locale of the Klarna checkout page that the customer is redirected to.
1391    pub preferred_locale: Option<String>,
1392
1393    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1394    ///
1395    /// 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.
1396    ///
1397    /// 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.  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).
1398    #[serde(skip_serializing_if = "Option::is_none")]
1399    pub setup_future_usage: Option<PaymentMethodOptionsKlarnaSetupFutureUsage>,
1400}
1401
1402#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1403pub struct PaymentMethodOptionsKonbini {
1404    /// An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores.
1405    pub confirmation_number: Option<String>,
1406
1407    /// The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire.
1408    ///
1409    /// 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.
1410    pub expires_after_days: Option<u32>,
1411
1412    /// The timestamp at which the Konbini payment instructions will expire.
1413    ///
1414    /// Only one of `expires_after_days` or `expires_at` may be set.
1415    pub expires_at: Option<Timestamp>,
1416
1417    /// A product descriptor of up to 22 characters, which will appear to customers at the convenience store.
1418    pub product_description: Option<String>,
1419
1420    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1421    ///
1422    /// 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.
1423    ///
1424    /// 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.  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).
1425    #[serde(skip_serializing_if = "Option::is_none")]
1426    pub setup_future_usage: Option<PaymentMethodOptionsKonbiniSetupFutureUsage>,
1427}
1428
1429#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1430pub struct PaymentMethodOptionsOxxo {
1431    /// The number of calendar days before an OXXO invoice expires.
1432    ///
1433    /// 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.
1434    pub expires_after_days: u32,
1435
1436    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1437    ///
1438    /// 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.
1439    ///
1440    /// 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.  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).
1441    #[serde(skip_serializing_if = "Option::is_none")]
1442    pub setup_future_usage: Option<PaymentMethodOptionsOxxoSetupFutureUsage>,
1443}
1444
1445#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1446pub struct PaymentMethodOptionsP24 {
1447    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1448    ///
1449    /// 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.
1450    ///
1451    /// 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.  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).
1452    #[serde(skip_serializing_if = "Option::is_none")]
1453    pub setup_future_usage: Option<PaymentMethodOptionsP24SetupFutureUsage>,
1454}
1455
1456#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1457pub struct PaymentMethodOptionsPaynow {
1458    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1459    ///
1460    /// 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.
1461    ///
1462    /// 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.  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).
1463    #[serde(skip_serializing_if = "Option::is_none")]
1464    pub setup_future_usage: Option<PaymentMethodOptionsPaynowSetupFutureUsage>,
1465}
1466
1467#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1468pub struct PaymentMethodOptionsPaypal {
1469    /// Controls when the funds will be captured from the customer's account.
1470    #[serde(skip_serializing_if = "Option::is_none")]
1471    pub capture_method: Option<PaymentMethodOptionsPaypalCaptureMethod>,
1472
1473    /// Preferred locale of the PayPal checkout page that the customer is redirected to.
1474    pub preferred_locale: Option<String>,
1475
1476    /// A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID.
1477    ///
1478    /// This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
1479    pub reference: Option<String>,
1480
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.
1484    ///
1485    /// 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.  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    #[serde(skip_serializing_if = "Option::is_none")]
1487    pub setup_future_usage: Option<PaymentMethodOptionsPaypalSetupFutureUsage>,
1488}
1489
1490#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1491pub struct PaymentMethodOptionsPix {
1492    /// The number of seconds (between 10 and 1209600) after which Pix payment will expire.
1493    pub expires_after_seconds: Option<i64>,
1494
1495    /// The timestamp at which the Pix expires.
1496    pub expires_at: Option<i64>,
1497
1498    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1499    ///
1500    /// 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.
1501    ///
1502    /// 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.  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).
1503    #[serde(skip_serializing_if = "Option::is_none")]
1504    pub setup_future_usage: Option<PaymentMethodOptionsPixSetupFutureUsage>,
1505}
1506
1507#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1508pub struct PaymentMethodOptionsPromptpay {
1509    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1510    ///
1511    /// 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.
1512    ///
1513    /// 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.  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).
1514    #[serde(skip_serializing_if = "Option::is_none")]
1515    pub setup_future_usage: Option<PaymentMethodOptionsPromptpaySetupFutureUsage>,
1516}
1517
1518#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1519pub struct PaymentMethodOptionsRevolutPay {}
1520
1521#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1522pub struct PaymentMethodOptionsSofort {
1523    /// Preferred language of the SOFORT authorization page that the customer is redirected to.
1524    pub preferred_language: Option<PaymentMethodOptionsSofortPreferredLanguage>,
1525
1526    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1527    ///
1528    /// 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.
1529    ///
1530    /// 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.  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).
1531    #[serde(skip_serializing_if = "Option::is_none")]
1532    pub setup_future_usage: Option<PaymentMethodOptionsSofortSetupFutureUsage>,
1533}
1534
1535#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1536pub struct PaymentMethodOptionsWechatPay {
1537    /// The app ID registered with WeChat Pay.
1538    ///
1539    /// Only required when client is ios or android.
1540    pub app_id: Option<String>,
1541
1542    /// The client type that the end customer will pay from.
1543    pub client: Option<PaymentMethodOptionsWechatPayClient>,
1544
1545    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1546    ///
1547    /// 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.
1548    ///
1549    /// 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.  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).
1550    #[serde(skip_serializing_if = "Option::is_none")]
1551    pub setup_future_usage: Option<PaymentMethodOptionsWechatPaySetupFutureUsage>,
1552}
1553
1554#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1555pub struct PaymentMethodOptionsZip {
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.
1559    ///
1560    /// 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.  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    #[serde(skip_serializing_if = "Option::is_none")]
1562    pub setup_future_usage: Option<PaymentMethodOptionsZipSetupFutureUsage>,
1563}
1564
1565#[derive(Clone, Debug, Default, Deserialize, Serialize)]
1566pub struct TransferData {
1567    /// Amount intended to be collected by this PaymentIntent.
1568    ///
1569    /// 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).
1570    /// The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts).
1571    /// The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
1572    #[serde(skip_serializing_if = "Option::is_none")]
1573    pub amount: Option<i64>,
1574
1575    /// The account (if any) that the payment is attributed to for tax
1576    /// reporting, and where funds from the payment are transferred to after
1577    /// payment success.
1578    pub destination: Expandable<Account>,
1579}
1580
1581/// The parameters for `PaymentIntent::create`.
1582#[derive(Clone, Debug, Serialize)]
1583pub struct CreatePaymentIntent<'a> {
1584    /// Amount intended to be collected by this PaymentIntent.
1585    ///
1586    /// 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).
1587    /// The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts).
1588    /// The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
1589    pub amount: i64,
1590
1591    /// 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.
1592    ///
1593    /// The amount of the application fee collected will be capped at the total payment amount.
1594    /// For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1595    #[serde(skip_serializing_if = "Option::is_none")]
1596    pub application_fee_amount: Option<i64>,
1597
1598    /// 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.
1599    #[serde(skip_serializing_if = "Option::is_none")]
1600    pub automatic_payment_methods: Option<CreatePaymentIntentAutomaticPaymentMethods>,
1601
1602    /// Controls when the funds will be captured from the customer's account.
1603    #[serde(skip_serializing_if = "Option::is_none")]
1604    pub capture_method: Option<PaymentIntentCaptureMethod>,
1605
1606    /// Set to `true` to attempt to [confirm this PaymentIntent](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent immediately.
1607    ///
1608    /// This parameter defaults to `false`.
1609    /// 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).
1610    #[serde(skip_serializing_if = "Option::is_none")]
1611    pub confirm: Option<bool>,
1612
1613    /// Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.
1614    #[serde(skip_serializing_if = "Option::is_none")]
1615    pub confirmation_method: Option<PaymentIntentConfirmationMethod>,
1616
1617    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
1618    ///
1619    /// Must be a [supported currency](https://stripe.com/docs/currencies).
1620    pub currency: Currency,
1621
1622    /// ID of the Customer this PaymentIntent belongs to, if one exists.
1623    ///
1624    /// Payment methods attached to other Customers cannot be used with this PaymentIntent.
1625    ///
1626    /// 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.
1627    #[serde(skip_serializing_if = "Option::is_none")]
1628    pub customer: Option<CustomerId>,
1629
1630    /// An arbitrary string attached to the object.
1631    ///
1632    /// Often useful for displaying to users.
1633    #[serde(skip_serializing_if = "Option::is_none")]
1634    pub description: Option<&'a str>,
1635
1636    /// Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`.
1637    ///
1638    /// 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).
1639    /// This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
1640    #[serde(skip_serializing_if = "Option::is_none")]
1641    pub error_on_requires_action: Option<bool>,
1642
1643    /// Specifies which fields in the response should be expanded.
1644    #[serde(skip_serializing_if = "Expand::is_empty")]
1645    pub expand: &'a [&'a str],
1646
1647    /// ID of the mandate that's used for this payment.
1648    ///
1649    /// This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
1650    #[serde(skip_serializing_if = "Option::is_none")]
1651    pub mandate: Option<MandateId>,
1652
1653    /// This hash contains details about the Mandate to create.
1654    ///
1655    /// This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
1656    #[serde(skip_serializing_if = "Option::is_none")]
1657    pub mandate_data: Option<CreatePaymentIntentMandateData>,
1658
1659    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
1660    ///
1661    /// This can be useful for storing additional information about the object in a structured format.
1662    /// Individual keys can be unset by posting an empty value to them.
1663    /// All keys can be unset by posting an empty value to `metadata`.
1664    #[serde(skip_serializing_if = "Option::is_none")]
1665    pub metadata: Option<Metadata>,
1666
1667    /// Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate.
1668    ///
1669    /// Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards).
1670    /// This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
1671    #[serde(skip_serializing_if = "Option::is_none")]
1672    pub off_session: Option<PaymentIntentOffSession>,
1673
1674    /// The Stripe account ID that these funds are intended for.
1675    ///
1676    /// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1677    #[serde(skip_serializing_if = "Option::is_none")]
1678    pub on_behalf_of: Option<&'a str>,
1679
1680    /// 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.
1681    ///
1682    /// 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.
1683    ///
1684    /// We recommend that you explicitly provide the `payment_method` moving forward.
1685    #[serde(skip_serializing_if = "Option::is_none")]
1686    pub payment_method: Option<PaymentMethodId>,
1687
1688    /// The ID of the payment method configuration to use with this PaymentIntent.
1689    #[serde(skip_serializing_if = "Option::is_none")]
1690    pub payment_method_configuration: Option<PaymentMethodConfigurationId>,
1691
1692    /// If provided, this hash will be used to create a PaymentMethod.
1693    ///
1694    /// The new PaymentMethod will appear in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) property on the PaymentIntent.
1695    #[serde(skip_serializing_if = "Option::is_none")]
1696    pub payment_method_data: Option<CreatePaymentIntentPaymentMethodData>,
1697
1698    /// Payment method-specific configuration for this PaymentIntent.
1699    #[serde(skip_serializing_if = "Option::is_none")]
1700    pub payment_method_options: Option<CreatePaymentIntentPaymentMethodOptions>,
1701
1702    /// The list of payment method types (for example, a card) that this PaymentIntent can use.
1703    ///
1704    /// If you don't provide this, it defaults to ["card"].
1705    /// Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).
1706    #[serde(skip_serializing_if = "Option::is_none")]
1707    pub payment_method_types: Option<Vec<String>>,
1708
1709    /// Options to configure Radar.
1710    ///
1711    /// Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session).
1712    #[serde(skip_serializing_if = "Option::is_none")]
1713    pub radar_options: Option<CreatePaymentIntentRadarOptions>,
1714
1715    /// Email address to send the receipt to.
1716    ///
1717    /// If you specify `receipt_email` for a payment in live mode, you send a receipt regardless of your [email settings](https://dashboard.stripe.com/account/emails).
1718    #[serde(skip_serializing_if = "Option::is_none")]
1719    pub receipt_email: Option<&'a str>,
1720
1721    /// The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site.
1722    ///
1723    /// If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme.
1724    /// This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).
1725    #[serde(skip_serializing_if = "Option::is_none")]
1726    pub return_url: Option<&'a str>,
1727
1728    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1729    ///
1730    /// 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.
1731    ///
1732    /// 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.  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).
1733    #[serde(skip_serializing_if = "Option::is_none")]
1734    pub setup_future_usage: Option<PaymentIntentSetupFutureUsage>,
1735
1736    /// Shipping information for this PaymentIntent.
1737    #[serde(skip_serializing_if = "Option::is_none")]
1738    pub shipping: Option<CreatePaymentIntentShipping>,
1739
1740    /// For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic).
1741    ///
1742    /// Otherwise, you can use this value as the complete description of a charge on your customers' statements.
1743    /// It must contain at least one letter and be 1–22 characters long.
1744    #[serde(skip_serializing_if = "Option::is_none")]
1745    pub statement_descriptor: Option<&'a str>,
1746
1747    /// Provides information about a card payment that customers see on their statements.
1748    ///
1749    /// Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor.
1750    /// The concatenated descriptor must contain 1-22 characters.
1751    #[serde(skip_serializing_if = "Option::is_none")]
1752    pub statement_descriptor_suffix: Option<&'a str>,
1753
1754    /// The parameters that you can use to automatically create a Transfer.
1755    /// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1756    #[serde(skip_serializing_if = "Option::is_none")]
1757    pub transfer_data: Option<CreatePaymentIntentTransferData>,
1758
1759    /// A string that identifies the resulting payment as part of a group.
1760    ///
1761    /// Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).
1762    #[serde(skip_serializing_if = "Option::is_none")]
1763    pub transfer_group: Option<&'a str>,
1764
1765    /// Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
1766    #[serde(skip_serializing_if = "Option::is_none")]
1767    pub use_stripe_sdk: Option<bool>,
1768}
1769
1770impl<'a> CreatePaymentIntent<'a> {
1771    pub fn new(amount: i64, currency: Currency) -> Self {
1772        CreatePaymentIntent {
1773            amount,
1774            application_fee_amount: Default::default(),
1775            automatic_payment_methods: Default::default(),
1776            capture_method: Default::default(),
1777            confirm: Default::default(),
1778            confirmation_method: Default::default(),
1779            currency,
1780            customer: Default::default(),
1781            description: Default::default(),
1782            error_on_requires_action: Default::default(),
1783            expand: Default::default(),
1784            mandate: Default::default(),
1785            mandate_data: Default::default(),
1786            metadata: Default::default(),
1787            off_session: Default::default(),
1788            on_behalf_of: Default::default(),
1789            payment_method: Default::default(),
1790            payment_method_configuration: Default::default(),
1791            payment_method_data: Default::default(),
1792            payment_method_options: Default::default(),
1793            payment_method_types: Default::default(),
1794            radar_options: Default::default(),
1795            receipt_email: Default::default(),
1796            return_url: Default::default(),
1797            setup_future_usage: Default::default(),
1798            shipping: Default::default(),
1799            statement_descriptor: Default::default(),
1800            statement_descriptor_suffix: Default::default(),
1801            transfer_data: Default::default(),
1802            transfer_group: Default::default(),
1803            use_stripe_sdk: Default::default(),
1804        }
1805    }
1806}
1807
1808/// The parameters for `PaymentIntent::list`.
1809#[derive(Clone, Debug, Serialize, Default)]
1810pub struct ListPaymentIntents<'a> {
1811    /// A filter on the list, based on the object `created` field.
1812    ///
1813    /// The value can be a string with an integer Unix timestamp or a dictionary with a number of different query options.
1814    #[serde(skip_serializing_if = "Option::is_none")]
1815    pub created: Option<RangeQuery<Timestamp>>,
1816
1817    /// Only return PaymentIntents for the customer that this customer ID specifies.
1818    #[serde(skip_serializing_if = "Option::is_none")]
1819    pub customer: Option<CustomerId>,
1820
1821    /// A cursor for use in pagination.
1822    ///
1823    /// `ending_before` is an object ID that defines your place in the list.
1824    /// For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
1825    #[serde(skip_serializing_if = "Option::is_none")]
1826    pub ending_before: Option<PaymentIntentId>,
1827
1828    /// Specifies which fields in the response should be expanded.
1829    #[serde(skip_serializing_if = "Expand::is_empty")]
1830    pub expand: &'a [&'a str],
1831
1832    /// A limit on the number of objects to be returned.
1833    ///
1834    /// Limit can range between 1 and 100, and the default is 10.
1835    #[serde(skip_serializing_if = "Option::is_none")]
1836    pub limit: Option<u64>,
1837
1838    /// A cursor for use in pagination.
1839    ///
1840    /// `starting_after` is an object ID that defines your place in the list.
1841    /// For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
1842    #[serde(skip_serializing_if = "Option::is_none")]
1843    pub starting_after: Option<PaymentIntentId>,
1844}
1845
1846impl<'a> ListPaymentIntents<'a> {
1847    pub fn new() -> Self {
1848        ListPaymentIntents {
1849            created: Default::default(),
1850            customer: Default::default(),
1851            ending_before: Default::default(),
1852            expand: Default::default(),
1853            limit: Default::default(),
1854            starting_after: Default::default(),
1855        }
1856    }
1857}
1858impl Paginable for ListPaymentIntents<'_> {
1859    type O = PaymentIntent;
1860    fn set_last(&mut self, item: Self::O) {
1861        self.starting_after = Some(item.id());
1862    }
1863}
1864/// The parameters for `PaymentIntent::update`.
1865#[derive(Clone, Debug, Serialize, Default)]
1866pub struct UpdatePaymentIntent<'a> {
1867    /// Amount intended to be collected by this PaymentIntent.
1868    ///
1869    /// 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).
1870    /// The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts).
1871    /// The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
1872    #[serde(skip_serializing_if = "Option::is_none")]
1873    pub amount: Option<i64>,
1874
1875    /// 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.
1876    ///
1877    /// The amount of the application fee collected will be capped at the total payment amount.
1878    /// For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1879    #[serde(skip_serializing_if = "Option::is_none")]
1880    pub application_fee_amount: Option<i64>,
1881
1882    /// Controls when the funds will be captured from the customer's account.
1883    #[serde(skip_serializing_if = "Option::is_none")]
1884    pub capture_method: Option<PaymentIntentCaptureMethod>,
1885
1886    /// Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.
1887    ///
1888    /// Must be a [supported currency](https://stripe.com/docs/currencies).
1889    #[serde(skip_serializing_if = "Option::is_none")]
1890    pub currency: Option<Currency>,
1891
1892    /// ID of the Customer this PaymentIntent belongs to, if one exists.
1893    ///
1894    /// Payment methods attached to other Customers cannot be used with this PaymentIntent.
1895    ///
1896    /// 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.
1897    #[serde(skip_serializing_if = "Option::is_none")]
1898    pub customer: Option<CustomerId>,
1899
1900    /// An arbitrary string attached to the object.
1901    ///
1902    /// Often useful for displaying to users.
1903    #[serde(skip_serializing_if = "Option::is_none")]
1904    pub description: Option<&'a str>,
1905
1906    /// Specifies which fields in the response should be expanded.
1907    #[serde(skip_serializing_if = "Expand::is_empty")]
1908    pub expand: &'a [&'a str],
1909
1910    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
1911    ///
1912    /// This can be useful for storing additional information about the object in a structured format.
1913    /// Individual keys can be unset by posting an empty value to them.
1914    /// All keys can be unset by posting an empty value to `metadata`.
1915    #[serde(skip_serializing_if = "Option::is_none")]
1916    pub metadata: Option<Metadata>,
1917
1918    /// 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.
1919    #[serde(skip_serializing_if = "Option::is_none")]
1920    pub payment_method: Option<PaymentMethodId>,
1921
1922    /// The ID of the payment method configuration to use with this PaymentIntent.
1923    #[serde(skip_serializing_if = "Option::is_none")]
1924    pub payment_method_configuration: Option<PaymentMethodConfigurationId>,
1925
1926    /// If provided, this hash will be used to create a PaymentMethod.
1927    ///
1928    /// The new PaymentMethod will appear in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) property on the PaymentIntent.
1929    #[serde(skip_serializing_if = "Option::is_none")]
1930    pub payment_method_data: Option<UpdatePaymentIntentPaymentMethodData>,
1931
1932    /// Payment-method-specific configuration for this PaymentIntent.
1933    #[serde(skip_serializing_if = "Option::is_none")]
1934    pub payment_method_options: Option<UpdatePaymentIntentPaymentMethodOptions>,
1935
1936    /// The list of payment method types (for example, card) that this PaymentIntent can use.
1937    ///
1938    /// Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).
1939    #[serde(skip_serializing_if = "Option::is_none")]
1940    pub payment_method_types: Option<Vec<String>>,
1941
1942    /// Email address that the receipt for the resulting payment will be sent to.
1943    ///
1944    /// 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).
1945    #[serde(skip_serializing_if = "Option::is_none")]
1946    pub receipt_email: Option<String>,
1947
1948    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
1949    ///
1950    /// 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.
1951    ///
1952    /// 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.  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).  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`.
1953    #[serde(skip_serializing_if = "Option::is_none")]
1954    pub setup_future_usage: Option<PaymentIntentSetupFutureUsageFilter>,
1955
1956    /// Shipping information for this PaymentIntent.
1957    #[serde(skip_serializing_if = "Option::is_none")]
1958    pub shipping: Option<UpdatePaymentIntentShipping>,
1959
1960    /// For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic).
1961    ///
1962    /// Otherwise, you can use this value as the complete description of a charge on your customers' statements.
1963    /// It must contain at least one letter and be 1–22 characters long.
1964    #[serde(skip_serializing_if = "Option::is_none")]
1965    pub statement_descriptor: Option<&'a str>,
1966
1967    /// Provides information about a card payment that customers see on their statements.
1968    ///
1969    /// Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor.
1970    /// Maximum 22 characters for the concatenated descriptor.
1971    #[serde(skip_serializing_if = "Option::is_none")]
1972    pub statement_descriptor_suffix: Option<&'a str>,
1973
1974    /// Use this parameter to automatically create a Transfer when the payment succeeds.
1975    ///
1976    /// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1977    #[serde(skip_serializing_if = "Option::is_none")]
1978    pub transfer_data: Option<UpdatePaymentIntentTransferData>,
1979
1980    /// A string that identifies the resulting payment as part of a group.
1981    ///
1982    /// You can only provide `transfer_group` if it hasn't been set.
1983    /// Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
1984    #[serde(skip_serializing_if = "Option::is_none")]
1985    pub transfer_group: Option<&'a str>,
1986}
1987
1988impl<'a> UpdatePaymentIntent<'a> {
1989    pub fn new() -> Self {
1990        UpdatePaymentIntent {
1991            amount: Default::default(),
1992            application_fee_amount: Default::default(),
1993            capture_method: Default::default(),
1994            currency: Default::default(),
1995            customer: Default::default(),
1996            description: Default::default(),
1997            expand: Default::default(),
1998            metadata: Default::default(),
1999            payment_method: Default::default(),
2000            payment_method_configuration: Default::default(),
2001            payment_method_data: Default::default(),
2002            payment_method_options: Default::default(),
2003            payment_method_types: Default::default(),
2004            receipt_email: Default::default(),
2005            setup_future_usage: Default::default(),
2006            shipping: Default::default(),
2007            statement_descriptor: Default::default(),
2008            statement_descriptor_suffix: Default::default(),
2009            transfer_data: Default::default(),
2010            transfer_group: Default::default(),
2011        }
2012    }
2013}
2014
2015#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2016pub struct CreatePaymentIntentAutomaticPaymentMethods {
2017    /// Controls whether this PaymentIntent will accept redirect-based payment methods.
2018    ///
2019    /// Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps.
2020    ///
2021    /// 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.
2022    #[serde(skip_serializing_if = "Option::is_none")]
2023    pub allow_redirects: Option<CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects>,
2024
2025    /// Whether this feature is enabled.
2026    pub enabled: bool,
2027}
2028
2029#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2030pub struct CreatePaymentIntentMandateData {
2031    /// This hash contains details about the customer acceptance of the Mandate.
2032    pub customer_acceptance: CreatePaymentIntentMandateDataCustomerAcceptance,
2033}
2034
2035#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2036pub struct CreatePaymentIntentPaymentMethodData {
2037    /// If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
2038    #[serde(skip_serializing_if = "Option::is_none")]
2039    pub acss_debit: Option<CreatePaymentIntentPaymentMethodDataAcssDebit>,
2040
2041    /// If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
2042    #[serde(skip_serializing_if = "Option::is_none")]
2043    pub affirm: Option<CreatePaymentIntentPaymentMethodDataAffirm>,
2044
2045    /// If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
2046    #[serde(skip_serializing_if = "Option::is_none")]
2047    pub afterpay_clearpay: Option<CreatePaymentIntentPaymentMethodDataAfterpayClearpay>,
2048
2049    /// If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
2050    #[serde(skip_serializing_if = "Option::is_none")]
2051    pub alipay: Option<CreatePaymentIntentPaymentMethodDataAlipay>,
2052
2053    /// If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
2054    #[serde(skip_serializing_if = "Option::is_none")]
2055    pub au_becs_debit: Option<CreatePaymentIntentPaymentMethodDataAuBecsDebit>,
2056
2057    /// If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
2058    #[serde(skip_serializing_if = "Option::is_none")]
2059    pub bacs_debit: Option<CreatePaymentIntentPaymentMethodDataBacsDebit>,
2060
2061    /// If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
2062    #[serde(skip_serializing_if = "Option::is_none")]
2063    pub bancontact: Option<CreatePaymentIntentPaymentMethodDataBancontact>,
2064
2065    /// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
2066    #[serde(skip_serializing_if = "Option::is_none")]
2067    pub billing_details: Option<CreatePaymentIntentPaymentMethodDataBillingDetails>,
2068
2069    /// If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
2070    #[serde(skip_serializing_if = "Option::is_none")]
2071    pub blik: Option<CreatePaymentIntentPaymentMethodDataBlik>,
2072
2073    /// If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
2074    #[serde(skip_serializing_if = "Option::is_none")]
2075    pub boleto: Option<CreatePaymentIntentPaymentMethodDataBoleto>,
2076
2077    /// If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
2078    #[serde(skip_serializing_if = "Option::is_none")]
2079    pub cashapp: Option<CreatePaymentIntentPaymentMethodDataCashapp>,
2080
2081    /// If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
2082    #[serde(skip_serializing_if = "Option::is_none")]
2083    pub customer_balance: Option<CreatePaymentIntentPaymentMethodDataCustomerBalance>,
2084
2085    /// If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
2086    #[serde(skip_serializing_if = "Option::is_none")]
2087    pub eps: Option<CreatePaymentIntentPaymentMethodDataEps>,
2088
2089    /// If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
2090    #[serde(skip_serializing_if = "Option::is_none")]
2091    pub fpx: Option<CreatePaymentIntentPaymentMethodDataFpx>,
2092
2093    /// If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
2094    #[serde(skip_serializing_if = "Option::is_none")]
2095    pub giropay: Option<CreatePaymentIntentPaymentMethodDataGiropay>,
2096
2097    /// If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
2098    #[serde(skip_serializing_if = "Option::is_none")]
2099    pub grabpay: Option<CreatePaymentIntentPaymentMethodDataGrabpay>,
2100
2101    /// If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
2102    #[serde(skip_serializing_if = "Option::is_none")]
2103    pub ideal: Option<CreatePaymentIntentPaymentMethodDataIdeal>,
2104
2105    /// If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
2106    #[serde(skip_serializing_if = "Option::is_none")]
2107    pub interac_present: Option<CreatePaymentIntentPaymentMethodDataInteracPresent>,
2108
2109    /// If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
2110    #[serde(skip_serializing_if = "Option::is_none")]
2111    pub klarna: Option<CreatePaymentIntentPaymentMethodDataKlarna>,
2112
2113    /// If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
2114    #[serde(skip_serializing_if = "Option::is_none")]
2115    pub konbini: Option<CreatePaymentIntentPaymentMethodDataKonbini>,
2116
2117    /// If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
2118    #[serde(skip_serializing_if = "Option::is_none")]
2119    pub link: Option<CreatePaymentIntentPaymentMethodDataLink>,
2120
2121    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
2122    ///
2123    /// This can be useful for storing additional information about the object in a structured format.
2124    /// Individual keys can be unset by posting an empty value to them.
2125    /// All keys can be unset by posting an empty value to `metadata`.
2126    #[serde(skip_serializing_if = "Option::is_none")]
2127    pub metadata: Option<Metadata>,
2128
2129    /// If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
2130    #[serde(skip_serializing_if = "Option::is_none")]
2131    pub oxxo: Option<CreatePaymentIntentPaymentMethodDataOxxo>,
2132
2133    /// If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
2134    #[serde(skip_serializing_if = "Option::is_none")]
2135    pub p24: Option<CreatePaymentIntentPaymentMethodDataP24>,
2136
2137    /// If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
2138    #[serde(skip_serializing_if = "Option::is_none")]
2139    pub paynow: Option<CreatePaymentIntentPaymentMethodDataPaynow>,
2140
2141    /// If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
2142    #[serde(skip_serializing_if = "Option::is_none")]
2143    pub paypal: Option<CreatePaymentIntentPaymentMethodDataPaypal>,
2144
2145    /// If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
2146    #[serde(skip_serializing_if = "Option::is_none")]
2147    pub pix: Option<CreatePaymentIntentPaymentMethodDataPix>,
2148
2149    /// If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
2150    #[serde(skip_serializing_if = "Option::is_none")]
2151    pub promptpay: Option<CreatePaymentIntentPaymentMethodDataPromptpay>,
2152
2153    /// Options to configure Radar.
2154    ///
2155    /// See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
2156    #[serde(skip_serializing_if = "Option::is_none")]
2157    pub radar_options: Option<CreatePaymentIntentPaymentMethodDataRadarOptions>,
2158
2159    /// If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
2160    #[serde(skip_serializing_if = "Option::is_none")]
2161    pub revolut_pay: Option<CreatePaymentIntentPaymentMethodDataRevolutPay>,
2162
2163    /// If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
2164    #[serde(skip_serializing_if = "Option::is_none")]
2165    pub sepa_debit: Option<CreatePaymentIntentPaymentMethodDataSepaDebit>,
2166
2167    /// If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
2168    #[serde(skip_serializing_if = "Option::is_none")]
2169    pub sofort: Option<CreatePaymentIntentPaymentMethodDataSofort>,
2170
2171    /// If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
2172    #[serde(skip_serializing_if = "Option::is_none")]
2173    pub swish: Option<CreatePaymentIntentPaymentMethodDataSwish>,
2174
2175    /// The type of the PaymentMethod.
2176    ///
2177    /// An additional hash is included on the PaymentMethod with a name matching this value.
2178    /// It contains additional information specific to the PaymentMethod type.
2179    #[serde(rename = "type")]
2180    pub type_: CreatePaymentIntentPaymentMethodDataType,
2181
2182    /// If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
2183    #[serde(skip_serializing_if = "Option::is_none")]
2184    pub us_bank_account: Option<CreatePaymentIntentPaymentMethodDataUsBankAccount>,
2185
2186    /// If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
2187    #[serde(skip_serializing_if = "Option::is_none")]
2188    pub wechat_pay: Option<CreatePaymentIntentPaymentMethodDataWechatPay>,
2189
2190    /// If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
2191    #[serde(skip_serializing_if = "Option::is_none")]
2192    pub zip: Option<CreatePaymentIntentPaymentMethodDataZip>,
2193}
2194
2195#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2196pub struct CreatePaymentIntentPaymentMethodOptions {
2197    /// If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options.
2198    #[serde(skip_serializing_if = "Option::is_none")]
2199    pub acss_debit: Option<CreatePaymentIntentPaymentMethodOptionsAcssDebit>,
2200
2201    /// If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options.
2202    #[serde(skip_serializing_if = "Option::is_none")]
2203    pub affirm: Option<CreatePaymentIntentPaymentMethodOptionsAffirm>,
2204
2205    /// If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options.
2206    #[serde(skip_serializing_if = "Option::is_none")]
2207    pub afterpay_clearpay: Option<CreatePaymentIntentPaymentMethodOptionsAfterpayClearpay>,
2208
2209    /// If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options.
2210    #[serde(skip_serializing_if = "Option::is_none")]
2211    pub alipay: Option<CreatePaymentIntentPaymentMethodOptionsAlipay>,
2212
2213    /// If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options.
2214    #[serde(skip_serializing_if = "Option::is_none")]
2215    pub au_becs_debit: Option<CreatePaymentIntentPaymentMethodOptionsAuBecsDebit>,
2216
2217    /// If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options.
2218    #[serde(skip_serializing_if = "Option::is_none")]
2219    pub bacs_debit: Option<CreatePaymentIntentPaymentMethodOptionsBacsDebit>,
2220
2221    /// If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options.
2222    #[serde(skip_serializing_if = "Option::is_none")]
2223    pub bancontact: Option<CreatePaymentIntentPaymentMethodOptionsBancontact>,
2224
2225    /// If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options.
2226    #[serde(skip_serializing_if = "Option::is_none")]
2227    pub blik: Option<CreatePaymentIntentPaymentMethodOptionsBlik>,
2228
2229    /// If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options.
2230    #[serde(skip_serializing_if = "Option::is_none")]
2231    pub boleto: Option<CreatePaymentIntentPaymentMethodOptionsBoleto>,
2232
2233    /// Configuration for any card payments attempted on this PaymentIntent.
2234    #[serde(skip_serializing_if = "Option::is_none")]
2235    pub card: Option<CreatePaymentIntentPaymentMethodOptionsCard>,
2236
2237    /// If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2238    #[serde(skip_serializing_if = "Option::is_none")]
2239    pub card_present: Option<CreatePaymentIntentPaymentMethodOptionsCardPresent>,
2240
2241    /// If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options.
2242    #[serde(skip_serializing_if = "Option::is_none")]
2243    pub cashapp: Option<CreatePaymentIntentPaymentMethodOptionsCashapp>,
2244
2245    /// If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options.
2246    #[serde(skip_serializing_if = "Option::is_none")]
2247    pub customer_balance: Option<CreatePaymentIntentPaymentMethodOptionsCustomerBalance>,
2248
2249    /// If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options.
2250    #[serde(skip_serializing_if = "Option::is_none")]
2251    pub eps: Option<CreatePaymentIntentPaymentMethodOptionsEps>,
2252
2253    /// If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options.
2254    #[serde(skip_serializing_if = "Option::is_none")]
2255    pub fpx: Option<CreatePaymentIntentPaymentMethodOptionsFpx>,
2256
2257    /// If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options.
2258    #[serde(skip_serializing_if = "Option::is_none")]
2259    pub giropay: Option<CreatePaymentIntentPaymentMethodOptionsGiropay>,
2260
2261    /// If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options.
2262    #[serde(skip_serializing_if = "Option::is_none")]
2263    pub grabpay: Option<CreatePaymentIntentPaymentMethodOptionsGrabpay>,
2264
2265    /// If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options.
2266    #[serde(skip_serializing_if = "Option::is_none")]
2267    pub ideal: Option<CreatePaymentIntentPaymentMethodOptionsIdeal>,
2268
2269    /// If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2270    #[serde(skip_serializing_if = "Option::is_none")]
2271    pub interac_present: Option<CreatePaymentIntentPaymentMethodOptionsInteracPresent>,
2272
2273    /// If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options.
2274    #[serde(skip_serializing_if = "Option::is_none")]
2275    pub klarna: Option<CreatePaymentIntentPaymentMethodOptionsKlarna>,
2276
2277    /// If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options.
2278    #[serde(skip_serializing_if = "Option::is_none")]
2279    pub konbini: Option<CreatePaymentIntentPaymentMethodOptionsKonbini>,
2280
2281    /// If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
2282    #[serde(skip_serializing_if = "Option::is_none")]
2283    pub link: Option<CreatePaymentIntentPaymentMethodOptionsLink>,
2284
2285    /// If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options.
2286    #[serde(skip_serializing_if = "Option::is_none")]
2287    pub oxxo: Option<CreatePaymentIntentPaymentMethodOptionsOxxo>,
2288
2289    /// If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options.
2290    #[serde(skip_serializing_if = "Option::is_none")]
2291    pub p24: Option<CreatePaymentIntentPaymentMethodOptionsP24>,
2292
2293    /// If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options.
2294    #[serde(skip_serializing_if = "Option::is_none")]
2295    pub paynow: Option<CreatePaymentIntentPaymentMethodOptionsPaynow>,
2296
2297    /// If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
2298    #[serde(skip_serializing_if = "Option::is_none")]
2299    pub paypal: Option<CreatePaymentIntentPaymentMethodOptionsPaypal>,
2300
2301    /// If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options.
2302    #[serde(skip_serializing_if = "Option::is_none")]
2303    pub pix: Option<CreatePaymentIntentPaymentMethodOptionsPix>,
2304
2305    /// If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options.
2306    #[serde(skip_serializing_if = "Option::is_none")]
2307    pub promptpay: Option<CreatePaymentIntentPaymentMethodOptionsPromptpay>,
2308
2309    /// If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options.
2310    #[serde(skip_serializing_if = "Option::is_none")]
2311    pub revolut_pay: Option<CreatePaymentIntentPaymentMethodOptionsRevolutPay>,
2312
2313    /// If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options.
2314    #[serde(skip_serializing_if = "Option::is_none")]
2315    pub sepa_debit: Option<CreatePaymentIntentPaymentMethodOptionsSepaDebit>,
2316
2317    /// If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options.
2318    #[serde(skip_serializing_if = "Option::is_none")]
2319    pub sofort: Option<CreatePaymentIntentPaymentMethodOptionsSofort>,
2320
2321    /// If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options.
2322    #[serde(skip_serializing_if = "Option::is_none")]
2323    pub swish: Option<CreatePaymentIntentPaymentMethodOptionsSwish>,
2324
2325    /// If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options.
2326    #[serde(skip_serializing_if = "Option::is_none")]
2327    pub us_bank_account: Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccount>,
2328
2329    /// If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options.
2330    #[serde(skip_serializing_if = "Option::is_none")]
2331    pub wechat_pay: Option<CreatePaymentIntentPaymentMethodOptionsWechatPay>,
2332
2333    /// If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options.
2334    #[serde(skip_serializing_if = "Option::is_none")]
2335    pub zip: Option<CreatePaymentIntentPaymentMethodOptionsZip>,
2336}
2337
2338#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2339pub struct CreatePaymentIntentRadarOptions {
2340    /// 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.
2341    #[serde(skip_serializing_if = "Option::is_none")]
2342    pub session: Option<String>,
2343}
2344
2345#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2346pub struct CreatePaymentIntentShipping {
2347    /// Shipping address.
2348    pub address: CreatePaymentIntentShippingAddress,
2349
2350    /// The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
2351    #[serde(skip_serializing_if = "Option::is_none")]
2352    pub carrier: Option<String>,
2353
2354    /// Recipient name.
2355    pub name: String,
2356
2357    /// Recipient phone (including extension).
2358    #[serde(skip_serializing_if = "Option::is_none")]
2359    pub phone: Option<String>,
2360
2361    /// The tracking number for a physical product, obtained from the delivery service.
2362    ///
2363    /// If multiple tracking numbers were generated for this purchase, please separate them with commas.
2364    #[serde(skip_serializing_if = "Option::is_none")]
2365    pub tracking_number: Option<String>,
2366}
2367
2368#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2369pub struct CreatePaymentIntentTransferData {
2370    /// The amount that will be transferred automatically when a charge succeeds.
2371    /// The amount is capped at the total transaction amount and if no amount is set,
2372    /// the full amount is transferred.
2373    ///
2374    /// If you intend to collect a fee and you need a more robust reporting experience, using
2375    /// [application_fee_amount](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-application_fee_amount)
2376    /// might be a better fit for your integration.
2377    #[serde(skip_serializing_if = "Option::is_none")]
2378    pub amount: Option<i64>,
2379
2380    /// If specified, successful charges will be attributed to the destination
2381    /// account for tax reporting, and the funds from charges will be transferred
2382    /// to the destination account.
2383    ///
2384    /// The ID of the resulting transfer will be returned on the successful charge's `transfer` field.
2385    pub destination: String,
2386}
2387
2388#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2389pub struct UpdatePaymentIntentPaymentMethodData {
2390    /// If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
2391    #[serde(skip_serializing_if = "Option::is_none")]
2392    pub acss_debit: Option<UpdatePaymentIntentPaymentMethodDataAcssDebit>,
2393
2394    /// If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
2395    #[serde(skip_serializing_if = "Option::is_none")]
2396    pub affirm: Option<UpdatePaymentIntentPaymentMethodDataAffirm>,
2397
2398    /// If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
2399    #[serde(skip_serializing_if = "Option::is_none")]
2400    pub afterpay_clearpay: Option<UpdatePaymentIntentPaymentMethodDataAfterpayClearpay>,
2401
2402    /// If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
2403    #[serde(skip_serializing_if = "Option::is_none")]
2404    pub alipay: Option<UpdatePaymentIntentPaymentMethodDataAlipay>,
2405
2406    /// If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
2407    #[serde(skip_serializing_if = "Option::is_none")]
2408    pub au_becs_debit: Option<UpdatePaymentIntentPaymentMethodDataAuBecsDebit>,
2409
2410    /// If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
2411    #[serde(skip_serializing_if = "Option::is_none")]
2412    pub bacs_debit: Option<UpdatePaymentIntentPaymentMethodDataBacsDebit>,
2413
2414    /// If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
2415    #[serde(skip_serializing_if = "Option::is_none")]
2416    pub bancontact: Option<UpdatePaymentIntentPaymentMethodDataBancontact>,
2417
2418    /// Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
2419    #[serde(skip_serializing_if = "Option::is_none")]
2420    pub billing_details: Option<UpdatePaymentIntentPaymentMethodDataBillingDetails>,
2421
2422    /// If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
2423    #[serde(skip_serializing_if = "Option::is_none")]
2424    pub blik: Option<UpdatePaymentIntentPaymentMethodDataBlik>,
2425
2426    /// If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
2427    #[serde(skip_serializing_if = "Option::is_none")]
2428    pub boleto: Option<UpdatePaymentIntentPaymentMethodDataBoleto>,
2429
2430    /// If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
2431    #[serde(skip_serializing_if = "Option::is_none")]
2432    pub cashapp: Option<UpdatePaymentIntentPaymentMethodDataCashapp>,
2433
2434    /// If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
2435    #[serde(skip_serializing_if = "Option::is_none")]
2436    pub customer_balance: Option<UpdatePaymentIntentPaymentMethodDataCustomerBalance>,
2437
2438    /// If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
2439    #[serde(skip_serializing_if = "Option::is_none")]
2440    pub eps: Option<UpdatePaymentIntentPaymentMethodDataEps>,
2441
2442    /// If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
2443    #[serde(skip_serializing_if = "Option::is_none")]
2444    pub fpx: Option<UpdatePaymentIntentPaymentMethodDataFpx>,
2445
2446    /// If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
2447    #[serde(skip_serializing_if = "Option::is_none")]
2448    pub giropay: Option<UpdatePaymentIntentPaymentMethodDataGiropay>,
2449
2450    /// If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
2451    #[serde(skip_serializing_if = "Option::is_none")]
2452    pub grabpay: Option<UpdatePaymentIntentPaymentMethodDataGrabpay>,
2453
2454    /// If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
2455    #[serde(skip_serializing_if = "Option::is_none")]
2456    pub ideal: Option<UpdatePaymentIntentPaymentMethodDataIdeal>,
2457
2458    /// If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
2459    #[serde(skip_serializing_if = "Option::is_none")]
2460    pub interac_present: Option<UpdatePaymentIntentPaymentMethodDataInteracPresent>,
2461
2462    /// If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
2463    #[serde(skip_serializing_if = "Option::is_none")]
2464    pub klarna: Option<UpdatePaymentIntentPaymentMethodDataKlarna>,
2465
2466    /// If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
2467    #[serde(skip_serializing_if = "Option::is_none")]
2468    pub konbini: Option<UpdatePaymentIntentPaymentMethodDataKonbini>,
2469
2470    /// If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
2471    #[serde(skip_serializing_if = "Option::is_none")]
2472    pub link: Option<UpdatePaymentIntentPaymentMethodDataLink>,
2473
2474    /// Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object.
2475    ///
2476    /// This can be useful for storing additional information about the object in a structured format.
2477    /// Individual keys can be unset by posting an empty value to them.
2478    /// All keys can be unset by posting an empty value to `metadata`.
2479    #[serde(skip_serializing_if = "Option::is_none")]
2480    pub metadata: Option<Metadata>,
2481
2482    /// If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
2483    #[serde(skip_serializing_if = "Option::is_none")]
2484    pub oxxo: Option<UpdatePaymentIntentPaymentMethodDataOxxo>,
2485
2486    /// If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
2487    #[serde(skip_serializing_if = "Option::is_none")]
2488    pub p24: Option<UpdatePaymentIntentPaymentMethodDataP24>,
2489
2490    /// If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
2491    #[serde(skip_serializing_if = "Option::is_none")]
2492    pub paynow: Option<UpdatePaymentIntentPaymentMethodDataPaynow>,
2493
2494    /// If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
2495    #[serde(skip_serializing_if = "Option::is_none")]
2496    pub paypal: Option<UpdatePaymentIntentPaymentMethodDataPaypal>,
2497
2498    /// If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
2499    #[serde(skip_serializing_if = "Option::is_none")]
2500    pub pix: Option<UpdatePaymentIntentPaymentMethodDataPix>,
2501
2502    /// If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
2503    #[serde(skip_serializing_if = "Option::is_none")]
2504    pub promptpay: Option<UpdatePaymentIntentPaymentMethodDataPromptpay>,
2505
2506    /// Options to configure Radar.
2507    ///
2508    /// See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
2509    #[serde(skip_serializing_if = "Option::is_none")]
2510    pub radar_options: Option<UpdatePaymentIntentPaymentMethodDataRadarOptions>,
2511
2512    /// If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
2513    #[serde(skip_serializing_if = "Option::is_none")]
2514    pub revolut_pay: Option<UpdatePaymentIntentPaymentMethodDataRevolutPay>,
2515
2516    /// If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
2517    #[serde(skip_serializing_if = "Option::is_none")]
2518    pub sepa_debit: Option<UpdatePaymentIntentPaymentMethodDataSepaDebit>,
2519
2520    /// If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
2521    #[serde(skip_serializing_if = "Option::is_none")]
2522    pub sofort: Option<UpdatePaymentIntentPaymentMethodDataSofort>,
2523
2524    /// If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
2525    #[serde(skip_serializing_if = "Option::is_none")]
2526    pub swish: Option<UpdatePaymentIntentPaymentMethodDataSwish>,
2527
2528    /// The type of the PaymentMethod.
2529    ///
2530    /// An additional hash is included on the PaymentMethod with a name matching this value.
2531    /// It contains additional information specific to the PaymentMethod type.
2532    #[serde(rename = "type")]
2533    pub type_: UpdatePaymentIntentPaymentMethodDataType,
2534
2535    /// If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
2536    #[serde(skip_serializing_if = "Option::is_none")]
2537    pub us_bank_account: Option<UpdatePaymentIntentPaymentMethodDataUsBankAccount>,
2538
2539    /// If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
2540    #[serde(skip_serializing_if = "Option::is_none")]
2541    pub wechat_pay: Option<UpdatePaymentIntentPaymentMethodDataWechatPay>,
2542
2543    /// If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
2544    #[serde(skip_serializing_if = "Option::is_none")]
2545    pub zip: Option<UpdatePaymentIntentPaymentMethodDataZip>,
2546}
2547
2548#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2549pub struct UpdatePaymentIntentPaymentMethodOptions {
2550    /// If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options.
2551    #[serde(skip_serializing_if = "Option::is_none")]
2552    pub acss_debit: Option<UpdatePaymentIntentPaymentMethodOptionsAcssDebit>,
2553
2554    /// If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options.
2555    #[serde(skip_serializing_if = "Option::is_none")]
2556    pub affirm: Option<UpdatePaymentIntentPaymentMethodOptionsAffirm>,
2557
2558    /// If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options.
2559    #[serde(skip_serializing_if = "Option::is_none")]
2560    pub afterpay_clearpay: Option<UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpay>,
2561
2562    /// If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options.
2563    #[serde(skip_serializing_if = "Option::is_none")]
2564    pub alipay: Option<UpdatePaymentIntentPaymentMethodOptionsAlipay>,
2565
2566    /// If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options.
2567    #[serde(skip_serializing_if = "Option::is_none")]
2568    pub au_becs_debit: Option<UpdatePaymentIntentPaymentMethodOptionsAuBecsDebit>,
2569
2570    /// If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options.
2571    #[serde(skip_serializing_if = "Option::is_none")]
2572    pub bacs_debit: Option<UpdatePaymentIntentPaymentMethodOptionsBacsDebit>,
2573
2574    /// If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options.
2575    #[serde(skip_serializing_if = "Option::is_none")]
2576    pub bancontact: Option<UpdatePaymentIntentPaymentMethodOptionsBancontact>,
2577
2578    /// If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options.
2579    #[serde(skip_serializing_if = "Option::is_none")]
2580    pub blik: Option<UpdatePaymentIntentPaymentMethodOptionsBlik>,
2581
2582    /// If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options.
2583    #[serde(skip_serializing_if = "Option::is_none")]
2584    pub boleto: Option<UpdatePaymentIntentPaymentMethodOptionsBoleto>,
2585
2586    /// Configuration for any card payments attempted on this PaymentIntent.
2587    #[serde(skip_serializing_if = "Option::is_none")]
2588    pub card: Option<UpdatePaymentIntentPaymentMethodOptionsCard>,
2589
2590    /// If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2591    #[serde(skip_serializing_if = "Option::is_none")]
2592    pub card_present: Option<UpdatePaymentIntentPaymentMethodOptionsCardPresent>,
2593
2594    /// If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options.
2595    #[serde(skip_serializing_if = "Option::is_none")]
2596    pub cashapp: Option<UpdatePaymentIntentPaymentMethodOptionsCashapp>,
2597
2598    /// If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options.
2599    #[serde(skip_serializing_if = "Option::is_none")]
2600    pub customer_balance: Option<UpdatePaymentIntentPaymentMethodOptionsCustomerBalance>,
2601
2602    /// If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options.
2603    #[serde(skip_serializing_if = "Option::is_none")]
2604    pub eps: Option<UpdatePaymentIntentPaymentMethodOptionsEps>,
2605
2606    /// If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options.
2607    #[serde(skip_serializing_if = "Option::is_none")]
2608    pub fpx: Option<UpdatePaymentIntentPaymentMethodOptionsFpx>,
2609
2610    /// If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options.
2611    #[serde(skip_serializing_if = "Option::is_none")]
2612    pub giropay: Option<UpdatePaymentIntentPaymentMethodOptionsGiropay>,
2613
2614    /// If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options.
2615    #[serde(skip_serializing_if = "Option::is_none")]
2616    pub grabpay: Option<UpdatePaymentIntentPaymentMethodOptionsGrabpay>,
2617
2618    /// If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options.
2619    #[serde(skip_serializing_if = "Option::is_none")]
2620    pub ideal: Option<UpdatePaymentIntentPaymentMethodOptionsIdeal>,
2621
2622    /// If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.
2623    #[serde(skip_serializing_if = "Option::is_none")]
2624    pub interac_present: Option<UpdatePaymentIntentPaymentMethodOptionsInteracPresent>,
2625
2626    /// If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options.
2627    #[serde(skip_serializing_if = "Option::is_none")]
2628    pub klarna: Option<UpdatePaymentIntentPaymentMethodOptionsKlarna>,
2629
2630    /// If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options.
2631    #[serde(skip_serializing_if = "Option::is_none")]
2632    pub konbini: Option<UpdatePaymentIntentPaymentMethodOptionsKonbini>,
2633
2634    /// If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
2635    #[serde(skip_serializing_if = "Option::is_none")]
2636    pub link: Option<UpdatePaymentIntentPaymentMethodOptionsLink>,
2637
2638    /// If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options.
2639    #[serde(skip_serializing_if = "Option::is_none")]
2640    pub oxxo: Option<UpdatePaymentIntentPaymentMethodOptionsOxxo>,
2641
2642    /// If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options.
2643    #[serde(skip_serializing_if = "Option::is_none")]
2644    pub p24: Option<UpdatePaymentIntentPaymentMethodOptionsP24>,
2645
2646    /// If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options.
2647    #[serde(skip_serializing_if = "Option::is_none")]
2648    pub paynow: Option<UpdatePaymentIntentPaymentMethodOptionsPaynow>,
2649
2650    /// If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
2651    #[serde(skip_serializing_if = "Option::is_none")]
2652    pub paypal: Option<UpdatePaymentIntentPaymentMethodOptionsPaypal>,
2653
2654    /// If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options.
2655    #[serde(skip_serializing_if = "Option::is_none")]
2656    pub pix: Option<UpdatePaymentIntentPaymentMethodOptionsPix>,
2657
2658    /// If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options.
2659    #[serde(skip_serializing_if = "Option::is_none")]
2660    pub promptpay: Option<UpdatePaymentIntentPaymentMethodOptionsPromptpay>,
2661
2662    /// If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options.
2663    #[serde(skip_serializing_if = "Option::is_none")]
2664    pub revolut_pay: Option<UpdatePaymentIntentPaymentMethodOptionsRevolutPay>,
2665
2666    /// If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options.
2667    #[serde(skip_serializing_if = "Option::is_none")]
2668    pub sepa_debit: Option<UpdatePaymentIntentPaymentMethodOptionsSepaDebit>,
2669
2670    /// If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options.
2671    #[serde(skip_serializing_if = "Option::is_none")]
2672    pub sofort: Option<UpdatePaymentIntentPaymentMethodOptionsSofort>,
2673
2674    /// If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options.
2675    #[serde(skip_serializing_if = "Option::is_none")]
2676    pub swish: Option<UpdatePaymentIntentPaymentMethodOptionsSwish>,
2677
2678    /// If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options.
2679    #[serde(skip_serializing_if = "Option::is_none")]
2680    pub us_bank_account: Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccount>,
2681
2682    /// If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options.
2683    #[serde(skip_serializing_if = "Option::is_none")]
2684    pub wechat_pay: Option<UpdatePaymentIntentPaymentMethodOptionsWechatPay>,
2685
2686    /// If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options.
2687    #[serde(skip_serializing_if = "Option::is_none")]
2688    pub zip: Option<UpdatePaymentIntentPaymentMethodOptionsZip>,
2689}
2690
2691#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2692pub struct UpdatePaymentIntentShipping {
2693    /// Shipping address.
2694    pub address: UpdatePaymentIntentShippingAddress,
2695
2696    /// The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
2697    #[serde(skip_serializing_if = "Option::is_none")]
2698    pub carrier: Option<String>,
2699
2700    /// Recipient name.
2701    pub name: String,
2702
2703    /// Recipient phone (including extension).
2704    #[serde(skip_serializing_if = "Option::is_none")]
2705    pub phone: Option<String>,
2706
2707    /// The tracking number for a physical product, obtained from the delivery service.
2708    ///
2709    /// If multiple tracking numbers were generated for this purchase, please separate them with commas.
2710    #[serde(skip_serializing_if = "Option::is_none")]
2711    pub tracking_number: Option<String>,
2712}
2713
2714#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2715pub struct UpdatePaymentIntentTransferData {
2716    /// The amount that will be transferred automatically when a charge succeeds.
2717    #[serde(skip_serializing_if = "Option::is_none")]
2718    pub amount: Option<i64>,
2719}
2720
2721#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2722pub struct CreatePaymentIntentMandateDataCustomerAcceptance {
2723    /// The time at which the customer accepted the Mandate.
2724    #[serde(skip_serializing_if = "Option::is_none")]
2725    pub accepted_at: Option<Timestamp>,
2726
2727    /// If this is a Mandate accepted offline, this hash contains details about the offline acceptance.
2728    #[serde(skip_serializing_if = "Option::is_none")]
2729    pub offline: Option<CreatePaymentIntentMandateDataCustomerAcceptanceOffline>,
2730
2731    /// If this is a Mandate accepted online, this hash contains details about the online acceptance.
2732    #[serde(skip_serializing_if = "Option::is_none")]
2733    pub online: Option<CreatePaymentIntentMandateDataCustomerAcceptanceOnline>,
2734
2735    /// The type of customer acceptance information included with the Mandate.
2736    ///
2737    /// One of `online` or `offline`.
2738    #[serde(rename = "type")]
2739    pub type_: CreatePaymentIntentMandateDataCustomerAcceptanceType,
2740}
2741
2742#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2743pub struct CreatePaymentIntentPaymentMethodDataAcssDebit {
2744    /// Customer's bank account number.
2745    pub account_number: String,
2746
2747    /// Institution number of the customer's bank.
2748    pub institution_number: String,
2749
2750    /// Transit number of the customer's bank.
2751    pub transit_number: String,
2752}
2753
2754#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2755pub struct CreatePaymentIntentPaymentMethodDataAffirm {}
2756
2757#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2758pub struct CreatePaymentIntentPaymentMethodDataAfterpayClearpay {}
2759
2760#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2761pub struct CreatePaymentIntentPaymentMethodDataAlipay {}
2762
2763#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2764pub struct CreatePaymentIntentPaymentMethodDataAuBecsDebit {
2765    /// The account number for the bank account.
2766    pub account_number: String,
2767
2768    /// Bank-State-Branch number of the bank account.
2769    pub bsb_number: String,
2770}
2771
2772#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2773pub struct CreatePaymentIntentPaymentMethodDataBacsDebit {
2774    /// Account number of the bank account that the funds will be debited from.
2775    #[serde(skip_serializing_if = "Option::is_none")]
2776    pub account_number: Option<String>,
2777
2778    /// Sort code of the bank account.
2779    ///
2780    /// (e.g., `10-20-30`).
2781    #[serde(skip_serializing_if = "Option::is_none")]
2782    pub sort_code: Option<String>,
2783}
2784
2785#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2786pub struct CreatePaymentIntentPaymentMethodDataBancontact {}
2787
2788#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2789pub struct CreatePaymentIntentPaymentMethodDataBillingDetails {
2790    /// Billing address.
2791    #[serde(skip_serializing_if = "Option::is_none")]
2792    pub address: Option<CreatePaymentIntentPaymentMethodDataBillingDetailsAddress>,
2793
2794    /// Email address.
2795    #[serde(skip_serializing_if = "Option::is_none")]
2796    pub email: Option<String>,
2797
2798    /// Full name.
2799    #[serde(skip_serializing_if = "Option::is_none")]
2800    pub name: Option<String>,
2801
2802    /// Billing phone number (including extension).
2803    #[serde(skip_serializing_if = "Option::is_none")]
2804    pub phone: Option<String>,
2805}
2806
2807#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2808pub struct CreatePaymentIntentPaymentMethodDataBlik {}
2809
2810#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2811pub struct CreatePaymentIntentPaymentMethodDataBoleto {
2812    /// The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers).
2813    pub tax_id: String,
2814}
2815
2816#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2817pub struct CreatePaymentIntentPaymentMethodDataCashapp {}
2818
2819#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2820pub struct CreatePaymentIntentPaymentMethodDataCustomerBalance {}
2821
2822#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2823pub struct CreatePaymentIntentPaymentMethodDataEps {
2824    /// The customer's bank.
2825    #[serde(skip_serializing_if = "Option::is_none")]
2826    pub bank: Option<CreatePaymentIntentPaymentMethodDataEpsBank>,
2827}
2828
2829#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2830pub struct CreatePaymentIntentPaymentMethodDataFpx {
2831    /// Account holder type for FPX transaction.
2832    #[serde(skip_serializing_if = "Option::is_none")]
2833    pub account_holder_type: Option<CreatePaymentIntentPaymentMethodDataFpxAccountHolderType>,
2834
2835    /// The customer's bank.
2836    pub bank: CreatePaymentIntentPaymentMethodDataFpxBank,
2837}
2838
2839#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2840pub struct CreatePaymentIntentPaymentMethodDataGiropay {}
2841
2842#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2843pub struct CreatePaymentIntentPaymentMethodDataGrabpay {}
2844
2845#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2846pub struct CreatePaymentIntentPaymentMethodDataIdeal {
2847    /// The customer's bank.
2848    #[serde(skip_serializing_if = "Option::is_none")]
2849    pub bank: Option<CreatePaymentIntentPaymentMethodDataIdealBank>,
2850}
2851
2852#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2853pub struct CreatePaymentIntentPaymentMethodDataInteracPresent {}
2854
2855#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2856pub struct CreatePaymentIntentPaymentMethodDataKlarna {
2857    /// Customer's date of birth.
2858    #[serde(skip_serializing_if = "Option::is_none")]
2859    pub dob: Option<CreatePaymentIntentPaymentMethodDataKlarnaDob>,
2860}
2861
2862#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2863pub struct CreatePaymentIntentPaymentMethodDataKonbini {}
2864
2865#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2866pub struct CreatePaymentIntentPaymentMethodDataLink {}
2867
2868#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2869pub struct CreatePaymentIntentPaymentMethodDataOxxo {}
2870
2871#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2872pub struct CreatePaymentIntentPaymentMethodDataP24 {
2873    /// The customer's bank.
2874    #[serde(skip_serializing_if = "Option::is_none")]
2875    pub bank: Option<CreatePaymentIntentPaymentMethodDataP24Bank>,
2876}
2877
2878#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2879pub struct CreatePaymentIntentPaymentMethodDataPaynow {}
2880
2881#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2882pub struct CreatePaymentIntentPaymentMethodDataPaypal {}
2883
2884#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2885pub struct CreatePaymentIntentPaymentMethodDataPix {}
2886
2887#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2888pub struct CreatePaymentIntentPaymentMethodDataPromptpay {}
2889
2890#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2891pub struct CreatePaymentIntentPaymentMethodDataRadarOptions {
2892    /// 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.
2893    #[serde(skip_serializing_if = "Option::is_none")]
2894    pub session: Option<String>,
2895}
2896
2897#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2898pub struct CreatePaymentIntentPaymentMethodDataRevolutPay {}
2899
2900#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2901pub struct CreatePaymentIntentPaymentMethodDataSepaDebit {
2902    /// IBAN of the bank account.
2903    pub iban: String,
2904}
2905
2906#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2907pub struct CreatePaymentIntentPaymentMethodDataSofort {
2908    /// Two-letter ISO code representing the country the bank account is located in.
2909    pub country: CreatePaymentIntentPaymentMethodDataSofortCountry,
2910}
2911
2912#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2913pub struct CreatePaymentIntentPaymentMethodDataSwish {}
2914
2915#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2916pub struct CreatePaymentIntentPaymentMethodDataUsBankAccount {
2917    /// Account holder type: individual or company.
2918    #[serde(skip_serializing_if = "Option::is_none")]
2919    pub account_holder_type:
2920        Option<CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType>,
2921
2922    /// Account number of the bank account.
2923    #[serde(skip_serializing_if = "Option::is_none")]
2924    pub account_number: Option<String>,
2925
2926    /// Account type: checkings or savings.
2927    ///
2928    /// Defaults to checking if omitted.
2929    #[serde(skip_serializing_if = "Option::is_none")]
2930    pub account_type: Option<CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType>,
2931
2932    /// The ID of a Financial Connections Account to use as a payment method.
2933    #[serde(skip_serializing_if = "Option::is_none")]
2934    pub financial_connections_account: Option<String>,
2935
2936    /// Routing number of the bank account.
2937    #[serde(skip_serializing_if = "Option::is_none")]
2938    pub routing_number: Option<String>,
2939}
2940
2941#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2942pub struct CreatePaymentIntentPaymentMethodDataWechatPay {}
2943
2944#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2945pub struct CreatePaymentIntentPaymentMethodDataZip {}
2946
2947#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2948pub struct CreatePaymentIntentPaymentMethodOptionsAcssDebit {
2949    /// Additional fields for Mandate creation.
2950    #[serde(skip_serializing_if = "Option::is_none")]
2951    pub mandate_options: Option<CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions>,
2952
2953    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2954    ///
2955    /// 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.
2956    ///
2957    /// 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.  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).  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`.
2958    #[serde(skip_serializing_if = "Option::is_none")]
2959    pub setup_future_usage:
2960        Option<CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage>,
2961
2962    /// Bank account verification method.
2963    #[serde(skip_serializing_if = "Option::is_none")]
2964    pub verification_method:
2965        Option<CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod>,
2966}
2967
2968#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2969pub struct CreatePaymentIntentPaymentMethodOptionsAffirm {
2970    /// Controls when the funds will be captured from the customer's account.
2971    ///
2972    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
2973    ///
2974    /// 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.
2975    #[serde(skip_serializing_if = "Option::is_none")]
2976    pub capture_method: Option<CreatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod>,
2977
2978    /// Preferred language of the Affirm authorization page that the customer is redirected to.
2979    #[serde(skip_serializing_if = "Option::is_none")]
2980    pub preferred_locale: Option<String>,
2981
2982    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
2983    ///
2984    /// 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.
2985    ///
2986    /// 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.  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).  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`.
2987    #[serde(skip_serializing_if = "Option::is_none")]
2988    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage>,
2989}
2990
2991#[derive(Clone, Debug, Default, Deserialize, Serialize)]
2992pub struct CreatePaymentIntentPaymentMethodOptionsAfterpayClearpay {
2993    /// Controls when the funds will be captured from the customer's account.
2994    ///
2995    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
2996    ///
2997    /// 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.
2998    #[serde(skip_serializing_if = "Option::is_none")]
2999    pub capture_method:
3000        Option<CreatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod>,
3001
3002    /// An internal identifier or reference that this payment corresponds to.
3003    ///
3004    /// You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. This field differs from the statement descriptor and item name.
3005    #[serde(skip_serializing_if = "Option::is_none")]
3006    pub reference: Option<String>,
3007
3008    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3009    ///
3010    /// 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.
3011    ///
3012    /// 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.  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).  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`.
3013    #[serde(skip_serializing_if = "Option::is_none")]
3014    pub setup_future_usage:
3015        Option<CreatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage>,
3016}
3017
3018#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3019pub struct CreatePaymentIntentPaymentMethodOptionsAlipay {
3020    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3021    ///
3022    /// 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.
3023    ///
3024    /// 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.  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).  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`.
3025    #[serde(skip_serializing_if = "Option::is_none")]
3026    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage>,
3027}
3028
3029#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3030pub struct CreatePaymentIntentPaymentMethodOptionsAuBecsDebit {
3031    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3032    ///
3033    /// 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.
3034    ///
3035    /// 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.  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).  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`.
3036    #[serde(skip_serializing_if = "Option::is_none")]
3037    pub setup_future_usage:
3038        Option<CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage>,
3039}
3040
3041#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3042pub struct CreatePaymentIntentPaymentMethodOptionsBacsDebit {
3043    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3044    ///
3045    /// 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.
3046    ///
3047    /// 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.  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).  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`.
3048    #[serde(skip_serializing_if = "Option::is_none")]
3049    pub setup_future_usage:
3050        Option<CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage>,
3051}
3052
3053#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3054pub struct CreatePaymentIntentPaymentMethodOptionsBancontact {
3055    /// Preferred language of the Bancontact authorization page that the customer is redirected to.
3056    #[serde(skip_serializing_if = "Option::is_none")]
3057    pub preferred_language:
3058        Option<CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage>,
3059
3060    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3061    ///
3062    /// 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.
3063    ///
3064    /// 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.  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).  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`.
3065    #[serde(skip_serializing_if = "Option::is_none")]
3066    pub setup_future_usage:
3067        Option<CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage>,
3068}
3069
3070#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3071pub struct CreatePaymentIntentPaymentMethodOptionsBlik {
3072    /// The 6-digit BLIK code that a customer has generated using their banking application.
3073    ///
3074    /// Can only be set on confirmation.
3075    #[serde(skip_serializing_if = "Option::is_none")]
3076    pub code: Option<String>,
3077
3078    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3079    ///
3080    /// 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.
3081    ///
3082    /// 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.  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).  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`.
3083    #[serde(skip_serializing_if = "Option::is_none")]
3084    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage>,
3085}
3086
3087#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3088pub struct CreatePaymentIntentPaymentMethodOptionsBoleto {
3089    /// The number of calendar days before a Boleto voucher expires.
3090    ///
3091    /// 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.
3092    #[serde(skip_serializing_if = "Option::is_none")]
3093    pub expires_after_days: Option<u32>,
3094
3095    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3096    ///
3097    /// 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.
3098    ///
3099    /// 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.  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).  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`.
3100    #[serde(skip_serializing_if = "Option::is_none")]
3101    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage>,
3102}
3103
3104#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3105pub struct CreatePaymentIntentPaymentMethodOptionsCard {
3106    /// Controls when the funds will be captured from the customer's account.
3107    ///
3108    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
3109    ///
3110    /// 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.
3111    #[serde(skip_serializing_if = "Option::is_none")]
3112    pub capture_method: Option<CreatePaymentIntentPaymentMethodOptionsCardCaptureMethod>,
3113
3114    /// A single-use `cvc_update` Token that represents a card CVC value.
3115    ///
3116    /// When provided, the CVC value will be verified during the card payment attempt.
3117    /// This parameter can only be provided during confirmation.
3118    #[serde(skip_serializing_if = "Option::is_none")]
3119    pub cvc_token: Option<String>,
3120
3121    /// Installment configuration for payments attempted on this PaymentIntent (Mexico Only).
3122    ///
3123    /// For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).
3124    #[serde(skip_serializing_if = "Option::is_none")]
3125    pub installments: Option<CreatePaymentIntentPaymentMethodOptionsCardInstallments>,
3126
3127    /// Configuration options for setting up an eMandate for cards issued in India.
3128    #[serde(skip_serializing_if = "Option::is_none")]
3129    pub mandate_options: Option<CreatePaymentIntentPaymentMethodOptionsCardMandateOptions>,
3130
3131    /// When specified, this parameter indicates that a transaction will be marked
3132    /// as MOTO (Mail Order Telephone Order) and thus out of scope for SCA.
3133    ///
3134    /// This parameter can only be provided during confirmation.
3135    #[serde(skip_serializing_if = "Option::is_none")]
3136    pub moto: Option<bool>,
3137
3138    /// Selected network to process this PaymentIntent on.
3139    ///
3140    /// Depends on the available networks of the card attached to the PaymentIntent.
3141    /// Can be only set confirm-time.
3142    #[serde(skip_serializing_if = "Option::is_none")]
3143    pub network: Option<CreatePaymentIntentPaymentMethodOptionsCardNetwork>,
3144
3145    /// Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent.
3146    #[serde(skip_serializing_if = "Option::is_none")]
3147    pub request_extended_authorization:
3148        Option<CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization>,
3149
3150    /// Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent.
3151    #[serde(skip_serializing_if = "Option::is_none")]
3152    pub request_incremental_authorization:
3153        Option<CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization>,
3154
3155    /// Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent.
3156    #[serde(skip_serializing_if = "Option::is_none")]
3157    pub request_multicapture:
3158        Option<CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture>,
3159
3160    /// Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent.
3161    #[serde(skip_serializing_if = "Option::is_none")]
3162    pub request_overcapture: Option<CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture>,
3163
3164    /// 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).
3165    ///
3166    /// However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option.
3167    /// If not provided, this value defaults to `automatic`.
3168    /// Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
3169    #[serde(skip_serializing_if = "Option::is_none")]
3170    pub request_three_d_secure:
3171        Option<CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure>,
3172
3173    /// When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e.
3174    ///
3175    /// using the cvc_token parameter).
3176    #[serde(skip_serializing_if = "Option::is_none")]
3177    pub require_cvc_recollection: Option<bool>,
3178
3179    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3180    ///
3181    /// 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.
3182    ///
3183    /// 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.  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).  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`.
3184    #[serde(skip_serializing_if = "Option::is_none")]
3185    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage>,
3186
3187    /// Provides information about a card payment that customers see on their statements.
3188    ///
3189    /// Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor.
3190    /// Maximum 22 characters.
3191    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.
3192    #[serde(skip_serializing_if = "Option::is_none")]
3193    pub statement_descriptor_suffix_kana: Option<String>,
3194
3195    /// Provides information about a card payment that customers see on their statements.
3196    ///
3197    /// Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor.
3198    /// Maximum 17 characters.
3199    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.
3200    #[serde(skip_serializing_if = "Option::is_none")]
3201    pub statement_descriptor_suffix_kanji: Option<String>,
3202
3203    /// If 3D Secure authentication was performed with a third-party provider,
3204    /// the authentication details to use for this payment.
3205    #[serde(skip_serializing_if = "Option::is_none")]
3206    pub three_d_secure: Option<CreatePaymentIntentPaymentMethodOptionsCardThreeDSecure>,
3207}
3208
3209#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3210pub struct CreatePaymentIntentPaymentMethodOptionsCardPresent {
3211    /// Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity).
3212    #[serde(skip_serializing_if = "Option::is_none")]
3213    pub request_extended_authorization: Option<bool>,
3214
3215    /// Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible.
3216    ///
3217    /// 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.
3218    #[serde(skip_serializing_if = "Option::is_none")]
3219    pub request_incremental_authorization_support: Option<bool>,
3220}
3221
3222#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3223pub struct CreatePaymentIntentPaymentMethodOptionsCashapp {
3224    /// Controls when the funds will be captured from the customer's account.
3225    ///
3226    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
3227    ///
3228    /// 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.
3229    #[serde(skip_serializing_if = "Option::is_none")]
3230    pub capture_method: Option<CreatePaymentIntentPaymentMethodOptionsCashappCaptureMethod>,
3231
3232    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3233    ///
3234    /// 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.
3235    ///
3236    /// 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.  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).  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`.
3237    #[serde(skip_serializing_if = "Option::is_none")]
3238    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage>,
3239}
3240
3241#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3242pub struct CreatePaymentIntentPaymentMethodOptionsCustomerBalance {
3243    /// Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`.
3244    #[serde(skip_serializing_if = "Option::is_none")]
3245    pub bank_transfer: Option<CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer>,
3246
3247    /// The funding method type to be used when there are not enough funds in the customer balance.
3248    ///
3249    /// Permitted values include: `bank_transfer`.
3250    #[serde(skip_serializing_if = "Option::is_none")]
3251    pub funding_type: Option<CreatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType>,
3252
3253    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3254    ///
3255    /// 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.
3256    ///
3257    /// 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.  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).  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`.
3258    #[serde(skip_serializing_if = "Option::is_none")]
3259    pub setup_future_usage:
3260        Option<CreatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage>,
3261}
3262
3263#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3264pub struct CreatePaymentIntentPaymentMethodOptionsEps {
3265    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3266    ///
3267    /// 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.
3268    ///
3269    /// 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.  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).  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`.
3270    #[serde(skip_serializing_if = "Option::is_none")]
3271    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage>,
3272}
3273
3274#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3275pub struct CreatePaymentIntentPaymentMethodOptionsFpx {
3276    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3277    ///
3278    /// 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.
3279    ///
3280    /// 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.  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).  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`.
3281    #[serde(skip_serializing_if = "Option::is_none")]
3282    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage>,
3283}
3284
3285#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3286pub struct CreatePaymentIntentPaymentMethodOptionsGiropay {
3287    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3288    ///
3289    /// 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.
3290    ///
3291    /// 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.  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).  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`.
3292    #[serde(skip_serializing_if = "Option::is_none")]
3293    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage>,
3294}
3295
3296#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3297pub struct CreatePaymentIntentPaymentMethodOptionsGrabpay {
3298    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3299    ///
3300    /// 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.
3301    ///
3302    /// 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.  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).  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`.
3303    #[serde(skip_serializing_if = "Option::is_none")]
3304    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage>,
3305}
3306
3307#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3308pub struct CreatePaymentIntentPaymentMethodOptionsIdeal {
3309    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3310    ///
3311    /// 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.
3312    ///
3313    /// 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.  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).  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`.
3314    #[serde(skip_serializing_if = "Option::is_none")]
3315    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage>,
3316}
3317
3318#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3319pub struct CreatePaymentIntentPaymentMethodOptionsInteracPresent {}
3320
3321#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3322pub struct CreatePaymentIntentPaymentMethodOptionsKlarna {
3323    /// Controls when the funds will be captured from the customer's account.
3324    ///
3325    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
3326    ///
3327    /// 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.
3328    #[serde(skip_serializing_if = "Option::is_none")]
3329    pub capture_method: Option<CreatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod>,
3330
3331    /// Preferred language of the Klarna authorization page that the customer is redirected to.
3332    #[serde(skip_serializing_if = "Option::is_none")]
3333    pub preferred_locale: Option<CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale>,
3334
3335    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3336    ///
3337    /// 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.
3338    ///
3339    /// 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.  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).  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`.
3340    #[serde(skip_serializing_if = "Option::is_none")]
3341    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage>,
3342}
3343
3344#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3345pub struct CreatePaymentIntentPaymentMethodOptionsKonbini {
3346    /// An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores.
3347    ///
3348    /// Must not consist of only zeroes and could be rejected in case of insufficient uniqueness.
3349    /// We recommend to use the customer's phone number.
3350    #[serde(skip_serializing_if = "Option::is_none")]
3351    pub confirmation_number: Option<String>,
3352
3353    /// The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire.
3354    ///
3355    /// 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.
3356    /// Defaults to 3 days.
3357    #[serde(skip_serializing_if = "Option::is_none")]
3358    pub expires_after_days: Option<u32>,
3359
3360    /// The timestamp at which the Konbini payment instructions will expire.
3361    ///
3362    /// Only one of `expires_after_days` or `expires_at` may be set.
3363    #[serde(skip_serializing_if = "Option::is_none")]
3364    pub expires_at: Option<Timestamp>,
3365
3366    /// A product descriptor of up to 22 characters, which will appear to customers at the convenience store.
3367    #[serde(skip_serializing_if = "Option::is_none")]
3368    pub product_description: Option<String>,
3369
3370    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3371    ///
3372    /// 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.
3373    ///
3374    /// 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.  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).  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`.
3375    #[serde(skip_serializing_if = "Option::is_none")]
3376    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage>,
3377}
3378
3379#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3380pub struct CreatePaymentIntentPaymentMethodOptionsLink {
3381    /// Controls when the funds will be captured from the customer's account.
3382    ///
3383    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
3384    ///
3385    /// 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.
3386    #[serde(skip_serializing_if = "Option::is_none")]
3387    pub capture_method: Option<CreatePaymentIntentPaymentMethodOptionsLinkCaptureMethod>,
3388
3389    /// [Deprecated] This is a legacy parameter that no longer has any function.
3390    #[serde(skip_serializing_if = "Option::is_none")]
3391    pub persistent_token: Option<String>,
3392
3393    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3394    ///
3395    /// 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.
3396    ///
3397    /// 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.  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).  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`.
3398    #[serde(skip_serializing_if = "Option::is_none")]
3399    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage>,
3400}
3401
3402#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3403pub struct CreatePaymentIntentPaymentMethodOptionsOxxo {
3404    /// The number of calendar days before an OXXO voucher expires.
3405    ///
3406    /// 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.
3407    #[serde(skip_serializing_if = "Option::is_none")]
3408    pub expires_after_days: Option<u32>,
3409
3410    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3411    ///
3412    /// 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.
3413    ///
3414    /// 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.  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).  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`.
3415    #[serde(skip_serializing_if = "Option::is_none")]
3416    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage>,
3417}
3418
3419#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3420pub struct CreatePaymentIntentPaymentMethodOptionsP24 {
3421    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3422    ///
3423    /// 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.
3424    ///
3425    /// 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.  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).  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`.
3426    #[serde(skip_serializing_if = "Option::is_none")]
3427    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage>,
3428
3429    /// Confirm that the payer has accepted the P24 terms and conditions.
3430    #[serde(skip_serializing_if = "Option::is_none")]
3431    pub tos_shown_and_accepted: Option<bool>,
3432}
3433
3434#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3435pub struct CreatePaymentIntentPaymentMethodOptionsPaynow {
3436    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3437    ///
3438    /// 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.
3439    ///
3440    /// 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.  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).  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`.
3441    #[serde(skip_serializing_if = "Option::is_none")]
3442    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage>,
3443}
3444
3445#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3446pub struct CreatePaymentIntentPaymentMethodOptionsPaypal {
3447    /// Controls when the funds will be captured from the customer's account.
3448    #[serde(skip_serializing_if = "Option::is_none")]
3449    pub capture_method: Option<CreatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod>,
3450
3451    /// [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to.
3452    #[serde(skip_serializing_if = "Option::is_none")]
3453    pub preferred_locale: Option<CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale>,
3454
3455    /// A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID.
3456    ///
3457    /// This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
3458    #[serde(skip_serializing_if = "Option::is_none")]
3459    pub reference: Option<String>,
3460
3461    /// The risk correlation ID for an on-session payment using a saved PayPal payment method.
3462    #[serde(skip_serializing_if = "Option::is_none")]
3463    pub risk_correlation_id: Option<String>,
3464
3465    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3466    ///
3467    /// 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.
3468    ///
3469    /// 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.  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).  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`.
3470    #[serde(skip_serializing_if = "Option::is_none")]
3471    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage>,
3472}
3473
3474#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3475pub struct CreatePaymentIntentPaymentMethodOptionsPix {
3476    /// The number of seconds (between 10 and 1209600) after which Pix payment will expire.
3477    ///
3478    /// Defaults to 86400 seconds.
3479    #[serde(skip_serializing_if = "Option::is_none")]
3480    pub expires_after_seconds: Option<i64>,
3481
3482    /// The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future).
3483    ///
3484    /// Defaults to 1 day in the future.
3485    #[serde(skip_serializing_if = "Option::is_none")]
3486    pub expires_at: Option<Timestamp>,
3487
3488    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3489    ///
3490    /// 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.
3491    ///
3492    /// 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.  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).  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`.
3493    #[serde(skip_serializing_if = "Option::is_none")]
3494    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage>,
3495}
3496
3497#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3498pub struct CreatePaymentIntentPaymentMethodOptionsPromptpay {
3499    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3500    ///
3501    /// 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.
3502    ///
3503    /// 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.  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).  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`.
3504    #[serde(skip_serializing_if = "Option::is_none")]
3505    pub setup_future_usage:
3506        Option<CreatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage>,
3507}
3508
3509#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3510pub struct CreatePaymentIntentPaymentMethodOptionsRevolutPay {
3511    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3512    ///
3513    /// 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.
3514    ///
3515    /// 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.  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).
3516    #[serde(skip_serializing_if = "Option::is_none")]
3517    pub setup_future_usage:
3518        Option<CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage>,
3519}
3520
3521#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3522pub struct CreatePaymentIntentPaymentMethodOptionsSepaDebit {
3523    /// Additional fields for Mandate creation.
3524    #[serde(skip_serializing_if = "Option::is_none")]
3525    pub mandate_options: Option<CreatePaymentIntentPaymentMethodOptionsSepaDebitMandateOptions>,
3526
3527    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3528    ///
3529    /// 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.
3530    ///
3531    /// 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.  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).  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`.
3532    #[serde(skip_serializing_if = "Option::is_none")]
3533    pub setup_future_usage:
3534        Option<CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage>,
3535}
3536
3537#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3538pub struct CreatePaymentIntentPaymentMethodOptionsSofort {
3539    /// Language shown to the payer on redirect.
3540    #[serde(skip_serializing_if = "Option::is_none")]
3541    pub preferred_language: Option<CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage>,
3542
3543    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3544    ///
3545    /// 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.
3546    ///
3547    /// 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.  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).  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`.
3548    #[serde(skip_serializing_if = "Option::is_none")]
3549    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage>,
3550}
3551
3552#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3553pub struct CreatePaymentIntentPaymentMethodOptionsSwish {
3554    /// The order ID displayed in the Swish app after the payment is authorized.
3555    #[serde(skip_serializing_if = "Option::is_none")]
3556    pub reference: Option<String>,
3557
3558    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3559    ///
3560    /// 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.
3561    ///
3562    /// 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.  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).  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`.
3563    #[serde(skip_serializing_if = "Option::is_none")]
3564    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage>,
3565}
3566
3567#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3568pub struct CreatePaymentIntentPaymentMethodOptionsUsBankAccount {
3569    /// Additional fields for Financial Connections Session creation.
3570    #[serde(skip_serializing_if = "Option::is_none")]
3571    pub financial_connections:
3572        Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections>,
3573
3574    /// Additional fields for Mandate creation.
3575    #[serde(skip_serializing_if = "Option::is_none")]
3576    pub mandate_options: Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions>,
3577
3578    /// Additional fields for network related functions.
3579    #[serde(skip_serializing_if = "Option::is_none")]
3580    pub networks: Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworks>,
3581
3582    /// Preferred transaction settlement speed.
3583    #[serde(skip_serializing_if = "Option::is_none")]
3584    pub preferred_settlement_speed:
3585        Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed>,
3586
3587    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3588    ///
3589    /// 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.
3590    ///
3591    /// 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.  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).  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`.
3592    #[serde(skip_serializing_if = "Option::is_none")]
3593    pub setup_future_usage:
3594        Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage>,
3595
3596    /// Bank account verification method.
3597    #[serde(skip_serializing_if = "Option::is_none")]
3598    pub verification_method:
3599        Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod>,
3600}
3601
3602#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3603pub struct CreatePaymentIntentPaymentMethodOptionsWechatPay {
3604    /// The app ID registered with WeChat Pay.
3605    ///
3606    /// Only required when client is ios or android.
3607    #[serde(skip_serializing_if = "Option::is_none")]
3608    pub app_id: Option<String>,
3609
3610    /// The client type that the end customer will pay from.
3611    pub client: CreatePaymentIntentPaymentMethodOptionsWechatPayClient,
3612
3613    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3614    ///
3615    /// 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.
3616    ///
3617    /// 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.  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).  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`.
3618    #[serde(skip_serializing_if = "Option::is_none")]
3619    pub setup_future_usage:
3620        Option<CreatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage>,
3621}
3622
3623#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3624pub struct CreatePaymentIntentPaymentMethodOptionsZip {
3625    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3626    ///
3627    /// 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.
3628    ///
3629    /// 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.  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).  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`.
3630    #[serde(skip_serializing_if = "Option::is_none")]
3631    pub setup_future_usage: Option<CreatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage>,
3632}
3633
3634#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3635pub struct CreatePaymentIntentShippingAddress {
3636    /// City, district, suburb, town, or village.
3637    #[serde(skip_serializing_if = "Option::is_none")]
3638    pub city: Option<String>,
3639
3640    /// Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
3641    #[serde(skip_serializing_if = "Option::is_none")]
3642    pub country: Option<String>,
3643
3644    /// Address line 1 (e.g., street, PO Box, or company name).
3645    #[serde(skip_serializing_if = "Option::is_none")]
3646    pub line1: Option<String>,
3647
3648    /// Address line 2 (e.g., apartment, suite, unit, or building).
3649    #[serde(skip_serializing_if = "Option::is_none")]
3650    pub line2: Option<String>,
3651
3652    /// ZIP or postal code.
3653    #[serde(skip_serializing_if = "Option::is_none")]
3654    pub postal_code: Option<String>,
3655
3656    /// State, county, province, or region.
3657    #[serde(skip_serializing_if = "Option::is_none")]
3658    pub state: Option<String>,
3659}
3660
3661#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3662pub struct UpdatePaymentIntentPaymentMethodDataAcssDebit {
3663    /// Customer's bank account number.
3664    pub account_number: String,
3665
3666    /// Institution number of the customer's bank.
3667    pub institution_number: String,
3668
3669    /// Transit number of the customer's bank.
3670    pub transit_number: String,
3671}
3672
3673#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3674pub struct UpdatePaymentIntentPaymentMethodDataAffirm {}
3675
3676#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3677pub struct UpdatePaymentIntentPaymentMethodDataAfterpayClearpay {}
3678
3679#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3680pub struct UpdatePaymentIntentPaymentMethodDataAlipay {}
3681
3682#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3683pub struct UpdatePaymentIntentPaymentMethodDataAuBecsDebit {
3684    /// The account number for the bank account.
3685    pub account_number: String,
3686
3687    /// Bank-State-Branch number of the bank account.
3688    pub bsb_number: String,
3689}
3690
3691#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3692pub struct UpdatePaymentIntentPaymentMethodDataBacsDebit {
3693    /// Account number of the bank account that the funds will be debited from.
3694    #[serde(skip_serializing_if = "Option::is_none")]
3695    pub account_number: Option<String>,
3696
3697    /// Sort code of the bank account.
3698    ///
3699    /// (e.g., `10-20-30`).
3700    #[serde(skip_serializing_if = "Option::is_none")]
3701    pub sort_code: Option<String>,
3702}
3703
3704#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3705pub struct UpdatePaymentIntentPaymentMethodDataBancontact {}
3706
3707#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3708pub struct UpdatePaymentIntentPaymentMethodDataBillingDetails {
3709    /// Billing address.
3710    #[serde(skip_serializing_if = "Option::is_none")]
3711    pub address: Option<UpdatePaymentIntentPaymentMethodDataBillingDetailsAddress>,
3712
3713    /// Email address.
3714    #[serde(skip_serializing_if = "Option::is_none")]
3715    pub email: Option<String>,
3716
3717    /// Full name.
3718    #[serde(skip_serializing_if = "Option::is_none")]
3719    pub name: Option<String>,
3720
3721    /// Billing phone number (including extension).
3722    #[serde(skip_serializing_if = "Option::is_none")]
3723    pub phone: Option<String>,
3724}
3725
3726#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3727pub struct UpdatePaymentIntentPaymentMethodDataBlik {}
3728
3729#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3730pub struct UpdatePaymentIntentPaymentMethodDataBoleto {
3731    /// The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers).
3732    pub tax_id: String,
3733}
3734
3735#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3736pub struct UpdatePaymentIntentPaymentMethodDataCashapp {}
3737
3738#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3739pub struct UpdatePaymentIntentPaymentMethodDataCustomerBalance {}
3740
3741#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3742pub struct UpdatePaymentIntentPaymentMethodDataEps {
3743    /// The customer's bank.
3744    #[serde(skip_serializing_if = "Option::is_none")]
3745    pub bank: Option<UpdatePaymentIntentPaymentMethodDataEpsBank>,
3746}
3747
3748#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3749pub struct UpdatePaymentIntentPaymentMethodDataFpx {
3750    /// Account holder type for FPX transaction.
3751    #[serde(skip_serializing_if = "Option::is_none")]
3752    pub account_holder_type: Option<UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType>,
3753
3754    /// The customer's bank.
3755    pub bank: UpdatePaymentIntentPaymentMethodDataFpxBank,
3756}
3757
3758#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3759pub struct UpdatePaymentIntentPaymentMethodDataGiropay {}
3760
3761#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3762pub struct UpdatePaymentIntentPaymentMethodDataGrabpay {}
3763
3764#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3765pub struct UpdatePaymentIntentPaymentMethodDataIdeal {
3766    /// The customer's bank.
3767    #[serde(skip_serializing_if = "Option::is_none")]
3768    pub bank: Option<UpdatePaymentIntentPaymentMethodDataIdealBank>,
3769}
3770
3771#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3772pub struct UpdatePaymentIntentPaymentMethodDataInteracPresent {}
3773
3774#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3775pub struct UpdatePaymentIntentPaymentMethodDataKlarna {
3776    /// Customer's date of birth.
3777    #[serde(skip_serializing_if = "Option::is_none")]
3778    pub dob: Option<UpdatePaymentIntentPaymentMethodDataKlarnaDob>,
3779}
3780
3781#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3782pub struct UpdatePaymentIntentPaymentMethodDataKonbini {}
3783
3784#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3785pub struct UpdatePaymentIntentPaymentMethodDataLink {}
3786
3787#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3788pub struct UpdatePaymentIntentPaymentMethodDataOxxo {}
3789
3790#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3791pub struct UpdatePaymentIntentPaymentMethodDataP24 {
3792    /// The customer's bank.
3793    #[serde(skip_serializing_if = "Option::is_none")]
3794    pub bank: Option<UpdatePaymentIntentPaymentMethodDataP24Bank>,
3795}
3796
3797#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3798pub struct UpdatePaymentIntentPaymentMethodDataPaynow {}
3799
3800#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3801pub struct UpdatePaymentIntentPaymentMethodDataPaypal {}
3802
3803#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3804pub struct UpdatePaymentIntentPaymentMethodDataPix {}
3805
3806#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3807pub struct UpdatePaymentIntentPaymentMethodDataPromptpay {}
3808
3809#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3810pub struct UpdatePaymentIntentPaymentMethodDataRadarOptions {
3811    /// 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.
3812    #[serde(skip_serializing_if = "Option::is_none")]
3813    pub session: Option<String>,
3814}
3815
3816#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3817pub struct UpdatePaymentIntentPaymentMethodDataRevolutPay {}
3818
3819#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3820pub struct UpdatePaymentIntentPaymentMethodDataSepaDebit {
3821    /// IBAN of the bank account.
3822    pub iban: String,
3823}
3824
3825#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3826pub struct UpdatePaymentIntentPaymentMethodDataSofort {
3827    /// Two-letter ISO code representing the country the bank account is located in.
3828    pub country: UpdatePaymentIntentPaymentMethodDataSofortCountry,
3829}
3830
3831#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3832pub struct UpdatePaymentIntentPaymentMethodDataSwish {}
3833
3834#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3835pub struct UpdatePaymentIntentPaymentMethodDataUsBankAccount {
3836    /// Account holder type: individual or company.
3837    #[serde(skip_serializing_if = "Option::is_none")]
3838    pub account_holder_type:
3839        Option<UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType>,
3840
3841    /// Account number of the bank account.
3842    #[serde(skip_serializing_if = "Option::is_none")]
3843    pub account_number: Option<String>,
3844
3845    /// Account type: checkings or savings.
3846    ///
3847    /// Defaults to checking if omitted.
3848    #[serde(skip_serializing_if = "Option::is_none")]
3849    pub account_type: Option<UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType>,
3850
3851    /// The ID of a Financial Connections Account to use as a payment method.
3852    #[serde(skip_serializing_if = "Option::is_none")]
3853    pub financial_connections_account: Option<String>,
3854
3855    /// Routing number of the bank account.
3856    #[serde(skip_serializing_if = "Option::is_none")]
3857    pub routing_number: Option<String>,
3858}
3859
3860#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3861pub struct UpdatePaymentIntentPaymentMethodDataWechatPay {}
3862
3863#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3864pub struct UpdatePaymentIntentPaymentMethodDataZip {}
3865
3866#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3867pub struct UpdatePaymentIntentPaymentMethodOptionsAcssDebit {
3868    /// Additional fields for Mandate creation.
3869    #[serde(skip_serializing_if = "Option::is_none")]
3870    pub mandate_options: Option<UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions>,
3871
3872    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3873    ///
3874    /// 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.
3875    ///
3876    /// 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.  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).  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`.
3877    #[serde(skip_serializing_if = "Option::is_none")]
3878    pub setup_future_usage:
3879        Option<UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage>,
3880
3881    /// Bank account verification method.
3882    #[serde(skip_serializing_if = "Option::is_none")]
3883    pub verification_method:
3884        Option<UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod>,
3885}
3886
3887#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3888pub struct UpdatePaymentIntentPaymentMethodOptionsAffirm {
3889    /// Controls when the funds will be captured from the customer's account.
3890    ///
3891    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
3892    ///
3893    /// 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.
3894    #[serde(skip_serializing_if = "Option::is_none")]
3895    pub capture_method: Option<UpdatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod>,
3896
3897    /// Preferred language of the Affirm authorization page that the customer is redirected to.
3898    #[serde(skip_serializing_if = "Option::is_none")]
3899    pub preferred_locale: Option<String>,
3900
3901    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3902    ///
3903    /// 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.
3904    ///
3905    /// 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.  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).  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`.
3906    #[serde(skip_serializing_if = "Option::is_none")]
3907    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage>,
3908}
3909
3910#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3911pub struct UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpay {
3912    /// Controls when the funds will be captured from the customer's account.
3913    ///
3914    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
3915    ///
3916    /// 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.
3917    #[serde(skip_serializing_if = "Option::is_none")]
3918    pub capture_method:
3919        Option<UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod>,
3920
3921    /// An internal identifier or reference that this payment corresponds to.
3922    ///
3923    /// You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. This field differs from the statement descriptor and item name.
3924    #[serde(skip_serializing_if = "Option::is_none")]
3925    pub reference: Option<String>,
3926
3927    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3928    ///
3929    /// 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.
3930    ///
3931    /// 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.  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).  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`.
3932    #[serde(skip_serializing_if = "Option::is_none")]
3933    pub setup_future_usage:
3934        Option<UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage>,
3935}
3936
3937#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3938pub struct UpdatePaymentIntentPaymentMethodOptionsAlipay {
3939    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3940    ///
3941    /// 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.
3942    ///
3943    /// 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.  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).  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`.
3944    #[serde(skip_serializing_if = "Option::is_none")]
3945    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage>,
3946}
3947
3948#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3949pub struct UpdatePaymentIntentPaymentMethodOptionsAuBecsDebit {
3950    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3951    ///
3952    /// 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.
3953    ///
3954    /// 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.  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).  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`.
3955    #[serde(skip_serializing_if = "Option::is_none")]
3956    pub setup_future_usage:
3957        Option<UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage>,
3958}
3959
3960#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3961pub struct UpdatePaymentIntentPaymentMethodOptionsBacsDebit {
3962    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3963    ///
3964    /// 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.
3965    ///
3966    /// 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.  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).  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`.
3967    #[serde(skip_serializing_if = "Option::is_none")]
3968    pub setup_future_usage:
3969        Option<UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage>,
3970}
3971
3972#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3973pub struct UpdatePaymentIntentPaymentMethodOptionsBancontact {
3974    /// Preferred language of the Bancontact authorization page that the customer is redirected to.
3975    #[serde(skip_serializing_if = "Option::is_none")]
3976    pub preferred_language:
3977        Option<UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage>,
3978
3979    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3980    ///
3981    /// 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.
3982    ///
3983    /// 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.  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).  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`.
3984    #[serde(skip_serializing_if = "Option::is_none")]
3985    pub setup_future_usage:
3986        Option<UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage>,
3987}
3988
3989#[derive(Clone, Debug, Default, Deserialize, Serialize)]
3990pub struct UpdatePaymentIntentPaymentMethodOptionsBlik {
3991    /// The 6-digit BLIK code that a customer has generated using their banking application.
3992    ///
3993    /// Can only be set on confirmation.
3994    #[serde(skip_serializing_if = "Option::is_none")]
3995    pub code: Option<String>,
3996
3997    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
3998    ///
3999    /// 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.
4000    ///
4001    /// 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.  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).  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`.
4002    #[serde(skip_serializing_if = "Option::is_none")]
4003    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage>,
4004}
4005
4006#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4007pub struct UpdatePaymentIntentPaymentMethodOptionsBoleto {
4008    /// The number of calendar days before a Boleto voucher expires.
4009    ///
4010    /// 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.
4011    #[serde(skip_serializing_if = "Option::is_none")]
4012    pub expires_after_days: Option<u32>,
4013
4014    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4015    ///
4016    /// 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.
4017    ///
4018    /// 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.  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).  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`.
4019    #[serde(skip_serializing_if = "Option::is_none")]
4020    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage>,
4021}
4022
4023#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4024pub struct UpdatePaymentIntentPaymentMethodOptionsCard {
4025    /// Controls when the funds will be captured from the customer's account.
4026    ///
4027    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
4028    ///
4029    /// 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.
4030    #[serde(skip_serializing_if = "Option::is_none")]
4031    pub capture_method: Option<UpdatePaymentIntentPaymentMethodOptionsCardCaptureMethod>,
4032
4033    /// A single-use `cvc_update` Token that represents a card CVC value.
4034    ///
4035    /// When provided, the CVC value will be verified during the card payment attempt.
4036    /// This parameter can only be provided during confirmation.
4037    #[serde(skip_serializing_if = "Option::is_none")]
4038    pub cvc_token: Option<String>,
4039
4040    /// Installment configuration for payments attempted on this PaymentIntent (Mexico Only).
4041    ///
4042    /// For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).
4043    #[serde(skip_serializing_if = "Option::is_none")]
4044    pub installments: Option<UpdatePaymentIntentPaymentMethodOptionsCardInstallments>,
4045
4046    /// Configuration options for setting up an eMandate for cards issued in India.
4047    #[serde(skip_serializing_if = "Option::is_none")]
4048    pub mandate_options: Option<UpdatePaymentIntentPaymentMethodOptionsCardMandateOptions>,
4049
4050    /// When specified, this parameter indicates that a transaction will be marked
4051    /// as MOTO (Mail Order Telephone Order) and thus out of scope for SCA.
4052    ///
4053    /// This parameter can only be provided during confirmation.
4054    #[serde(skip_serializing_if = "Option::is_none")]
4055    pub moto: Option<bool>,
4056
4057    /// Selected network to process this PaymentIntent on.
4058    ///
4059    /// Depends on the available networks of the card attached to the PaymentIntent.
4060    /// Can be only set confirm-time.
4061    #[serde(skip_serializing_if = "Option::is_none")]
4062    pub network: Option<UpdatePaymentIntentPaymentMethodOptionsCardNetwork>,
4063
4064    /// Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent.
4065    #[serde(skip_serializing_if = "Option::is_none")]
4066    pub request_extended_authorization:
4067        Option<UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization>,
4068
4069    /// Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent.
4070    #[serde(skip_serializing_if = "Option::is_none")]
4071    pub request_incremental_authorization:
4072        Option<UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization>,
4073
4074    /// Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent.
4075    #[serde(skip_serializing_if = "Option::is_none")]
4076    pub request_multicapture:
4077        Option<UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture>,
4078
4079    /// Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent.
4080    #[serde(skip_serializing_if = "Option::is_none")]
4081    pub request_overcapture: Option<UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture>,
4082
4083    /// 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).
4084    ///
4085    /// However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option.
4086    /// If not provided, this value defaults to `automatic`.
4087    /// Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
4088    #[serde(skip_serializing_if = "Option::is_none")]
4089    pub request_three_d_secure:
4090        Option<UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure>,
4091
4092    /// When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e.
4093    ///
4094    /// using the cvc_token parameter).
4095    #[serde(skip_serializing_if = "Option::is_none")]
4096    pub require_cvc_recollection: Option<bool>,
4097
4098    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4099    ///
4100    /// 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.
4101    ///
4102    /// 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.  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).  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`.
4103    #[serde(skip_serializing_if = "Option::is_none")]
4104    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage>,
4105
4106    /// Provides information about a card payment that customers see on their statements.
4107    ///
4108    /// Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor.
4109    /// Maximum 22 characters.
4110    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.
4111    #[serde(skip_serializing_if = "Option::is_none")]
4112    pub statement_descriptor_suffix_kana: Option<String>,
4113
4114    /// Provides information about a card payment that customers see on their statements.
4115    ///
4116    /// Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor.
4117    /// Maximum 17 characters.
4118    /// On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.
4119    #[serde(skip_serializing_if = "Option::is_none")]
4120    pub statement_descriptor_suffix_kanji: Option<String>,
4121
4122    /// If 3D Secure authentication was performed with a third-party provider,
4123    /// the authentication details to use for this payment.
4124    #[serde(skip_serializing_if = "Option::is_none")]
4125    pub three_d_secure: Option<UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecure>,
4126}
4127
4128#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4129pub struct UpdatePaymentIntentPaymentMethodOptionsCardPresent {
4130    /// Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity).
4131    #[serde(skip_serializing_if = "Option::is_none")]
4132    pub request_extended_authorization: Option<bool>,
4133
4134    /// Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible.
4135    ///
4136    /// 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.
4137    #[serde(skip_serializing_if = "Option::is_none")]
4138    pub request_incremental_authorization_support: Option<bool>,
4139}
4140
4141#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4142pub struct UpdatePaymentIntentPaymentMethodOptionsCashapp {
4143    /// Controls when the funds will be captured from the customer's account.
4144    ///
4145    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
4146    ///
4147    /// 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.
4148    #[serde(skip_serializing_if = "Option::is_none")]
4149    pub capture_method: Option<UpdatePaymentIntentPaymentMethodOptionsCashappCaptureMethod>,
4150
4151    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4152    ///
4153    /// 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.
4154    ///
4155    /// 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.  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).  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`.
4156    #[serde(skip_serializing_if = "Option::is_none")]
4157    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage>,
4158}
4159
4160#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4161pub struct UpdatePaymentIntentPaymentMethodOptionsCustomerBalance {
4162    /// Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`.
4163    #[serde(skip_serializing_if = "Option::is_none")]
4164    pub bank_transfer: Option<UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer>,
4165
4166    /// The funding method type to be used when there are not enough funds in the customer balance.
4167    ///
4168    /// Permitted values include: `bank_transfer`.
4169    #[serde(skip_serializing_if = "Option::is_none")]
4170    pub funding_type: Option<UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType>,
4171
4172    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4173    ///
4174    /// 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.
4175    ///
4176    /// 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.  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).  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`.
4177    #[serde(skip_serializing_if = "Option::is_none")]
4178    pub setup_future_usage:
4179        Option<UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage>,
4180}
4181
4182#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4183pub struct UpdatePaymentIntentPaymentMethodOptionsEps {
4184    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4185    ///
4186    /// 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.
4187    ///
4188    /// 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.  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).  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`.
4189    #[serde(skip_serializing_if = "Option::is_none")]
4190    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage>,
4191}
4192
4193#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4194pub struct UpdatePaymentIntentPaymentMethodOptionsFpx {
4195    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4196    ///
4197    /// 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.
4198    ///
4199    /// 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.  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).  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`.
4200    #[serde(skip_serializing_if = "Option::is_none")]
4201    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage>,
4202}
4203
4204#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4205pub struct UpdatePaymentIntentPaymentMethodOptionsGiropay {
4206    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4207    ///
4208    /// 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.
4209    ///
4210    /// 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.  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).  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`.
4211    #[serde(skip_serializing_if = "Option::is_none")]
4212    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage>,
4213}
4214
4215#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4216pub struct UpdatePaymentIntentPaymentMethodOptionsGrabpay {
4217    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4218    ///
4219    /// 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.
4220    ///
4221    /// 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.  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).  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`.
4222    #[serde(skip_serializing_if = "Option::is_none")]
4223    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage>,
4224}
4225
4226#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4227pub struct UpdatePaymentIntentPaymentMethodOptionsIdeal {
4228    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4229    ///
4230    /// 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.
4231    ///
4232    /// 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.  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).  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`.
4233    #[serde(skip_serializing_if = "Option::is_none")]
4234    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage>,
4235}
4236
4237#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4238pub struct UpdatePaymentIntentPaymentMethodOptionsInteracPresent {}
4239
4240#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4241pub struct UpdatePaymentIntentPaymentMethodOptionsKlarna {
4242    /// Controls when the funds will be captured from the customer's account.
4243    ///
4244    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
4245    ///
4246    /// 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.
4247    #[serde(skip_serializing_if = "Option::is_none")]
4248    pub capture_method: Option<UpdatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod>,
4249
4250    /// Preferred language of the Klarna authorization page that the customer is redirected to.
4251    #[serde(skip_serializing_if = "Option::is_none")]
4252    pub preferred_locale: Option<UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale>,
4253
4254    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4255    ///
4256    /// 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.
4257    ///
4258    /// 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.  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).  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`.
4259    #[serde(skip_serializing_if = "Option::is_none")]
4260    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage>,
4261}
4262
4263#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4264pub struct UpdatePaymentIntentPaymentMethodOptionsKonbini {
4265    /// An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores.
4266    ///
4267    /// Must not consist of only zeroes and could be rejected in case of insufficient uniqueness.
4268    /// We recommend to use the customer's phone number.
4269    #[serde(skip_serializing_if = "Option::is_none")]
4270    pub confirmation_number: Option<String>,
4271
4272    /// The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire.
4273    ///
4274    /// 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.
4275    /// Defaults to 3 days.
4276    #[serde(skip_serializing_if = "Option::is_none")]
4277    pub expires_after_days: Option<u32>,
4278
4279    /// The timestamp at which the Konbini payment instructions will expire.
4280    ///
4281    /// Only one of `expires_after_days` or `expires_at` may be set.
4282    #[serde(skip_serializing_if = "Option::is_none")]
4283    pub expires_at: Option<Timestamp>,
4284
4285    /// A product descriptor of up to 22 characters, which will appear to customers at the convenience store.
4286    #[serde(skip_serializing_if = "Option::is_none")]
4287    pub product_description: Option<String>,
4288
4289    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4290    ///
4291    /// 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.
4292    ///
4293    /// 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.  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).  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`.
4294    #[serde(skip_serializing_if = "Option::is_none")]
4295    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage>,
4296}
4297
4298#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4299pub struct UpdatePaymentIntentPaymentMethodOptionsLink {
4300    /// Controls when the funds will be captured from the customer's account.
4301    ///
4302    /// If provided, this parameter will override the top-level `capture_method` when finalizing the payment with this payment method type.
4303    ///
4304    /// 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.
4305    #[serde(skip_serializing_if = "Option::is_none")]
4306    pub capture_method: Option<UpdatePaymentIntentPaymentMethodOptionsLinkCaptureMethod>,
4307
4308    /// [Deprecated] This is a legacy parameter that no longer has any function.
4309    #[serde(skip_serializing_if = "Option::is_none")]
4310    pub persistent_token: Option<String>,
4311
4312    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4313    ///
4314    /// 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.
4315    ///
4316    /// 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.  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).  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`.
4317    #[serde(skip_serializing_if = "Option::is_none")]
4318    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage>,
4319}
4320
4321#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4322pub struct UpdatePaymentIntentPaymentMethodOptionsOxxo {
4323    /// The number of calendar days before an OXXO voucher expires.
4324    ///
4325    /// 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.
4326    #[serde(skip_serializing_if = "Option::is_none")]
4327    pub expires_after_days: Option<u32>,
4328
4329    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4330    ///
4331    /// 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.
4332    ///
4333    /// 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.  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).  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`.
4334    #[serde(skip_serializing_if = "Option::is_none")]
4335    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage>,
4336}
4337
4338#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4339pub struct UpdatePaymentIntentPaymentMethodOptionsP24 {
4340    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4341    ///
4342    /// 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.
4343    ///
4344    /// 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.  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).  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`.
4345    #[serde(skip_serializing_if = "Option::is_none")]
4346    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage>,
4347
4348    /// Confirm that the payer has accepted the P24 terms and conditions.
4349    #[serde(skip_serializing_if = "Option::is_none")]
4350    pub tos_shown_and_accepted: Option<bool>,
4351}
4352
4353#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4354pub struct UpdatePaymentIntentPaymentMethodOptionsPaynow {
4355    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4356    ///
4357    /// 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.
4358    ///
4359    /// 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.  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).  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`.
4360    #[serde(skip_serializing_if = "Option::is_none")]
4361    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage>,
4362}
4363
4364#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4365pub struct UpdatePaymentIntentPaymentMethodOptionsPaypal {
4366    /// Controls when the funds will be captured from the customer's account.
4367    #[serde(skip_serializing_if = "Option::is_none")]
4368    pub capture_method: Option<UpdatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod>,
4369
4370    /// [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to.
4371    #[serde(skip_serializing_if = "Option::is_none")]
4372    pub preferred_locale: Option<UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale>,
4373
4374    /// A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID.
4375    ///
4376    /// This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.
4377    #[serde(skip_serializing_if = "Option::is_none")]
4378    pub reference: Option<String>,
4379
4380    /// The risk correlation ID for an on-session payment using a saved PayPal payment method.
4381    #[serde(skip_serializing_if = "Option::is_none")]
4382    pub risk_correlation_id: Option<String>,
4383
4384    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4385    ///
4386    /// 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.
4387    ///
4388    /// 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.  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).  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`.
4389    #[serde(skip_serializing_if = "Option::is_none")]
4390    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage>,
4391}
4392
4393#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4394pub struct UpdatePaymentIntentPaymentMethodOptionsPix {
4395    /// The number of seconds (between 10 and 1209600) after which Pix payment will expire.
4396    ///
4397    /// Defaults to 86400 seconds.
4398    #[serde(skip_serializing_if = "Option::is_none")]
4399    pub expires_after_seconds: Option<i64>,
4400
4401    /// The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future).
4402    ///
4403    /// Defaults to 1 day in the future.
4404    #[serde(skip_serializing_if = "Option::is_none")]
4405    pub expires_at: Option<Timestamp>,
4406
4407    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4408    ///
4409    /// 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.
4410    ///
4411    /// 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.  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).  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`.
4412    #[serde(skip_serializing_if = "Option::is_none")]
4413    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage>,
4414}
4415
4416#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4417pub struct UpdatePaymentIntentPaymentMethodOptionsPromptpay {
4418    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4419    ///
4420    /// 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.
4421    ///
4422    /// 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.  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).  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`.
4423    #[serde(skip_serializing_if = "Option::is_none")]
4424    pub setup_future_usage:
4425        Option<UpdatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage>,
4426}
4427
4428#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4429pub struct UpdatePaymentIntentPaymentMethodOptionsRevolutPay {
4430    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4431    ///
4432    /// 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.
4433    ///
4434    /// 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.  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).
4435    #[serde(skip_serializing_if = "Option::is_none")]
4436    pub setup_future_usage:
4437        Option<UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage>,
4438}
4439
4440#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4441pub struct UpdatePaymentIntentPaymentMethodOptionsSepaDebit {
4442    /// Additional fields for Mandate creation.
4443    #[serde(skip_serializing_if = "Option::is_none")]
4444    pub mandate_options: Option<UpdatePaymentIntentPaymentMethodOptionsSepaDebitMandateOptions>,
4445
4446    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4447    ///
4448    /// 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.
4449    ///
4450    /// 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.  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).  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`.
4451    #[serde(skip_serializing_if = "Option::is_none")]
4452    pub setup_future_usage:
4453        Option<UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage>,
4454}
4455
4456#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4457pub struct UpdatePaymentIntentPaymentMethodOptionsSofort {
4458    /// Language shown to the payer on redirect.
4459    #[serde(skip_serializing_if = "Option::is_none")]
4460    pub preferred_language: Option<UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage>,
4461
4462    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4463    ///
4464    /// 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.
4465    ///
4466    /// 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.  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).  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`.
4467    #[serde(skip_serializing_if = "Option::is_none")]
4468    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage>,
4469}
4470
4471#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4472pub struct UpdatePaymentIntentPaymentMethodOptionsSwish {
4473    /// The order ID displayed in the Swish app after the payment is authorized.
4474    #[serde(skip_serializing_if = "Option::is_none")]
4475    pub reference: Option<String>,
4476
4477    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4478    ///
4479    /// 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.
4480    ///
4481    /// 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.  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).  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`.
4482    #[serde(skip_serializing_if = "Option::is_none")]
4483    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage>,
4484}
4485
4486#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4487pub struct UpdatePaymentIntentPaymentMethodOptionsUsBankAccount {
4488    /// Additional fields for Financial Connections Session creation.
4489    #[serde(skip_serializing_if = "Option::is_none")]
4490    pub financial_connections:
4491        Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections>,
4492
4493    /// Additional fields for Mandate creation.
4494    #[serde(skip_serializing_if = "Option::is_none")]
4495    pub mandate_options: Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions>,
4496
4497    /// Additional fields for network related functions.
4498    #[serde(skip_serializing_if = "Option::is_none")]
4499    pub networks: Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworks>,
4500
4501    /// Preferred transaction settlement speed.
4502    #[serde(skip_serializing_if = "Option::is_none")]
4503    pub preferred_settlement_speed:
4504        Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed>,
4505
4506    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4507    ///
4508    /// 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.
4509    ///
4510    /// 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.  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).  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`.
4511    #[serde(skip_serializing_if = "Option::is_none")]
4512    pub setup_future_usage:
4513        Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage>,
4514
4515    /// Bank account verification method.
4516    #[serde(skip_serializing_if = "Option::is_none")]
4517    pub verification_method:
4518        Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod>,
4519}
4520
4521#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4522pub struct UpdatePaymentIntentPaymentMethodOptionsWechatPay {
4523    /// The app ID registered with WeChat Pay.
4524    ///
4525    /// Only required when client is ios or android.
4526    #[serde(skip_serializing_if = "Option::is_none")]
4527    pub app_id: Option<String>,
4528
4529    /// The client type that the end customer will pay from.
4530    pub client: UpdatePaymentIntentPaymentMethodOptionsWechatPayClient,
4531
4532    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4533    ///
4534    /// 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.
4535    ///
4536    /// 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.  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).  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`.
4537    #[serde(skip_serializing_if = "Option::is_none")]
4538    pub setup_future_usage:
4539        Option<UpdatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage>,
4540}
4541
4542#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4543pub struct UpdatePaymentIntentPaymentMethodOptionsZip {
4544    /// Indicates that you intend to make future payments with this PaymentIntent's payment method.
4545    ///
4546    /// 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.
4547    ///
4548    /// 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.  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).  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`.
4549    #[serde(skip_serializing_if = "Option::is_none")]
4550    pub setup_future_usage: Option<UpdatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage>,
4551}
4552
4553#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4554pub struct UpdatePaymentIntentShippingAddress {
4555    /// City, district, suburb, town, or village.
4556    #[serde(skip_serializing_if = "Option::is_none")]
4557    pub city: Option<String>,
4558
4559    /// Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
4560    #[serde(skip_serializing_if = "Option::is_none")]
4561    pub country: Option<String>,
4562
4563    /// Address line 1 (e.g., street, PO Box, or company name).
4564    #[serde(skip_serializing_if = "Option::is_none")]
4565    pub line1: Option<String>,
4566
4567    /// Address line 2 (e.g., apartment, suite, unit, or building).
4568    #[serde(skip_serializing_if = "Option::is_none")]
4569    pub line2: Option<String>,
4570
4571    /// ZIP or postal code.
4572    #[serde(skip_serializing_if = "Option::is_none")]
4573    pub postal_code: Option<String>,
4574
4575    /// State, county, province, or region.
4576    #[serde(skip_serializing_if = "Option::is_none")]
4577    pub state: Option<String>,
4578}
4579
4580#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4581pub struct CreatePaymentIntentMandateDataCustomerAcceptanceOffline {}
4582
4583#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4584pub struct CreatePaymentIntentMandateDataCustomerAcceptanceOnline {
4585    /// The IP address from which the Mandate was accepted by the customer.
4586    pub ip_address: String,
4587
4588    /// The user agent of the browser from which the Mandate was accepted by the customer.
4589    pub user_agent: String,
4590}
4591
4592#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4593pub struct CreatePaymentIntentPaymentMethodDataBillingDetailsAddress {
4594    /// City, district, suburb, town, or village.
4595    #[serde(skip_serializing_if = "Option::is_none")]
4596    pub city: Option<String>,
4597
4598    /// Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
4599    #[serde(skip_serializing_if = "Option::is_none")]
4600    pub country: Option<String>,
4601
4602    /// Address line 1 (e.g., street, PO Box, or company name).
4603    #[serde(skip_serializing_if = "Option::is_none")]
4604    pub line1: Option<String>,
4605
4606    /// Address line 2 (e.g., apartment, suite, unit, or building).
4607    #[serde(skip_serializing_if = "Option::is_none")]
4608    pub line2: Option<String>,
4609
4610    /// ZIP or postal code.
4611    #[serde(skip_serializing_if = "Option::is_none")]
4612    pub postal_code: Option<String>,
4613
4614    /// State, county, province, or region.
4615    #[serde(skip_serializing_if = "Option::is_none")]
4616    pub state: Option<String>,
4617}
4618
4619#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4620pub struct CreatePaymentIntentPaymentMethodDataKlarnaDob {
4621    /// The day of birth, between 1 and 31.
4622    pub day: i64,
4623
4624    /// The month of birth, between 1 and 12.
4625    pub month: i64,
4626
4627    /// The four-digit year of birth.
4628    pub year: i64,
4629}
4630
4631#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4632pub struct CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions {
4633    /// A URL for custom mandate text to render during confirmation step.
4634    /// The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
4635    /// or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
4636    #[serde(skip_serializing_if = "Option::is_none")]
4637    pub custom_mandate_url: Option<String>,
4638
4639    /// Description of the mandate interval.
4640    ///
4641    /// Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
4642    #[serde(skip_serializing_if = "Option::is_none")]
4643    pub interval_description: Option<String>,
4644
4645    /// Payment schedule for the mandate.
4646    #[serde(skip_serializing_if = "Option::is_none")]
4647    pub payment_schedule:
4648        Option<CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule>,
4649
4650    /// Transaction type of the mandate.
4651    #[serde(skip_serializing_if = "Option::is_none")]
4652    pub transaction_type:
4653        Option<CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType>,
4654}
4655
4656#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4657pub struct CreatePaymentIntentPaymentMethodOptionsCardInstallments {
4658    /// Setting to true enables installments for this PaymentIntent.
4659    /// This will cause the response to contain a list of available installment plans.
4660    /// Setting to false will prevent any selected plan from applying to a charge.
4661    #[serde(skip_serializing_if = "Option::is_none")]
4662    pub enabled: Option<bool>,
4663
4664    /// The selected installment plan to use for this payment attempt.
4665    /// This parameter can only be provided during confirmation.
4666    #[serde(skip_serializing_if = "Option::is_none")]
4667    pub plan: Option<CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan>,
4668}
4669
4670#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4671pub struct CreatePaymentIntentPaymentMethodOptionsCardMandateOptions {
4672    /// Amount to be charged for future payments.
4673    pub amount: i64,
4674
4675    /// One of `fixed` or `maximum`.
4676    ///
4677    /// If `fixed`, the `amount` param refers to the exact amount to be charged in future payments.
4678    /// If `maximum`, the amount charged can be up to the value passed for the `amount` param.
4679    pub amount_type: CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType,
4680
4681    /// A description of the mandate or subscription that is meant to be displayed to the customer.
4682    #[serde(skip_serializing_if = "Option::is_none")]
4683    pub description: Option<String>,
4684
4685    /// End date of the mandate or subscription.
4686    ///
4687    /// If not provided, the mandate will be active until canceled.
4688    /// If provided, end date should be after start date.
4689    #[serde(skip_serializing_if = "Option::is_none")]
4690    pub end_date: Option<Timestamp>,
4691
4692    /// Specifies payment frequency.
4693    ///
4694    /// One of `day`, `week`, `month`, `year`, or `sporadic`.
4695    pub interval: CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval,
4696
4697    /// The number of intervals between payments.
4698    ///
4699    /// For example, `interval=month` and `interval_count=3` indicates one payment every three months.
4700    /// Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).
4701    /// This parameter is optional when `interval=sporadic`.
4702    #[serde(skip_serializing_if = "Option::is_none")]
4703    pub interval_count: Option<u64>,
4704
4705    /// Unique identifier for the mandate or subscription.
4706    pub reference: String,
4707
4708    /// Start date of the mandate or subscription.
4709    ///
4710    /// Start date should not be lesser than yesterday.
4711    pub start_date: Timestamp,
4712
4713    /// Specifies the type of mandates supported.
4714    ///
4715    /// Possible values are `india`.
4716    #[serde(skip_serializing_if = "Option::is_none")]
4717    pub supported_types:
4718        Option<Vec<CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes>>,
4719}
4720
4721#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4722pub struct CreatePaymentIntentPaymentMethodOptionsCardThreeDSecure {
4723    /// The `transStatus` returned from the card Issuer’s ACS in the ARes.
4724    #[serde(skip_serializing_if = "Option::is_none")]
4725    pub ares_trans_status:
4726        Option<CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus>,
4727
4728    /// The cryptogram, also known as the "authentication value" (AAV, CAVV or
4729    /// AEVV).
4730    ///
4731    /// This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure providers will return the base64-encoded version, which is what you should specify here.).
4732    pub cryptogram: String,
4733
4734    /// The Electronic Commerce Indicator (ECI) is returned by your 3D Secure
4735    /// provider and indicates what degree of authentication was performed.
4736    #[serde(skip_serializing_if = "Option::is_none")]
4737    pub electronic_commerce_indicator:
4738        Option<CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator>,
4739
4740    /// The exemption requested via 3DS and accepted by the issuer at authentication time.
4741    #[serde(skip_serializing_if = "Option::is_none")]
4742    pub exemption_indicator:
4743        Option<CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator>,
4744
4745    /// Network specific 3DS fields.
4746    ///
4747    /// Network specific arguments require an explicit card brand choice.
4748    /// The parameter `payment_method_options.card.network`` must be populated accordingly.
4749    #[serde(skip_serializing_if = "Option::is_none")]
4750    pub network_options:
4751        Option<CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptions>,
4752
4753    /// The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the
4754    /// AReq sent to the card Issuer's ACS.
4755    ///
4756    /// A string containing 2 digits from 01-99.
4757    #[serde(skip_serializing_if = "Option::is_none")]
4758    pub requestor_challenge_indicator: Option<String>,
4759
4760    /// For 3D Secure 1, the XID.
4761    ///
4762    /// For 3D Secure 2, the Directory Server Transaction ID (dsTransID).
4763    pub transaction_id: String,
4764
4765    /// The version of 3D Secure that was performed.
4766    pub version: CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion,
4767}
4768
4769#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4770pub struct CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer {
4771    /// Configuration for the eu_bank_transfer funding type.
4772    #[serde(skip_serializing_if = "Option::is_none")]
4773    pub eu_bank_transfer:
4774        Option<CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer>,
4775
4776    /// List of address types that should be returned in the financial_addresses response.
4777    ///
4778    /// If not specified, all valid types will be returned.  Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
4779    #[serde(skip_serializing_if = "Option::is_none")]
4780    pub requested_address_types: Option<
4781        Vec<
4782            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes,
4783        >,
4784    >,
4785
4786    /// 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`.
4787    #[serde(rename = "type")]
4788    pub type_: CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType,
4789}
4790
4791#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4792pub struct CreatePaymentIntentPaymentMethodOptionsSepaDebitMandateOptions {}
4793
4794#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4795pub struct CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections {
4796    /// The list of permissions to request.
4797    ///
4798    /// If this parameter is passed, the `payment_method` permission must be included.
4799    /// Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`.
4800    #[serde(skip_serializing_if = "Option::is_none")]
4801    pub permissions: Option<
4802        Vec<CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions>,
4803    >,
4804
4805    /// List of data features that you would like to retrieve upon account creation.
4806    #[serde(skip_serializing_if = "Option::is_none")]
4807    pub prefetch: Option<
4808        Vec<CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch>,
4809    >,
4810
4811    /// For webview integrations only.
4812    ///
4813    /// Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
4814    #[serde(skip_serializing_if = "Option::is_none")]
4815    pub return_url: Option<String>,
4816}
4817
4818#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4819pub struct CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions {
4820    /// The method used to collect offline mandate customer acceptance.
4821    #[serde(skip_serializing_if = "Option::is_none")]
4822    pub collection_method:
4823        Option<CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod>,
4824}
4825
4826#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4827pub struct CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworks {
4828    /// Triggers validations to run across the selected networks.
4829    #[serde(skip_serializing_if = "Option::is_none")]
4830    pub requested:
4831        Option<Vec<CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested>>,
4832}
4833
4834#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4835pub struct UpdatePaymentIntentPaymentMethodDataBillingDetailsAddress {
4836    /// City, district, suburb, town, or village.
4837    #[serde(skip_serializing_if = "Option::is_none")]
4838    pub city: Option<String>,
4839
4840    /// Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
4841    #[serde(skip_serializing_if = "Option::is_none")]
4842    pub country: Option<String>,
4843
4844    /// Address line 1 (e.g., street, PO Box, or company name).
4845    #[serde(skip_serializing_if = "Option::is_none")]
4846    pub line1: Option<String>,
4847
4848    /// Address line 2 (e.g., apartment, suite, unit, or building).
4849    #[serde(skip_serializing_if = "Option::is_none")]
4850    pub line2: Option<String>,
4851
4852    /// ZIP or postal code.
4853    #[serde(skip_serializing_if = "Option::is_none")]
4854    pub postal_code: Option<String>,
4855
4856    /// State, county, province, or region.
4857    #[serde(skip_serializing_if = "Option::is_none")]
4858    pub state: Option<String>,
4859}
4860
4861#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4862pub struct UpdatePaymentIntentPaymentMethodDataKlarnaDob {
4863    /// The day of birth, between 1 and 31.
4864    pub day: i64,
4865
4866    /// The month of birth, between 1 and 12.
4867    pub month: i64,
4868
4869    /// The four-digit year of birth.
4870    pub year: i64,
4871}
4872
4873#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4874pub struct UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions {
4875    /// A URL for custom mandate text to render during confirmation step.
4876    /// The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
4877    /// or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
4878    #[serde(skip_serializing_if = "Option::is_none")]
4879    pub custom_mandate_url: Option<String>,
4880
4881    /// Description of the mandate interval.
4882    ///
4883    /// Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
4884    #[serde(skip_serializing_if = "Option::is_none")]
4885    pub interval_description: Option<String>,
4886
4887    /// Payment schedule for the mandate.
4888    #[serde(skip_serializing_if = "Option::is_none")]
4889    pub payment_schedule:
4890        Option<UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule>,
4891
4892    /// Transaction type of the mandate.
4893    #[serde(skip_serializing_if = "Option::is_none")]
4894    pub transaction_type:
4895        Option<UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType>,
4896}
4897
4898#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4899pub struct UpdatePaymentIntentPaymentMethodOptionsCardInstallments {
4900    /// Setting to true enables installments for this PaymentIntent.
4901    /// This will cause the response to contain a list of available installment plans.
4902    /// Setting to false will prevent any selected plan from applying to a charge.
4903    #[serde(skip_serializing_if = "Option::is_none")]
4904    pub enabled: Option<bool>,
4905
4906    /// The selected installment plan to use for this payment attempt.
4907    /// This parameter can only be provided during confirmation.
4908    #[serde(skip_serializing_if = "Option::is_none")]
4909    pub plan: Option<UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan>,
4910}
4911
4912#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4913pub struct UpdatePaymentIntentPaymentMethodOptionsCardMandateOptions {
4914    /// Amount to be charged for future payments.
4915    pub amount: i64,
4916
4917    /// One of `fixed` or `maximum`.
4918    ///
4919    /// If `fixed`, the `amount` param refers to the exact amount to be charged in future payments.
4920    /// If `maximum`, the amount charged can be up to the value passed for the `amount` param.
4921    pub amount_type: UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType,
4922
4923    /// A description of the mandate or subscription that is meant to be displayed to the customer.
4924    #[serde(skip_serializing_if = "Option::is_none")]
4925    pub description: Option<String>,
4926
4927    /// End date of the mandate or subscription.
4928    ///
4929    /// If not provided, the mandate will be active until canceled.
4930    /// If provided, end date should be after start date.
4931    #[serde(skip_serializing_if = "Option::is_none")]
4932    pub end_date: Option<Timestamp>,
4933
4934    /// Specifies payment frequency.
4935    ///
4936    /// One of `day`, `week`, `month`, `year`, or `sporadic`.
4937    pub interval: UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval,
4938
4939    /// The number of intervals between payments.
4940    ///
4941    /// For example, `interval=month` and `interval_count=3` indicates one payment every three months.
4942    /// Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).
4943    /// This parameter is optional when `interval=sporadic`.
4944    #[serde(skip_serializing_if = "Option::is_none")]
4945    pub interval_count: Option<u64>,
4946
4947    /// Unique identifier for the mandate or subscription.
4948    pub reference: String,
4949
4950    /// Start date of the mandate or subscription.
4951    ///
4952    /// Start date should not be lesser than yesterday.
4953    pub start_date: Timestamp,
4954
4955    /// Specifies the type of mandates supported.
4956    ///
4957    /// Possible values are `india`.
4958    #[serde(skip_serializing_if = "Option::is_none")]
4959    pub supported_types:
4960        Option<Vec<UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes>>,
4961}
4962
4963#[derive(Clone, Debug, Default, Deserialize, Serialize)]
4964pub struct UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecure {
4965    /// The `transStatus` returned from the card Issuer’s ACS in the ARes.
4966    #[serde(skip_serializing_if = "Option::is_none")]
4967    pub ares_trans_status:
4968        Option<UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus>,
4969
4970    /// The cryptogram, also known as the "authentication value" (AAV, CAVV or
4971    /// AEVV).
4972    ///
4973    /// This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure providers will return the base64-encoded version, which is what you should specify here.).
4974    pub cryptogram: String,
4975
4976    /// The Electronic Commerce Indicator (ECI) is returned by your 3D Secure
4977    /// provider and indicates what degree of authentication was performed.
4978    #[serde(skip_serializing_if = "Option::is_none")]
4979    pub electronic_commerce_indicator:
4980        Option<UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator>,
4981
4982    /// The exemption requested via 3DS and accepted by the issuer at authentication time.
4983    #[serde(skip_serializing_if = "Option::is_none")]
4984    pub exemption_indicator:
4985        Option<UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator>,
4986
4987    /// Network specific 3DS fields.
4988    ///
4989    /// Network specific arguments require an explicit card brand choice.
4990    /// The parameter `payment_method_options.card.network`` must be populated accordingly.
4991    #[serde(skip_serializing_if = "Option::is_none")]
4992    pub network_options:
4993        Option<UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptions>,
4994
4995    /// The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the
4996    /// AReq sent to the card Issuer's ACS.
4997    ///
4998    /// A string containing 2 digits from 01-99.
4999    #[serde(skip_serializing_if = "Option::is_none")]
5000    pub requestor_challenge_indicator: Option<String>,
5001
5002    /// For 3D Secure 1, the XID.
5003    ///
5004    /// For 3D Secure 2, the Directory Server Transaction ID (dsTransID).
5005    pub transaction_id: String,
5006
5007    /// The version of 3D Secure that was performed.
5008    pub version: UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion,
5009}
5010
5011#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5012pub struct UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer {
5013    /// Configuration for the eu_bank_transfer funding type.
5014    #[serde(skip_serializing_if = "Option::is_none")]
5015    pub eu_bank_transfer:
5016        Option<UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer>,
5017
5018    /// List of address types that should be returned in the financial_addresses response.
5019    ///
5020    /// If not specified, all valid types will be returned.  Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`.
5021    #[serde(skip_serializing_if = "Option::is_none")]
5022    pub requested_address_types: Option<
5023        Vec<
5024            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes,
5025        >,
5026    >,
5027
5028    /// 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`.
5029    #[serde(rename = "type")]
5030    pub type_: UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType,
5031}
5032
5033#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5034pub struct UpdatePaymentIntentPaymentMethodOptionsSepaDebitMandateOptions {}
5035
5036#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5037pub struct UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections {
5038    /// The list of permissions to request.
5039    ///
5040    /// If this parameter is passed, the `payment_method` permission must be included.
5041    /// Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`.
5042    #[serde(skip_serializing_if = "Option::is_none")]
5043    pub permissions: Option<
5044        Vec<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions>,
5045    >,
5046
5047    /// List of data features that you would like to retrieve upon account creation.
5048    #[serde(skip_serializing_if = "Option::is_none")]
5049    pub prefetch: Option<
5050        Vec<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch>,
5051    >,
5052
5053    /// For webview integrations only.
5054    ///
5055    /// Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
5056    #[serde(skip_serializing_if = "Option::is_none")]
5057    pub return_url: Option<String>,
5058}
5059
5060#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5061pub struct UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions {
5062    /// The method used to collect offline mandate customer acceptance.
5063    #[serde(skip_serializing_if = "Option::is_none")]
5064    pub collection_method:
5065        Option<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod>,
5066}
5067
5068#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5069pub struct UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworks {
5070    /// Triggers validations to run across the selected networks.
5071    #[serde(skip_serializing_if = "Option::is_none")]
5072    pub requested:
5073        Option<Vec<UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested>>,
5074}
5075
5076#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5077pub struct CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan {
5078    /// For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card.
5079    pub count: u64,
5080
5081    /// For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card.
5082    /// One of `month`.
5083    pub interval: CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval,
5084
5085    /// Type of installment plan, one of `fixed_count`.
5086    #[serde(rename = "type")]
5087    pub type_: CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType,
5088}
5089
5090#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5091pub struct CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptions {
5092    /// Cartes Bancaires-specific 3DS fields.
5093    #[serde(skip_serializing_if = "Option::is_none")]
5094    pub cartes_bancaires: Option<
5095        CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires,
5096    >,
5097}
5098
5099#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5100pub struct CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer {
5101    /// The desired country code of the bank account information.
5102    ///
5103    /// Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.
5104    pub country: String,
5105}
5106
5107#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5108pub struct UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan {
5109    /// For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card.
5110    pub count: u64,
5111
5112    /// For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card.
5113    /// One of `month`.
5114    pub interval: UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval,
5115
5116    /// Type of installment plan, one of `fixed_count`.
5117    #[serde(rename = "type")]
5118    pub type_: UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType,
5119}
5120
5121#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5122pub struct UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptions {
5123    /// Cartes Bancaires-specific 3DS fields.
5124    #[serde(skip_serializing_if = "Option::is_none")]
5125    pub cartes_bancaires: Option<
5126        UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires,
5127    >,
5128}
5129
5130#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5131pub struct UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer {
5132    /// The desired country code of the bank account information.
5133    ///
5134    /// Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.
5135    pub country: String,
5136}
5137
5138#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5139pub struct CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires {
5140
5141    /// The cryptogram calculation algorithm used by the card Issuer's ACS
5142    /// to calculate the Authentication cryptogram.
5143    ///
5144    /// Also known as `cavvAlgorithm`. messageExtension: CB-AVALGO.
5145    pub cb_avalgo: CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo,
5146
5147    /// The exemption indicator returned from Cartes Bancaires in the ARes.
5148    /// message extension: CB-EXEMPTION; string (4 characters)
5149    /// This is a 3 byte bitmap (low significant byte first and most significant
5150    /// bit first) that has been Base64 encoded.
5151    #[serde(skip_serializing_if = "Option::is_none")]
5152    pub cb_exemption: Option<String>,
5153
5154    /// The risk score returned from Cartes Bancaires in the ARes.
5155    /// message extension: CB-SCORE; numeric value 0-99.
5156    #[serde(skip_serializing_if = "Option::is_none")]
5157    pub cb_score: Option<i64>,
5158}
5159
5160#[derive(Clone, Debug, Default, Deserialize, Serialize)]
5161pub struct UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires {
5162
5163    /// The cryptogram calculation algorithm used by the card Issuer's ACS
5164    /// to calculate the Authentication cryptogram.
5165    ///
5166    /// Also known as `cavvAlgorithm`. messageExtension: CB-AVALGO.
5167    pub cb_avalgo: UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo,
5168
5169    /// The exemption indicator returned from Cartes Bancaires in the ARes.
5170    /// message extension: CB-EXEMPTION; string (4 characters)
5171    /// This is a 3 byte bitmap (low significant byte first and most significant
5172    /// bit first) that has been Base64 encoded.
5173    #[serde(skip_serializing_if = "Option::is_none")]
5174    pub cb_exemption: Option<String>,
5175
5176    /// The risk score returned from Cartes Bancaires in the ARes.
5177    /// message extension: CB-SCORE; numeric value 0-99.
5178    #[serde(skip_serializing_if = "Option::is_none")]
5179    pub cb_score: Option<i64>,
5180}
5181
5182/// An enum representing the possible values of an `CreatePaymentIntentAutomaticPaymentMethods`'s `allow_redirects` field.
5183#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5184#[serde(rename_all = "snake_case")]
5185pub enum CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects {
5186    Always,
5187    Never,
5188}
5189
5190impl CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects {
5191    pub fn as_str(self) -> &'static str {
5192        match self {
5193            CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects::Always => "always",
5194            CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects::Never => "never",
5195        }
5196    }
5197}
5198
5199impl AsRef<str> for CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects {
5200    fn as_ref(&self) -> &str {
5201        self.as_str()
5202    }
5203}
5204
5205impl std::fmt::Display for CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects {
5206    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5207        self.as_str().fmt(f)
5208    }
5209}
5210impl std::default::Default for CreatePaymentIntentAutomaticPaymentMethodsAllowRedirects {
5211    fn default() -> Self {
5212        Self::Always
5213    }
5214}
5215
5216/// An enum representing the possible values of an `CreatePaymentIntentMandateDataCustomerAcceptance`'s `type` field.
5217#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5218#[serde(rename_all = "snake_case")]
5219pub enum CreatePaymentIntentMandateDataCustomerAcceptanceType {
5220    Offline,
5221    Online,
5222}
5223
5224impl CreatePaymentIntentMandateDataCustomerAcceptanceType {
5225    pub fn as_str(self) -> &'static str {
5226        match self {
5227            CreatePaymentIntentMandateDataCustomerAcceptanceType::Offline => "offline",
5228            CreatePaymentIntentMandateDataCustomerAcceptanceType::Online => "online",
5229        }
5230    }
5231}
5232
5233impl AsRef<str> for CreatePaymentIntentMandateDataCustomerAcceptanceType {
5234    fn as_ref(&self) -> &str {
5235        self.as_str()
5236    }
5237}
5238
5239impl std::fmt::Display for CreatePaymentIntentMandateDataCustomerAcceptanceType {
5240    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5241        self.as_str().fmt(f)
5242    }
5243}
5244impl std::default::Default for CreatePaymentIntentMandateDataCustomerAcceptanceType {
5245    fn default() -> Self {
5246        Self::Offline
5247    }
5248}
5249
5250/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataEps`'s `bank` field.
5251#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5252#[serde(rename_all = "snake_case")]
5253pub enum CreatePaymentIntentPaymentMethodDataEpsBank {
5254    ArzteUndApothekerBank,
5255    AustrianAnadiBankAg,
5256    BankAustria,
5257    BankhausCarlSpangler,
5258    BankhausSchelhammerUndSchatteraAg,
5259    BawagPskAg,
5260    BksBankAg,
5261    BrullKallmusBankAg,
5262    BtvVierLanderBank,
5263    CapitalBankGraweGruppeAg,
5264    DeutscheBankAg,
5265    Dolomitenbank,
5266    EasybankAg,
5267    ErsteBankUndSparkassen,
5268    HypoAlpeadriabankInternationalAg,
5269    HypoBankBurgenlandAktiengesellschaft,
5270    HypoNoeLbFurNiederosterreichUWien,
5271    HypoOberosterreichSalzburgSteiermark,
5272    HypoTirolBankAg,
5273    HypoVorarlbergBankAg,
5274    MarchfelderBank,
5275    OberbankAg,
5276    RaiffeisenBankengruppeOsterreich,
5277    SchoellerbankAg,
5278    SpardaBankWien,
5279    VolksbankGruppe,
5280    VolkskreditbankAg,
5281    VrBankBraunau,
5282}
5283
5284impl CreatePaymentIntentPaymentMethodDataEpsBank {
5285    pub fn as_str(self) -> &'static str {
5286        match self {
5287            CreatePaymentIntentPaymentMethodDataEpsBank::ArzteUndApothekerBank => {
5288                "arzte_und_apotheker_bank"
5289            }
5290            CreatePaymentIntentPaymentMethodDataEpsBank::AustrianAnadiBankAg => {
5291                "austrian_anadi_bank_ag"
5292            }
5293            CreatePaymentIntentPaymentMethodDataEpsBank::BankAustria => "bank_austria",
5294            CreatePaymentIntentPaymentMethodDataEpsBank::BankhausCarlSpangler => {
5295                "bankhaus_carl_spangler"
5296            }
5297            CreatePaymentIntentPaymentMethodDataEpsBank::BankhausSchelhammerUndSchatteraAg => {
5298                "bankhaus_schelhammer_und_schattera_ag"
5299            }
5300            CreatePaymentIntentPaymentMethodDataEpsBank::BawagPskAg => "bawag_psk_ag",
5301            CreatePaymentIntentPaymentMethodDataEpsBank::BksBankAg => "bks_bank_ag",
5302            CreatePaymentIntentPaymentMethodDataEpsBank::BrullKallmusBankAg => {
5303                "brull_kallmus_bank_ag"
5304            }
5305            CreatePaymentIntentPaymentMethodDataEpsBank::BtvVierLanderBank => {
5306                "btv_vier_lander_bank"
5307            }
5308            CreatePaymentIntentPaymentMethodDataEpsBank::CapitalBankGraweGruppeAg => {
5309                "capital_bank_grawe_gruppe_ag"
5310            }
5311            CreatePaymentIntentPaymentMethodDataEpsBank::DeutscheBankAg => "deutsche_bank_ag",
5312            CreatePaymentIntentPaymentMethodDataEpsBank::Dolomitenbank => "dolomitenbank",
5313            CreatePaymentIntentPaymentMethodDataEpsBank::EasybankAg => "easybank_ag",
5314            CreatePaymentIntentPaymentMethodDataEpsBank::ErsteBankUndSparkassen => {
5315                "erste_bank_und_sparkassen"
5316            }
5317            CreatePaymentIntentPaymentMethodDataEpsBank::HypoAlpeadriabankInternationalAg => {
5318                "hypo_alpeadriabank_international_ag"
5319            }
5320            CreatePaymentIntentPaymentMethodDataEpsBank::HypoBankBurgenlandAktiengesellschaft => {
5321                "hypo_bank_burgenland_aktiengesellschaft"
5322            }
5323            CreatePaymentIntentPaymentMethodDataEpsBank::HypoNoeLbFurNiederosterreichUWien => {
5324                "hypo_noe_lb_fur_niederosterreich_u_wien"
5325            }
5326            CreatePaymentIntentPaymentMethodDataEpsBank::HypoOberosterreichSalzburgSteiermark => {
5327                "hypo_oberosterreich_salzburg_steiermark"
5328            }
5329            CreatePaymentIntentPaymentMethodDataEpsBank::HypoTirolBankAg => "hypo_tirol_bank_ag",
5330            CreatePaymentIntentPaymentMethodDataEpsBank::HypoVorarlbergBankAg => {
5331                "hypo_vorarlberg_bank_ag"
5332            }
5333            CreatePaymentIntentPaymentMethodDataEpsBank::MarchfelderBank => "marchfelder_bank",
5334            CreatePaymentIntentPaymentMethodDataEpsBank::OberbankAg => "oberbank_ag",
5335            CreatePaymentIntentPaymentMethodDataEpsBank::RaiffeisenBankengruppeOsterreich => {
5336                "raiffeisen_bankengruppe_osterreich"
5337            }
5338            CreatePaymentIntentPaymentMethodDataEpsBank::SchoellerbankAg => "schoellerbank_ag",
5339            CreatePaymentIntentPaymentMethodDataEpsBank::SpardaBankWien => "sparda_bank_wien",
5340            CreatePaymentIntentPaymentMethodDataEpsBank::VolksbankGruppe => "volksbank_gruppe",
5341            CreatePaymentIntentPaymentMethodDataEpsBank::VolkskreditbankAg => "volkskreditbank_ag",
5342            CreatePaymentIntentPaymentMethodDataEpsBank::VrBankBraunau => "vr_bank_braunau",
5343        }
5344    }
5345}
5346
5347impl AsRef<str> for CreatePaymentIntentPaymentMethodDataEpsBank {
5348    fn as_ref(&self) -> &str {
5349        self.as_str()
5350    }
5351}
5352
5353impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataEpsBank {
5354    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5355        self.as_str().fmt(f)
5356    }
5357}
5358impl std::default::Default for CreatePaymentIntentPaymentMethodDataEpsBank {
5359    fn default() -> Self {
5360        Self::ArzteUndApothekerBank
5361    }
5362}
5363
5364/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataFpx`'s `account_holder_type` field.
5365#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5366#[serde(rename_all = "snake_case")]
5367pub enum CreatePaymentIntentPaymentMethodDataFpxAccountHolderType {
5368    Company,
5369    Individual,
5370}
5371
5372impl CreatePaymentIntentPaymentMethodDataFpxAccountHolderType {
5373    pub fn as_str(self) -> &'static str {
5374        match self {
5375            CreatePaymentIntentPaymentMethodDataFpxAccountHolderType::Company => "company",
5376            CreatePaymentIntentPaymentMethodDataFpxAccountHolderType::Individual => "individual",
5377        }
5378    }
5379}
5380
5381impl AsRef<str> for CreatePaymentIntentPaymentMethodDataFpxAccountHolderType {
5382    fn as_ref(&self) -> &str {
5383        self.as_str()
5384    }
5385}
5386
5387impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataFpxAccountHolderType {
5388    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5389        self.as_str().fmt(f)
5390    }
5391}
5392impl std::default::Default for CreatePaymentIntentPaymentMethodDataFpxAccountHolderType {
5393    fn default() -> Self {
5394        Self::Company
5395    }
5396}
5397
5398/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataFpx`'s `bank` field.
5399#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5400#[serde(rename_all = "snake_case")]
5401pub enum CreatePaymentIntentPaymentMethodDataFpxBank {
5402    AffinBank,
5403    Agrobank,
5404    AllianceBank,
5405    Ambank,
5406    BankIslam,
5407    BankMuamalat,
5408    BankOfChina,
5409    BankRakyat,
5410    Bsn,
5411    Cimb,
5412    DeutscheBank,
5413    HongLeongBank,
5414    Hsbc,
5415    Kfh,
5416    Maybank2e,
5417    Maybank2u,
5418    Ocbc,
5419    PbEnterprise,
5420    PublicBank,
5421    Rhb,
5422    StandardChartered,
5423    Uob,
5424}
5425
5426impl CreatePaymentIntentPaymentMethodDataFpxBank {
5427    pub fn as_str(self) -> &'static str {
5428        match self {
5429            CreatePaymentIntentPaymentMethodDataFpxBank::AffinBank => "affin_bank",
5430            CreatePaymentIntentPaymentMethodDataFpxBank::Agrobank => "agrobank",
5431            CreatePaymentIntentPaymentMethodDataFpxBank::AllianceBank => "alliance_bank",
5432            CreatePaymentIntentPaymentMethodDataFpxBank::Ambank => "ambank",
5433            CreatePaymentIntentPaymentMethodDataFpxBank::BankIslam => "bank_islam",
5434            CreatePaymentIntentPaymentMethodDataFpxBank::BankMuamalat => "bank_muamalat",
5435            CreatePaymentIntentPaymentMethodDataFpxBank::BankOfChina => "bank_of_china",
5436            CreatePaymentIntentPaymentMethodDataFpxBank::BankRakyat => "bank_rakyat",
5437            CreatePaymentIntentPaymentMethodDataFpxBank::Bsn => "bsn",
5438            CreatePaymentIntentPaymentMethodDataFpxBank::Cimb => "cimb",
5439            CreatePaymentIntentPaymentMethodDataFpxBank::DeutscheBank => "deutsche_bank",
5440            CreatePaymentIntentPaymentMethodDataFpxBank::HongLeongBank => "hong_leong_bank",
5441            CreatePaymentIntentPaymentMethodDataFpxBank::Hsbc => "hsbc",
5442            CreatePaymentIntentPaymentMethodDataFpxBank::Kfh => "kfh",
5443            CreatePaymentIntentPaymentMethodDataFpxBank::Maybank2e => "maybank2e",
5444            CreatePaymentIntentPaymentMethodDataFpxBank::Maybank2u => "maybank2u",
5445            CreatePaymentIntentPaymentMethodDataFpxBank::Ocbc => "ocbc",
5446            CreatePaymentIntentPaymentMethodDataFpxBank::PbEnterprise => "pb_enterprise",
5447            CreatePaymentIntentPaymentMethodDataFpxBank::PublicBank => "public_bank",
5448            CreatePaymentIntentPaymentMethodDataFpxBank::Rhb => "rhb",
5449            CreatePaymentIntentPaymentMethodDataFpxBank::StandardChartered => "standard_chartered",
5450            CreatePaymentIntentPaymentMethodDataFpxBank::Uob => "uob",
5451        }
5452    }
5453}
5454
5455impl AsRef<str> for CreatePaymentIntentPaymentMethodDataFpxBank {
5456    fn as_ref(&self) -> &str {
5457        self.as_str()
5458    }
5459}
5460
5461impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataFpxBank {
5462    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5463        self.as_str().fmt(f)
5464    }
5465}
5466impl std::default::Default for CreatePaymentIntentPaymentMethodDataFpxBank {
5467    fn default() -> Self {
5468        Self::AffinBank
5469    }
5470}
5471
5472/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataIdeal`'s `bank` field.
5473#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5474#[serde(rename_all = "snake_case")]
5475pub enum CreatePaymentIntentPaymentMethodDataIdealBank {
5476    AbnAmro,
5477    AsnBank,
5478    Bunq,
5479    Handelsbanken,
5480    Ing,
5481    Knab,
5482    Moneyou,
5483    N26,
5484    Nn,
5485    Rabobank,
5486    Regiobank,
5487    Revolut,
5488    SnsBank,
5489    TriodosBank,
5490    VanLanschot,
5491    Yoursafe,
5492}
5493
5494impl CreatePaymentIntentPaymentMethodDataIdealBank {
5495    pub fn as_str(self) -> &'static str {
5496        match self {
5497            CreatePaymentIntentPaymentMethodDataIdealBank::AbnAmro => "abn_amro",
5498            CreatePaymentIntentPaymentMethodDataIdealBank::AsnBank => "asn_bank",
5499            CreatePaymentIntentPaymentMethodDataIdealBank::Bunq => "bunq",
5500            CreatePaymentIntentPaymentMethodDataIdealBank::Handelsbanken => "handelsbanken",
5501            CreatePaymentIntentPaymentMethodDataIdealBank::Ing => "ing",
5502            CreatePaymentIntentPaymentMethodDataIdealBank::Knab => "knab",
5503            CreatePaymentIntentPaymentMethodDataIdealBank::Moneyou => "moneyou",
5504            CreatePaymentIntentPaymentMethodDataIdealBank::N26 => "n26",
5505            CreatePaymentIntentPaymentMethodDataIdealBank::Nn => "nn",
5506            CreatePaymentIntentPaymentMethodDataIdealBank::Rabobank => "rabobank",
5507            CreatePaymentIntentPaymentMethodDataIdealBank::Regiobank => "regiobank",
5508            CreatePaymentIntentPaymentMethodDataIdealBank::Revolut => "revolut",
5509            CreatePaymentIntentPaymentMethodDataIdealBank::SnsBank => "sns_bank",
5510            CreatePaymentIntentPaymentMethodDataIdealBank::TriodosBank => "triodos_bank",
5511            CreatePaymentIntentPaymentMethodDataIdealBank::VanLanschot => "van_lanschot",
5512            CreatePaymentIntentPaymentMethodDataIdealBank::Yoursafe => "yoursafe",
5513        }
5514    }
5515}
5516
5517impl AsRef<str> for CreatePaymentIntentPaymentMethodDataIdealBank {
5518    fn as_ref(&self) -> &str {
5519        self.as_str()
5520    }
5521}
5522
5523impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataIdealBank {
5524    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5525        self.as_str().fmt(f)
5526    }
5527}
5528impl std::default::Default for CreatePaymentIntentPaymentMethodDataIdealBank {
5529    fn default() -> Self {
5530        Self::AbnAmro
5531    }
5532}
5533
5534/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataP24`'s `bank` field.
5535#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5536#[serde(rename_all = "snake_case")]
5537pub enum CreatePaymentIntentPaymentMethodDataP24Bank {
5538    AliorBank,
5539    BankMillennium,
5540    BankNowyBfgSa,
5541    BankPekaoSa,
5542    BankiSpbdzielcze,
5543    Blik,
5544    BnpParibas,
5545    Boz,
5546    CitiHandlowy,
5547    CreditAgricole,
5548    Envelobank,
5549    EtransferPocztowy24,
5550    GetinBank,
5551    Ideabank,
5552    Ing,
5553    Inteligo,
5554    MbankMtransfer,
5555    NestPrzelew,
5556    NoblePay,
5557    PbacZIpko,
5558    PlusBank,
5559    SantanderPrzelew24,
5560    TmobileUsbugiBankowe,
5561    ToyotaBank,
5562    Velobank,
5563    VolkswagenBank,
5564}
5565
5566impl CreatePaymentIntentPaymentMethodDataP24Bank {
5567    pub fn as_str(self) -> &'static str {
5568        match self {
5569            CreatePaymentIntentPaymentMethodDataP24Bank::AliorBank => "alior_bank",
5570            CreatePaymentIntentPaymentMethodDataP24Bank::BankMillennium => "bank_millennium",
5571            CreatePaymentIntentPaymentMethodDataP24Bank::BankNowyBfgSa => "bank_nowy_bfg_sa",
5572            CreatePaymentIntentPaymentMethodDataP24Bank::BankPekaoSa => "bank_pekao_sa",
5573            CreatePaymentIntentPaymentMethodDataP24Bank::BankiSpbdzielcze => "banki_spbdzielcze",
5574            CreatePaymentIntentPaymentMethodDataP24Bank::Blik => "blik",
5575            CreatePaymentIntentPaymentMethodDataP24Bank::BnpParibas => "bnp_paribas",
5576            CreatePaymentIntentPaymentMethodDataP24Bank::Boz => "boz",
5577            CreatePaymentIntentPaymentMethodDataP24Bank::CitiHandlowy => "citi_handlowy",
5578            CreatePaymentIntentPaymentMethodDataP24Bank::CreditAgricole => "credit_agricole",
5579            CreatePaymentIntentPaymentMethodDataP24Bank::Envelobank => "envelobank",
5580            CreatePaymentIntentPaymentMethodDataP24Bank::EtransferPocztowy24 => {
5581                "etransfer_pocztowy24"
5582            }
5583            CreatePaymentIntentPaymentMethodDataP24Bank::GetinBank => "getin_bank",
5584            CreatePaymentIntentPaymentMethodDataP24Bank::Ideabank => "ideabank",
5585            CreatePaymentIntentPaymentMethodDataP24Bank::Ing => "ing",
5586            CreatePaymentIntentPaymentMethodDataP24Bank::Inteligo => "inteligo",
5587            CreatePaymentIntentPaymentMethodDataP24Bank::MbankMtransfer => "mbank_mtransfer",
5588            CreatePaymentIntentPaymentMethodDataP24Bank::NestPrzelew => "nest_przelew",
5589            CreatePaymentIntentPaymentMethodDataP24Bank::NoblePay => "noble_pay",
5590            CreatePaymentIntentPaymentMethodDataP24Bank::PbacZIpko => "pbac_z_ipko",
5591            CreatePaymentIntentPaymentMethodDataP24Bank::PlusBank => "plus_bank",
5592            CreatePaymentIntentPaymentMethodDataP24Bank::SantanderPrzelew24 => {
5593                "santander_przelew24"
5594            }
5595            CreatePaymentIntentPaymentMethodDataP24Bank::TmobileUsbugiBankowe => {
5596                "tmobile_usbugi_bankowe"
5597            }
5598            CreatePaymentIntentPaymentMethodDataP24Bank::ToyotaBank => "toyota_bank",
5599            CreatePaymentIntentPaymentMethodDataP24Bank::Velobank => "velobank",
5600            CreatePaymentIntentPaymentMethodDataP24Bank::VolkswagenBank => "volkswagen_bank",
5601        }
5602    }
5603}
5604
5605impl AsRef<str> for CreatePaymentIntentPaymentMethodDataP24Bank {
5606    fn as_ref(&self) -> &str {
5607        self.as_str()
5608    }
5609}
5610
5611impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataP24Bank {
5612    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5613        self.as_str().fmt(f)
5614    }
5615}
5616impl std::default::Default for CreatePaymentIntentPaymentMethodDataP24Bank {
5617    fn default() -> Self {
5618        Self::AliorBank
5619    }
5620}
5621
5622/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataSofort`'s `country` field.
5623#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5624#[serde(rename_all = "snake_case")]
5625pub enum CreatePaymentIntentPaymentMethodDataSofortCountry {
5626    #[serde(rename = "AT")]
5627    At,
5628    #[serde(rename = "BE")]
5629    Be,
5630    #[serde(rename = "DE")]
5631    De,
5632    #[serde(rename = "ES")]
5633    Es,
5634    #[serde(rename = "IT")]
5635    It,
5636    #[serde(rename = "NL")]
5637    Nl,
5638}
5639
5640impl CreatePaymentIntentPaymentMethodDataSofortCountry {
5641    pub fn as_str(self) -> &'static str {
5642        match self {
5643            CreatePaymentIntentPaymentMethodDataSofortCountry::At => "AT",
5644            CreatePaymentIntentPaymentMethodDataSofortCountry::Be => "BE",
5645            CreatePaymentIntentPaymentMethodDataSofortCountry::De => "DE",
5646            CreatePaymentIntentPaymentMethodDataSofortCountry::Es => "ES",
5647            CreatePaymentIntentPaymentMethodDataSofortCountry::It => "IT",
5648            CreatePaymentIntentPaymentMethodDataSofortCountry::Nl => "NL",
5649        }
5650    }
5651}
5652
5653impl AsRef<str> for CreatePaymentIntentPaymentMethodDataSofortCountry {
5654    fn as_ref(&self) -> &str {
5655        self.as_str()
5656    }
5657}
5658
5659impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataSofortCountry {
5660    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5661        self.as_str().fmt(f)
5662    }
5663}
5664impl std::default::Default for CreatePaymentIntentPaymentMethodDataSofortCountry {
5665    fn default() -> Self {
5666        Self::At
5667    }
5668}
5669
5670/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodData`'s `type` field.
5671#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5672#[serde(rename_all = "snake_case")]
5673pub enum CreatePaymentIntentPaymentMethodDataType {
5674    AcssDebit,
5675    Affirm,
5676    AfterpayClearpay,
5677    Alipay,
5678    AuBecsDebit,
5679    BacsDebit,
5680    Bancontact,
5681    Blik,
5682    Boleto,
5683    Cashapp,
5684    CustomerBalance,
5685    Eps,
5686    Fpx,
5687    Giropay,
5688    Grabpay,
5689    Ideal,
5690    Klarna,
5691    Konbini,
5692    Link,
5693    Oxxo,
5694    P24,
5695    Paynow,
5696    Paypal,
5697    Pix,
5698    Promptpay,
5699    RevolutPay,
5700    SepaDebit,
5701    Sofort,
5702    Swish,
5703    UsBankAccount,
5704    WechatPay,
5705    Zip,
5706}
5707
5708impl CreatePaymentIntentPaymentMethodDataType {
5709    pub fn as_str(self) -> &'static str {
5710        match self {
5711            CreatePaymentIntentPaymentMethodDataType::AcssDebit => "acss_debit",
5712            CreatePaymentIntentPaymentMethodDataType::Affirm => "affirm",
5713            CreatePaymentIntentPaymentMethodDataType::AfterpayClearpay => "afterpay_clearpay",
5714            CreatePaymentIntentPaymentMethodDataType::Alipay => "alipay",
5715            CreatePaymentIntentPaymentMethodDataType::AuBecsDebit => "au_becs_debit",
5716            CreatePaymentIntentPaymentMethodDataType::BacsDebit => "bacs_debit",
5717            CreatePaymentIntentPaymentMethodDataType::Bancontact => "bancontact",
5718            CreatePaymentIntentPaymentMethodDataType::Blik => "blik",
5719            CreatePaymentIntentPaymentMethodDataType::Boleto => "boleto",
5720            CreatePaymentIntentPaymentMethodDataType::Cashapp => "cashapp",
5721            CreatePaymentIntentPaymentMethodDataType::CustomerBalance => "customer_balance",
5722            CreatePaymentIntentPaymentMethodDataType::Eps => "eps",
5723            CreatePaymentIntentPaymentMethodDataType::Fpx => "fpx",
5724            CreatePaymentIntentPaymentMethodDataType::Giropay => "giropay",
5725            CreatePaymentIntentPaymentMethodDataType::Grabpay => "grabpay",
5726            CreatePaymentIntentPaymentMethodDataType::Ideal => "ideal",
5727            CreatePaymentIntentPaymentMethodDataType::Klarna => "klarna",
5728            CreatePaymentIntentPaymentMethodDataType::Konbini => "konbini",
5729            CreatePaymentIntentPaymentMethodDataType::Link => "link",
5730            CreatePaymentIntentPaymentMethodDataType::Oxxo => "oxxo",
5731            CreatePaymentIntentPaymentMethodDataType::P24 => "p24",
5732            CreatePaymentIntentPaymentMethodDataType::Paynow => "paynow",
5733            CreatePaymentIntentPaymentMethodDataType::Paypal => "paypal",
5734            CreatePaymentIntentPaymentMethodDataType::Pix => "pix",
5735            CreatePaymentIntentPaymentMethodDataType::Promptpay => "promptpay",
5736            CreatePaymentIntentPaymentMethodDataType::RevolutPay => "revolut_pay",
5737            CreatePaymentIntentPaymentMethodDataType::SepaDebit => "sepa_debit",
5738            CreatePaymentIntentPaymentMethodDataType::Sofort => "sofort",
5739            CreatePaymentIntentPaymentMethodDataType::Swish => "swish",
5740            CreatePaymentIntentPaymentMethodDataType::UsBankAccount => "us_bank_account",
5741            CreatePaymentIntentPaymentMethodDataType::WechatPay => "wechat_pay",
5742            CreatePaymentIntentPaymentMethodDataType::Zip => "zip",
5743        }
5744    }
5745}
5746
5747impl AsRef<str> for CreatePaymentIntentPaymentMethodDataType {
5748    fn as_ref(&self) -> &str {
5749        self.as_str()
5750    }
5751}
5752
5753impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataType {
5754    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5755        self.as_str().fmt(f)
5756    }
5757}
5758impl std::default::Default for CreatePaymentIntentPaymentMethodDataType {
5759    fn default() -> Self {
5760        Self::AcssDebit
5761    }
5762}
5763
5764/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataUsBankAccount`'s `account_holder_type` field.
5765#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5766#[serde(rename_all = "snake_case")]
5767pub enum CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
5768    Company,
5769    Individual,
5770}
5771
5772impl CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
5773    pub fn as_str(self) -> &'static str {
5774        match self {
5775            CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType::Company => {
5776                "company"
5777            }
5778            CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType::Individual => {
5779                "individual"
5780            }
5781        }
5782    }
5783}
5784
5785impl AsRef<str> for CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
5786    fn as_ref(&self) -> &str {
5787        self.as_str()
5788    }
5789}
5790
5791impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
5792    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5793        self.as_str().fmt(f)
5794    }
5795}
5796impl std::default::Default for CreatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
5797    fn default() -> Self {
5798        Self::Company
5799    }
5800}
5801
5802/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodDataUsBankAccount`'s `account_type` field.
5803#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5804#[serde(rename_all = "snake_case")]
5805pub enum CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
5806    Checking,
5807    Savings,
5808}
5809
5810impl CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
5811    pub fn as_str(self) -> &'static str {
5812        match self {
5813            CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType::Checking => "checking",
5814            CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType::Savings => "savings",
5815        }
5816    }
5817}
5818
5819impl AsRef<str> for CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
5820    fn as_ref(&self) -> &str {
5821        self.as_str()
5822    }
5823}
5824
5825impl std::fmt::Display for CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
5826    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5827        self.as_str().fmt(f)
5828    }
5829}
5830impl std::default::Default for CreatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
5831    fn default() -> Self {
5832        Self::Checking
5833    }
5834}
5835
5836/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions`'s `payment_schedule` field.
5837#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5838#[serde(rename_all = "snake_case")]
5839pub enum CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
5840    Combined,
5841    Interval,
5842    Sporadic,
5843}
5844
5845impl CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
5846    pub fn as_str(self) -> &'static str {
5847        match self {
5848            CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Combined => "combined",
5849            CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Interval => "interval",
5850            CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Sporadic => "sporadic",
5851        }
5852    }
5853}
5854
5855impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
5856    fn as_ref(&self) -> &str {
5857        self.as_str()
5858    }
5859}
5860
5861impl std::fmt::Display
5862    for CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule
5863{
5864    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5865        self.as_str().fmt(f)
5866    }
5867}
5868impl std::default::Default
5869    for CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule
5870{
5871    fn default() -> Self {
5872        Self::Combined
5873    }
5874}
5875
5876/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions`'s `transaction_type` field.
5877#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5878#[serde(rename_all = "snake_case")]
5879pub enum CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
5880    Business,
5881    Personal,
5882}
5883
5884impl CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
5885    pub fn as_str(self) -> &'static str {
5886        match self {
5887            CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType::Business => "business",
5888            CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType::Personal => "personal",
5889        }
5890    }
5891}
5892
5893impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
5894    fn as_ref(&self) -> &str {
5895        self.as_str()
5896    }
5897}
5898
5899impl std::fmt::Display
5900    for CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType
5901{
5902    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5903        self.as_str().fmt(f)
5904    }
5905}
5906impl std::default::Default
5907    for CreatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType
5908{
5909    fn default() -> Self {
5910        Self::Business
5911    }
5912}
5913
5914/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAcssDebit`'s `setup_future_usage` field.
5915#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5916#[serde(rename_all = "snake_case")]
5917pub enum CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
5918    None,
5919    OffSession,
5920    OnSession,
5921}
5922
5923impl CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
5924    pub fn as_str(self) -> &'static str {
5925        match self {
5926            CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::None => "none",
5927            CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::OffSession => {
5928                "off_session"
5929            }
5930            CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::OnSession => {
5931                "on_session"
5932            }
5933        }
5934    }
5935}
5936
5937impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
5938    fn as_ref(&self) -> &str {
5939        self.as_str()
5940    }
5941}
5942
5943impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
5944    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5945        self.as_str().fmt(f)
5946    }
5947}
5948impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
5949    fn default() -> Self {
5950        Self::None
5951    }
5952}
5953
5954/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAcssDebit`'s `verification_method` field.
5955#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5956#[serde(rename_all = "snake_case")]
5957pub enum CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
5958    Automatic,
5959    Instant,
5960    Microdeposits,
5961}
5962
5963impl CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
5964    pub fn as_str(self) -> &'static str {
5965        match self {
5966            CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Automatic => {
5967                "automatic"
5968            }
5969            CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Instant => {
5970                "instant"
5971            }
5972            CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Microdeposits => {
5973                "microdeposits"
5974            }
5975        }
5976    }
5977}
5978
5979impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
5980    fn as_ref(&self) -> &str {
5981        self.as_str()
5982    }
5983}
5984
5985impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
5986    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
5987        self.as_str().fmt(f)
5988    }
5989}
5990impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
5991    fn default() -> Self {
5992        Self::Automatic
5993    }
5994}
5995
5996/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAffirm`'s `capture_method` field.
5997#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
5998#[serde(rename_all = "snake_case")]
5999pub enum CreatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
6000    Manual,
6001}
6002
6003impl CreatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
6004    pub fn as_str(self) -> &'static str {
6005        match self {
6006            CreatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod::Manual => "manual",
6007        }
6008    }
6009}
6010
6011impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
6012    fn as_ref(&self) -> &str {
6013        self.as_str()
6014    }
6015}
6016
6017impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
6018    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6019        self.as_str().fmt(f)
6020    }
6021}
6022impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
6023    fn default() -> Self {
6024        Self::Manual
6025    }
6026}
6027
6028/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAffirm`'s `setup_future_usage` field.
6029#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6030#[serde(rename_all = "snake_case")]
6031pub enum CreatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
6032    None,
6033}
6034
6035impl CreatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
6036    pub fn as_str(self) -> &'static str {
6037        match self {
6038            CreatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage::None => "none",
6039        }
6040    }
6041}
6042
6043impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
6044    fn as_ref(&self) -> &str {
6045        self.as_str()
6046    }
6047}
6048
6049impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
6050    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6051        self.as_str().fmt(f)
6052    }
6053}
6054impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
6055    fn default() -> Self {
6056        Self::None
6057    }
6058}
6059
6060/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAfterpayClearpay`'s `capture_method` field.
6061#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6062#[serde(rename_all = "snake_case")]
6063pub enum CreatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
6064    Manual,
6065}
6066
6067impl CreatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
6068    pub fn as_str(self) -> &'static str {
6069        match self {
6070            CreatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod::Manual => {
6071                "manual"
6072            }
6073        }
6074    }
6075}
6076
6077impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
6078    fn as_ref(&self) -> &str {
6079        self.as_str()
6080    }
6081}
6082
6083impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
6084    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6085        self.as_str().fmt(f)
6086    }
6087}
6088impl std::default::Default
6089    for CreatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod
6090{
6091    fn default() -> Self {
6092        Self::Manual
6093    }
6094}
6095
6096/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAfterpayClearpay`'s `setup_future_usage` field.
6097#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6098#[serde(rename_all = "snake_case")]
6099pub enum CreatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
6100    None,
6101}
6102
6103impl CreatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
6104    pub fn as_str(self) -> &'static str {
6105        match self {
6106            CreatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage::None => "none",
6107        }
6108    }
6109}
6110
6111impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
6112    fn as_ref(&self) -> &str {
6113        self.as_str()
6114    }
6115}
6116
6117impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
6118    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6119        self.as_str().fmt(f)
6120    }
6121}
6122impl std::default::Default
6123    for CreatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage
6124{
6125    fn default() -> Self {
6126        Self::None
6127    }
6128}
6129
6130/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAlipay`'s `setup_future_usage` field.
6131#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6132#[serde(rename_all = "snake_case")]
6133pub enum CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
6134    None,
6135    OffSession,
6136}
6137
6138impl CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
6139    pub fn as_str(self) -> &'static str {
6140        match self {
6141            CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage::None => "none",
6142            CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage::OffSession => {
6143                "off_session"
6144            }
6145        }
6146    }
6147}
6148
6149impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
6150    fn as_ref(&self) -> &str {
6151        self.as_str()
6152    }
6153}
6154
6155impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
6156    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6157        self.as_str().fmt(f)
6158    }
6159}
6160impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
6161    fn default() -> Self {
6162        Self::None
6163    }
6164}
6165
6166/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsAuBecsDebit`'s `setup_future_usage` field.
6167#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6168#[serde(rename_all = "snake_case")]
6169pub enum CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
6170    None,
6171    OffSession,
6172    OnSession,
6173}
6174
6175impl CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
6176    pub fn as_str(self) -> &'static str {
6177        match self {
6178            CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::None => "none",
6179            CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::OffSession => {
6180                "off_session"
6181            }
6182            CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::OnSession => {
6183                "on_session"
6184            }
6185        }
6186    }
6187}
6188
6189impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
6190    fn as_ref(&self) -> &str {
6191        self.as_str()
6192    }
6193}
6194
6195impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
6196    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6197        self.as_str().fmt(f)
6198    }
6199}
6200impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
6201    fn default() -> Self {
6202        Self::None
6203    }
6204}
6205
6206/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsBacsDebit`'s `setup_future_usage` field.
6207#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6208#[serde(rename_all = "snake_case")]
6209pub enum CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
6210    None,
6211    OffSession,
6212    OnSession,
6213}
6214
6215impl CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
6216    pub fn as_str(self) -> &'static str {
6217        match self {
6218            CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage::None => "none",
6219            CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage::OffSession => {
6220                "off_session"
6221            }
6222            CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage::OnSession => {
6223                "on_session"
6224            }
6225        }
6226    }
6227}
6228
6229impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
6230    fn as_ref(&self) -> &str {
6231        self.as_str()
6232    }
6233}
6234
6235impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
6236    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6237        self.as_str().fmt(f)
6238    }
6239}
6240impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
6241    fn default() -> Self {
6242        Self::None
6243    }
6244}
6245
6246/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsBancontact`'s `preferred_language` field.
6247#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6248#[serde(rename_all = "snake_case")]
6249pub enum CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
6250    De,
6251    En,
6252    Fr,
6253    Nl,
6254}
6255
6256impl CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
6257    pub fn as_str(self) -> &'static str {
6258        match self {
6259            CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::De => "de",
6260            CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::En => "en",
6261            CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::Fr => "fr",
6262            CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::Nl => "nl",
6263        }
6264    }
6265}
6266
6267impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
6268    fn as_ref(&self) -> &str {
6269        self.as_str()
6270    }
6271}
6272
6273impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
6274    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6275        self.as_str().fmt(f)
6276    }
6277}
6278impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
6279    fn default() -> Self {
6280        Self::De
6281    }
6282}
6283
6284/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsBancontact`'s `setup_future_usage` field.
6285#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6286#[serde(rename_all = "snake_case")]
6287pub enum CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
6288    None,
6289    OffSession,
6290}
6291
6292impl CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
6293    pub fn as_str(self) -> &'static str {
6294        match self {
6295            CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage::None => "none",
6296            CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage::OffSession => {
6297                "off_session"
6298            }
6299        }
6300    }
6301}
6302
6303impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
6304    fn as_ref(&self) -> &str {
6305        self.as_str()
6306    }
6307}
6308
6309impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
6310    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6311        self.as_str().fmt(f)
6312    }
6313}
6314impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
6315    fn default() -> Self {
6316        Self::None
6317    }
6318}
6319
6320/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsBlik`'s `setup_future_usage` field.
6321#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6322#[serde(rename_all = "snake_case")]
6323pub enum CreatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
6324    None,
6325}
6326
6327impl CreatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
6328    pub fn as_str(self) -> &'static str {
6329        match self {
6330            CreatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage::None => "none",
6331        }
6332    }
6333}
6334
6335impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
6336    fn as_ref(&self) -> &str {
6337        self.as_str()
6338    }
6339}
6340
6341impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
6342    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6343        self.as_str().fmt(f)
6344    }
6345}
6346impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
6347    fn default() -> Self {
6348        Self::None
6349    }
6350}
6351
6352/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsBoleto`'s `setup_future_usage` field.
6353#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6354#[serde(rename_all = "snake_case")]
6355pub enum CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
6356    None,
6357    OffSession,
6358    OnSession,
6359}
6360
6361impl CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
6362    pub fn as_str(self) -> &'static str {
6363        match self {
6364            CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage::None => "none",
6365            CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage::OffSession => {
6366                "off_session"
6367            }
6368            CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage::OnSession => {
6369                "on_session"
6370            }
6371        }
6372    }
6373}
6374
6375impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
6376    fn as_ref(&self) -> &str {
6377        self.as_str()
6378    }
6379}
6380
6381impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
6382    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6383        self.as_str().fmt(f)
6384    }
6385}
6386impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
6387    fn default() -> Self {
6388        Self::None
6389    }
6390}
6391
6392/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `capture_method` field.
6393#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6394#[serde(rename_all = "snake_case")]
6395pub enum CreatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
6396    Manual,
6397}
6398
6399impl CreatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
6400    pub fn as_str(self) -> &'static str {
6401        match self {
6402            CreatePaymentIntentPaymentMethodOptionsCardCaptureMethod::Manual => "manual",
6403        }
6404    }
6405}
6406
6407impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
6408    fn as_ref(&self) -> &str {
6409        self.as_str()
6410    }
6411}
6412
6413impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
6414    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6415        self.as_str().fmt(f)
6416    }
6417}
6418impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
6419    fn default() -> Self {
6420        Self::Manual
6421    }
6422}
6423
6424/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan`'s `interval` field.
6425#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6426#[serde(rename_all = "snake_case")]
6427pub enum CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
6428    Month,
6429}
6430
6431impl CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
6432    pub fn as_str(self) -> &'static str {
6433        match self {
6434            CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval::Month => "month",
6435        }
6436    }
6437}
6438
6439impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
6440    fn as_ref(&self) -> &str {
6441        self.as_str()
6442    }
6443}
6444
6445impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
6446    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6447        self.as_str().fmt(f)
6448    }
6449}
6450impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
6451    fn default() -> Self {
6452        Self::Month
6453    }
6454}
6455
6456/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan`'s `type` field.
6457#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6458#[serde(rename_all = "snake_case")]
6459pub enum CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
6460    FixedCount,
6461}
6462
6463impl CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
6464    pub fn as_str(self) -> &'static str {
6465        match self {
6466            CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType::FixedCount => {
6467                "fixed_count"
6468            }
6469        }
6470    }
6471}
6472
6473impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
6474    fn as_ref(&self) -> &str {
6475        self.as_str()
6476    }
6477}
6478
6479impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
6480    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6481        self.as_str().fmt(f)
6482    }
6483}
6484impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
6485    fn default() -> Self {
6486        Self::FixedCount
6487    }
6488}
6489
6490/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardMandateOptions`'s `amount_type` field.
6491#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6492#[serde(rename_all = "snake_case")]
6493pub enum CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
6494    Fixed,
6495    Maximum,
6496}
6497
6498impl CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
6499    pub fn as_str(self) -> &'static str {
6500        match self {
6501            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType::Fixed => "fixed",
6502            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType::Maximum => {
6503                "maximum"
6504            }
6505        }
6506    }
6507}
6508
6509impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
6510    fn as_ref(&self) -> &str {
6511        self.as_str()
6512    }
6513}
6514
6515impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
6516    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6517        self.as_str().fmt(f)
6518    }
6519}
6520impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
6521    fn default() -> Self {
6522        Self::Fixed
6523    }
6524}
6525
6526/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardMandateOptions`'s `interval` field.
6527#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6528#[serde(rename_all = "snake_case")]
6529pub enum CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
6530    Day,
6531    Month,
6532    Sporadic,
6533    Week,
6534    Year,
6535}
6536
6537impl CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
6538    pub fn as_str(self) -> &'static str {
6539        match self {
6540            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Day => "day",
6541            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Month => "month",
6542            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Sporadic => {
6543                "sporadic"
6544            }
6545            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Week => "week",
6546            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Year => "year",
6547        }
6548    }
6549}
6550
6551impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
6552    fn as_ref(&self) -> &str {
6553        self.as_str()
6554    }
6555}
6556
6557impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
6558    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6559        self.as_str().fmt(f)
6560    }
6561}
6562impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
6563    fn default() -> Self {
6564        Self::Day
6565    }
6566}
6567
6568/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardMandateOptions`'s `supported_types` field.
6569#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6570#[serde(rename_all = "snake_case")]
6571pub enum CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
6572    India,
6573}
6574
6575impl CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
6576    pub fn as_str(self) -> &'static str {
6577        match self {
6578            CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes::India => {
6579                "india"
6580            }
6581        }
6582    }
6583}
6584
6585impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
6586    fn as_ref(&self) -> &str {
6587        self.as_str()
6588    }
6589}
6590
6591impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
6592    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6593        self.as_str().fmt(f)
6594    }
6595}
6596impl std::default::Default
6597    for CreatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes
6598{
6599    fn default() -> Self {
6600        Self::India
6601    }
6602}
6603
6604/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `network` field.
6605#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6606#[serde(rename_all = "snake_case")]
6607pub enum CreatePaymentIntentPaymentMethodOptionsCardNetwork {
6608    Amex,
6609    CartesBancaires,
6610    Diners,
6611    Discover,
6612    EftposAu,
6613    Interac,
6614    Jcb,
6615    Mastercard,
6616    Unionpay,
6617    Unknown,
6618    Visa,
6619}
6620
6621impl CreatePaymentIntentPaymentMethodOptionsCardNetwork {
6622    pub fn as_str(self) -> &'static str {
6623        match self {
6624            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Amex => "amex",
6625            CreatePaymentIntentPaymentMethodOptionsCardNetwork::CartesBancaires => {
6626                "cartes_bancaires"
6627            }
6628            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Diners => "diners",
6629            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Discover => "discover",
6630            CreatePaymentIntentPaymentMethodOptionsCardNetwork::EftposAu => "eftpos_au",
6631            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Interac => "interac",
6632            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Jcb => "jcb",
6633            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Mastercard => "mastercard",
6634            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Unionpay => "unionpay",
6635            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Unknown => "unknown",
6636            CreatePaymentIntentPaymentMethodOptionsCardNetwork::Visa => "visa",
6637        }
6638    }
6639}
6640
6641impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardNetwork {
6642    fn as_ref(&self) -> &str {
6643        self.as_str()
6644    }
6645}
6646
6647impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardNetwork {
6648    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6649        self.as_str().fmt(f)
6650    }
6651}
6652impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardNetwork {
6653    fn default() -> Self {
6654        Self::Amex
6655    }
6656}
6657
6658/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `request_extended_authorization` field.
6659#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6660#[serde(rename_all = "snake_case")]
6661pub enum CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
6662    IfAvailable,
6663    Never,
6664}
6665
6666impl CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
6667    pub fn as_str(self) -> &'static str {
6668        match self {
6669            CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization::IfAvailable => "if_available",
6670            CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization::Never => "never",
6671        }
6672    }
6673}
6674
6675impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
6676    fn as_ref(&self) -> &str {
6677        self.as_str()
6678    }
6679}
6680
6681impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
6682    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6683        self.as_str().fmt(f)
6684    }
6685}
6686impl std::default::Default
6687    for CreatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization
6688{
6689    fn default() -> Self {
6690        Self::IfAvailable
6691    }
6692}
6693
6694/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `request_incremental_authorization` field.
6695#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6696#[serde(rename_all = "snake_case")]
6697pub enum CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
6698    IfAvailable,
6699    Never,
6700}
6701
6702impl CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
6703    pub fn as_str(self) -> &'static str {
6704        match self {
6705            CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization::IfAvailable => "if_available",
6706            CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization::Never => "never",
6707        }
6708    }
6709}
6710
6711impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
6712    fn as_ref(&self) -> &str {
6713        self.as_str()
6714    }
6715}
6716
6717impl std::fmt::Display
6718    for CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization
6719{
6720    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6721        self.as_str().fmt(f)
6722    }
6723}
6724impl std::default::Default
6725    for CreatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization
6726{
6727    fn default() -> Self {
6728        Self::IfAvailable
6729    }
6730}
6731
6732/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `request_multicapture` field.
6733#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6734#[serde(rename_all = "snake_case")]
6735pub enum CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
6736    IfAvailable,
6737    Never,
6738}
6739
6740impl CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
6741    pub fn as_str(self) -> &'static str {
6742        match self {
6743            CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture::IfAvailable => {
6744                "if_available"
6745            }
6746            CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture::Never => "never",
6747        }
6748    }
6749}
6750
6751impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
6752    fn as_ref(&self) -> &str {
6753        self.as_str()
6754    }
6755}
6756
6757impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
6758    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6759        self.as_str().fmt(f)
6760    }
6761}
6762impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
6763    fn default() -> Self {
6764        Self::IfAvailable
6765    }
6766}
6767
6768/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `request_overcapture` field.
6769#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6770#[serde(rename_all = "snake_case")]
6771pub enum CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
6772    IfAvailable,
6773    Never,
6774}
6775
6776impl CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
6777    pub fn as_str(self) -> &'static str {
6778        match self {
6779            CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture::IfAvailable => {
6780                "if_available"
6781            }
6782            CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture::Never => "never",
6783        }
6784    }
6785}
6786
6787impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
6788    fn as_ref(&self) -> &str {
6789        self.as_str()
6790    }
6791}
6792
6793impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
6794    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6795        self.as_str().fmt(f)
6796    }
6797}
6798impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
6799    fn default() -> Self {
6800        Self::IfAvailable
6801    }
6802}
6803
6804/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `request_three_d_secure` field.
6805#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6806#[serde(rename_all = "snake_case")]
6807pub enum CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
6808    Any,
6809    Automatic,
6810    Challenge,
6811}
6812
6813impl CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
6814    pub fn as_str(self) -> &'static str {
6815        match self {
6816            CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Any => "any",
6817            CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Automatic => {
6818                "automatic"
6819            }
6820            CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Challenge => {
6821                "challenge"
6822            }
6823        }
6824    }
6825}
6826
6827impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
6828    fn as_ref(&self) -> &str {
6829        self.as_str()
6830    }
6831}
6832
6833impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
6834    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6835        self.as_str().fmt(f)
6836    }
6837}
6838impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
6839    fn default() -> Self {
6840        Self::Any
6841    }
6842}
6843
6844/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCard`'s `setup_future_usage` field.
6845#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6846#[serde(rename_all = "snake_case")]
6847pub enum CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
6848    None,
6849    OffSession,
6850    OnSession,
6851}
6852
6853impl CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
6854    pub fn as_str(self) -> &'static str {
6855        match self {
6856            CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage::None => "none",
6857            CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage::OffSession => {
6858                "off_session"
6859            }
6860            CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage::OnSession => "on_session",
6861        }
6862    }
6863}
6864
6865impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
6866    fn as_ref(&self) -> &str {
6867        self.as_str()
6868    }
6869}
6870
6871impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
6872    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6873        self.as_str().fmt(f)
6874    }
6875}
6876impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
6877    fn default() -> Self {
6878        Self::None
6879    }
6880}
6881
6882/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `ares_trans_status` field.
6883#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6884#[serde(rename_all = "snake_case")]
6885pub enum CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
6886    #[serde(rename = "A")]
6887    A,
6888    #[serde(rename = "C")]
6889    C,
6890    #[serde(rename = "I")]
6891    I,
6892    #[serde(rename = "N")]
6893    N,
6894    #[serde(rename = "R")]
6895    R,
6896    #[serde(rename = "U")]
6897    U,
6898    #[serde(rename = "Y")]
6899    Y,
6900}
6901
6902impl CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
6903    pub fn as_str(self) -> &'static str {
6904        match self {
6905            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::A => "A",
6906            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::C => "C",
6907            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::I => "I",
6908            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::N => "N",
6909            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::R => "R",
6910            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::U => "U",
6911            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::Y => "Y",
6912        }
6913    }
6914}
6915
6916impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
6917    fn as_ref(&self) -> &str {
6918        self.as_str()
6919    }
6920}
6921
6922impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
6923    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6924        self.as_str().fmt(f)
6925    }
6926}
6927impl std::default::Default
6928    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus
6929{
6930    fn default() -> Self {
6931        Self::A
6932    }
6933}
6934
6935/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `electronic_commerce_indicator` field.
6936#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6937#[serde(rename_all = "snake_case")]
6938pub enum CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator {
6939    #[serde(rename = "01")]
6940    V01,
6941    #[serde(rename = "02")]
6942    V02,
6943    #[serde(rename = "05")]
6944    V05,
6945    #[serde(rename = "06")]
6946    V06,
6947    #[serde(rename = "07")]
6948    V07,
6949}
6950
6951impl CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator {
6952    pub fn as_str(self) -> &'static str {
6953        match self {
6954            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V01 => "01",
6955            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V02 => "02",
6956            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V05 => "05",
6957            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V06 => "06",
6958            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V07 => "07",
6959        }
6960    }
6961}
6962
6963impl AsRef<str>
6964    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator
6965{
6966    fn as_ref(&self) -> &str {
6967        self.as_str()
6968    }
6969}
6970
6971impl std::fmt::Display
6972    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator
6973{
6974    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
6975        self.as_str().fmt(f)
6976    }
6977}
6978impl std::default::Default
6979    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator
6980{
6981    fn default() -> Self {
6982        Self::V01
6983    }
6984}
6985
6986/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `exemption_indicator` field.
6987#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
6988#[serde(rename_all = "snake_case")]
6989pub enum CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator {
6990    LowRisk,
6991    None,
6992}
6993
6994impl CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator {
6995    pub fn as_str(self) -> &'static str {
6996        match self {
6997            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator::LowRisk => {
6998                "low_risk"
6999            }
7000            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator::None => {
7001                "none"
7002            }
7003        }
7004    }
7005}
7006
7007impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator {
7008    fn as_ref(&self) -> &str {
7009        self.as_str()
7010    }
7011}
7012
7013impl std::fmt::Display
7014    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator
7015{
7016    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7017        self.as_str().fmt(f)
7018    }
7019}
7020impl std::default::Default
7021    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator
7022{
7023    fn default() -> Self {
7024        Self::LowRisk
7025    }
7026}
7027
7028/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires`'s `cb_avalgo` field.
7029#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7030#[serde(rename_all = "snake_case")]
7031pub enum CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
7032{
7033    #[serde(rename = "0")]
7034    V0,
7035    #[serde(rename = "1")]
7036    V1,
7037    #[serde(rename = "2")]
7038    V2,
7039    #[serde(rename = "3")]
7040    V3,
7041    #[serde(rename = "4")]
7042    V4,
7043    #[serde(rename = "A")]
7044    A,
7045}
7046
7047impl CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo {
7048    pub fn as_str(self) -> &'static str {
7049        match self {
7050            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V0 => "0",
7051            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V1 => "1",
7052            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V2 => "2",
7053            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V3 => "3",
7054            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V4 => "4",
7055            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::A => "A",
7056        }
7057    }
7058}
7059
7060impl AsRef<str>
7061    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
7062{
7063    fn as_ref(&self) -> &str {
7064        self.as_str()
7065    }
7066}
7067
7068impl std::fmt::Display
7069    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
7070{
7071    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7072        self.as_str().fmt(f)
7073    }
7074}
7075impl std::default::Default
7076    for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
7077{
7078    fn default() -> Self {
7079        Self::V0
7080    }
7081}
7082
7083/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `version` field.
7084#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7085#[serde(rename_all = "snake_case")]
7086pub enum CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
7087    #[serde(rename = "1.0.2")]
7088    V1_0_2,
7089    #[serde(rename = "2.1.0")]
7090    V2_1_0,
7091    #[serde(rename = "2.2.0")]
7092    V2_2_0,
7093}
7094
7095impl CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
7096    pub fn as_str(self) -> &'static str {
7097        match self {
7098            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion::V1_0_2 => "1.0.2",
7099            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion::V2_1_0 => "2.1.0",
7100            CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion::V2_2_0 => "2.2.0",
7101        }
7102    }
7103}
7104
7105impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
7106    fn as_ref(&self) -> &str {
7107        self.as_str()
7108    }
7109}
7110
7111impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
7112    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7113        self.as_str().fmt(f)
7114    }
7115}
7116impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
7117    fn default() -> Self {
7118        Self::V1_0_2
7119    }
7120}
7121
7122/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCashapp`'s `capture_method` field.
7123#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7124#[serde(rename_all = "snake_case")]
7125pub enum CreatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
7126    Manual,
7127}
7128
7129impl CreatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
7130    pub fn as_str(self) -> &'static str {
7131        match self {
7132            CreatePaymentIntentPaymentMethodOptionsCashappCaptureMethod::Manual => "manual",
7133        }
7134    }
7135}
7136
7137impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
7138    fn as_ref(&self) -> &str {
7139        self.as_str()
7140    }
7141}
7142
7143impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
7144    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7145        self.as_str().fmt(f)
7146    }
7147}
7148impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
7149    fn default() -> Self {
7150        Self::Manual
7151    }
7152}
7153
7154/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCashapp`'s `setup_future_usage` field.
7155#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7156#[serde(rename_all = "snake_case")]
7157pub enum CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
7158    None,
7159    OffSession,
7160    OnSession,
7161}
7162
7163impl CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
7164    pub fn as_str(self) -> &'static str {
7165        match self {
7166            CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage::None => "none",
7167            CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage::OffSession => {
7168                "off_session"
7169            }
7170            CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage::OnSession => {
7171                "on_session"
7172            }
7173        }
7174    }
7175}
7176
7177impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
7178    fn as_ref(&self) -> &str {
7179        self.as_str()
7180    }
7181}
7182
7183impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
7184    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7185        self.as_str().fmt(f)
7186    }
7187}
7188impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
7189    fn default() -> Self {
7190        Self::None
7191    }
7192}
7193
7194/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer`'s `requested_address_types` field.
7195#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7196#[serde(rename_all = "snake_case")]
7197pub enum CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
7198    Aba,
7199    Iban,
7200    Sepa,
7201    SortCode,
7202    Spei,
7203    Swift,
7204    Zengin,
7205}
7206
7207impl CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
7208    pub fn as_str(self) -> &'static str {
7209        match self {
7210            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Aba => "aba",
7211            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Iban => "iban",
7212            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Sepa => "sepa",
7213            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::SortCode => "sort_code",
7214            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Spei => "spei",
7215            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Swift => "swift",
7216            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Zengin => "zengin",
7217        }
7218    }
7219}
7220
7221impl AsRef<str>
7222    for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
7223{
7224    fn as_ref(&self) -> &str {
7225        self.as_str()
7226    }
7227}
7228
7229impl std::fmt::Display
7230    for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
7231{
7232    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7233        self.as_str().fmt(f)
7234    }
7235}
7236impl std::default::Default
7237    for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
7238{
7239    fn default() -> Self {
7240        Self::Aba
7241    }
7242}
7243
7244/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer`'s `type` field.
7245#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7246#[serde(rename_all = "snake_case")]
7247pub enum CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
7248    EuBankTransfer,
7249    GbBankTransfer,
7250    JpBankTransfer,
7251    MxBankTransfer,
7252    UsBankTransfer,
7253}
7254
7255impl CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
7256    pub fn as_str(self) -> &'static str {
7257        match self {
7258            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::EuBankTransfer => "eu_bank_transfer",
7259            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::GbBankTransfer => "gb_bank_transfer",
7260            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::JpBankTransfer => "jp_bank_transfer",
7261            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::MxBankTransfer => "mx_bank_transfer",
7262            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::UsBankTransfer => "us_bank_transfer",
7263        }
7264    }
7265}
7266
7267impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
7268    fn as_ref(&self) -> &str {
7269        self.as_str()
7270    }
7271}
7272
7273impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
7274    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7275        self.as_str().fmt(f)
7276    }
7277}
7278impl std::default::Default
7279    for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType
7280{
7281    fn default() -> Self {
7282        Self::EuBankTransfer
7283    }
7284}
7285
7286/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCustomerBalance`'s `funding_type` field.
7287#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7288#[serde(rename_all = "snake_case")]
7289pub enum CreatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
7290    BankTransfer,
7291}
7292
7293impl CreatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
7294    pub fn as_str(self) -> &'static str {
7295        match self {
7296            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType::BankTransfer => {
7297                "bank_transfer"
7298            }
7299        }
7300    }
7301}
7302
7303impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
7304    fn as_ref(&self) -> &str {
7305        self.as_str()
7306    }
7307}
7308
7309impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
7310    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7311        self.as_str().fmt(f)
7312    }
7313}
7314impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
7315    fn default() -> Self {
7316        Self::BankTransfer
7317    }
7318}
7319
7320/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsCustomerBalance`'s `setup_future_usage` field.
7321#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7322#[serde(rename_all = "snake_case")]
7323pub enum CreatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
7324    None,
7325}
7326
7327impl CreatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
7328    pub fn as_str(self) -> &'static str {
7329        match self {
7330            CreatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage::None => "none",
7331        }
7332    }
7333}
7334
7335impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
7336    fn as_ref(&self) -> &str {
7337        self.as_str()
7338    }
7339}
7340
7341impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
7342    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7343        self.as_str().fmt(f)
7344    }
7345}
7346impl std::default::Default
7347    for CreatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage
7348{
7349    fn default() -> Self {
7350        Self::None
7351    }
7352}
7353
7354/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsEps`'s `setup_future_usage` field.
7355#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7356#[serde(rename_all = "snake_case")]
7357pub enum CreatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
7358    None,
7359}
7360
7361impl CreatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
7362    pub fn as_str(self) -> &'static str {
7363        match self {
7364            CreatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage::None => "none",
7365        }
7366    }
7367}
7368
7369impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
7370    fn as_ref(&self) -> &str {
7371        self.as_str()
7372    }
7373}
7374
7375impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
7376    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7377        self.as_str().fmt(f)
7378    }
7379}
7380impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
7381    fn default() -> Self {
7382        Self::None
7383    }
7384}
7385
7386/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsFpx`'s `setup_future_usage` field.
7387#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7388#[serde(rename_all = "snake_case")]
7389pub enum CreatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
7390    None,
7391}
7392
7393impl CreatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
7394    pub fn as_str(self) -> &'static str {
7395        match self {
7396            CreatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage::None => "none",
7397        }
7398    }
7399}
7400
7401impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
7402    fn as_ref(&self) -> &str {
7403        self.as_str()
7404    }
7405}
7406
7407impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
7408    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7409        self.as_str().fmt(f)
7410    }
7411}
7412impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
7413    fn default() -> Self {
7414        Self::None
7415    }
7416}
7417
7418/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsGiropay`'s `setup_future_usage` field.
7419#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7420#[serde(rename_all = "snake_case")]
7421pub enum CreatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
7422    None,
7423}
7424
7425impl CreatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
7426    pub fn as_str(self) -> &'static str {
7427        match self {
7428            CreatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage::None => "none",
7429        }
7430    }
7431}
7432
7433impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
7434    fn as_ref(&self) -> &str {
7435        self.as_str()
7436    }
7437}
7438
7439impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
7440    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7441        self.as_str().fmt(f)
7442    }
7443}
7444impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
7445    fn default() -> Self {
7446        Self::None
7447    }
7448}
7449
7450/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsGrabpay`'s `setup_future_usage` field.
7451#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7452#[serde(rename_all = "snake_case")]
7453pub enum CreatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
7454    None,
7455}
7456
7457impl CreatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
7458    pub fn as_str(self) -> &'static str {
7459        match self {
7460            CreatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage::None => "none",
7461        }
7462    }
7463}
7464
7465impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
7466    fn as_ref(&self) -> &str {
7467        self.as_str()
7468    }
7469}
7470
7471impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
7472    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7473        self.as_str().fmt(f)
7474    }
7475}
7476impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
7477    fn default() -> Self {
7478        Self::None
7479    }
7480}
7481
7482/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsIdeal`'s `setup_future_usage` field.
7483#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7484#[serde(rename_all = "snake_case")]
7485pub enum CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
7486    None,
7487    OffSession,
7488}
7489
7490impl CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
7491    pub fn as_str(self) -> &'static str {
7492        match self {
7493            CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage::None => "none",
7494            CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage::OffSession => {
7495                "off_session"
7496            }
7497        }
7498    }
7499}
7500
7501impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
7502    fn as_ref(&self) -> &str {
7503        self.as_str()
7504    }
7505}
7506
7507impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
7508    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7509        self.as_str().fmt(f)
7510    }
7511}
7512impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
7513    fn default() -> Self {
7514        Self::None
7515    }
7516}
7517
7518/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsKlarna`'s `capture_method` field.
7519#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7520#[serde(rename_all = "snake_case")]
7521pub enum CreatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
7522    Manual,
7523}
7524
7525impl CreatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
7526    pub fn as_str(self) -> &'static str {
7527        match self {
7528            CreatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod::Manual => "manual",
7529        }
7530    }
7531}
7532
7533impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
7534    fn as_ref(&self) -> &str {
7535        self.as_str()
7536    }
7537}
7538
7539impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
7540    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7541        self.as_str().fmt(f)
7542    }
7543}
7544impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
7545    fn default() -> Self {
7546        Self::Manual
7547    }
7548}
7549
7550/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsKlarna`'s `preferred_locale` field.
7551#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7552#[serde(rename_all = "snake_case")]
7553pub enum CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
7554    #[serde(rename = "cs-CZ")]
7555    CsCz,
7556    #[serde(rename = "da-DK")]
7557    DaDk,
7558    #[serde(rename = "de-AT")]
7559    DeAt,
7560    #[serde(rename = "de-CH")]
7561    DeCh,
7562    #[serde(rename = "de-DE")]
7563    DeDe,
7564    #[serde(rename = "el-GR")]
7565    ElGr,
7566    #[serde(rename = "en-AT")]
7567    EnAt,
7568    #[serde(rename = "en-AU")]
7569    EnAu,
7570    #[serde(rename = "en-BE")]
7571    EnBe,
7572    #[serde(rename = "en-CA")]
7573    EnCa,
7574    #[serde(rename = "en-CH")]
7575    EnCh,
7576    #[serde(rename = "en-CZ")]
7577    EnCz,
7578    #[serde(rename = "en-DE")]
7579    EnDe,
7580    #[serde(rename = "en-DK")]
7581    EnDk,
7582    #[serde(rename = "en-ES")]
7583    EnEs,
7584    #[serde(rename = "en-FI")]
7585    EnFi,
7586    #[serde(rename = "en-FR")]
7587    EnFr,
7588    #[serde(rename = "en-GB")]
7589    EnGb,
7590    #[serde(rename = "en-GR")]
7591    EnGr,
7592    #[serde(rename = "en-IE")]
7593    EnIe,
7594    #[serde(rename = "en-IT")]
7595    EnIt,
7596    #[serde(rename = "en-NL")]
7597    EnNl,
7598    #[serde(rename = "en-NO")]
7599    EnNo,
7600    #[serde(rename = "en-NZ")]
7601    EnNz,
7602    #[serde(rename = "en-PL")]
7603    EnPl,
7604    #[serde(rename = "en-PT")]
7605    EnPt,
7606    #[serde(rename = "en-SE")]
7607    EnSe,
7608    #[serde(rename = "en-US")]
7609    EnUs,
7610    #[serde(rename = "es-ES")]
7611    EsEs,
7612    #[serde(rename = "es-US")]
7613    EsUs,
7614    #[serde(rename = "fi-FI")]
7615    FiFi,
7616    #[serde(rename = "fr-BE")]
7617    FrBe,
7618    #[serde(rename = "fr-CA")]
7619    FrCa,
7620    #[serde(rename = "fr-CH")]
7621    FrCh,
7622    #[serde(rename = "fr-FR")]
7623    FrFr,
7624    #[serde(rename = "it-CH")]
7625    ItCh,
7626    #[serde(rename = "it-IT")]
7627    ItIt,
7628    #[serde(rename = "nb-NO")]
7629    NbNo,
7630    #[serde(rename = "nl-BE")]
7631    NlBe,
7632    #[serde(rename = "nl-NL")]
7633    NlNl,
7634    #[serde(rename = "pl-PL")]
7635    PlPl,
7636    #[serde(rename = "pt-PT")]
7637    PtPt,
7638    #[serde(rename = "sv-FI")]
7639    SvFi,
7640    #[serde(rename = "sv-SE")]
7641    SvSe,
7642}
7643
7644impl CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
7645    pub fn as_str(self) -> &'static str {
7646        match self {
7647            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::CsCz => "cs-CZ",
7648            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DaDk => "da-DK",
7649            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DeAt => "de-AT",
7650            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DeCh => "de-CH",
7651            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DeDe => "de-DE",
7652            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::ElGr => "el-GR",
7653            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnAt => "en-AT",
7654            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnAu => "en-AU",
7655            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnBe => "en-BE",
7656            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnCa => "en-CA",
7657            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnCh => "en-CH",
7658            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnCz => "en-CZ",
7659            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnDe => "en-DE",
7660            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnDk => "en-DK",
7661            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnEs => "en-ES",
7662            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnFi => "en-FI",
7663            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnFr => "en-FR",
7664            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnGb => "en-GB",
7665            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnGr => "en-GR",
7666            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnIe => "en-IE",
7667            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnIt => "en-IT",
7668            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnNl => "en-NL",
7669            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnNo => "en-NO",
7670            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnNz => "en-NZ",
7671            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnPl => "en-PL",
7672            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnPt => "en-PT",
7673            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnSe => "en-SE",
7674            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnUs => "en-US",
7675            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EsEs => "es-ES",
7676            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EsUs => "es-US",
7677            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FiFi => "fi-FI",
7678            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrBe => "fr-BE",
7679            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrCa => "fr-CA",
7680            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrCh => "fr-CH",
7681            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrFr => "fr-FR",
7682            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::ItCh => "it-CH",
7683            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::ItIt => "it-IT",
7684            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::NbNo => "nb-NO",
7685            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::NlBe => "nl-BE",
7686            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::NlNl => "nl-NL",
7687            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::PlPl => "pl-PL",
7688            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::PtPt => "pt-PT",
7689            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::SvFi => "sv-FI",
7690            CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::SvSe => "sv-SE",
7691        }
7692    }
7693}
7694
7695impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
7696    fn as_ref(&self) -> &str {
7697        self.as_str()
7698    }
7699}
7700
7701impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
7702    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7703        self.as_str().fmt(f)
7704    }
7705}
7706impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
7707    fn default() -> Self {
7708        Self::CsCz
7709    }
7710}
7711
7712/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsKlarna`'s `setup_future_usage` field.
7713#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7714#[serde(rename_all = "snake_case")]
7715pub enum CreatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
7716    None,
7717}
7718
7719impl CreatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
7720    pub fn as_str(self) -> &'static str {
7721        match self {
7722            CreatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage::None => "none",
7723        }
7724    }
7725}
7726
7727impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
7728    fn as_ref(&self) -> &str {
7729        self.as_str()
7730    }
7731}
7732
7733impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
7734    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7735        self.as_str().fmt(f)
7736    }
7737}
7738impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
7739    fn default() -> Self {
7740        Self::None
7741    }
7742}
7743
7744/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsKonbini`'s `setup_future_usage` field.
7745#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7746#[serde(rename_all = "snake_case")]
7747pub enum CreatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
7748    None,
7749}
7750
7751impl CreatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
7752    pub fn as_str(self) -> &'static str {
7753        match self {
7754            CreatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage::None => "none",
7755        }
7756    }
7757}
7758
7759impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
7760    fn as_ref(&self) -> &str {
7761        self.as_str()
7762    }
7763}
7764
7765impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
7766    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7767        self.as_str().fmt(f)
7768    }
7769}
7770impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
7771    fn default() -> Self {
7772        Self::None
7773    }
7774}
7775
7776/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsLink`'s `capture_method` field.
7777#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7778#[serde(rename_all = "snake_case")]
7779pub enum CreatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
7780    Manual,
7781}
7782
7783impl CreatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
7784    pub fn as_str(self) -> &'static str {
7785        match self {
7786            CreatePaymentIntentPaymentMethodOptionsLinkCaptureMethod::Manual => "manual",
7787        }
7788    }
7789}
7790
7791impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
7792    fn as_ref(&self) -> &str {
7793        self.as_str()
7794    }
7795}
7796
7797impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
7798    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7799        self.as_str().fmt(f)
7800    }
7801}
7802impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
7803    fn default() -> Self {
7804        Self::Manual
7805    }
7806}
7807
7808/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsLink`'s `setup_future_usage` field.
7809#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7810#[serde(rename_all = "snake_case")]
7811pub enum CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
7812    None,
7813    OffSession,
7814}
7815
7816impl CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
7817    pub fn as_str(self) -> &'static str {
7818        match self {
7819            CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage::None => "none",
7820            CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage::OffSession => {
7821                "off_session"
7822            }
7823        }
7824    }
7825}
7826
7827impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
7828    fn as_ref(&self) -> &str {
7829        self.as_str()
7830    }
7831}
7832
7833impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
7834    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7835        self.as_str().fmt(f)
7836    }
7837}
7838impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
7839    fn default() -> Self {
7840        Self::None
7841    }
7842}
7843
7844/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsOxxo`'s `setup_future_usage` field.
7845#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7846#[serde(rename_all = "snake_case")]
7847pub enum CreatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
7848    None,
7849}
7850
7851impl CreatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
7852    pub fn as_str(self) -> &'static str {
7853        match self {
7854            CreatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage::None => "none",
7855        }
7856    }
7857}
7858
7859impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
7860    fn as_ref(&self) -> &str {
7861        self.as_str()
7862    }
7863}
7864
7865impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
7866    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7867        self.as_str().fmt(f)
7868    }
7869}
7870impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
7871    fn default() -> Self {
7872        Self::None
7873    }
7874}
7875
7876/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsP24`'s `setup_future_usage` field.
7877#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7878#[serde(rename_all = "snake_case")]
7879pub enum CreatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
7880    None,
7881}
7882
7883impl CreatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
7884    pub fn as_str(self) -> &'static str {
7885        match self {
7886            CreatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage::None => "none",
7887        }
7888    }
7889}
7890
7891impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
7892    fn as_ref(&self) -> &str {
7893        self.as_str()
7894    }
7895}
7896
7897impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
7898    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7899        self.as_str().fmt(f)
7900    }
7901}
7902impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
7903    fn default() -> Self {
7904        Self::None
7905    }
7906}
7907
7908/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsPaynow`'s `setup_future_usage` field.
7909#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7910#[serde(rename_all = "snake_case")]
7911pub enum CreatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
7912    None,
7913}
7914
7915impl CreatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
7916    pub fn as_str(self) -> &'static str {
7917        match self {
7918            CreatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage::None => "none",
7919        }
7920    }
7921}
7922
7923impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
7924    fn as_ref(&self) -> &str {
7925        self.as_str()
7926    }
7927}
7928
7929impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
7930    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7931        self.as_str().fmt(f)
7932    }
7933}
7934impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
7935    fn default() -> Self {
7936        Self::None
7937    }
7938}
7939
7940/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsPaypal`'s `capture_method` field.
7941#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7942#[serde(rename_all = "snake_case")]
7943pub enum CreatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
7944    Manual,
7945}
7946
7947impl CreatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
7948    pub fn as_str(self) -> &'static str {
7949        match self {
7950            CreatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod::Manual => "manual",
7951        }
7952    }
7953}
7954
7955impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
7956    fn as_ref(&self) -> &str {
7957        self.as_str()
7958    }
7959}
7960
7961impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
7962    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
7963        self.as_str().fmt(f)
7964    }
7965}
7966impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
7967    fn default() -> Self {
7968        Self::Manual
7969    }
7970}
7971
7972/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsPaypal`'s `preferred_locale` field.
7973#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
7974#[serde(rename_all = "snake_case")]
7975pub enum CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
7976    #[serde(rename = "cs-CZ")]
7977    CsCz,
7978    #[serde(rename = "da-DK")]
7979    DaDk,
7980    #[serde(rename = "de-AT")]
7981    DeAt,
7982    #[serde(rename = "de-DE")]
7983    DeDe,
7984    #[serde(rename = "de-LU")]
7985    DeLu,
7986    #[serde(rename = "el-GR")]
7987    ElGr,
7988    #[serde(rename = "en-GB")]
7989    EnGb,
7990    #[serde(rename = "en-US")]
7991    EnUs,
7992    #[serde(rename = "es-ES")]
7993    EsEs,
7994    #[serde(rename = "fi-FI")]
7995    FiFi,
7996    #[serde(rename = "fr-BE")]
7997    FrBe,
7998    #[serde(rename = "fr-FR")]
7999    FrFr,
8000    #[serde(rename = "fr-LU")]
8001    FrLu,
8002    #[serde(rename = "hu-HU")]
8003    HuHu,
8004    #[serde(rename = "it-IT")]
8005    ItIt,
8006    #[serde(rename = "nl-BE")]
8007    NlBe,
8008    #[serde(rename = "nl-NL")]
8009    NlNl,
8010    #[serde(rename = "pl-PL")]
8011    PlPl,
8012    #[serde(rename = "pt-PT")]
8013    PtPt,
8014    #[serde(rename = "sk-SK")]
8015    SkSk,
8016    #[serde(rename = "sv-SE")]
8017    SvSe,
8018}
8019
8020impl CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
8021    pub fn as_str(self) -> &'static str {
8022        match self {
8023            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::CsCz => "cs-CZ",
8024            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DaDk => "da-DK",
8025            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DeAt => "de-AT",
8026            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DeDe => "de-DE",
8027            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DeLu => "de-LU",
8028            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::ElGr => "el-GR",
8029            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::EnGb => "en-GB",
8030            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::EnUs => "en-US",
8031            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::EsEs => "es-ES",
8032            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FiFi => "fi-FI",
8033            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FrBe => "fr-BE",
8034            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FrFr => "fr-FR",
8035            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FrLu => "fr-LU",
8036            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::HuHu => "hu-HU",
8037            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::ItIt => "it-IT",
8038            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::NlBe => "nl-BE",
8039            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::NlNl => "nl-NL",
8040            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::PlPl => "pl-PL",
8041            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::PtPt => "pt-PT",
8042            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::SkSk => "sk-SK",
8043            CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::SvSe => "sv-SE",
8044        }
8045    }
8046}
8047
8048impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
8049    fn as_ref(&self) -> &str {
8050        self.as_str()
8051    }
8052}
8053
8054impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
8055    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8056        self.as_str().fmt(f)
8057    }
8058}
8059impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
8060    fn default() -> Self {
8061        Self::CsCz
8062    }
8063}
8064
8065/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsPaypal`'s `setup_future_usage` field.
8066#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8067#[serde(rename_all = "snake_case")]
8068pub enum CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
8069    None,
8070    OffSession,
8071}
8072
8073impl CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
8074    pub fn as_str(self) -> &'static str {
8075        match self {
8076            CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage::None => "none",
8077            CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage::OffSession => {
8078                "off_session"
8079            }
8080        }
8081    }
8082}
8083
8084impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
8085    fn as_ref(&self) -> &str {
8086        self.as_str()
8087    }
8088}
8089
8090impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
8091    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8092        self.as_str().fmt(f)
8093    }
8094}
8095impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
8096    fn default() -> Self {
8097        Self::None
8098    }
8099}
8100
8101/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsPix`'s `setup_future_usage` field.
8102#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8103#[serde(rename_all = "snake_case")]
8104pub enum CreatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
8105    None,
8106}
8107
8108impl CreatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
8109    pub fn as_str(self) -> &'static str {
8110        match self {
8111            CreatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage::None => "none",
8112        }
8113    }
8114}
8115
8116impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
8117    fn as_ref(&self) -> &str {
8118        self.as_str()
8119    }
8120}
8121
8122impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
8123    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8124        self.as_str().fmt(f)
8125    }
8126}
8127impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
8128    fn default() -> Self {
8129        Self::None
8130    }
8131}
8132
8133/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsPromptpay`'s `setup_future_usage` field.
8134#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8135#[serde(rename_all = "snake_case")]
8136pub enum CreatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
8137    None,
8138}
8139
8140impl CreatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
8141    pub fn as_str(self) -> &'static str {
8142        match self {
8143            CreatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage::None => "none",
8144        }
8145    }
8146}
8147
8148impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
8149    fn as_ref(&self) -> &str {
8150        self.as_str()
8151    }
8152}
8153
8154impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
8155    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8156        self.as_str().fmt(f)
8157    }
8158}
8159impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
8160    fn default() -> Self {
8161        Self::None
8162    }
8163}
8164
8165/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsRevolutPay`'s `setup_future_usage` field.
8166#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8167#[serde(rename_all = "snake_case")]
8168pub enum CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
8169    None,
8170    OffSession,
8171}
8172
8173impl CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
8174    pub fn as_str(self) -> &'static str {
8175        match self {
8176            CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage::None => "none",
8177            CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage::OffSession => {
8178                "off_session"
8179            }
8180        }
8181    }
8182}
8183
8184impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
8185    fn as_ref(&self) -> &str {
8186        self.as_str()
8187    }
8188}
8189
8190impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
8191    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8192        self.as_str().fmt(f)
8193    }
8194}
8195impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
8196    fn default() -> Self {
8197        Self::None
8198    }
8199}
8200
8201/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsSepaDebit`'s `setup_future_usage` field.
8202#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8203#[serde(rename_all = "snake_case")]
8204pub enum CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
8205    None,
8206    OffSession,
8207    OnSession,
8208}
8209
8210impl CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
8211    pub fn as_str(self) -> &'static str {
8212        match self {
8213            CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::None => "none",
8214            CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::OffSession => {
8215                "off_session"
8216            }
8217            CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::OnSession => {
8218                "on_session"
8219            }
8220        }
8221    }
8222}
8223
8224impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
8225    fn as_ref(&self) -> &str {
8226        self.as_str()
8227    }
8228}
8229
8230impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
8231    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8232        self.as_str().fmt(f)
8233    }
8234}
8235impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
8236    fn default() -> Self {
8237        Self::None
8238    }
8239}
8240
8241/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsSofort`'s `preferred_language` field.
8242#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8243#[serde(rename_all = "snake_case")]
8244pub enum CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
8245    De,
8246    En,
8247    Es,
8248    Fr,
8249    It,
8250    Nl,
8251    Pl,
8252}
8253
8254impl CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
8255    pub fn as_str(self) -> &'static str {
8256        match self {
8257            CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::De => "de",
8258            CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::En => "en",
8259            CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Es => "es",
8260            CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Fr => "fr",
8261            CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::It => "it",
8262            CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Nl => "nl",
8263            CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Pl => "pl",
8264        }
8265    }
8266}
8267
8268impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
8269    fn as_ref(&self) -> &str {
8270        self.as_str()
8271    }
8272}
8273
8274impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
8275    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8276        self.as_str().fmt(f)
8277    }
8278}
8279impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
8280    fn default() -> Self {
8281        Self::De
8282    }
8283}
8284
8285/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsSofort`'s `setup_future_usage` field.
8286#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8287#[serde(rename_all = "snake_case")]
8288pub enum CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
8289    None,
8290    OffSession,
8291}
8292
8293impl CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
8294    pub fn as_str(self) -> &'static str {
8295        match self {
8296            CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage::None => "none",
8297            CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage::OffSession => {
8298                "off_session"
8299            }
8300        }
8301    }
8302}
8303
8304impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
8305    fn as_ref(&self) -> &str {
8306        self.as_str()
8307    }
8308}
8309
8310impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
8311    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8312        self.as_str().fmt(f)
8313    }
8314}
8315impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
8316    fn default() -> Self {
8317        Self::None
8318    }
8319}
8320
8321/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsSwish`'s `setup_future_usage` field.
8322#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8323#[serde(rename_all = "snake_case")]
8324pub enum CreatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
8325    None,
8326}
8327
8328impl CreatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
8329    pub fn as_str(self) -> &'static str {
8330        match self {
8331            CreatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage::None => "none",
8332        }
8333    }
8334}
8335
8336impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
8337    fn as_ref(&self) -> &str {
8338        self.as_str()
8339    }
8340}
8341
8342impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
8343    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8344        self.as_str().fmt(f)
8345    }
8346}
8347impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
8348    fn default() -> Self {
8349        Self::None
8350    }
8351}
8352
8353/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections`'s `permissions` field.
8354#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8355#[serde(rename_all = "snake_case")]
8356pub enum CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions {
8357    Balances,
8358    Ownership,
8359    PaymentMethod,
8360    Transactions,
8361}
8362
8363impl CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions {
8364    pub fn as_str(self) -> &'static str {
8365        match self {
8366            CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Balances => "balances",
8367            CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Ownership => "ownership",
8368            CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::PaymentMethod => "payment_method",
8369            CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Transactions => "transactions",
8370        }
8371    }
8372}
8373
8374impl AsRef<str>
8375    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
8376{
8377    fn as_ref(&self) -> &str {
8378        self.as_str()
8379    }
8380}
8381
8382impl std::fmt::Display
8383    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
8384{
8385    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8386        self.as_str().fmt(f)
8387    }
8388}
8389impl std::default::Default
8390    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
8391{
8392    fn default() -> Self {
8393        Self::Balances
8394    }
8395}
8396
8397/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections`'s `prefetch` field.
8398#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8399#[serde(rename_all = "snake_case")]
8400pub enum CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch {
8401    Balances,
8402    Transactions,
8403}
8404
8405impl CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch {
8406    pub fn as_str(self) -> &'static str {
8407        match self {
8408            CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch::Balances => "balances",
8409            CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch::Transactions => "transactions",
8410        }
8411    }
8412}
8413
8414impl AsRef<str>
8415    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
8416{
8417    fn as_ref(&self) -> &str {
8418        self.as_str()
8419    }
8420}
8421
8422impl std::fmt::Display
8423    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
8424{
8425    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8426        self.as_str().fmt(f)
8427    }
8428}
8429impl std::default::Default
8430    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
8431{
8432    fn default() -> Self {
8433        Self::Balances
8434    }
8435}
8436
8437/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions`'s `collection_method` field.
8438#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8439#[serde(rename_all = "snake_case")]
8440pub enum CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod {
8441    Paper,
8442}
8443
8444impl CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod {
8445    pub fn as_str(self) -> &'static str {
8446        match self {
8447            CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod::Paper => "paper",
8448        }
8449    }
8450}
8451
8452impl AsRef<str>
8453    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod
8454{
8455    fn as_ref(&self) -> &str {
8456        self.as_str()
8457    }
8458}
8459
8460impl std::fmt::Display
8461    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod
8462{
8463    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8464        self.as_str().fmt(f)
8465    }
8466}
8467impl std::default::Default
8468    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod
8469{
8470    fn default() -> Self {
8471        Self::Paper
8472    }
8473}
8474
8475/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworks`'s `requested` field.
8476#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8477#[serde(rename_all = "snake_case")]
8478pub enum CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
8479    Ach,
8480    UsDomesticWire,
8481}
8482
8483impl CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
8484    pub fn as_str(self) -> &'static str {
8485        match self {
8486            CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested::Ach => "ach",
8487            CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested::UsDomesticWire => "us_domestic_wire",
8488        }
8489    }
8490}
8491
8492impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
8493    fn as_ref(&self) -> &str {
8494        self.as_str()
8495    }
8496}
8497
8498impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
8499    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8500        self.as_str().fmt(f)
8501    }
8502}
8503impl std::default::Default
8504    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested
8505{
8506    fn default() -> Self {
8507        Self::Ach
8508    }
8509}
8510
8511/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsUsBankAccount`'s `preferred_settlement_speed` field.
8512#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8513#[serde(rename_all = "snake_case")]
8514pub enum CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
8515    Fastest,
8516    Standard,
8517}
8518
8519impl CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
8520    pub fn as_str(self) -> &'static str {
8521        match self {
8522            CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed::Fastest => "fastest",
8523            CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed::Standard => "standard",
8524        }
8525    }
8526}
8527
8528impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
8529    fn as_ref(&self) -> &str {
8530        self.as_str()
8531    }
8532}
8533
8534impl std::fmt::Display
8535    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed
8536{
8537    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8538        self.as_str().fmt(f)
8539    }
8540}
8541impl std::default::Default
8542    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed
8543{
8544    fn default() -> Self {
8545        Self::Fastest
8546    }
8547}
8548
8549/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsUsBankAccount`'s `setup_future_usage` field.
8550#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8551#[serde(rename_all = "snake_case")]
8552pub enum CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
8553    None,
8554    OffSession,
8555    OnSession,
8556}
8557
8558impl CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
8559    pub fn as_str(self) -> &'static str {
8560        match self {
8561            CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::None => "none",
8562            CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::OffSession => {
8563                "off_session"
8564            }
8565            CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::OnSession => {
8566                "on_session"
8567            }
8568        }
8569    }
8570}
8571
8572impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
8573    fn as_ref(&self) -> &str {
8574        self.as_str()
8575    }
8576}
8577
8578impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
8579    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8580        self.as_str().fmt(f)
8581    }
8582}
8583impl std::default::Default
8584    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage
8585{
8586    fn default() -> Self {
8587        Self::None
8588    }
8589}
8590
8591/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsUsBankAccount`'s `verification_method` field.
8592#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8593#[serde(rename_all = "snake_case")]
8594pub enum CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
8595    Automatic,
8596    Instant,
8597    Microdeposits,
8598}
8599
8600impl CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
8601    pub fn as_str(self) -> &'static str {
8602        match self {
8603            CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Automatic => "automatic",
8604            CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Instant => "instant",
8605            CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Microdeposits => "microdeposits",
8606        }
8607    }
8608}
8609
8610impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
8611    fn as_ref(&self) -> &str {
8612        self.as_str()
8613    }
8614}
8615
8616impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
8617    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8618        self.as_str().fmt(f)
8619    }
8620}
8621impl std::default::Default
8622    for CreatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod
8623{
8624    fn default() -> Self {
8625        Self::Automatic
8626    }
8627}
8628
8629/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsWechatPay`'s `client` field.
8630#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8631#[serde(rename_all = "snake_case")]
8632pub enum CreatePaymentIntentPaymentMethodOptionsWechatPayClient {
8633    Android,
8634    Ios,
8635    Web,
8636}
8637
8638impl CreatePaymentIntentPaymentMethodOptionsWechatPayClient {
8639    pub fn as_str(self) -> &'static str {
8640        match self {
8641            CreatePaymentIntentPaymentMethodOptionsWechatPayClient::Android => "android",
8642            CreatePaymentIntentPaymentMethodOptionsWechatPayClient::Ios => "ios",
8643            CreatePaymentIntentPaymentMethodOptionsWechatPayClient::Web => "web",
8644        }
8645    }
8646}
8647
8648impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsWechatPayClient {
8649    fn as_ref(&self) -> &str {
8650        self.as_str()
8651    }
8652}
8653
8654impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsWechatPayClient {
8655    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8656        self.as_str().fmt(f)
8657    }
8658}
8659impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsWechatPayClient {
8660    fn default() -> Self {
8661        Self::Android
8662    }
8663}
8664
8665/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsWechatPay`'s `setup_future_usage` field.
8666#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8667#[serde(rename_all = "snake_case")]
8668pub enum CreatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
8669    None,
8670}
8671
8672impl CreatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
8673    pub fn as_str(self) -> &'static str {
8674        match self {
8675            CreatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage::None => "none",
8676        }
8677    }
8678}
8679
8680impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
8681    fn as_ref(&self) -> &str {
8682        self.as_str()
8683    }
8684}
8685
8686impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
8687    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8688        self.as_str().fmt(f)
8689    }
8690}
8691impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
8692    fn default() -> Self {
8693        Self::None
8694    }
8695}
8696
8697/// An enum representing the possible values of an `CreatePaymentIntentPaymentMethodOptionsZip`'s `setup_future_usage` field.
8698#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8699#[serde(rename_all = "snake_case")]
8700pub enum CreatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
8701    None,
8702}
8703
8704impl CreatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
8705    pub fn as_str(self) -> &'static str {
8706        match self {
8707            CreatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage::None => "none",
8708        }
8709    }
8710}
8711
8712impl AsRef<str> for CreatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
8713    fn as_ref(&self) -> &str {
8714        self.as_str()
8715    }
8716}
8717
8718impl std::fmt::Display for CreatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
8719    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8720        self.as_str().fmt(f)
8721    }
8722}
8723impl std::default::Default for CreatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
8724    fn default() -> Self {
8725        Self::None
8726    }
8727}
8728
8729/// An enum representing the possible values of an `FundingInstructionsBankTransferFinancialAddress`'s `supported_networks` field.
8730#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8731#[serde(rename_all = "snake_case")]
8732pub enum FundingInstructionsBankTransferFinancialAddressSupportedNetworks {
8733    Ach,
8734    Bacs,
8735    DomesticWireUs,
8736    Fps,
8737    Sepa,
8738    Spei,
8739    Swift,
8740    Zengin,
8741}
8742
8743impl FundingInstructionsBankTransferFinancialAddressSupportedNetworks {
8744    pub fn as_str(self) -> &'static str {
8745        match self {
8746            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::Ach => "ach",
8747            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::Bacs => "bacs",
8748            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::DomesticWireUs => {
8749                "domestic_wire_us"
8750            }
8751            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::Fps => "fps",
8752            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::Sepa => "sepa",
8753            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::Spei => "spei",
8754            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::Swift => "swift",
8755            FundingInstructionsBankTransferFinancialAddressSupportedNetworks::Zengin => "zengin",
8756        }
8757    }
8758}
8759
8760impl AsRef<str> for FundingInstructionsBankTransferFinancialAddressSupportedNetworks {
8761    fn as_ref(&self) -> &str {
8762        self.as_str()
8763    }
8764}
8765
8766impl std::fmt::Display for FundingInstructionsBankTransferFinancialAddressSupportedNetworks {
8767    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8768        self.as_str().fmt(f)
8769    }
8770}
8771impl std::default::Default for FundingInstructionsBankTransferFinancialAddressSupportedNetworks {
8772    fn default() -> Self {
8773        Self::Ach
8774    }
8775}
8776
8777/// An enum representing the possible values of an `FundingInstructionsBankTransferFinancialAddress`'s `type` field.
8778#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8779#[serde(rename_all = "snake_case")]
8780pub enum FundingInstructionsBankTransferFinancialAddressType {
8781    Aba,
8782    Iban,
8783    SortCode,
8784    Spei,
8785    Swift,
8786    Zengin,
8787}
8788
8789impl FundingInstructionsBankTransferFinancialAddressType {
8790    pub fn as_str(self) -> &'static str {
8791        match self {
8792            FundingInstructionsBankTransferFinancialAddressType::Aba => "aba",
8793            FundingInstructionsBankTransferFinancialAddressType::Iban => "iban",
8794            FundingInstructionsBankTransferFinancialAddressType::SortCode => "sort_code",
8795            FundingInstructionsBankTransferFinancialAddressType::Spei => "spei",
8796            FundingInstructionsBankTransferFinancialAddressType::Swift => "swift",
8797            FundingInstructionsBankTransferFinancialAddressType::Zengin => "zengin",
8798        }
8799    }
8800}
8801
8802impl AsRef<str> for FundingInstructionsBankTransferFinancialAddressType {
8803    fn as_ref(&self) -> &str {
8804        self.as_str()
8805    }
8806}
8807
8808impl std::fmt::Display for FundingInstructionsBankTransferFinancialAddressType {
8809    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8810        self.as_str().fmt(f)
8811    }
8812}
8813impl std::default::Default for FundingInstructionsBankTransferFinancialAddressType {
8814    fn default() -> Self {
8815        Self::Aba
8816    }
8817}
8818
8819/// An enum representing the possible values of an `PaymentFlowsAutomaticPaymentMethodsPaymentIntent`'s `allow_redirects` field.
8820#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8821#[serde(rename_all = "snake_case")]
8822pub enum PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects {
8823    Always,
8824    Never,
8825}
8826
8827impl PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects {
8828    pub fn as_str(self) -> &'static str {
8829        match self {
8830            PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects::Always => "always",
8831            PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects::Never => "never",
8832        }
8833    }
8834}
8835
8836impl AsRef<str> for PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects {
8837    fn as_ref(&self) -> &str {
8838        self.as_str()
8839    }
8840}
8841
8842impl std::fmt::Display for PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects {
8843    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8844        self.as_str().fmt(f)
8845    }
8846}
8847impl std::default::Default for PaymentFlowsAutomaticPaymentMethodsPaymentIntentAllowRedirects {
8848    fn default() -> Self {
8849        Self::Always
8850    }
8851}
8852
8853/// An enum representing the possible values of an `PaymentIntent`'s `cancellation_reason` field.
8854#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8855#[serde(rename_all = "snake_case")]
8856pub enum PaymentIntentCancellationReason {
8857    Abandoned,
8858    Automatic,
8859    Duplicate,
8860    FailedInvoice,
8861    Fraudulent,
8862    RequestedByCustomer,
8863    VoidInvoice,
8864}
8865
8866impl PaymentIntentCancellationReason {
8867    pub fn as_str(self) -> &'static str {
8868        match self {
8869            PaymentIntentCancellationReason::Abandoned => "abandoned",
8870            PaymentIntentCancellationReason::Automatic => "automatic",
8871            PaymentIntentCancellationReason::Duplicate => "duplicate",
8872            PaymentIntentCancellationReason::FailedInvoice => "failed_invoice",
8873            PaymentIntentCancellationReason::Fraudulent => "fraudulent",
8874            PaymentIntentCancellationReason::RequestedByCustomer => "requested_by_customer",
8875            PaymentIntentCancellationReason::VoidInvoice => "void_invoice",
8876        }
8877    }
8878}
8879
8880impl AsRef<str> for PaymentIntentCancellationReason {
8881    fn as_ref(&self) -> &str {
8882        self.as_str()
8883    }
8884}
8885
8886impl std::fmt::Display for PaymentIntentCancellationReason {
8887    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8888        self.as_str().fmt(f)
8889    }
8890}
8891impl std::default::Default for PaymentIntentCancellationReason {
8892    fn default() -> Self {
8893        Self::Abandoned
8894    }
8895}
8896
8897/// An enum representing the possible values of an `PaymentIntent`'s `capture_method` field.
8898#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8899#[serde(rename_all = "snake_case")]
8900pub enum PaymentIntentCaptureMethod {
8901    Automatic,
8902    AutomaticAsync,
8903    Manual,
8904}
8905
8906impl PaymentIntentCaptureMethod {
8907    pub fn as_str(self) -> &'static str {
8908        match self {
8909            PaymentIntentCaptureMethod::Automatic => "automatic",
8910            PaymentIntentCaptureMethod::AutomaticAsync => "automatic_async",
8911            PaymentIntentCaptureMethod::Manual => "manual",
8912        }
8913    }
8914}
8915
8916impl AsRef<str> for PaymentIntentCaptureMethod {
8917    fn as_ref(&self) -> &str {
8918        self.as_str()
8919    }
8920}
8921
8922impl std::fmt::Display for PaymentIntentCaptureMethod {
8923    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8924        self.as_str().fmt(f)
8925    }
8926}
8927impl std::default::Default for PaymentIntentCaptureMethod {
8928    fn default() -> Self {
8929        Self::Automatic
8930    }
8931}
8932
8933/// An enum representing the possible values of an `PaymentIntent`'s `confirmation_method` field.
8934#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8935#[serde(rename_all = "snake_case")]
8936pub enum PaymentIntentConfirmationMethod {
8937    Automatic,
8938    Manual,
8939}
8940
8941impl PaymentIntentConfirmationMethod {
8942    pub fn as_str(self) -> &'static str {
8943        match self {
8944            PaymentIntentConfirmationMethod::Automatic => "automatic",
8945            PaymentIntentConfirmationMethod::Manual => "manual",
8946        }
8947    }
8948}
8949
8950impl AsRef<str> for PaymentIntentConfirmationMethod {
8951    fn as_ref(&self) -> &str {
8952        self.as_str()
8953    }
8954}
8955
8956impl std::fmt::Display for PaymentIntentConfirmationMethod {
8957    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8958        self.as_str().fmt(f)
8959    }
8960}
8961impl std::default::Default for PaymentIntentConfirmationMethod {
8962    fn default() -> Self {
8963        Self::Automatic
8964    }
8965}
8966
8967/// An enum representing the possible values of an `PaymentIntentNextActionDisplayBankTransferInstructions`'s `type` field.
8968#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
8969#[serde(rename_all = "snake_case")]
8970pub enum PaymentIntentNextActionDisplayBankTransferInstructionsType {
8971    EuBankTransfer,
8972    GbBankTransfer,
8973    JpBankTransfer,
8974    MxBankTransfer,
8975    UsBankTransfer,
8976}
8977
8978impl PaymentIntentNextActionDisplayBankTransferInstructionsType {
8979    pub fn as_str(self) -> &'static str {
8980        match self {
8981            PaymentIntentNextActionDisplayBankTransferInstructionsType::EuBankTransfer => {
8982                "eu_bank_transfer"
8983            }
8984            PaymentIntentNextActionDisplayBankTransferInstructionsType::GbBankTransfer => {
8985                "gb_bank_transfer"
8986            }
8987            PaymentIntentNextActionDisplayBankTransferInstructionsType::JpBankTransfer => {
8988                "jp_bank_transfer"
8989            }
8990            PaymentIntentNextActionDisplayBankTransferInstructionsType::MxBankTransfer => {
8991                "mx_bank_transfer"
8992            }
8993            PaymentIntentNextActionDisplayBankTransferInstructionsType::UsBankTransfer => {
8994                "us_bank_transfer"
8995            }
8996        }
8997    }
8998}
8999
9000impl AsRef<str> for PaymentIntentNextActionDisplayBankTransferInstructionsType {
9001    fn as_ref(&self) -> &str {
9002        self.as_str()
9003    }
9004}
9005
9006impl std::fmt::Display for PaymentIntentNextActionDisplayBankTransferInstructionsType {
9007    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9008        self.as_str().fmt(f)
9009    }
9010}
9011impl std::default::Default for PaymentIntentNextActionDisplayBankTransferInstructionsType {
9012    fn default() -> Self {
9013        Self::EuBankTransfer
9014    }
9015}
9016
9017/// An enum representing the possible values of an `PaymentIntentNextActionVerifyWithMicrodeposits`'s `microdeposit_type` field.
9018#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9019#[serde(rename_all = "snake_case")]
9020pub enum PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType {
9021    Amounts,
9022    DescriptorCode,
9023}
9024
9025impl PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType {
9026    pub fn as_str(self) -> &'static str {
9027        match self {
9028            PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType::Amounts => "amounts",
9029            PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType::DescriptorCode => {
9030                "descriptor_code"
9031            }
9032        }
9033    }
9034}
9035
9036impl AsRef<str> for PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType {
9037    fn as_ref(&self) -> &str {
9038        self.as_str()
9039    }
9040}
9041
9042impl std::fmt::Display for PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType {
9043    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9044        self.as_str().fmt(f)
9045    }
9046}
9047impl std::default::Default for PaymentIntentNextActionVerifyWithMicrodepositsMicrodepositType {
9048    fn default() -> Self {
9049        Self::Amounts
9050    }
9051}
9052
9053/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsAcssDebit`'s `setup_future_usage` field.
9054#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9055#[serde(rename_all = "snake_case")]
9056pub enum PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
9057    None,
9058    OffSession,
9059    OnSession,
9060}
9061
9062impl PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
9063    pub fn as_str(self) -> &'static str {
9064        match self {
9065            PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::None => "none",
9066            PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::OffSession => "off_session",
9067            PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::OnSession => "on_session",
9068        }
9069    }
9070}
9071
9072impl AsRef<str> for PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
9073    fn as_ref(&self) -> &str {
9074        self.as_str()
9075    }
9076}
9077
9078impl std::fmt::Display for PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
9079    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9080        self.as_str().fmt(f)
9081    }
9082}
9083impl std::default::Default for PaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
9084    fn default() -> Self {
9085        Self::None
9086    }
9087}
9088
9089/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsAcssDebit`'s `verification_method` field.
9090#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9091#[serde(rename_all = "snake_case")]
9092pub enum PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
9093    Automatic,
9094    Instant,
9095    Microdeposits,
9096}
9097
9098impl PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
9099    pub fn as_str(self) -> &'static str {
9100        match self {
9101            PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Automatic => "automatic",
9102            PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Instant => "instant",
9103            PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Microdeposits => {
9104                "microdeposits"
9105            }
9106        }
9107    }
9108}
9109
9110impl AsRef<str> for PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
9111    fn as_ref(&self) -> &str {
9112        self.as_str()
9113    }
9114}
9115
9116impl std::fmt::Display for PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
9117    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9118        self.as_str().fmt(f)
9119    }
9120}
9121impl std::default::Default for PaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
9122    fn default() -> Self {
9123        Self::Automatic
9124    }
9125}
9126
9127/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsAuBecsDebit`'s `setup_future_usage` field.
9128#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9129#[serde(rename_all = "snake_case")]
9130pub enum PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
9131    None,
9132    OffSession,
9133    OnSession,
9134}
9135
9136impl PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
9137    pub fn as_str(self) -> &'static str {
9138        match self {
9139            PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::None => "none",
9140            PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::OffSession => {
9141                "off_session"
9142            }
9143            PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::OnSession => "on_session",
9144        }
9145    }
9146}
9147
9148impl AsRef<str> for PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
9149    fn as_ref(&self) -> &str {
9150        self.as_str()
9151    }
9152}
9153
9154impl std::fmt::Display for PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
9155    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9156        self.as_str().fmt(f)
9157    }
9158}
9159impl std::default::Default for PaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
9160    fn default() -> Self {
9161        Self::None
9162    }
9163}
9164
9165/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsBlik`'s `setup_future_usage` field.
9166#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9167#[serde(rename_all = "snake_case")]
9168pub enum PaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
9169    None,
9170}
9171
9172impl PaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
9173    pub fn as_str(self) -> &'static str {
9174        match self {
9175            PaymentIntentPaymentMethodOptionsBlikSetupFutureUsage::None => "none",
9176        }
9177    }
9178}
9179
9180impl AsRef<str> for PaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
9181    fn as_ref(&self) -> &str {
9182        self.as_str()
9183    }
9184}
9185
9186impl std::fmt::Display for PaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
9187    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9188        self.as_str().fmt(f)
9189    }
9190}
9191impl std::default::Default for PaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
9192    fn default() -> Self {
9193        Self::None
9194    }
9195}
9196
9197/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `capture_method` field.
9198#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9199#[serde(rename_all = "snake_case")]
9200pub enum PaymentIntentPaymentMethodOptionsCardCaptureMethod {
9201    Manual,
9202}
9203
9204impl PaymentIntentPaymentMethodOptionsCardCaptureMethod {
9205    pub fn as_str(self) -> &'static str {
9206        match self {
9207            PaymentIntentPaymentMethodOptionsCardCaptureMethod::Manual => "manual",
9208        }
9209    }
9210}
9211
9212impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardCaptureMethod {
9213    fn as_ref(&self) -> &str {
9214        self.as_str()
9215    }
9216}
9217
9218impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardCaptureMethod {
9219    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9220        self.as_str().fmt(f)
9221    }
9222}
9223impl std::default::Default for PaymentIntentPaymentMethodOptionsCardCaptureMethod {
9224    fn default() -> Self {
9225        Self::Manual
9226    }
9227}
9228
9229/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `network` field.
9230#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9231#[serde(rename_all = "snake_case")]
9232pub enum PaymentIntentPaymentMethodOptionsCardNetwork {
9233    Amex,
9234    CartesBancaires,
9235    Diners,
9236    Discover,
9237    EftposAu,
9238    Interac,
9239    Jcb,
9240    Mastercard,
9241    Unionpay,
9242    Unknown,
9243    Visa,
9244}
9245
9246impl PaymentIntentPaymentMethodOptionsCardNetwork {
9247    pub fn as_str(self) -> &'static str {
9248        match self {
9249            PaymentIntentPaymentMethodOptionsCardNetwork::Amex => "amex",
9250            PaymentIntentPaymentMethodOptionsCardNetwork::CartesBancaires => "cartes_bancaires",
9251            PaymentIntentPaymentMethodOptionsCardNetwork::Diners => "diners",
9252            PaymentIntentPaymentMethodOptionsCardNetwork::Discover => "discover",
9253            PaymentIntentPaymentMethodOptionsCardNetwork::EftposAu => "eftpos_au",
9254            PaymentIntentPaymentMethodOptionsCardNetwork::Interac => "interac",
9255            PaymentIntentPaymentMethodOptionsCardNetwork::Jcb => "jcb",
9256            PaymentIntentPaymentMethodOptionsCardNetwork::Mastercard => "mastercard",
9257            PaymentIntentPaymentMethodOptionsCardNetwork::Unionpay => "unionpay",
9258            PaymentIntentPaymentMethodOptionsCardNetwork::Unknown => "unknown",
9259            PaymentIntentPaymentMethodOptionsCardNetwork::Visa => "visa",
9260        }
9261    }
9262}
9263
9264impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardNetwork {
9265    fn as_ref(&self) -> &str {
9266        self.as_str()
9267    }
9268}
9269
9270impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardNetwork {
9271    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9272        self.as_str().fmt(f)
9273    }
9274}
9275impl std::default::Default for PaymentIntentPaymentMethodOptionsCardNetwork {
9276    fn default() -> Self {
9277        Self::Amex
9278    }
9279}
9280
9281/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `request_extended_authorization` field.
9282#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9283#[serde(rename_all = "snake_case")]
9284pub enum PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
9285    IfAvailable,
9286    Never,
9287}
9288
9289impl PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
9290    pub fn as_str(self) -> &'static str {
9291        match self {
9292            PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization::IfAvailable => {
9293                "if_available"
9294            }
9295            PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization::Never => "never",
9296        }
9297    }
9298}
9299
9300impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
9301    fn as_ref(&self) -> &str {
9302        self.as_str()
9303    }
9304}
9305
9306impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
9307    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9308        self.as_str().fmt(f)
9309    }
9310}
9311impl std::default::Default for PaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
9312    fn default() -> Self {
9313        Self::IfAvailable
9314    }
9315}
9316
9317/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `request_incremental_authorization` field.
9318#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9319#[serde(rename_all = "snake_case")]
9320pub enum PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
9321    IfAvailable,
9322    Never,
9323}
9324
9325impl PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
9326    pub fn as_str(self) -> &'static str {
9327        match self {
9328            PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization::IfAvailable => {
9329                "if_available"
9330            }
9331            PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization::Never => "never",
9332        }
9333    }
9334}
9335
9336impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
9337    fn as_ref(&self) -> &str {
9338        self.as_str()
9339    }
9340}
9341
9342impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
9343    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9344        self.as_str().fmt(f)
9345    }
9346}
9347impl std::default::Default
9348    for PaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization
9349{
9350    fn default() -> Self {
9351        Self::IfAvailable
9352    }
9353}
9354
9355/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `request_multicapture` field.
9356#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9357#[serde(rename_all = "snake_case")]
9358pub enum PaymentIntentPaymentMethodOptionsCardRequestMulticapture {
9359    IfAvailable,
9360    Never,
9361}
9362
9363impl PaymentIntentPaymentMethodOptionsCardRequestMulticapture {
9364    pub fn as_str(self) -> &'static str {
9365        match self {
9366            PaymentIntentPaymentMethodOptionsCardRequestMulticapture::IfAvailable => "if_available",
9367            PaymentIntentPaymentMethodOptionsCardRequestMulticapture::Never => "never",
9368        }
9369    }
9370}
9371
9372impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardRequestMulticapture {
9373    fn as_ref(&self) -> &str {
9374        self.as_str()
9375    }
9376}
9377
9378impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardRequestMulticapture {
9379    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9380        self.as_str().fmt(f)
9381    }
9382}
9383impl std::default::Default for PaymentIntentPaymentMethodOptionsCardRequestMulticapture {
9384    fn default() -> Self {
9385        Self::IfAvailable
9386    }
9387}
9388
9389/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `request_overcapture` field.
9390#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9391#[serde(rename_all = "snake_case")]
9392pub enum PaymentIntentPaymentMethodOptionsCardRequestOvercapture {
9393    IfAvailable,
9394    Never,
9395}
9396
9397impl PaymentIntentPaymentMethodOptionsCardRequestOvercapture {
9398    pub fn as_str(self) -> &'static str {
9399        match self {
9400            PaymentIntentPaymentMethodOptionsCardRequestOvercapture::IfAvailable => "if_available",
9401            PaymentIntentPaymentMethodOptionsCardRequestOvercapture::Never => "never",
9402        }
9403    }
9404}
9405
9406impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardRequestOvercapture {
9407    fn as_ref(&self) -> &str {
9408        self.as_str()
9409    }
9410}
9411
9412impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardRequestOvercapture {
9413    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9414        self.as_str().fmt(f)
9415    }
9416}
9417impl std::default::Default for PaymentIntentPaymentMethodOptionsCardRequestOvercapture {
9418    fn default() -> Self {
9419        Self::IfAvailable
9420    }
9421}
9422
9423/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `request_three_d_secure` field.
9424#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9425#[serde(rename_all = "snake_case")]
9426pub enum PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
9427    Any,
9428    Automatic,
9429    Challenge,
9430}
9431
9432impl PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
9433    pub fn as_str(self) -> &'static str {
9434        match self {
9435            PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Any => "any",
9436            PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Automatic => "automatic",
9437            PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Challenge => "challenge",
9438        }
9439    }
9440}
9441
9442impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
9443    fn as_ref(&self) -> &str {
9444        self.as_str()
9445    }
9446}
9447
9448impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
9449    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9450        self.as_str().fmt(f)
9451    }
9452}
9453impl std::default::Default for PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
9454    fn default() -> Self {
9455        Self::Any
9456    }
9457}
9458
9459/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsCard`'s `setup_future_usage` field.
9460#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9461#[serde(rename_all = "snake_case")]
9462pub enum PaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
9463    None,
9464    OffSession,
9465    OnSession,
9466}
9467
9468impl PaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
9469    pub fn as_str(self) -> &'static str {
9470        match self {
9471            PaymentIntentPaymentMethodOptionsCardSetupFutureUsage::None => "none",
9472            PaymentIntentPaymentMethodOptionsCardSetupFutureUsage::OffSession => "off_session",
9473            PaymentIntentPaymentMethodOptionsCardSetupFutureUsage::OnSession => "on_session",
9474        }
9475    }
9476}
9477
9478impl AsRef<str> for PaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
9479    fn as_ref(&self) -> &str {
9480        self.as_str()
9481    }
9482}
9483
9484impl std::fmt::Display for PaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
9485    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9486        self.as_str().fmt(f)
9487    }
9488}
9489impl std::default::Default for PaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
9490    fn default() -> Self {
9491        Self::None
9492    }
9493}
9494
9495/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsEps`'s `setup_future_usage` field.
9496#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9497#[serde(rename_all = "snake_case")]
9498pub enum PaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
9499    None,
9500}
9501
9502impl PaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
9503    pub fn as_str(self) -> &'static str {
9504        match self {
9505            PaymentIntentPaymentMethodOptionsEpsSetupFutureUsage::None => "none",
9506        }
9507    }
9508}
9509
9510impl AsRef<str> for PaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
9511    fn as_ref(&self) -> &str {
9512        self.as_str()
9513    }
9514}
9515
9516impl std::fmt::Display for PaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
9517    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9518        self.as_str().fmt(f)
9519    }
9520}
9521impl std::default::Default for PaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
9522    fn default() -> Self {
9523        Self::None
9524    }
9525}
9526
9527/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsLink`'s `capture_method` field.
9528#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9529#[serde(rename_all = "snake_case")]
9530pub enum PaymentIntentPaymentMethodOptionsLinkCaptureMethod {
9531    Manual,
9532}
9533
9534impl PaymentIntentPaymentMethodOptionsLinkCaptureMethod {
9535    pub fn as_str(self) -> &'static str {
9536        match self {
9537            PaymentIntentPaymentMethodOptionsLinkCaptureMethod::Manual => "manual",
9538        }
9539    }
9540}
9541
9542impl AsRef<str> for PaymentIntentPaymentMethodOptionsLinkCaptureMethod {
9543    fn as_ref(&self) -> &str {
9544        self.as_str()
9545    }
9546}
9547
9548impl std::fmt::Display for PaymentIntentPaymentMethodOptionsLinkCaptureMethod {
9549    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9550        self.as_str().fmt(f)
9551    }
9552}
9553impl std::default::Default for PaymentIntentPaymentMethodOptionsLinkCaptureMethod {
9554    fn default() -> Self {
9555        Self::Manual
9556    }
9557}
9558
9559/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsLink`'s `setup_future_usage` field.
9560#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9561#[serde(rename_all = "snake_case")]
9562pub enum PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
9563    None,
9564    OffSession,
9565}
9566
9567impl PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
9568    pub fn as_str(self) -> &'static str {
9569        match self {
9570            PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage::None => "none",
9571            PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage::OffSession => "off_session",
9572        }
9573    }
9574}
9575
9576impl AsRef<str> for PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
9577    fn as_ref(&self) -> &str {
9578        self.as_str()
9579    }
9580}
9581
9582impl std::fmt::Display for PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
9583    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9584        self.as_str().fmt(f)
9585    }
9586}
9587impl std::default::Default for PaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
9588    fn default() -> Self {
9589        Self::None
9590    }
9591}
9592
9593/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebit`'s `payment_schedule` field.
9594#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9595#[serde(rename_all = "snake_case")]
9596pub enum PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule {
9597    Combined,
9598    Interval,
9599    Sporadic,
9600}
9601
9602impl PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule {
9603    pub fn as_str(self) -> &'static str {
9604        match self {
9605            PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule::Combined => {
9606                "combined"
9607            }
9608            PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule::Interval => {
9609                "interval"
9610            }
9611            PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule::Sporadic => {
9612                "sporadic"
9613            }
9614        }
9615    }
9616}
9617
9618impl AsRef<str> for PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule {
9619    fn as_ref(&self) -> &str {
9620        self.as_str()
9621    }
9622}
9623
9624impl std::fmt::Display for PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule {
9625    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9626        self.as_str().fmt(f)
9627    }
9628}
9629impl std::default::Default
9630    for PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitPaymentSchedule
9631{
9632    fn default() -> Self {
9633        Self::Combined
9634    }
9635}
9636
9637/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebit`'s `transaction_type` field.
9638#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9639#[serde(rename_all = "snake_case")]
9640pub enum PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType {
9641    Business,
9642    Personal,
9643}
9644
9645impl PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType {
9646    pub fn as_str(self) -> &'static str {
9647        match self {
9648            PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType::Business => {
9649                "business"
9650            }
9651            PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType::Personal => {
9652                "personal"
9653            }
9654        }
9655    }
9656}
9657
9658impl AsRef<str> for PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType {
9659    fn as_ref(&self) -> &str {
9660        self.as_str()
9661    }
9662}
9663
9664impl std::fmt::Display for PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType {
9665    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9666        self.as_str().fmt(f)
9667    }
9668}
9669impl std::default::Default
9670    for PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebitTransactionType
9671{
9672    fn default() -> Self {
9673        Self::Business
9674    }
9675}
9676
9677/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsSepaDebit`'s `setup_future_usage` field.
9678#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9679#[serde(rename_all = "snake_case")]
9680pub enum PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
9681    None,
9682    OffSession,
9683    OnSession,
9684}
9685
9686impl PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
9687    pub fn as_str(self) -> &'static str {
9688        match self {
9689            PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::None => "none",
9690            PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::OffSession => "off_session",
9691            PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::OnSession => "on_session",
9692        }
9693    }
9694}
9695
9696impl AsRef<str> for PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
9697    fn as_ref(&self) -> &str {
9698        self.as_str()
9699    }
9700}
9701
9702impl std::fmt::Display for PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
9703    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9704        self.as_str().fmt(f)
9705    }
9706}
9707impl std::default::Default for PaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
9708    fn default() -> Self {
9709        Self::None
9710    }
9711}
9712
9713/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsSwish`'s `setup_future_usage` field.
9714#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9715#[serde(rename_all = "snake_case")]
9716pub enum PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
9717    None,
9718}
9719
9720impl PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
9721    pub fn as_str(self) -> &'static str {
9722        match self {
9723            PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage::None => "none",
9724        }
9725    }
9726}
9727
9728impl AsRef<str> for PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
9729    fn as_ref(&self) -> &str {
9730        self.as_str()
9731    }
9732}
9733
9734impl std::fmt::Display for PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
9735    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9736        self.as_str().fmt(f)
9737    }
9738}
9739impl std::default::Default for PaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
9740    fn default() -> Self {
9741        Self::None
9742    }
9743}
9744
9745/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsUsBankAccount`'s `preferred_settlement_speed` field.
9746#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9747#[serde(rename_all = "snake_case")]
9748pub enum PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
9749    Fastest,
9750    Standard,
9751}
9752
9753impl PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
9754    pub fn as_str(self) -> &'static str {
9755        match self {
9756            PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed::Fastest => {
9757                "fastest"
9758            }
9759            PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed::Standard => {
9760                "standard"
9761            }
9762        }
9763    }
9764}
9765
9766impl AsRef<str> for PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
9767    fn as_ref(&self) -> &str {
9768        self.as_str()
9769    }
9770}
9771
9772impl std::fmt::Display for PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
9773    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9774        self.as_str().fmt(f)
9775    }
9776}
9777impl std::default::Default
9778    for PaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed
9779{
9780    fn default() -> Self {
9781        Self::Fastest
9782    }
9783}
9784
9785/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsUsBankAccount`'s `setup_future_usage` field.
9786#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9787#[serde(rename_all = "snake_case")]
9788pub enum PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
9789    None,
9790    OffSession,
9791    OnSession,
9792}
9793
9794impl PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
9795    pub fn as_str(self) -> &'static str {
9796        match self {
9797            PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::None => "none",
9798            PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::OffSession => {
9799                "off_session"
9800            }
9801            PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::OnSession => {
9802                "on_session"
9803            }
9804        }
9805    }
9806}
9807
9808impl AsRef<str> for PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
9809    fn as_ref(&self) -> &str {
9810        self.as_str()
9811    }
9812}
9813
9814impl std::fmt::Display for PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
9815    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9816        self.as_str().fmt(f)
9817    }
9818}
9819impl std::default::Default for PaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
9820    fn default() -> Self {
9821        Self::None
9822    }
9823}
9824
9825/// An enum representing the possible values of an `PaymentIntentPaymentMethodOptionsUsBankAccount`'s `verification_method` field.
9826#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9827#[serde(rename_all = "snake_case")]
9828pub enum PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
9829    Automatic,
9830    Instant,
9831    Microdeposits,
9832}
9833
9834impl PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
9835    pub fn as_str(self) -> &'static str {
9836        match self {
9837            PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Automatic => {
9838                "automatic"
9839            }
9840            PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Instant => "instant",
9841            PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Microdeposits => {
9842                "microdeposits"
9843            }
9844        }
9845    }
9846}
9847
9848impl AsRef<str> for PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
9849    fn as_ref(&self) -> &str {
9850        self.as_str()
9851    }
9852}
9853
9854impl std::fmt::Display for PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
9855    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9856        self.as_str().fmt(f)
9857    }
9858}
9859impl std::default::Default for PaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
9860    fn default() -> Self {
9861        Self::Automatic
9862    }
9863}
9864
9865/// An enum representing the possible values of an `PaymentIntentProcessing`'s `type` field.
9866#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9867#[serde(rename_all = "snake_case")]
9868pub enum PaymentIntentProcessingType {
9869    Card,
9870}
9871
9872impl PaymentIntentProcessingType {
9873    pub fn as_str(self) -> &'static str {
9874        match self {
9875            PaymentIntentProcessingType::Card => "card",
9876        }
9877    }
9878}
9879
9880impl AsRef<str> for PaymentIntentProcessingType {
9881    fn as_ref(&self) -> &str {
9882        self.as_str()
9883    }
9884}
9885
9886impl std::fmt::Display for PaymentIntentProcessingType {
9887    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9888        self.as_str().fmt(f)
9889    }
9890}
9891impl std::default::Default for PaymentIntentProcessingType {
9892    fn default() -> Self {
9893        Self::Card
9894    }
9895}
9896
9897/// An enum representing the possible values of an `PaymentIntent`'s `setup_future_usage` field.
9898#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9899#[serde(rename_all = "snake_case")]
9900pub enum PaymentIntentSetupFutureUsage {
9901    OffSession,
9902    OnSession,
9903}
9904
9905impl PaymentIntentSetupFutureUsage {
9906    pub fn as_str(self) -> &'static str {
9907        match self {
9908            PaymentIntentSetupFutureUsage::OffSession => "off_session",
9909            PaymentIntentSetupFutureUsage::OnSession => "on_session",
9910        }
9911    }
9912}
9913
9914impl AsRef<str> for PaymentIntentSetupFutureUsage {
9915    fn as_ref(&self) -> &str {
9916        self.as_str()
9917    }
9918}
9919
9920impl std::fmt::Display for PaymentIntentSetupFutureUsage {
9921    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9922        self.as_str().fmt(f)
9923    }
9924}
9925impl std::default::Default for PaymentIntentSetupFutureUsage {
9926    fn default() -> Self {
9927        Self::OffSession
9928    }
9929}
9930
9931/// An enum representing the possible values of an `UpdatePaymentIntent`'s `setup_future_usage` field.
9932#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9933#[serde(rename_all = "snake_case")]
9934pub enum PaymentIntentSetupFutureUsageFilter {
9935    OffSession,
9936    OnSession,
9937}
9938
9939impl PaymentIntentSetupFutureUsageFilter {
9940    pub fn as_str(self) -> &'static str {
9941        match self {
9942            PaymentIntentSetupFutureUsageFilter::OffSession => "off_session",
9943            PaymentIntentSetupFutureUsageFilter::OnSession => "on_session",
9944        }
9945    }
9946}
9947
9948impl AsRef<str> for PaymentIntentSetupFutureUsageFilter {
9949    fn as_ref(&self) -> &str {
9950        self.as_str()
9951    }
9952}
9953
9954impl std::fmt::Display for PaymentIntentSetupFutureUsageFilter {
9955    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
9956        self.as_str().fmt(f)
9957    }
9958}
9959impl std::default::Default for PaymentIntentSetupFutureUsageFilter {
9960    fn default() -> Self {
9961        Self::OffSession
9962    }
9963}
9964
9965/// An enum representing the possible values of an `PaymentIntent`'s `status` field.
9966#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
9967#[serde(rename_all = "snake_case")]
9968pub enum PaymentIntentStatus {
9969    Canceled,
9970    Processing,
9971    RequiresAction,
9972    RequiresCapture,
9973    RequiresConfirmation,
9974    RequiresPaymentMethod,
9975    Succeeded,
9976}
9977
9978impl PaymentIntentStatus {
9979    pub fn as_str(self) -> &'static str {
9980        match self {
9981            PaymentIntentStatus::Canceled => "canceled",
9982            PaymentIntentStatus::Processing => "processing",
9983            PaymentIntentStatus::RequiresAction => "requires_action",
9984            PaymentIntentStatus::RequiresCapture => "requires_capture",
9985            PaymentIntentStatus::RequiresConfirmation => "requires_confirmation",
9986            PaymentIntentStatus::RequiresPaymentMethod => "requires_payment_method",
9987            PaymentIntentStatus::Succeeded => "succeeded",
9988        }
9989    }
9990}
9991
9992impl AsRef<str> for PaymentIntentStatus {
9993    fn as_ref(&self) -> &str {
9994        self.as_str()
9995    }
9996}
9997
9998impl std::fmt::Display for PaymentIntentStatus {
9999    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10000        self.as_str().fmt(f)
10001    }
10002}
10003impl std::default::Default for PaymentIntentStatus {
10004    fn default() -> Self {
10005        Self::Canceled
10006    }
10007}
10008
10009/// An enum representing the possible values of an `PaymentMethodOptionsAffirm`'s `capture_method` field.
10010#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10011#[serde(rename_all = "snake_case")]
10012pub enum PaymentMethodOptionsAffirmCaptureMethod {
10013    Manual,
10014}
10015
10016impl PaymentMethodOptionsAffirmCaptureMethod {
10017    pub fn as_str(self) -> &'static str {
10018        match self {
10019            PaymentMethodOptionsAffirmCaptureMethod::Manual => "manual",
10020        }
10021    }
10022}
10023
10024impl AsRef<str> for PaymentMethodOptionsAffirmCaptureMethod {
10025    fn as_ref(&self) -> &str {
10026        self.as_str()
10027    }
10028}
10029
10030impl std::fmt::Display for PaymentMethodOptionsAffirmCaptureMethod {
10031    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10032        self.as_str().fmt(f)
10033    }
10034}
10035impl std::default::Default for PaymentMethodOptionsAffirmCaptureMethod {
10036    fn default() -> Self {
10037        Self::Manual
10038    }
10039}
10040
10041/// An enum representing the possible values of an `PaymentMethodOptionsAffirm`'s `setup_future_usage` field.
10042#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10043#[serde(rename_all = "snake_case")]
10044pub enum PaymentMethodOptionsAffirmSetupFutureUsage {
10045    None,
10046}
10047
10048impl PaymentMethodOptionsAffirmSetupFutureUsage {
10049    pub fn as_str(self) -> &'static str {
10050        match self {
10051            PaymentMethodOptionsAffirmSetupFutureUsage::None => "none",
10052        }
10053    }
10054}
10055
10056impl AsRef<str> for PaymentMethodOptionsAffirmSetupFutureUsage {
10057    fn as_ref(&self) -> &str {
10058        self.as_str()
10059    }
10060}
10061
10062impl std::fmt::Display for PaymentMethodOptionsAffirmSetupFutureUsage {
10063    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10064        self.as_str().fmt(f)
10065    }
10066}
10067impl std::default::Default for PaymentMethodOptionsAffirmSetupFutureUsage {
10068    fn default() -> Self {
10069        Self::None
10070    }
10071}
10072
10073/// An enum representing the possible values of an `PaymentMethodOptionsAfterpayClearpay`'s `capture_method` field.
10074#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10075#[serde(rename_all = "snake_case")]
10076pub enum PaymentMethodOptionsAfterpayClearpayCaptureMethod {
10077    Manual,
10078}
10079
10080impl PaymentMethodOptionsAfterpayClearpayCaptureMethod {
10081    pub fn as_str(self) -> &'static str {
10082        match self {
10083            PaymentMethodOptionsAfterpayClearpayCaptureMethod::Manual => "manual",
10084        }
10085    }
10086}
10087
10088impl AsRef<str> for PaymentMethodOptionsAfterpayClearpayCaptureMethod {
10089    fn as_ref(&self) -> &str {
10090        self.as_str()
10091    }
10092}
10093
10094impl std::fmt::Display for PaymentMethodOptionsAfterpayClearpayCaptureMethod {
10095    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10096        self.as_str().fmt(f)
10097    }
10098}
10099impl std::default::Default for PaymentMethodOptionsAfterpayClearpayCaptureMethod {
10100    fn default() -> Self {
10101        Self::Manual
10102    }
10103}
10104
10105/// An enum representing the possible values of an `PaymentMethodOptionsAfterpayClearpay`'s `setup_future_usage` field.
10106#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10107#[serde(rename_all = "snake_case")]
10108pub enum PaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
10109    None,
10110}
10111
10112impl PaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
10113    pub fn as_str(self) -> &'static str {
10114        match self {
10115            PaymentMethodOptionsAfterpayClearpaySetupFutureUsage::None => "none",
10116        }
10117    }
10118}
10119
10120impl AsRef<str> for PaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
10121    fn as_ref(&self) -> &str {
10122        self.as_str()
10123    }
10124}
10125
10126impl std::fmt::Display for PaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
10127    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10128        self.as_str().fmt(f)
10129    }
10130}
10131impl std::default::Default for PaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
10132    fn default() -> Self {
10133        Self::None
10134    }
10135}
10136
10137/// An enum representing the possible values of an `PaymentMethodOptionsAlipay`'s `setup_future_usage` field.
10138#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10139#[serde(rename_all = "snake_case")]
10140pub enum PaymentMethodOptionsAlipaySetupFutureUsage {
10141    None,
10142    OffSession,
10143}
10144
10145impl PaymentMethodOptionsAlipaySetupFutureUsage {
10146    pub fn as_str(self) -> &'static str {
10147        match self {
10148            PaymentMethodOptionsAlipaySetupFutureUsage::None => "none",
10149            PaymentMethodOptionsAlipaySetupFutureUsage::OffSession => "off_session",
10150        }
10151    }
10152}
10153
10154impl AsRef<str> for PaymentMethodOptionsAlipaySetupFutureUsage {
10155    fn as_ref(&self) -> &str {
10156        self.as_str()
10157    }
10158}
10159
10160impl std::fmt::Display for PaymentMethodOptionsAlipaySetupFutureUsage {
10161    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10162        self.as_str().fmt(f)
10163    }
10164}
10165impl std::default::Default for PaymentMethodOptionsAlipaySetupFutureUsage {
10166    fn default() -> Self {
10167        Self::None
10168    }
10169}
10170
10171/// An enum representing the possible values of an `PaymentMethodOptionsBacsDebit`'s `setup_future_usage` field.
10172#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10173#[serde(rename_all = "snake_case")]
10174pub enum PaymentMethodOptionsBacsDebitSetupFutureUsage {
10175    None,
10176    OffSession,
10177    OnSession,
10178}
10179
10180impl PaymentMethodOptionsBacsDebitSetupFutureUsage {
10181    pub fn as_str(self) -> &'static str {
10182        match self {
10183            PaymentMethodOptionsBacsDebitSetupFutureUsage::None => "none",
10184            PaymentMethodOptionsBacsDebitSetupFutureUsage::OffSession => "off_session",
10185            PaymentMethodOptionsBacsDebitSetupFutureUsage::OnSession => "on_session",
10186        }
10187    }
10188}
10189
10190impl AsRef<str> for PaymentMethodOptionsBacsDebitSetupFutureUsage {
10191    fn as_ref(&self) -> &str {
10192        self.as_str()
10193    }
10194}
10195
10196impl std::fmt::Display for PaymentMethodOptionsBacsDebitSetupFutureUsage {
10197    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10198        self.as_str().fmt(f)
10199    }
10200}
10201impl std::default::Default for PaymentMethodOptionsBacsDebitSetupFutureUsage {
10202    fn default() -> Self {
10203        Self::None
10204    }
10205}
10206
10207/// An enum representing the possible values of an `PaymentMethodOptionsBancontact`'s `preferred_language` field.
10208#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10209#[serde(rename_all = "snake_case")]
10210pub enum PaymentMethodOptionsBancontactPreferredLanguage {
10211    De,
10212    En,
10213    Fr,
10214    Nl,
10215}
10216
10217impl PaymentMethodOptionsBancontactPreferredLanguage {
10218    pub fn as_str(self) -> &'static str {
10219        match self {
10220            PaymentMethodOptionsBancontactPreferredLanguage::De => "de",
10221            PaymentMethodOptionsBancontactPreferredLanguage::En => "en",
10222            PaymentMethodOptionsBancontactPreferredLanguage::Fr => "fr",
10223            PaymentMethodOptionsBancontactPreferredLanguage::Nl => "nl",
10224        }
10225    }
10226}
10227
10228impl AsRef<str> for PaymentMethodOptionsBancontactPreferredLanguage {
10229    fn as_ref(&self) -> &str {
10230        self.as_str()
10231    }
10232}
10233
10234impl std::fmt::Display for PaymentMethodOptionsBancontactPreferredLanguage {
10235    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10236        self.as_str().fmt(f)
10237    }
10238}
10239impl std::default::Default for PaymentMethodOptionsBancontactPreferredLanguage {
10240    fn default() -> Self {
10241        Self::De
10242    }
10243}
10244
10245/// An enum representing the possible values of an `PaymentMethodOptionsBancontact`'s `setup_future_usage` field.
10246#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10247#[serde(rename_all = "snake_case")]
10248pub enum PaymentMethodOptionsBancontactSetupFutureUsage {
10249    None,
10250    OffSession,
10251}
10252
10253impl PaymentMethodOptionsBancontactSetupFutureUsage {
10254    pub fn as_str(self) -> &'static str {
10255        match self {
10256            PaymentMethodOptionsBancontactSetupFutureUsage::None => "none",
10257            PaymentMethodOptionsBancontactSetupFutureUsage::OffSession => "off_session",
10258        }
10259    }
10260}
10261
10262impl AsRef<str> for PaymentMethodOptionsBancontactSetupFutureUsage {
10263    fn as_ref(&self) -> &str {
10264        self.as_str()
10265    }
10266}
10267
10268impl std::fmt::Display for PaymentMethodOptionsBancontactSetupFutureUsage {
10269    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10270        self.as_str().fmt(f)
10271    }
10272}
10273impl std::default::Default for PaymentMethodOptionsBancontactSetupFutureUsage {
10274    fn default() -> Self {
10275        Self::None
10276    }
10277}
10278
10279/// An enum representing the possible values of an `PaymentMethodOptionsBoleto`'s `setup_future_usage` field.
10280#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10281#[serde(rename_all = "snake_case")]
10282pub enum PaymentMethodOptionsBoletoSetupFutureUsage {
10283    None,
10284    OffSession,
10285    OnSession,
10286}
10287
10288impl PaymentMethodOptionsBoletoSetupFutureUsage {
10289    pub fn as_str(self) -> &'static str {
10290        match self {
10291            PaymentMethodOptionsBoletoSetupFutureUsage::None => "none",
10292            PaymentMethodOptionsBoletoSetupFutureUsage::OffSession => "off_session",
10293            PaymentMethodOptionsBoletoSetupFutureUsage::OnSession => "on_session",
10294        }
10295    }
10296}
10297
10298impl AsRef<str> for PaymentMethodOptionsBoletoSetupFutureUsage {
10299    fn as_ref(&self) -> &str {
10300        self.as_str()
10301    }
10302}
10303
10304impl std::fmt::Display for PaymentMethodOptionsBoletoSetupFutureUsage {
10305    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10306        self.as_str().fmt(f)
10307    }
10308}
10309impl std::default::Default for PaymentMethodOptionsBoletoSetupFutureUsage {
10310    fn default() -> Self {
10311        Self::None
10312    }
10313}
10314
10315/// An enum representing the possible values of an `PaymentMethodOptionsCardMandateOptions`'s `amount_type` field.
10316#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10317#[serde(rename_all = "snake_case")]
10318pub enum PaymentMethodOptionsCardMandateOptionsAmountType {
10319    Fixed,
10320    Maximum,
10321}
10322
10323impl PaymentMethodOptionsCardMandateOptionsAmountType {
10324    pub fn as_str(self) -> &'static str {
10325        match self {
10326            PaymentMethodOptionsCardMandateOptionsAmountType::Fixed => "fixed",
10327            PaymentMethodOptionsCardMandateOptionsAmountType::Maximum => "maximum",
10328        }
10329    }
10330}
10331
10332impl AsRef<str> for PaymentMethodOptionsCardMandateOptionsAmountType {
10333    fn as_ref(&self) -> &str {
10334        self.as_str()
10335    }
10336}
10337
10338impl std::fmt::Display for PaymentMethodOptionsCardMandateOptionsAmountType {
10339    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10340        self.as_str().fmt(f)
10341    }
10342}
10343impl std::default::Default for PaymentMethodOptionsCardMandateOptionsAmountType {
10344    fn default() -> Self {
10345        Self::Fixed
10346    }
10347}
10348
10349/// An enum representing the possible values of an `PaymentMethodOptionsCardMandateOptions`'s `interval` field.
10350#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10351#[serde(rename_all = "snake_case")]
10352pub enum PaymentMethodOptionsCardMandateOptionsInterval {
10353    Day,
10354    Month,
10355    Sporadic,
10356    Week,
10357    Year,
10358}
10359
10360impl PaymentMethodOptionsCardMandateOptionsInterval {
10361    pub fn as_str(self) -> &'static str {
10362        match self {
10363            PaymentMethodOptionsCardMandateOptionsInterval::Day => "day",
10364            PaymentMethodOptionsCardMandateOptionsInterval::Month => "month",
10365            PaymentMethodOptionsCardMandateOptionsInterval::Sporadic => "sporadic",
10366            PaymentMethodOptionsCardMandateOptionsInterval::Week => "week",
10367            PaymentMethodOptionsCardMandateOptionsInterval::Year => "year",
10368        }
10369    }
10370}
10371
10372impl AsRef<str> for PaymentMethodOptionsCardMandateOptionsInterval {
10373    fn as_ref(&self) -> &str {
10374        self.as_str()
10375    }
10376}
10377
10378impl std::fmt::Display for PaymentMethodOptionsCardMandateOptionsInterval {
10379    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10380        self.as_str().fmt(f)
10381    }
10382}
10383impl std::default::Default for PaymentMethodOptionsCardMandateOptionsInterval {
10384    fn default() -> Self {
10385        Self::Day
10386    }
10387}
10388
10389/// An enum representing the possible values of an `PaymentMethodOptionsCardMandateOptions`'s `supported_types` field.
10390#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10391#[serde(rename_all = "snake_case")]
10392pub enum PaymentMethodOptionsCardMandateOptionsSupportedTypes {
10393    India,
10394}
10395
10396impl PaymentMethodOptionsCardMandateOptionsSupportedTypes {
10397    pub fn as_str(self) -> &'static str {
10398        match self {
10399            PaymentMethodOptionsCardMandateOptionsSupportedTypes::India => "india",
10400        }
10401    }
10402}
10403
10404impl AsRef<str> for PaymentMethodOptionsCardMandateOptionsSupportedTypes {
10405    fn as_ref(&self) -> &str {
10406        self.as_str()
10407    }
10408}
10409
10410impl std::fmt::Display for PaymentMethodOptionsCardMandateOptionsSupportedTypes {
10411    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10412        self.as_str().fmt(f)
10413    }
10414}
10415impl std::default::Default for PaymentMethodOptionsCardMandateOptionsSupportedTypes {
10416    fn default() -> Self {
10417        Self::India
10418    }
10419}
10420
10421/// An enum representing the possible values of an `PaymentMethodOptionsCashapp`'s `capture_method` field.
10422#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10423#[serde(rename_all = "snake_case")]
10424pub enum PaymentMethodOptionsCashappCaptureMethod {
10425    Manual,
10426}
10427
10428impl PaymentMethodOptionsCashappCaptureMethod {
10429    pub fn as_str(self) -> &'static str {
10430        match self {
10431            PaymentMethodOptionsCashappCaptureMethod::Manual => "manual",
10432        }
10433    }
10434}
10435
10436impl AsRef<str> for PaymentMethodOptionsCashappCaptureMethod {
10437    fn as_ref(&self) -> &str {
10438        self.as_str()
10439    }
10440}
10441
10442impl std::fmt::Display for PaymentMethodOptionsCashappCaptureMethod {
10443    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10444        self.as_str().fmt(f)
10445    }
10446}
10447impl std::default::Default for PaymentMethodOptionsCashappCaptureMethod {
10448    fn default() -> Self {
10449        Self::Manual
10450    }
10451}
10452
10453/// An enum representing the possible values of an `PaymentMethodOptionsCashapp`'s `setup_future_usage` field.
10454#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10455#[serde(rename_all = "snake_case")]
10456pub enum PaymentMethodOptionsCashappSetupFutureUsage {
10457    None,
10458    OffSession,
10459    OnSession,
10460}
10461
10462impl PaymentMethodOptionsCashappSetupFutureUsage {
10463    pub fn as_str(self) -> &'static str {
10464        match self {
10465            PaymentMethodOptionsCashappSetupFutureUsage::None => "none",
10466            PaymentMethodOptionsCashappSetupFutureUsage::OffSession => "off_session",
10467            PaymentMethodOptionsCashappSetupFutureUsage::OnSession => "on_session",
10468        }
10469    }
10470}
10471
10472impl AsRef<str> for PaymentMethodOptionsCashappSetupFutureUsage {
10473    fn as_ref(&self) -> &str {
10474        self.as_str()
10475    }
10476}
10477
10478impl std::fmt::Display for PaymentMethodOptionsCashappSetupFutureUsage {
10479    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10480        self.as_str().fmt(f)
10481    }
10482}
10483impl std::default::Default for PaymentMethodOptionsCashappSetupFutureUsage {
10484    fn default() -> Self {
10485        Self::None
10486    }
10487}
10488
10489/// An enum representing the possible values of an `PaymentMethodOptionsCustomerBalanceBankTransfer`'s `requested_address_types` field.
10490#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10491#[serde(rename_all = "snake_case")]
10492pub enum PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
10493    Aba,
10494    Iban,
10495    Sepa,
10496    SortCode,
10497    Spei,
10498    Swift,
10499    Zengin,
10500}
10501
10502impl PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
10503    pub fn as_str(self) -> &'static str {
10504        match self {
10505            PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Aba => "aba",
10506            PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Iban => "iban",
10507            PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Sepa => "sepa",
10508            PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::SortCode => {
10509                "sort_code"
10510            }
10511            PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Spei => "spei",
10512            PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Swift => "swift",
10513            PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Zengin => {
10514                "zengin"
10515            }
10516        }
10517    }
10518}
10519
10520impl AsRef<str> for PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
10521    fn as_ref(&self) -> &str {
10522        self.as_str()
10523    }
10524}
10525
10526impl std::fmt::Display for PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
10527    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10528        self.as_str().fmt(f)
10529    }
10530}
10531impl std::default::Default
10532    for PaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
10533{
10534    fn default() -> Self {
10535        Self::Aba
10536    }
10537}
10538
10539/// An enum representing the possible values of an `PaymentMethodOptionsCustomerBalanceBankTransfer`'s `type` field.
10540#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10541#[serde(rename_all = "snake_case")]
10542pub enum PaymentMethodOptionsCustomerBalanceBankTransferType {
10543    EuBankTransfer,
10544    GbBankTransfer,
10545    JpBankTransfer,
10546    MxBankTransfer,
10547    UsBankTransfer,
10548}
10549
10550impl PaymentMethodOptionsCustomerBalanceBankTransferType {
10551    pub fn as_str(self) -> &'static str {
10552        match self {
10553            PaymentMethodOptionsCustomerBalanceBankTransferType::EuBankTransfer => {
10554                "eu_bank_transfer"
10555            }
10556            PaymentMethodOptionsCustomerBalanceBankTransferType::GbBankTransfer => {
10557                "gb_bank_transfer"
10558            }
10559            PaymentMethodOptionsCustomerBalanceBankTransferType::JpBankTransfer => {
10560                "jp_bank_transfer"
10561            }
10562            PaymentMethodOptionsCustomerBalanceBankTransferType::MxBankTransfer => {
10563                "mx_bank_transfer"
10564            }
10565            PaymentMethodOptionsCustomerBalanceBankTransferType::UsBankTransfer => {
10566                "us_bank_transfer"
10567            }
10568        }
10569    }
10570}
10571
10572impl AsRef<str> for PaymentMethodOptionsCustomerBalanceBankTransferType {
10573    fn as_ref(&self) -> &str {
10574        self.as_str()
10575    }
10576}
10577
10578impl std::fmt::Display for PaymentMethodOptionsCustomerBalanceBankTransferType {
10579    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10580        self.as_str().fmt(f)
10581    }
10582}
10583impl std::default::Default for PaymentMethodOptionsCustomerBalanceBankTransferType {
10584    fn default() -> Self {
10585        Self::EuBankTransfer
10586    }
10587}
10588
10589/// An enum representing the possible values of an `PaymentMethodOptionsCustomerBalance`'s `funding_type` field.
10590#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10591#[serde(rename_all = "snake_case")]
10592pub enum PaymentMethodOptionsCustomerBalanceFundingType {
10593    BankTransfer,
10594}
10595
10596impl PaymentMethodOptionsCustomerBalanceFundingType {
10597    pub fn as_str(self) -> &'static str {
10598        match self {
10599            PaymentMethodOptionsCustomerBalanceFundingType::BankTransfer => "bank_transfer",
10600        }
10601    }
10602}
10603
10604impl AsRef<str> for PaymentMethodOptionsCustomerBalanceFundingType {
10605    fn as_ref(&self) -> &str {
10606        self.as_str()
10607    }
10608}
10609
10610impl std::fmt::Display for PaymentMethodOptionsCustomerBalanceFundingType {
10611    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10612        self.as_str().fmt(f)
10613    }
10614}
10615impl std::default::Default for PaymentMethodOptionsCustomerBalanceFundingType {
10616    fn default() -> Self {
10617        Self::BankTransfer
10618    }
10619}
10620
10621/// An enum representing the possible values of an `PaymentMethodOptionsCustomerBalance`'s `setup_future_usage` field.
10622#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10623#[serde(rename_all = "snake_case")]
10624pub enum PaymentMethodOptionsCustomerBalanceSetupFutureUsage {
10625    None,
10626}
10627
10628impl PaymentMethodOptionsCustomerBalanceSetupFutureUsage {
10629    pub fn as_str(self) -> &'static str {
10630        match self {
10631            PaymentMethodOptionsCustomerBalanceSetupFutureUsage::None => "none",
10632        }
10633    }
10634}
10635
10636impl AsRef<str> for PaymentMethodOptionsCustomerBalanceSetupFutureUsage {
10637    fn as_ref(&self) -> &str {
10638        self.as_str()
10639    }
10640}
10641
10642impl std::fmt::Display for PaymentMethodOptionsCustomerBalanceSetupFutureUsage {
10643    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10644        self.as_str().fmt(f)
10645    }
10646}
10647impl std::default::Default for PaymentMethodOptionsCustomerBalanceSetupFutureUsage {
10648    fn default() -> Self {
10649        Self::None
10650    }
10651}
10652
10653/// An enum representing the possible values of an `PaymentMethodOptionsFpx`'s `setup_future_usage` field.
10654#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10655#[serde(rename_all = "snake_case")]
10656pub enum PaymentMethodOptionsFpxSetupFutureUsage {
10657    None,
10658}
10659
10660impl PaymentMethodOptionsFpxSetupFutureUsage {
10661    pub fn as_str(self) -> &'static str {
10662        match self {
10663            PaymentMethodOptionsFpxSetupFutureUsage::None => "none",
10664        }
10665    }
10666}
10667
10668impl AsRef<str> for PaymentMethodOptionsFpxSetupFutureUsage {
10669    fn as_ref(&self) -> &str {
10670        self.as_str()
10671    }
10672}
10673
10674impl std::fmt::Display for PaymentMethodOptionsFpxSetupFutureUsage {
10675    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10676        self.as_str().fmt(f)
10677    }
10678}
10679impl std::default::Default for PaymentMethodOptionsFpxSetupFutureUsage {
10680    fn default() -> Self {
10681        Self::None
10682    }
10683}
10684
10685/// An enum representing the possible values of an `PaymentMethodOptionsGiropay`'s `setup_future_usage` field.
10686#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10687#[serde(rename_all = "snake_case")]
10688pub enum PaymentMethodOptionsGiropaySetupFutureUsage {
10689    None,
10690}
10691
10692impl PaymentMethodOptionsGiropaySetupFutureUsage {
10693    pub fn as_str(self) -> &'static str {
10694        match self {
10695            PaymentMethodOptionsGiropaySetupFutureUsage::None => "none",
10696        }
10697    }
10698}
10699
10700impl AsRef<str> for PaymentMethodOptionsGiropaySetupFutureUsage {
10701    fn as_ref(&self) -> &str {
10702        self.as_str()
10703    }
10704}
10705
10706impl std::fmt::Display for PaymentMethodOptionsGiropaySetupFutureUsage {
10707    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10708        self.as_str().fmt(f)
10709    }
10710}
10711impl std::default::Default for PaymentMethodOptionsGiropaySetupFutureUsage {
10712    fn default() -> Self {
10713        Self::None
10714    }
10715}
10716
10717/// An enum representing the possible values of an `PaymentMethodOptionsGrabpay`'s `setup_future_usage` field.
10718#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10719#[serde(rename_all = "snake_case")]
10720pub enum PaymentMethodOptionsGrabpaySetupFutureUsage {
10721    None,
10722}
10723
10724impl PaymentMethodOptionsGrabpaySetupFutureUsage {
10725    pub fn as_str(self) -> &'static str {
10726        match self {
10727            PaymentMethodOptionsGrabpaySetupFutureUsage::None => "none",
10728        }
10729    }
10730}
10731
10732impl AsRef<str> for PaymentMethodOptionsGrabpaySetupFutureUsage {
10733    fn as_ref(&self) -> &str {
10734        self.as_str()
10735    }
10736}
10737
10738impl std::fmt::Display for PaymentMethodOptionsGrabpaySetupFutureUsage {
10739    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10740        self.as_str().fmt(f)
10741    }
10742}
10743impl std::default::Default for PaymentMethodOptionsGrabpaySetupFutureUsage {
10744    fn default() -> Self {
10745        Self::None
10746    }
10747}
10748
10749/// An enum representing the possible values of an `PaymentMethodOptionsIdeal`'s `setup_future_usage` field.
10750#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10751#[serde(rename_all = "snake_case")]
10752pub enum PaymentMethodOptionsIdealSetupFutureUsage {
10753    None,
10754    OffSession,
10755}
10756
10757impl PaymentMethodOptionsIdealSetupFutureUsage {
10758    pub fn as_str(self) -> &'static str {
10759        match self {
10760            PaymentMethodOptionsIdealSetupFutureUsage::None => "none",
10761            PaymentMethodOptionsIdealSetupFutureUsage::OffSession => "off_session",
10762        }
10763    }
10764}
10765
10766impl AsRef<str> for PaymentMethodOptionsIdealSetupFutureUsage {
10767    fn as_ref(&self) -> &str {
10768        self.as_str()
10769    }
10770}
10771
10772impl std::fmt::Display for PaymentMethodOptionsIdealSetupFutureUsage {
10773    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10774        self.as_str().fmt(f)
10775    }
10776}
10777impl std::default::Default for PaymentMethodOptionsIdealSetupFutureUsage {
10778    fn default() -> Self {
10779        Self::None
10780    }
10781}
10782
10783/// An enum representing the possible values of an `PaymentMethodOptionsKlarna`'s `capture_method` field.
10784#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10785#[serde(rename_all = "snake_case")]
10786pub enum PaymentMethodOptionsKlarnaCaptureMethod {
10787    Manual,
10788}
10789
10790impl PaymentMethodOptionsKlarnaCaptureMethod {
10791    pub fn as_str(self) -> &'static str {
10792        match self {
10793            PaymentMethodOptionsKlarnaCaptureMethod::Manual => "manual",
10794        }
10795    }
10796}
10797
10798impl AsRef<str> for PaymentMethodOptionsKlarnaCaptureMethod {
10799    fn as_ref(&self) -> &str {
10800        self.as_str()
10801    }
10802}
10803
10804impl std::fmt::Display for PaymentMethodOptionsKlarnaCaptureMethod {
10805    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10806        self.as_str().fmt(f)
10807    }
10808}
10809impl std::default::Default for PaymentMethodOptionsKlarnaCaptureMethod {
10810    fn default() -> Self {
10811        Self::Manual
10812    }
10813}
10814
10815/// An enum representing the possible values of an `PaymentMethodOptionsKlarna`'s `setup_future_usage` field.
10816#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10817#[serde(rename_all = "snake_case")]
10818pub enum PaymentMethodOptionsKlarnaSetupFutureUsage {
10819    None,
10820}
10821
10822impl PaymentMethodOptionsKlarnaSetupFutureUsage {
10823    pub fn as_str(self) -> &'static str {
10824        match self {
10825            PaymentMethodOptionsKlarnaSetupFutureUsage::None => "none",
10826        }
10827    }
10828}
10829
10830impl AsRef<str> for PaymentMethodOptionsKlarnaSetupFutureUsage {
10831    fn as_ref(&self) -> &str {
10832        self.as_str()
10833    }
10834}
10835
10836impl std::fmt::Display for PaymentMethodOptionsKlarnaSetupFutureUsage {
10837    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10838        self.as_str().fmt(f)
10839    }
10840}
10841impl std::default::Default for PaymentMethodOptionsKlarnaSetupFutureUsage {
10842    fn default() -> Self {
10843        Self::None
10844    }
10845}
10846
10847/// An enum representing the possible values of an `PaymentMethodOptionsKonbini`'s `setup_future_usage` field.
10848#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10849#[serde(rename_all = "snake_case")]
10850pub enum PaymentMethodOptionsKonbiniSetupFutureUsage {
10851    None,
10852}
10853
10854impl PaymentMethodOptionsKonbiniSetupFutureUsage {
10855    pub fn as_str(self) -> &'static str {
10856        match self {
10857            PaymentMethodOptionsKonbiniSetupFutureUsage::None => "none",
10858        }
10859    }
10860}
10861
10862impl AsRef<str> for PaymentMethodOptionsKonbiniSetupFutureUsage {
10863    fn as_ref(&self) -> &str {
10864        self.as_str()
10865    }
10866}
10867
10868impl std::fmt::Display for PaymentMethodOptionsKonbiniSetupFutureUsage {
10869    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10870        self.as_str().fmt(f)
10871    }
10872}
10873impl std::default::Default for PaymentMethodOptionsKonbiniSetupFutureUsage {
10874    fn default() -> Self {
10875        Self::None
10876    }
10877}
10878
10879/// An enum representing the possible values of an `PaymentMethodOptionsOxxo`'s `setup_future_usage` field.
10880#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10881#[serde(rename_all = "snake_case")]
10882pub enum PaymentMethodOptionsOxxoSetupFutureUsage {
10883    None,
10884}
10885
10886impl PaymentMethodOptionsOxxoSetupFutureUsage {
10887    pub fn as_str(self) -> &'static str {
10888        match self {
10889            PaymentMethodOptionsOxxoSetupFutureUsage::None => "none",
10890        }
10891    }
10892}
10893
10894impl AsRef<str> for PaymentMethodOptionsOxxoSetupFutureUsage {
10895    fn as_ref(&self) -> &str {
10896        self.as_str()
10897    }
10898}
10899
10900impl std::fmt::Display for PaymentMethodOptionsOxxoSetupFutureUsage {
10901    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10902        self.as_str().fmt(f)
10903    }
10904}
10905impl std::default::Default for PaymentMethodOptionsOxxoSetupFutureUsage {
10906    fn default() -> Self {
10907        Self::None
10908    }
10909}
10910
10911/// An enum representing the possible values of an `PaymentMethodOptionsP24`'s `setup_future_usage` field.
10912#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10913#[serde(rename_all = "snake_case")]
10914pub enum PaymentMethodOptionsP24SetupFutureUsage {
10915    None,
10916}
10917
10918impl PaymentMethodOptionsP24SetupFutureUsage {
10919    pub fn as_str(self) -> &'static str {
10920        match self {
10921            PaymentMethodOptionsP24SetupFutureUsage::None => "none",
10922        }
10923    }
10924}
10925
10926impl AsRef<str> for PaymentMethodOptionsP24SetupFutureUsage {
10927    fn as_ref(&self) -> &str {
10928        self.as_str()
10929    }
10930}
10931
10932impl std::fmt::Display for PaymentMethodOptionsP24SetupFutureUsage {
10933    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10934        self.as_str().fmt(f)
10935    }
10936}
10937impl std::default::Default for PaymentMethodOptionsP24SetupFutureUsage {
10938    fn default() -> Self {
10939        Self::None
10940    }
10941}
10942
10943/// An enum representing the possible values of an `PaymentMethodOptionsPaynow`'s `setup_future_usage` field.
10944#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10945#[serde(rename_all = "snake_case")]
10946pub enum PaymentMethodOptionsPaynowSetupFutureUsage {
10947    None,
10948}
10949
10950impl PaymentMethodOptionsPaynowSetupFutureUsage {
10951    pub fn as_str(self) -> &'static str {
10952        match self {
10953            PaymentMethodOptionsPaynowSetupFutureUsage::None => "none",
10954        }
10955    }
10956}
10957
10958impl AsRef<str> for PaymentMethodOptionsPaynowSetupFutureUsage {
10959    fn as_ref(&self) -> &str {
10960        self.as_str()
10961    }
10962}
10963
10964impl std::fmt::Display for PaymentMethodOptionsPaynowSetupFutureUsage {
10965    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10966        self.as_str().fmt(f)
10967    }
10968}
10969impl std::default::Default for PaymentMethodOptionsPaynowSetupFutureUsage {
10970    fn default() -> Self {
10971        Self::None
10972    }
10973}
10974
10975/// An enum representing the possible values of an `PaymentMethodOptionsPaypal`'s `capture_method` field.
10976#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
10977#[serde(rename_all = "snake_case")]
10978pub enum PaymentMethodOptionsPaypalCaptureMethod {
10979    Manual,
10980}
10981
10982impl PaymentMethodOptionsPaypalCaptureMethod {
10983    pub fn as_str(self) -> &'static str {
10984        match self {
10985            PaymentMethodOptionsPaypalCaptureMethod::Manual => "manual",
10986        }
10987    }
10988}
10989
10990impl AsRef<str> for PaymentMethodOptionsPaypalCaptureMethod {
10991    fn as_ref(&self) -> &str {
10992        self.as_str()
10993    }
10994}
10995
10996impl std::fmt::Display for PaymentMethodOptionsPaypalCaptureMethod {
10997    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
10998        self.as_str().fmt(f)
10999    }
11000}
11001impl std::default::Default for PaymentMethodOptionsPaypalCaptureMethod {
11002    fn default() -> Self {
11003        Self::Manual
11004    }
11005}
11006
11007/// An enum representing the possible values of an `PaymentMethodOptionsPaypal`'s `setup_future_usage` field.
11008#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11009#[serde(rename_all = "snake_case")]
11010pub enum PaymentMethodOptionsPaypalSetupFutureUsage {
11011    None,
11012    OffSession,
11013}
11014
11015impl PaymentMethodOptionsPaypalSetupFutureUsage {
11016    pub fn as_str(self) -> &'static str {
11017        match self {
11018            PaymentMethodOptionsPaypalSetupFutureUsage::None => "none",
11019            PaymentMethodOptionsPaypalSetupFutureUsage::OffSession => "off_session",
11020        }
11021    }
11022}
11023
11024impl AsRef<str> for PaymentMethodOptionsPaypalSetupFutureUsage {
11025    fn as_ref(&self) -> &str {
11026        self.as_str()
11027    }
11028}
11029
11030impl std::fmt::Display for PaymentMethodOptionsPaypalSetupFutureUsage {
11031    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11032        self.as_str().fmt(f)
11033    }
11034}
11035impl std::default::Default for PaymentMethodOptionsPaypalSetupFutureUsage {
11036    fn default() -> Self {
11037        Self::None
11038    }
11039}
11040
11041/// An enum representing the possible values of an `PaymentMethodOptionsPix`'s `setup_future_usage` field.
11042#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11043#[serde(rename_all = "snake_case")]
11044pub enum PaymentMethodOptionsPixSetupFutureUsage {
11045    None,
11046}
11047
11048impl PaymentMethodOptionsPixSetupFutureUsage {
11049    pub fn as_str(self) -> &'static str {
11050        match self {
11051            PaymentMethodOptionsPixSetupFutureUsage::None => "none",
11052        }
11053    }
11054}
11055
11056impl AsRef<str> for PaymentMethodOptionsPixSetupFutureUsage {
11057    fn as_ref(&self) -> &str {
11058        self.as_str()
11059    }
11060}
11061
11062impl std::fmt::Display for PaymentMethodOptionsPixSetupFutureUsage {
11063    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11064        self.as_str().fmt(f)
11065    }
11066}
11067impl std::default::Default for PaymentMethodOptionsPixSetupFutureUsage {
11068    fn default() -> Self {
11069        Self::None
11070    }
11071}
11072
11073/// An enum representing the possible values of an `PaymentMethodOptionsPromptpay`'s `setup_future_usage` field.
11074#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11075#[serde(rename_all = "snake_case")]
11076pub enum PaymentMethodOptionsPromptpaySetupFutureUsage {
11077    None,
11078}
11079
11080impl PaymentMethodOptionsPromptpaySetupFutureUsage {
11081    pub fn as_str(self) -> &'static str {
11082        match self {
11083            PaymentMethodOptionsPromptpaySetupFutureUsage::None => "none",
11084        }
11085    }
11086}
11087
11088impl AsRef<str> for PaymentMethodOptionsPromptpaySetupFutureUsage {
11089    fn as_ref(&self) -> &str {
11090        self.as_str()
11091    }
11092}
11093
11094impl std::fmt::Display for PaymentMethodOptionsPromptpaySetupFutureUsage {
11095    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11096        self.as_str().fmt(f)
11097    }
11098}
11099impl std::default::Default for PaymentMethodOptionsPromptpaySetupFutureUsage {
11100    fn default() -> Self {
11101        Self::None
11102    }
11103}
11104
11105/// An enum representing the possible values of an `PaymentMethodOptionsSofort`'s `preferred_language` field.
11106#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11107#[serde(rename_all = "snake_case")]
11108pub enum PaymentMethodOptionsSofortPreferredLanguage {
11109    De,
11110    En,
11111    Es,
11112    Fr,
11113    It,
11114    Nl,
11115    Pl,
11116}
11117
11118impl PaymentMethodOptionsSofortPreferredLanguage {
11119    pub fn as_str(self) -> &'static str {
11120        match self {
11121            PaymentMethodOptionsSofortPreferredLanguage::De => "de",
11122            PaymentMethodOptionsSofortPreferredLanguage::En => "en",
11123            PaymentMethodOptionsSofortPreferredLanguage::Es => "es",
11124            PaymentMethodOptionsSofortPreferredLanguage::Fr => "fr",
11125            PaymentMethodOptionsSofortPreferredLanguage::It => "it",
11126            PaymentMethodOptionsSofortPreferredLanguage::Nl => "nl",
11127            PaymentMethodOptionsSofortPreferredLanguage::Pl => "pl",
11128        }
11129    }
11130}
11131
11132impl AsRef<str> for PaymentMethodOptionsSofortPreferredLanguage {
11133    fn as_ref(&self) -> &str {
11134        self.as_str()
11135    }
11136}
11137
11138impl std::fmt::Display for PaymentMethodOptionsSofortPreferredLanguage {
11139    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11140        self.as_str().fmt(f)
11141    }
11142}
11143impl std::default::Default for PaymentMethodOptionsSofortPreferredLanguage {
11144    fn default() -> Self {
11145        Self::De
11146    }
11147}
11148
11149/// An enum representing the possible values of an `PaymentMethodOptionsSofort`'s `setup_future_usage` field.
11150#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11151#[serde(rename_all = "snake_case")]
11152pub enum PaymentMethodOptionsSofortSetupFutureUsage {
11153    None,
11154    OffSession,
11155}
11156
11157impl PaymentMethodOptionsSofortSetupFutureUsage {
11158    pub fn as_str(self) -> &'static str {
11159        match self {
11160            PaymentMethodOptionsSofortSetupFutureUsage::None => "none",
11161            PaymentMethodOptionsSofortSetupFutureUsage::OffSession => "off_session",
11162        }
11163    }
11164}
11165
11166impl AsRef<str> for PaymentMethodOptionsSofortSetupFutureUsage {
11167    fn as_ref(&self) -> &str {
11168        self.as_str()
11169    }
11170}
11171
11172impl std::fmt::Display for PaymentMethodOptionsSofortSetupFutureUsage {
11173    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11174        self.as_str().fmt(f)
11175    }
11176}
11177impl std::default::Default for PaymentMethodOptionsSofortSetupFutureUsage {
11178    fn default() -> Self {
11179        Self::None
11180    }
11181}
11182
11183/// An enum representing the possible values of an `PaymentMethodOptionsWechatPay`'s `client` field.
11184#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11185#[serde(rename_all = "snake_case")]
11186pub enum PaymentMethodOptionsWechatPayClient {
11187    Android,
11188    Ios,
11189    Web,
11190}
11191
11192impl PaymentMethodOptionsWechatPayClient {
11193    pub fn as_str(self) -> &'static str {
11194        match self {
11195            PaymentMethodOptionsWechatPayClient::Android => "android",
11196            PaymentMethodOptionsWechatPayClient::Ios => "ios",
11197            PaymentMethodOptionsWechatPayClient::Web => "web",
11198        }
11199    }
11200}
11201
11202impl AsRef<str> for PaymentMethodOptionsWechatPayClient {
11203    fn as_ref(&self) -> &str {
11204        self.as_str()
11205    }
11206}
11207
11208impl std::fmt::Display for PaymentMethodOptionsWechatPayClient {
11209    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11210        self.as_str().fmt(f)
11211    }
11212}
11213impl std::default::Default for PaymentMethodOptionsWechatPayClient {
11214    fn default() -> Self {
11215        Self::Android
11216    }
11217}
11218
11219/// An enum representing the possible values of an `PaymentMethodOptionsWechatPay`'s `setup_future_usage` field.
11220#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11221#[serde(rename_all = "snake_case")]
11222pub enum PaymentMethodOptionsWechatPaySetupFutureUsage {
11223    None,
11224}
11225
11226impl PaymentMethodOptionsWechatPaySetupFutureUsage {
11227    pub fn as_str(self) -> &'static str {
11228        match self {
11229            PaymentMethodOptionsWechatPaySetupFutureUsage::None => "none",
11230        }
11231    }
11232}
11233
11234impl AsRef<str> for PaymentMethodOptionsWechatPaySetupFutureUsage {
11235    fn as_ref(&self) -> &str {
11236        self.as_str()
11237    }
11238}
11239
11240impl std::fmt::Display for PaymentMethodOptionsWechatPaySetupFutureUsage {
11241    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11242        self.as_str().fmt(f)
11243    }
11244}
11245impl std::default::Default for PaymentMethodOptionsWechatPaySetupFutureUsage {
11246    fn default() -> Self {
11247        Self::None
11248    }
11249}
11250
11251/// An enum representing the possible values of an `PaymentMethodOptionsZip`'s `setup_future_usage` field.
11252#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11253#[serde(rename_all = "snake_case")]
11254pub enum PaymentMethodOptionsZipSetupFutureUsage {
11255    None,
11256}
11257
11258impl PaymentMethodOptionsZipSetupFutureUsage {
11259    pub fn as_str(self) -> &'static str {
11260        match self {
11261            PaymentMethodOptionsZipSetupFutureUsage::None => "none",
11262        }
11263    }
11264}
11265
11266impl AsRef<str> for PaymentMethodOptionsZipSetupFutureUsage {
11267    fn as_ref(&self) -> &str {
11268        self.as_str()
11269    }
11270}
11271
11272impl std::fmt::Display for PaymentMethodOptionsZipSetupFutureUsage {
11273    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11274        self.as_str().fmt(f)
11275    }
11276}
11277impl std::default::Default for PaymentMethodOptionsZipSetupFutureUsage {
11278    fn default() -> Self {
11279        Self::None
11280    }
11281}
11282
11283/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataEps`'s `bank` field.
11284#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11285#[serde(rename_all = "snake_case")]
11286pub enum UpdatePaymentIntentPaymentMethodDataEpsBank {
11287    ArzteUndApothekerBank,
11288    AustrianAnadiBankAg,
11289    BankAustria,
11290    BankhausCarlSpangler,
11291    BankhausSchelhammerUndSchatteraAg,
11292    BawagPskAg,
11293    BksBankAg,
11294    BrullKallmusBankAg,
11295    BtvVierLanderBank,
11296    CapitalBankGraweGruppeAg,
11297    DeutscheBankAg,
11298    Dolomitenbank,
11299    EasybankAg,
11300    ErsteBankUndSparkassen,
11301    HypoAlpeadriabankInternationalAg,
11302    HypoBankBurgenlandAktiengesellschaft,
11303    HypoNoeLbFurNiederosterreichUWien,
11304    HypoOberosterreichSalzburgSteiermark,
11305    HypoTirolBankAg,
11306    HypoVorarlbergBankAg,
11307    MarchfelderBank,
11308    OberbankAg,
11309    RaiffeisenBankengruppeOsterreich,
11310    SchoellerbankAg,
11311    SpardaBankWien,
11312    VolksbankGruppe,
11313    VolkskreditbankAg,
11314    VrBankBraunau,
11315}
11316
11317impl UpdatePaymentIntentPaymentMethodDataEpsBank {
11318    pub fn as_str(self) -> &'static str {
11319        match self {
11320            UpdatePaymentIntentPaymentMethodDataEpsBank::ArzteUndApothekerBank => {
11321                "arzte_und_apotheker_bank"
11322            }
11323            UpdatePaymentIntentPaymentMethodDataEpsBank::AustrianAnadiBankAg => {
11324                "austrian_anadi_bank_ag"
11325            }
11326            UpdatePaymentIntentPaymentMethodDataEpsBank::BankAustria => "bank_austria",
11327            UpdatePaymentIntentPaymentMethodDataEpsBank::BankhausCarlSpangler => {
11328                "bankhaus_carl_spangler"
11329            }
11330            UpdatePaymentIntentPaymentMethodDataEpsBank::BankhausSchelhammerUndSchatteraAg => {
11331                "bankhaus_schelhammer_und_schattera_ag"
11332            }
11333            UpdatePaymentIntentPaymentMethodDataEpsBank::BawagPskAg => "bawag_psk_ag",
11334            UpdatePaymentIntentPaymentMethodDataEpsBank::BksBankAg => "bks_bank_ag",
11335            UpdatePaymentIntentPaymentMethodDataEpsBank::BrullKallmusBankAg => {
11336                "brull_kallmus_bank_ag"
11337            }
11338            UpdatePaymentIntentPaymentMethodDataEpsBank::BtvVierLanderBank => {
11339                "btv_vier_lander_bank"
11340            }
11341            UpdatePaymentIntentPaymentMethodDataEpsBank::CapitalBankGraweGruppeAg => {
11342                "capital_bank_grawe_gruppe_ag"
11343            }
11344            UpdatePaymentIntentPaymentMethodDataEpsBank::DeutscheBankAg => "deutsche_bank_ag",
11345            UpdatePaymentIntentPaymentMethodDataEpsBank::Dolomitenbank => "dolomitenbank",
11346            UpdatePaymentIntentPaymentMethodDataEpsBank::EasybankAg => "easybank_ag",
11347            UpdatePaymentIntentPaymentMethodDataEpsBank::ErsteBankUndSparkassen => {
11348                "erste_bank_und_sparkassen"
11349            }
11350            UpdatePaymentIntentPaymentMethodDataEpsBank::HypoAlpeadriabankInternationalAg => {
11351                "hypo_alpeadriabank_international_ag"
11352            }
11353            UpdatePaymentIntentPaymentMethodDataEpsBank::HypoBankBurgenlandAktiengesellschaft => {
11354                "hypo_bank_burgenland_aktiengesellschaft"
11355            }
11356            UpdatePaymentIntentPaymentMethodDataEpsBank::HypoNoeLbFurNiederosterreichUWien => {
11357                "hypo_noe_lb_fur_niederosterreich_u_wien"
11358            }
11359            UpdatePaymentIntentPaymentMethodDataEpsBank::HypoOberosterreichSalzburgSteiermark => {
11360                "hypo_oberosterreich_salzburg_steiermark"
11361            }
11362            UpdatePaymentIntentPaymentMethodDataEpsBank::HypoTirolBankAg => "hypo_tirol_bank_ag",
11363            UpdatePaymentIntentPaymentMethodDataEpsBank::HypoVorarlbergBankAg => {
11364                "hypo_vorarlberg_bank_ag"
11365            }
11366            UpdatePaymentIntentPaymentMethodDataEpsBank::MarchfelderBank => "marchfelder_bank",
11367            UpdatePaymentIntentPaymentMethodDataEpsBank::OberbankAg => "oberbank_ag",
11368            UpdatePaymentIntentPaymentMethodDataEpsBank::RaiffeisenBankengruppeOsterreich => {
11369                "raiffeisen_bankengruppe_osterreich"
11370            }
11371            UpdatePaymentIntentPaymentMethodDataEpsBank::SchoellerbankAg => "schoellerbank_ag",
11372            UpdatePaymentIntentPaymentMethodDataEpsBank::SpardaBankWien => "sparda_bank_wien",
11373            UpdatePaymentIntentPaymentMethodDataEpsBank::VolksbankGruppe => "volksbank_gruppe",
11374            UpdatePaymentIntentPaymentMethodDataEpsBank::VolkskreditbankAg => "volkskreditbank_ag",
11375            UpdatePaymentIntentPaymentMethodDataEpsBank::VrBankBraunau => "vr_bank_braunau",
11376        }
11377    }
11378}
11379
11380impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataEpsBank {
11381    fn as_ref(&self) -> &str {
11382        self.as_str()
11383    }
11384}
11385
11386impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataEpsBank {
11387    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11388        self.as_str().fmt(f)
11389    }
11390}
11391impl std::default::Default for UpdatePaymentIntentPaymentMethodDataEpsBank {
11392    fn default() -> Self {
11393        Self::ArzteUndApothekerBank
11394    }
11395}
11396
11397/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataFpx`'s `account_holder_type` field.
11398#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11399#[serde(rename_all = "snake_case")]
11400pub enum UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType {
11401    Company,
11402    Individual,
11403}
11404
11405impl UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType {
11406    pub fn as_str(self) -> &'static str {
11407        match self {
11408            UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType::Company => "company",
11409            UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType::Individual => "individual",
11410        }
11411    }
11412}
11413
11414impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType {
11415    fn as_ref(&self) -> &str {
11416        self.as_str()
11417    }
11418}
11419
11420impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType {
11421    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11422        self.as_str().fmt(f)
11423    }
11424}
11425impl std::default::Default for UpdatePaymentIntentPaymentMethodDataFpxAccountHolderType {
11426    fn default() -> Self {
11427        Self::Company
11428    }
11429}
11430
11431/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataFpx`'s `bank` field.
11432#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11433#[serde(rename_all = "snake_case")]
11434pub enum UpdatePaymentIntentPaymentMethodDataFpxBank {
11435    AffinBank,
11436    Agrobank,
11437    AllianceBank,
11438    Ambank,
11439    BankIslam,
11440    BankMuamalat,
11441    BankOfChina,
11442    BankRakyat,
11443    Bsn,
11444    Cimb,
11445    DeutscheBank,
11446    HongLeongBank,
11447    Hsbc,
11448    Kfh,
11449    Maybank2e,
11450    Maybank2u,
11451    Ocbc,
11452    PbEnterprise,
11453    PublicBank,
11454    Rhb,
11455    StandardChartered,
11456    Uob,
11457}
11458
11459impl UpdatePaymentIntentPaymentMethodDataFpxBank {
11460    pub fn as_str(self) -> &'static str {
11461        match self {
11462            UpdatePaymentIntentPaymentMethodDataFpxBank::AffinBank => "affin_bank",
11463            UpdatePaymentIntentPaymentMethodDataFpxBank::Agrobank => "agrobank",
11464            UpdatePaymentIntentPaymentMethodDataFpxBank::AllianceBank => "alliance_bank",
11465            UpdatePaymentIntentPaymentMethodDataFpxBank::Ambank => "ambank",
11466            UpdatePaymentIntentPaymentMethodDataFpxBank::BankIslam => "bank_islam",
11467            UpdatePaymentIntentPaymentMethodDataFpxBank::BankMuamalat => "bank_muamalat",
11468            UpdatePaymentIntentPaymentMethodDataFpxBank::BankOfChina => "bank_of_china",
11469            UpdatePaymentIntentPaymentMethodDataFpxBank::BankRakyat => "bank_rakyat",
11470            UpdatePaymentIntentPaymentMethodDataFpxBank::Bsn => "bsn",
11471            UpdatePaymentIntentPaymentMethodDataFpxBank::Cimb => "cimb",
11472            UpdatePaymentIntentPaymentMethodDataFpxBank::DeutscheBank => "deutsche_bank",
11473            UpdatePaymentIntentPaymentMethodDataFpxBank::HongLeongBank => "hong_leong_bank",
11474            UpdatePaymentIntentPaymentMethodDataFpxBank::Hsbc => "hsbc",
11475            UpdatePaymentIntentPaymentMethodDataFpxBank::Kfh => "kfh",
11476            UpdatePaymentIntentPaymentMethodDataFpxBank::Maybank2e => "maybank2e",
11477            UpdatePaymentIntentPaymentMethodDataFpxBank::Maybank2u => "maybank2u",
11478            UpdatePaymentIntentPaymentMethodDataFpxBank::Ocbc => "ocbc",
11479            UpdatePaymentIntentPaymentMethodDataFpxBank::PbEnterprise => "pb_enterprise",
11480            UpdatePaymentIntentPaymentMethodDataFpxBank::PublicBank => "public_bank",
11481            UpdatePaymentIntentPaymentMethodDataFpxBank::Rhb => "rhb",
11482            UpdatePaymentIntentPaymentMethodDataFpxBank::StandardChartered => "standard_chartered",
11483            UpdatePaymentIntentPaymentMethodDataFpxBank::Uob => "uob",
11484        }
11485    }
11486}
11487
11488impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataFpxBank {
11489    fn as_ref(&self) -> &str {
11490        self.as_str()
11491    }
11492}
11493
11494impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataFpxBank {
11495    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11496        self.as_str().fmt(f)
11497    }
11498}
11499impl std::default::Default for UpdatePaymentIntentPaymentMethodDataFpxBank {
11500    fn default() -> Self {
11501        Self::AffinBank
11502    }
11503}
11504
11505/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataIdeal`'s `bank` field.
11506#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11507#[serde(rename_all = "snake_case")]
11508pub enum UpdatePaymentIntentPaymentMethodDataIdealBank {
11509    AbnAmro,
11510    AsnBank,
11511    Bunq,
11512    Handelsbanken,
11513    Ing,
11514    Knab,
11515    Moneyou,
11516    N26,
11517    Nn,
11518    Rabobank,
11519    Regiobank,
11520    Revolut,
11521    SnsBank,
11522    TriodosBank,
11523    VanLanschot,
11524    Yoursafe,
11525}
11526
11527impl UpdatePaymentIntentPaymentMethodDataIdealBank {
11528    pub fn as_str(self) -> &'static str {
11529        match self {
11530            UpdatePaymentIntentPaymentMethodDataIdealBank::AbnAmro => "abn_amro",
11531            UpdatePaymentIntentPaymentMethodDataIdealBank::AsnBank => "asn_bank",
11532            UpdatePaymentIntentPaymentMethodDataIdealBank::Bunq => "bunq",
11533            UpdatePaymentIntentPaymentMethodDataIdealBank::Handelsbanken => "handelsbanken",
11534            UpdatePaymentIntentPaymentMethodDataIdealBank::Ing => "ing",
11535            UpdatePaymentIntentPaymentMethodDataIdealBank::Knab => "knab",
11536            UpdatePaymentIntentPaymentMethodDataIdealBank::Moneyou => "moneyou",
11537            UpdatePaymentIntentPaymentMethodDataIdealBank::N26 => "n26",
11538            UpdatePaymentIntentPaymentMethodDataIdealBank::Nn => "nn",
11539            UpdatePaymentIntentPaymentMethodDataIdealBank::Rabobank => "rabobank",
11540            UpdatePaymentIntentPaymentMethodDataIdealBank::Regiobank => "regiobank",
11541            UpdatePaymentIntentPaymentMethodDataIdealBank::Revolut => "revolut",
11542            UpdatePaymentIntentPaymentMethodDataIdealBank::SnsBank => "sns_bank",
11543            UpdatePaymentIntentPaymentMethodDataIdealBank::TriodosBank => "triodos_bank",
11544            UpdatePaymentIntentPaymentMethodDataIdealBank::VanLanschot => "van_lanschot",
11545            UpdatePaymentIntentPaymentMethodDataIdealBank::Yoursafe => "yoursafe",
11546        }
11547    }
11548}
11549
11550impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataIdealBank {
11551    fn as_ref(&self) -> &str {
11552        self.as_str()
11553    }
11554}
11555
11556impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataIdealBank {
11557    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11558        self.as_str().fmt(f)
11559    }
11560}
11561impl std::default::Default for UpdatePaymentIntentPaymentMethodDataIdealBank {
11562    fn default() -> Self {
11563        Self::AbnAmro
11564    }
11565}
11566
11567/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataP24`'s `bank` field.
11568#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11569#[serde(rename_all = "snake_case")]
11570pub enum UpdatePaymentIntentPaymentMethodDataP24Bank {
11571    AliorBank,
11572    BankMillennium,
11573    BankNowyBfgSa,
11574    BankPekaoSa,
11575    BankiSpbdzielcze,
11576    Blik,
11577    BnpParibas,
11578    Boz,
11579    CitiHandlowy,
11580    CreditAgricole,
11581    Envelobank,
11582    EtransferPocztowy24,
11583    GetinBank,
11584    Ideabank,
11585    Ing,
11586    Inteligo,
11587    MbankMtransfer,
11588    NestPrzelew,
11589    NoblePay,
11590    PbacZIpko,
11591    PlusBank,
11592    SantanderPrzelew24,
11593    TmobileUsbugiBankowe,
11594    ToyotaBank,
11595    Velobank,
11596    VolkswagenBank,
11597}
11598
11599impl UpdatePaymentIntentPaymentMethodDataP24Bank {
11600    pub fn as_str(self) -> &'static str {
11601        match self {
11602            UpdatePaymentIntentPaymentMethodDataP24Bank::AliorBank => "alior_bank",
11603            UpdatePaymentIntentPaymentMethodDataP24Bank::BankMillennium => "bank_millennium",
11604            UpdatePaymentIntentPaymentMethodDataP24Bank::BankNowyBfgSa => "bank_nowy_bfg_sa",
11605            UpdatePaymentIntentPaymentMethodDataP24Bank::BankPekaoSa => "bank_pekao_sa",
11606            UpdatePaymentIntentPaymentMethodDataP24Bank::BankiSpbdzielcze => "banki_spbdzielcze",
11607            UpdatePaymentIntentPaymentMethodDataP24Bank::Blik => "blik",
11608            UpdatePaymentIntentPaymentMethodDataP24Bank::BnpParibas => "bnp_paribas",
11609            UpdatePaymentIntentPaymentMethodDataP24Bank::Boz => "boz",
11610            UpdatePaymentIntentPaymentMethodDataP24Bank::CitiHandlowy => "citi_handlowy",
11611            UpdatePaymentIntentPaymentMethodDataP24Bank::CreditAgricole => "credit_agricole",
11612            UpdatePaymentIntentPaymentMethodDataP24Bank::Envelobank => "envelobank",
11613            UpdatePaymentIntentPaymentMethodDataP24Bank::EtransferPocztowy24 => {
11614                "etransfer_pocztowy24"
11615            }
11616            UpdatePaymentIntentPaymentMethodDataP24Bank::GetinBank => "getin_bank",
11617            UpdatePaymentIntentPaymentMethodDataP24Bank::Ideabank => "ideabank",
11618            UpdatePaymentIntentPaymentMethodDataP24Bank::Ing => "ing",
11619            UpdatePaymentIntentPaymentMethodDataP24Bank::Inteligo => "inteligo",
11620            UpdatePaymentIntentPaymentMethodDataP24Bank::MbankMtransfer => "mbank_mtransfer",
11621            UpdatePaymentIntentPaymentMethodDataP24Bank::NestPrzelew => "nest_przelew",
11622            UpdatePaymentIntentPaymentMethodDataP24Bank::NoblePay => "noble_pay",
11623            UpdatePaymentIntentPaymentMethodDataP24Bank::PbacZIpko => "pbac_z_ipko",
11624            UpdatePaymentIntentPaymentMethodDataP24Bank::PlusBank => "plus_bank",
11625            UpdatePaymentIntentPaymentMethodDataP24Bank::SantanderPrzelew24 => {
11626                "santander_przelew24"
11627            }
11628            UpdatePaymentIntentPaymentMethodDataP24Bank::TmobileUsbugiBankowe => {
11629                "tmobile_usbugi_bankowe"
11630            }
11631            UpdatePaymentIntentPaymentMethodDataP24Bank::ToyotaBank => "toyota_bank",
11632            UpdatePaymentIntentPaymentMethodDataP24Bank::Velobank => "velobank",
11633            UpdatePaymentIntentPaymentMethodDataP24Bank::VolkswagenBank => "volkswagen_bank",
11634        }
11635    }
11636}
11637
11638impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataP24Bank {
11639    fn as_ref(&self) -> &str {
11640        self.as_str()
11641    }
11642}
11643
11644impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataP24Bank {
11645    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11646        self.as_str().fmt(f)
11647    }
11648}
11649impl std::default::Default for UpdatePaymentIntentPaymentMethodDataP24Bank {
11650    fn default() -> Self {
11651        Self::AliorBank
11652    }
11653}
11654
11655/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataSofort`'s `country` field.
11656#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11657#[serde(rename_all = "snake_case")]
11658pub enum UpdatePaymentIntentPaymentMethodDataSofortCountry {
11659    #[serde(rename = "AT")]
11660    At,
11661    #[serde(rename = "BE")]
11662    Be,
11663    #[serde(rename = "DE")]
11664    De,
11665    #[serde(rename = "ES")]
11666    Es,
11667    #[serde(rename = "IT")]
11668    It,
11669    #[serde(rename = "NL")]
11670    Nl,
11671}
11672
11673impl UpdatePaymentIntentPaymentMethodDataSofortCountry {
11674    pub fn as_str(self) -> &'static str {
11675        match self {
11676            UpdatePaymentIntentPaymentMethodDataSofortCountry::At => "AT",
11677            UpdatePaymentIntentPaymentMethodDataSofortCountry::Be => "BE",
11678            UpdatePaymentIntentPaymentMethodDataSofortCountry::De => "DE",
11679            UpdatePaymentIntentPaymentMethodDataSofortCountry::Es => "ES",
11680            UpdatePaymentIntentPaymentMethodDataSofortCountry::It => "IT",
11681            UpdatePaymentIntentPaymentMethodDataSofortCountry::Nl => "NL",
11682        }
11683    }
11684}
11685
11686impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataSofortCountry {
11687    fn as_ref(&self) -> &str {
11688        self.as_str()
11689    }
11690}
11691
11692impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataSofortCountry {
11693    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11694        self.as_str().fmt(f)
11695    }
11696}
11697impl std::default::Default for UpdatePaymentIntentPaymentMethodDataSofortCountry {
11698    fn default() -> Self {
11699        Self::At
11700    }
11701}
11702
11703/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodData`'s `type` field.
11704#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11705#[serde(rename_all = "snake_case")]
11706pub enum UpdatePaymentIntentPaymentMethodDataType {
11707    AcssDebit,
11708    Affirm,
11709    AfterpayClearpay,
11710    Alipay,
11711    AuBecsDebit,
11712    BacsDebit,
11713    Bancontact,
11714    Blik,
11715    Boleto,
11716    Cashapp,
11717    CustomerBalance,
11718    Eps,
11719    Fpx,
11720    Giropay,
11721    Grabpay,
11722    Ideal,
11723    Klarna,
11724    Konbini,
11725    Link,
11726    Oxxo,
11727    P24,
11728    Paynow,
11729    Paypal,
11730    Pix,
11731    Promptpay,
11732    RevolutPay,
11733    SepaDebit,
11734    Sofort,
11735    Swish,
11736    UsBankAccount,
11737    WechatPay,
11738    Zip,
11739}
11740
11741impl UpdatePaymentIntentPaymentMethodDataType {
11742    pub fn as_str(self) -> &'static str {
11743        match self {
11744            UpdatePaymentIntentPaymentMethodDataType::AcssDebit => "acss_debit",
11745            UpdatePaymentIntentPaymentMethodDataType::Affirm => "affirm",
11746            UpdatePaymentIntentPaymentMethodDataType::AfterpayClearpay => "afterpay_clearpay",
11747            UpdatePaymentIntentPaymentMethodDataType::Alipay => "alipay",
11748            UpdatePaymentIntentPaymentMethodDataType::AuBecsDebit => "au_becs_debit",
11749            UpdatePaymentIntentPaymentMethodDataType::BacsDebit => "bacs_debit",
11750            UpdatePaymentIntentPaymentMethodDataType::Bancontact => "bancontact",
11751            UpdatePaymentIntentPaymentMethodDataType::Blik => "blik",
11752            UpdatePaymentIntentPaymentMethodDataType::Boleto => "boleto",
11753            UpdatePaymentIntentPaymentMethodDataType::Cashapp => "cashapp",
11754            UpdatePaymentIntentPaymentMethodDataType::CustomerBalance => "customer_balance",
11755            UpdatePaymentIntentPaymentMethodDataType::Eps => "eps",
11756            UpdatePaymentIntentPaymentMethodDataType::Fpx => "fpx",
11757            UpdatePaymentIntentPaymentMethodDataType::Giropay => "giropay",
11758            UpdatePaymentIntentPaymentMethodDataType::Grabpay => "grabpay",
11759            UpdatePaymentIntentPaymentMethodDataType::Ideal => "ideal",
11760            UpdatePaymentIntentPaymentMethodDataType::Klarna => "klarna",
11761            UpdatePaymentIntentPaymentMethodDataType::Konbini => "konbini",
11762            UpdatePaymentIntentPaymentMethodDataType::Link => "link",
11763            UpdatePaymentIntentPaymentMethodDataType::Oxxo => "oxxo",
11764            UpdatePaymentIntentPaymentMethodDataType::P24 => "p24",
11765            UpdatePaymentIntentPaymentMethodDataType::Paynow => "paynow",
11766            UpdatePaymentIntentPaymentMethodDataType::Paypal => "paypal",
11767            UpdatePaymentIntentPaymentMethodDataType::Pix => "pix",
11768            UpdatePaymentIntentPaymentMethodDataType::Promptpay => "promptpay",
11769            UpdatePaymentIntentPaymentMethodDataType::RevolutPay => "revolut_pay",
11770            UpdatePaymentIntentPaymentMethodDataType::SepaDebit => "sepa_debit",
11771            UpdatePaymentIntentPaymentMethodDataType::Sofort => "sofort",
11772            UpdatePaymentIntentPaymentMethodDataType::Swish => "swish",
11773            UpdatePaymentIntentPaymentMethodDataType::UsBankAccount => "us_bank_account",
11774            UpdatePaymentIntentPaymentMethodDataType::WechatPay => "wechat_pay",
11775            UpdatePaymentIntentPaymentMethodDataType::Zip => "zip",
11776        }
11777    }
11778}
11779
11780impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataType {
11781    fn as_ref(&self) -> &str {
11782        self.as_str()
11783    }
11784}
11785
11786impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataType {
11787    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11788        self.as_str().fmt(f)
11789    }
11790}
11791impl std::default::Default for UpdatePaymentIntentPaymentMethodDataType {
11792    fn default() -> Self {
11793        Self::AcssDebit
11794    }
11795}
11796
11797/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataUsBankAccount`'s `account_holder_type` field.
11798#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11799#[serde(rename_all = "snake_case")]
11800pub enum UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
11801    Company,
11802    Individual,
11803}
11804
11805impl UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
11806    pub fn as_str(self) -> &'static str {
11807        match self {
11808            UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType::Company => {
11809                "company"
11810            }
11811            UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType::Individual => {
11812                "individual"
11813            }
11814        }
11815    }
11816}
11817
11818impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
11819    fn as_ref(&self) -> &str {
11820        self.as_str()
11821    }
11822}
11823
11824impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
11825    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11826        self.as_str().fmt(f)
11827    }
11828}
11829impl std::default::Default for UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountHolderType {
11830    fn default() -> Self {
11831        Self::Company
11832    }
11833}
11834
11835/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodDataUsBankAccount`'s `account_type` field.
11836#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11837#[serde(rename_all = "snake_case")]
11838pub enum UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
11839    Checking,
11840    Savings,
11841}
11842
11843impl UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
11844    pub fn as_str(self) -> &'static str {
11845        match self {
11846            UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType::Checking => "checking",
11847            UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType::Savings => "savings",
11848        }
11849    }
11850}
11851
11852impl AsRef<str> for UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
11853    fn as_ref(&self) -> &str {
11854        self.as_str()
11855    }
11856}
11857
11858impl std::fmt::Display for UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
11859    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11860        self.as_str().fmt(f)
11861    }
11862}
11863impl std::default::Default for UpdatePaymentIntentPaymentMethodDataUsBankAccountAccountType {
11864    fn default() -> Self {
11865        Self::Checking
11866    }
11867}
11868
11869/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions`'s `payment_schedule` field.
11870#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11871#[serde(rename_all = "snake_case")]
11872pub enum UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
11873    Combined,
11874    Interval,
11875    Sporadic,
11876}
11877
11878impl UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
11879    pub fn as_str(self) -> &'static str {
11880        match self {
11881            UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Combined => "combined",
11882            UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Interval => "interval",
11883            UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule::Sporadic => "sporadic",
11884        }
11885    }
11886}
11887
11888impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule {
11889    fn as_ref(&self) -> &str {
11890        self.as_str()
11891    }
11892}
11893
11894impl std::fmt::Display
11895    for UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule
11896{
11897    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11898        self.as_str().fmt(f)
11899    }
11900}
11901impl std::default::Default
11902    for UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsPaymentSchedule
11903{
11904    fn default() -> Self {
11905        Self::Combined
11906    }
11907}
11908
11909/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptions`'s `transaction_type` field.
11910#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11911#[serde(rename_all = "snake_case")]
11912pub enum UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
11913    Business,
11914    Personal,
11915}
11916
11917impl UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
11918    pub fn as_str(self) -> &'static str {
11919        match self {
11920            UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType::Business => "business",
11921            UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType::Personal => "personal",
11922        }
11923    }
11924}
11925
11926impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType {
11927    fn as_ref(&self) -> &str {
11928        self.as_str()
11929    }
11930}
11931
11932impl std::fmt::Display
11933    for UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType
11934{
11935    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11936        self.as_str().fmt(f)
11937    }
11938}
11939impl std::default::Default
11940    for UpdatePaymentIntentPaymentMethodOptionsAcssDebitMandateOptionsTransactionType
11941{
11942    fn default() -> Self {
11943        Self::Business
11944    }
11945}
11946
11947/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAcssDebit`'s `setup_future_usage` field.
11948#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11949#[serde(rename_all = "snake_case")]
11950pub enum UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
11951    None,
11952    OffSession,
11953    OnSession,
11954}
11955
11956impl UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
11957    pub fn as_str(self) -> &'static str {
11958        match self {
11959            UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::None => "none",
11960            UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::OffSession => {
11961                "off_session"
11962            }
11963            UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage::OnSession => {
11964                "on_session"
11965            }
11966        }
11967    }
11968}
11969
11970impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
11971    fn as_ref(&self) -> &str {
11972        self.as_str()
11973    }
11974}
11975
11976impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
11977    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
11978        self.as_str().fmt(f)
11979    }
11980}
11981impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsAcssDebitSetupFutureUsage {
11982    fn default() -> Self {
11983        Self::None
11984    }
11985}
11986
11987/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAcssDebit`'s `verification_method` field.
11988#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
11989#[serde(rename_all = "snake_case")]
11990pub enum UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
11991    Automatic,
11992    Instant,
11993    Microdeposits,
11994}
11995
11996impl UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
11997    pub fn as_str(self) -> &'static str {
11998        match self {
11999            UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Automatic => {
12000                "automatic"
12001            }
12002            UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Instant => {
12003                "instant"
12004            }
12005            UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod::Microdeposits => {
12006                "microdeposits"
12007            }
12008        }
12009    }
12010}
12011
12012impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
12013    fn as_ref(&self) -> &str {
12014        self.as_str()
12015    }
12016}
12017
12018impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
12019    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12020        self.as_str().fmt(f)
12021    }
12022}
12023impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsAcssDebitVerificationMethod {
12024    fn default() -> Self {
12025        Self::Automatic
12026    }
12027}
12028
12029/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAffirm`'s `capture_method` field.
12030#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12031#[serde(rename_all = "snake_case")]
12032pub enum UpdatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
12033    Manual,
12034}
12035
12036impl UpdatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
12037    pub fn as_str(self) -> &'static str {
12038        match self {
12039            UpdatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod::Manual => "manual",
12040        }
12041    }
12042}
12043
12044impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
12045    fn as_ref(&self) -> &str {
12046        self.as_str()
12047    }
12048}
12049
12050impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
12051    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12052        self.as_str().fmt(f)
12053    }
12054}
12055impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsAffirmCaptureMethod {
12056    fn default() -> Self {
12057        Self::Manual
12058    }
12059}
12060
12061/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAffirm`'s `setup_future_usage` field.
12062#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12063#[serde(rename_all = "snake_case")]
12064pub enum UpdatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
12065    None,
12066}
12067
12068impl UpdatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
12069    pub fn as_str(self) -> &'static str {
12070        match self {
12071            UpdatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage::None => "none",
12072        }
12073    }
12074}
12075
12076impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
12077    fn as_ref(&self) -> &str {
12078        self.as_str()
12079    }
12080}
12081
12082impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
12083    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12084        self.as_str().fmt(f)
12085    }
12086}
12087impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsAffirmSetupFutureUsage {
12088    fn default() -> Self {
12089        Self::None
12090    }
12091}
12092
12093/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpay`'s `capture_method` field.
12094#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12095#[serde(rename_all = "snake_case")]
12096pub enum UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
12097    Manual,
12098}
12099
12100impl UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
12101    pub fn as_str(self) -> &'static str {
12102        match self {
12103            UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod::Manual => {
12104                "manual"
12105            }
12106        }
12107    }
12108}
12109
12110impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
12111    fn as_ref(&self) -> &str {
12112        self.as_str()
12113    }
12114}
12115
12116impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod {
12117    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12118        self.as_str().fmt(f)
12119    }
12120}
12121impl std::default::Default
12122    for UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpayCaptureMethod
12123{
12124    fn default() -> Self {
12125        Self::Manual
12126    }
12127}
12128
12129/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpay`'s `setup_future_usage` field.
12130#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12131#[serde(rename_all = "snake_case")]
12132pub enum UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
12133    None,
12134}
12135
12136impl UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
12137    pub fn as_str(self) -> &'static str {
12138        match self {
12139            UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage::None => "none",
12140        }
12141    }
12142}
12143
12144impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
12145    fn as_ref(&self) -> &str {
12146        self.as_str()
12147    }
12148}
12149
12150impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage {
12151    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12152        self.as_str().fmt(f)
12153    }
12154}
12155impl std::default::Default
12156    for UpdatePaymentIntentPaymentMethodOptionsAfterpayClearpaySetupFutureUsage
12157{
12158    fn default() -> Self {
12159        Self::None
12160    }
12161}
12162
12163/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAlipay`'s `setup_future_usage` field.
12164#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12165#[serde(rename_all = "snake_case")]
12166pub enum UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
12167    None,
12168    OffSession,
12169}
12170
12171impl UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
12172    pub fn as_str(self) -> &'static str {
12173        match self {
12174            UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage::None => "none",
12175            UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage::OffSession => {
12176                "off_session"
12177            }
12178        }
12179    }
12180}
12181
12182impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
12183    fn as_ref(&self) -> &str {
12184        self.as_str()
12185    }
12186}
12187
12188impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
12189    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12190        self.as_str().fmt(f)
12191    }
12192}
12193impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsAlipaySetupFutureUsage {
12194    fn default() -> Self {
12195        Self::None
12196    }
12197}
12198
12199/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsAuBecsDebit`'s `setup_future_usage` field.
12200#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12201#[serde(rename_all = "snake_case")]
12202pub enum UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
12203    None,
12204    OffSession,
12205    OnSession,
12206}
12207
12208impl UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
12209    pub fn as_str(self) -> &'static str {
12210        match self {
12211            UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::None => "none",
12212            UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::OffSession => {
12213                "off_session"
12214            }
12215            UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage::OnSession => {
12216                "on_session"
12217            }
12218        }
12219    }
12220}
12221
12222impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
12223    fn as_ref(&self) -> &str {
12224        self.as_str()
12225    }
12226}
12227
12228impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
12229    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12230        self.as_str().fmt(f)
12231    }
12232}
12233impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsAuBecsDebitSetupFutureUsage {
12234    fn default() -> Self {
12235        Self::None
12236    }
12237}
12238
12239/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsBacsDebit`'s `setup_future_usage` field.
12240#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12241#[serde(rename_all = "snake_case")]
12242pub enum UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
12243    None,
12244    OffSession,
12245    OnSession,
12246}
12247
12248impl UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
12249    pub fn as_str(self) -> &'static str {
12250        match self {
12251            UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage::None => "none",
12252            UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage::OffSession => {
12253                "off_session"
12254            }
12255            UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage::OnSession => {
12256                "on_session"
12257            }
12258        }
12259    }
12260}
12261
12262impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
12263    fn as_ref(&self) -> &str {
12264        self.as_str()
12265    }
12266}
12267
12268impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
12269    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12270        self.as_str().fmt(f)
12271    }
12272}
12273impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsBacsDebitSetupFutureUsage {
12274    fn default() -> Self {
12275        Self::None
12276    }
12277}
12278
12279/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsBancontact`'s `preferred_language` field.
12280#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12281#[serde(rename_all = "snake_case")]
12282pub enum UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
12283    De,
12284    En,
12285    Fr,
12286    Nl,
12287}
12288
12289impl UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
12290    pub fn as_str(self) -> &'static str {
12291        match self {
12292            UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::De => "de",
12293            UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::En => "en",
12294            UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::Fr => "fr",
12295            UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage::Nl => "nl",
12296        }
12297    }
12298}
12299
12300impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
12301    fn as_ref(&self) -> &str {
12302        self.as_str()
12303    }
12304}
12305
12306impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
12307    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12308        self.as_str().fmt(f)
12309    }
12310}
12311impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsBancontactPreferredLanguage {
12312    fn default() -> Self {
12313        Self::De
12314    }
12315}
12316
12317/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsBancontact`'s `setup_future_usage` field.
12318#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12319#[serde(rename_all = "snake_case")]
12320pub enum UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
12321    None,
12322    OffSession,
12323}
12324
12325impl UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
12326    pub fn as_str(self) -> &'static str {
12327        match self {
12328            UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage::None => "none",
12329            UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage::OffSession => {
12330                "off_session"
12331            }
12332        }
12333    }
12334}
12335
12336impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
12337    fn as_ref(&self) -> &str {
12338        self.as_str()
12339    }
12340}
12341
12342impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
12343    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12344        self.as_str().fmt(f)
12345    }
12346}
12347impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsBancontactSetupFutureUsage {
12348    fn default() -> Self {
12349        Self::None
12350    }
12351}
12352
12353/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsBlik`'s `setup_future_usage` field.
12354#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12355#[serde(rename_all = "snake_case")]
12356pub enum UpdatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
12357    None,
12358}
12359
12360impl UpdatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
12361    pub fn as_str(self) -> &'static str {
12362        match self {
12363            UpdatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage::None => "none",
12364        }
12365    }
12366}
12367
12368impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
12369    fn as_ref(&self) -> &str {
12370        self.as_str()
12371    }
12372}
12373
12374impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
12375    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12376        self.as_str().fmt(f)
12377    }
12378}
12379impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsBlikSetupFutureUsage {
12380    fn default() -> Self {
12381        Self::None
12382    }
12383}
12384
12385/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsBoleto`'s `setup_future_usage` field.
12386#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12387#[serde(rename_all = "snake_case")]
12388pub enum UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
12389    None,
12390    OffSession,
12391    OnSession,
12392}
12393
12394impl UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
12395    pub fn as_str(self) -> &'static str {
12396        match self {
12397            UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage::None => "none",
12398            UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage::OffSession => {
12399                "off_session"
12400            }
12401            UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage::OnSession => {
12402                "on_session"
12403            }
12404        }
12405    }
12406}
12407
12408impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
12409    fn as_ref(&self) -> &str {
12410        self.as_str()
12411    }
12412}
12413
12414impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
12415    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12416        self.as_str().fmt(f)
12417    }
12418}
12419impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsBoletoSetupFutureUsage {
12420    fn default() -> Self {
12421        Self::None
12422    }
12423}
12424
12425/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `capture_method` field.
12426#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12427#[serde(rename_all = "snake_case")]
12428pub enum UpdatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
12429    Manual,
12430}
12431
12432impl UpdatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
12433    pub fn as_str(self) -> &'static str {
12434        match self {
12435            UpdatePaymentIntentPaymentMethodOptionsCardCaptureMethod::Manual => "manual",
12436        }
12437    }
12438}
12439
12440impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
12441    fn as_ref(&self) -> &str {
12442        self.as_str()
12443    }
12444}
12445
12446impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
12447    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12448        self.as_str().fmt(f)
12449    }
12450}
12451impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardCaptureMethod {
12452    fn default() -> Self {
12453        Self::Manual
12454    }
12455}
12456
12457/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan`'s `interval` field.
12458#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12459#[serde(rename_all = "snake_case")]
12460pub enum UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
12461    Month,
12462}
12463
12464impl UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
12465    pub fn as_str(self) -> &'static str {
12466        match self {
12467            UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval::Month => "month",
12468        }
12469    }
12470}
12471
12472impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
12473    fn as_ref(&self) -> &str {
12474        self.as_str()
12475    }
12476}
12477
12478impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
12479    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12480        self.as_str().fmt(f)
12481    }
12482}
12483impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval {
12484    fn default() -> Self {
12485        Self::Month
12486    }
12487}
12488
12489/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlan`'s `type` field.
12490#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12491#[serde(rename_all = "snake_case")]
12492pub enum UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
12493    FixedCount,
12494}
12495
12496impl UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
12497    pub fn as_str(self) -> &'static str {
12498        match self {
12499            UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType::FixedCount => {
12500                "fixed_count"
12501            }
12502        }
12503    }
12504}
12505
12506impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
12507    fn as_ref(&self) -> &str {
12508        self.as_str()
12509    }
12510}
12511
12512impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
12513    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12514        self.as_str().fmt(f)
12515    }
12516}
12517impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardInstallmentsPlanType {
12518    fn default() -> Self {
12519        Self::FixedCount
12520    }
12521}
12522
12523/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardMandateOptions`'s `amount_type` field.
12524#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12525#[serde(rename_all = "snake_case")]
12526pub enum UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
12527    Fixed,
12528    Maximum,
12529}
12530
12531impl UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
12532    pub fn as_str(self) -> &'static str {
12533        match self {
12534            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType::Fixed => "fixed",
12535            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType::Maximum => {
12536                "maximum"
12537            }
12538        }
12539    }
12540}
12541
12542impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
12543    fn as_ref(&self) -> &str {
12544        self.as_str()
12545    }
12546}
12547
12548impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
12549    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12550        self.as_str().fmt(f)
12551    }
12552}
12553impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsAmountType {
12554    fn default() -> Self {
12555        Self::Fixed
12556    }
12557}
12558
12559/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardMandateOptions`'s `interval` field.
12560#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12561#[serde(rename_all = "snake_case")]
12562pub enum UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
12563    Day,
12564    Month,
12565    Sporadic,
12566    Week,
12567    Year,
12568}
12569
12570impl UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
12571    pub fn as_str(self) -> &'static str {
12572        match self {
12573            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Day => "day",
12574            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Month => "month",
12575            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Sporadic => {
12576                "sporadic"
12577            }
12578            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Week => "week",
12579            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval::Year => "year",
12580        }
12581    }
12582}
12583
12584impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
12585    fn as_ref(&self) -> &str {
12586        self.as_str()
12587    }
12588}
12589
12590impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
12591    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12592        self.as_str().fmt(f)
12593    }
12594}
12595impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsInterval {
12596    fn default() -> Self {
12597        Self::Day
12598    }
12599}
12600
12601/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardMandateOptions`'s `supported_types` field.
12602#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12603#[serde(rename_all = "snake_case")]
12604pub enum UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
12605    India,
12606}
12607
12608impl UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
12609    pub fn as_str(self) -> &'static str {
12610        match self {
12611            UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes::India => {
12612                "india"
12613            }
12614        }
12615    }
12616}
12617
12618impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
12619    fn as_ref(&self) -> &str {
12620        self.as_str()
12621    }
12622}
12623
12624impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes {
12625    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12626        self.as_str().fmt(f)
12627    }
12628}
12629impl std::default::Default
12630    for UpdatePaymentIntentPaymentMethodOptionsCardMandateOptionsSupportedTypes
12631{
12632    fn default() -> Self {
12633        Self::India
12634    }
12635}
12636
12637/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `network` field.
12638#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12639#[serde(rename_all = "snake_case")]
12640pub enum UpdatePaymentIntentPaymentMethodOptionsCardNetwork {
12641    Amex,
12642    CartesBancaires,
12643    Diners,
12644    Discover,
12645    EftposAu,
12646    Interac,
12647    Jcb,
12648    Mastercard,
12649    Unionpay,
12650    Unknown,
12651    Visa,
12652}
12653
12654impl UpdatePaymentIntentPaymentMethodOptionsCardNetwork {
12655    pub fn as_str(self) -> &'static str {
12656        match self {
12657            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Amex => "amex",
12658            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::CartesBancaires => {
12659                "cartes_bancaires"
12660            }
12661            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Diners => "diners",
12662            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Discover => "discover",
12663            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::EftposAu => "eftpos_au",
12664            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Interac => "interac",
12665            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Jcb => "jcb",
12666            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Mastercard => "mastercard",
12667            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Unionpay => "unionpay",
12668            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Unknown => "unknown",
12669            UpdatePaymentIntentPaymentMethodOptionsCardNetwork::Visa => "visa",
12670        }
12671    }
12672}
12673
12674impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardNetwork {
12675    fn as_ref(&self) -> &str {
12676        self.as_str()
12677    }
12678}
12679
12680impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardNetwork {
12681    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12682        self.as_str().fmt(f)
12683    }
12684}
12685impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardNetwork {
12686    fn default() -> Self {
12687        Self::Amex
12688    }
12689}
12690
12691/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `request_extended_authorization` field.
12692#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12693#[serde(rename_all = "snake_case")]
12694pub enum UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
12695    IfAvailable,
12696    Never,
12697}
12698
12699impl UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
12700    pub fn as_str(self) -> &'static str {
12701        match self {
12702            UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization::IfAvailable => "if_available",
12703            UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization::Never => "never",
12704        }
12705    }
12706}
12707
12708impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
12709    fn as_ref(&self) -> &str {
12710        self.as_str()
12711    }
12712}
12713
12714impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization {
12715    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12716        self.as_str().fmt(f)
12717    }
12718}
12719impl std::default::Default
12720    for UpdatePaymentIntentPaymentMethodOptionsCardRequestExtendedAuthorization
12721{
12722    fn default() -> Self {
12723        Self::IfAvailable
12724    }
12725}
12726
12727/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `request_incremental_authorization` field.
12728#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12729#[serde(rename_all = "snake_case")]
12730pub enum UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
12731    IfAvailable,
12732    Never,
12733}
12734
12735impl UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
12736    pub fn as_str(self) -> &'static str {
12737        match self {
12738            UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization::IfAvailable => "if_available",
12739            UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization::Never => "never",
12740        }
12741    }
12742}
12743
12744impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization {
12745    fn as_ref(&self) -> &str {
12746        self.as_str()
12747    }
12748}
12749
12750impl std::fmt::Display
12751    for UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization
12752{
12753    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12754        self.as_str().fmt(f)
12755    }
12756}
12757impl std::default::Default
12758    for UpdatePaymentIntentPaymentMethodOptionsCardRequestIncrementalAuthorization
12759{
12760    fn default() -> Self {
12761        Self::IfAvailable
12762    }
12763}
12764
12765/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `request_multicapture` field.
12766#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12767#[serde(rename_all = "snake_case")]
12768pub enum UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
12769    IfAvailable,
12770    Never,
12771}
12772
12773impl UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
12774    pub fn as_str(self) -> &'static str {
12775        match self {
12776            UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture::IfAvailable => {
12777                "if_available"
12778            }
12779            UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture::Never => "never",
12780        }
12781    }
12782}
12783
12784impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
12785    fn as_ref(&self) -> &str {
12786        self.as_str()
12787    }
12788}
12789
12790impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
12791    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12792        self.as_str().fmt(f)
12793    }
12794}
12795impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardRequestMulticapture {
12796    fn default() -> Self {
12797        Self::IfAvailable
12798    }
12799}
12800
12801/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `request_overcapture` field.
12802#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12803#[serde(rename_all = "snake_case")]
12804pub enum UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
12805    IfAvailable,
12806    Never,
12807}
12808
12809impl UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
12810    pub fn as_str(self) -> &'static str {
12811        match self {
12812            UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture::IfAvailable => {
12813                "if_available"
12814            }
12815            UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture::Never => "never",
12816        }
12817    }
12818}
12819
12820impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
12821    fn as_ref(&self) -> &str {
12822        self.as_str()
12823    }
12824}
12825
12826impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
12827    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12828        self.as_str().fmt(f)
12829    }
12830}
12831impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardRequestOvercapture {
12832    fn default() -> Self {
12833        Self::IfAvailable
12834    }
12835}
12836
12837/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `request_three_d_secure` field.
12838#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12839#[serde(rename_all = "snake_case")]
12840pub enum UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
12841    Any,
12842    Automatic,
12843    Challenge,
12844}
12845
12846impl UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
12847    pub fn as_str(self) -> &'static str {
12848        match self {
12849            UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Any => "any",
12850            UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Automatic => {
12851                "automatic"
12852            }
12853            UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure::Challenge => {
12854                "challenge"
12855            }
12856        }
12857    }
12858}
12859
12860impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
12861    fn as_ref(&self) -> &str {
12862        self.as_str()
12863    }
12864}
12865
12866impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
12867    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12868        self.as_str().fmt(f)
12869    }
12870}
12871impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardRequestThreeDSecure {
12872    fn default() -> Self {
12873        Self::Any
12874    }
12875}
12876
12877/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCard`'s `setup_future_usage` field.
12878#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12879#[serde(rename_all = "snake_case")]
12880pub enum UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
12881    None,
12882    OffSession,
12883    OnSession,
12884}
12885
12886impl UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
12887    pub fn as_str(self) -> &'static str {
12888        match self {
12889            UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage::None => "none",
12890            UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage::OffSession => {
12891                "off_session"
12892            }
12893            UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage::OnSession => "on_session",
12894        }
12895    }
12896}
12897
12898impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
12899    fn as_ref(&self) -> &str {
12900        self.as_str()
12901    }
12902}
12903
12904impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
12905    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12906        self.as_str().fmt(f)
12907    }
12908}
12909impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardSetupFutureUsage {
12910    fn default() -> Self {
12911        Self::None
12912    }
12913}
12914
12915/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `ares_trans_status` field.
12916#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12917#[serde(rename_all = "snake_case")]
12918pub enum UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
12919    #[serde(rename = "A")]
12920    A,
12921    #[serde(rename = "C")]
12922    C,
12923    #[serde(rename = "I")]
12924    I,
12925    #[serde(rename = "N")]
12926    N,
12927    #[serde(rename = "R")]
12928    R,
12929    #[serde(rename = "U")]
12930    U,
12931    #[serde(rename = "Y")]
12932    Y,
12933}
12934
12935impl UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
12936    pub fn as_str(self) -> &'static str {
12937        match self {
12938            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::A => "A",
12939            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::C => "C",
12940            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::I => "I",
12941            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::N => "N",
12942            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::R => "R",
12943            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::U => "U",
12944            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus::Y => "Y",
12945        }
12946    }
12947}
12948
12949impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
12950    fn as_ref(&self) -> &str {
12951        self.as_str()
12952    }
12953}
12954
12955impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus {
12956    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12957        self.as_str().fmt(f)
12958    }
12959}
12960impl std::default::Default
12961    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureAresTransStatus
12962{
12963    fn default() -> Self {
12964        Self::A
12965    }
12966}
12967
12968/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `electronic_commerce_indicator` field.
12969#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
12970#[serde(rename_all = "snake_case")]
12971pub enum UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator {
12972    #[serde(rename = "01")]
12973    V01,
12974    #[serde(rename = "02")]
12975    V02,
12976    #[serde(rename = "05")]
12977    V05,
12978    #[serde(rename = "06")]
12979    V06,
12980    #[serde(rename = "07")]
12981    V07,
12982}
12983
12984impl UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator {
12985    pub fn as_str(self) -> &'static str {
12986        match self {
12987            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V01 => "01",
12988            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V02 => "02",
12989            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V05 => "05",
12990            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V06 => "06",
12991            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator::V07 => "07",
12992        }
12993    }
12994}
12995
12996impl AsRef<str>
12997    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator
12998{
12999    fn as_ref(&self) -> &str {
13000        self.as_str()
13001    }
13002}
13003
13004impl std::fmt::Display
13005    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator
13006{
13007    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13008        self.as_str().fmt(f)
13009    }
13010}
13011impl std::default::Default
13012    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureElectronicCommerceIndicator
13013{
13014    fn default() -> Self {
13015        Self::V01
13016    }
13017}
13018
13019/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `exemption_indicator` field.
13020#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13021#[serde(rename_all = "snake_case")]
13022pub enum UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator {
13023    LowRisk,
13024    None,
13025}
13026
13027impl UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator {
13028    pub fn as_str(self) -> &'static str {
13029        match self {
13030            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator::LowRisk => {
13031                "low_risk"
13032            }
13033            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator::None => {
13034                "none"
13035            }
13036        }
13037    }
13038}
13039
13040impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator {
13041    fn as_ref(&self) -> &str {
13042        self.as_str()
13043    }
13044}
13045
13046impl std::fmt::Display
13047    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator
13048{
13049    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13050        self.as_str().fmt(f)
13051    }
13052}
13053impl std::default::Default
13054    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureExemptionIndicator
13055{
13056    fn default() -> Self {
13057        Self::LowRisk
13058    }
13059}
13060
13061/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires`'s `cb_avalgo` field.
13062#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13063#[serde(rename_all = "snake_case")]
13064pub enum UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
13065{
13066    #[serde(rename = "0")]
13067    V0,
13068    #[serde(rename = "1")]
13069    V1,
13070    #[serde(rename = "2")]
13071    V2,
13072    #[serde(rename = "3")]
13073    V3,
13074    #[serde(rename = "4")]
13075    V4,
13076    #[serde(rename = "A")]
13077    A,
13078}
13079
13080impl UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo {
13081    pub fn as_str(self) -> &'static str {
13082        match self {
13083            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V0 => "0",
13084            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V1 => "1",
13085            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V2 => "2",
13086            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V3 => "3",
13087            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::V4 => "4",
13088            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo::A => "A",
13089        }
13090    }
13091}
13092
13093impl AsRef<str>
13094    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
13095{
13096    fn as_ref(&self) -> &str {
13097        self.as_str()
13098    }
13099}
13100
13101impl std::fmt::Display
13102    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
13103{
13104    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13105        self.as_str().fmt(f)
13106    }
13107}
13108impl std::default::Default
13109    for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancairesCbAvalgo
13110{
13111    fn default() -> Self {
13112        Self::V0
13113    }
13114}
13115
13116/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecure`'s `version` field.
13117#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13118#[serde(rename_all = "snake_case")]
13119pub enum UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
13120    #[serde(rename = "1.0.2")]
13121    V1_0_2,
13122    #[serde(rename = "2.1.0")]
13123    V2_1_0,
13124    #[serde(rename = "2.2.0")]
13125    V2_2_0,
13126}
13127
13128impl UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
13129    pub fn as_str(self) -> &'static str {
13130        match self {
13131            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion::V1_0_2 => "1.0.2",
13132            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion::V2_1_0 => "2.1.0",
13133            UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion::V2_2_0 => "2.2.0",
13134        }
13135    }
13136}
13137
13138impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
13139    fn as_ref(&self) -> &str {
13140        self.as_str()
13141    }
13142}
13143
13144impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
13145    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13146        self.as_str().fmt(f)
13147    }
13148}
13149impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCardThreeDSecureVersion {
13150    fn default() -> Self {
13151        Self::V1_0_2
13152    }
13153}
13154
13155/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCashapp`'s `capture_method` field.
13156#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13157#[serde(rename_all = "snake_case")]
13158pub enum UpdatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
13159    Manual,
13160}
13161
13162impl UpdatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
13163    pub fn as_str(self) -> &'static str {
13164        match self {
13165            UpdatePaymentIntentPaymentMethodOptionsCashappCaptureMethod::Manual => "manual",
13166        }
13167    }
13168}
13169
13170impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
13171    fn as_ref(&self) -> &str {
13172        self.as_str()
13173    }
13174}
13175
13176impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
13177    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13178        self.as_str().fmt(f)
13179    }
13180}
13181impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCashappCaptureMethod {
13182    fn default() -> Self {
13183        Self::Manual
13184    }
13185}
13186
13187/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCashapp`'s `setup_future_usage` field.
13188#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13189#[serde(rename_all = "snake_case")]
13190pub enum UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
13191    None,
13192    OffSession,
13193    OnSession,
13194}
13195
13196impl UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
13197    pub fn as_str(self) -> &'static str {
13198        match self {
13199            UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage::None => "none",
13200            UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage::OffSession => {
13201                "off_session"
13202            }
13203            UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage::OnSession => {
13204                "on_session"
13205            }
13206        }
13207    }
13208}
13209
13210impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
13211    fn as_ref(&self) -> &str {
13212        self.as_str()
13213    }
13214}
13215
13216impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
13217    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13218        self.as_str().fmt(f)
13219    }
13220}
13221impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCashappSetupFutureUsage {
13222    fn default() -> Self {
13223        Self::None
13224    }
13225}
13226
13227/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer`'s `requested_address_types` field.
13228#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13229#[serde(rename_all = "snake_case")]
13230pub enum UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
13231    Aba,
13232    Iban,
13233    Sepa,
13234    SortCode,
13235    Spei,
13236    Swift,
13237    Zengin,
13238}
13239
13240impl UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes {
13241    pub fn as_str(self) -> &'static str {
13242        match self {
13243            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Aba => "aba",
13244            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Iban => "iban",
13245            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Sepa => "sepa",
13246            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::SortCode => "sort_code",
13247            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Spei => "spei",
13248            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Swift => "swift",
13249            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes::Zengin => "zengin",
13250        }
13251    }
13252}
13253
13254impl AsRef<str>
13255    for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
13256{
13257    fn as_ref(&self) -> &str {
13258        self.as_str()
13259    }
13260}
13261
13262impl std::fmt::Display
13263    for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
13264{
13265    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13266        self.as_str().fmt(f)
13267    }
13268}
13269impl std::default::Default
13270    for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferRequestedAddressTypes
13271{
13272    fn default() -> Self {
13273        Self::Aba
13274    }
13275}
13276
13277/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransfer`'s `type` field.
13278#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13279#[serde(rename_all = "snake_case")]
13280pub enum UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
13281    EuBankTransfer,
13282    GbBankTransfer,
13283    JpBankTransfer,
13284    MxBankTransfer,
13285    UsBankTransfer,
13286}
13287
13288impl UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
13289    pub fn as_str(self) -> &'static str {
13290        match self {
13291            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::EuBankTransfer => "eu_bank_transfer",
13292            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::GbBankTransfer => "gb_bank_transfer",
13293            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::JpBankTransfer => "jp_bank_transfer",
13294            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::MxBankTransfer => "mx_bank_transfer",
13295            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType::UsBankTransfer => "us_bank_transfer",
13296        }
13297    }
13298}
13299
13300impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
13301    fn as_ref(&self) -> &str {
13302        self.as_str()
13303    }
13304}
13305
13306impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType {
13307    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13308        self.as_str().fmt(f)
13309    }
13310}
13311impl std::default::Default
13312    for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceBankTransferType
13313{
13314    fn default() -> Self {
13315        Self::EuBankTransfer
13316    }
13317}
13318
13319/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCustomerBalance`'s `funding_type` field.
13320#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13321#[serde(rename_all = "snake_case")]
13322pub enum UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
13323    BankTransfer,
13324}
13325
13326impl UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
13327    pub fn as_str(self) -> &'static str {
13328        match self {
13329            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType::BankTransfer => {
13330                "bank_transfer"
13331            }
13332        }
13333    }
13334}
13335
13336impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
13337    fn as_ref(&self) -> &str {
13338        self.as_str()
13339    }
13340}
13341
13342impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
13343    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13344        self.as_str().fmt(f)
13345    }
13346}
13347impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceFundingType {
13348    fn default() -> Self {
13349        Self::BankTransfer
13350    }
13351}
13352
13353/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsCustomerBalance`'s `setup_future_usage` field.
13354#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13355#[serde(rename_all = "snake_case")]
13356pub enum UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
13357    None,
13358}
13359
13360impl UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
13361    pub fn as_str(self) -> &'static str {
13362        match self {
13363            UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage::None => "none",
13364        }
13365    }
13366}
13367
13368impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
13369    fn as_ref(&self) -> &str {
13370        self.as_str()
13371    }
13372}
13373
13374impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage {
13375    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13376        self.as_str().fmt(f)
13377    }
13378}
13379impl std::default::Default
13380    for UpdatePaymentIntentPaymentMethodOptionsCustomerBalanceSetupFutureUsage
13381{
13382    fn default() -> Self {
13383        Self::None
13384    }
13385}
13386
13387/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsEps`'s `setup_future_usage` field.
13388#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13389#[serde(rename_all = "snake_case")]
13390pub enum UpdatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
13391    None,
13392}
13393
13394impl UpdatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
13395    pub fn as_str(self) -> &'static str {
13396        match self {
13397            UpdatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage::None => "none",
13398        }
13399    }
13400}
13401
13402impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
13403    fn as_ref(&self) -> &str {
13404        self.as_str()
13405    }
13406}
13407
13408impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
13409    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13410        self.as_str().fmt(f)
13411    }
13412}
13413impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsEpsSetupFutureUsage {
13414    fn default() -> Self {
13415        Self::None
13416    }
13417}
13418
13419/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsFpx`'s `setup_future_usage` field.
13420#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13421#[serde(rename_all = "snake_case")]
13422pub enum UpdatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
13423    None,
13424}
13425
13426impl UpdatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
13427    pub fn as_str(self) -> &'static str {
13428        match self {
13429            UpdatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage::None => "none",
13430        }
13431    }
13432}
13433
13434impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
13435    fn as_ref(&self) -> &str {
13436        self.as_str()
13437    }
13438}
13439
13440impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
13441    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13442        self.as_str().fmt(f)
13443    }
13444}
13445impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsFpxSetupFutureUsage {
13446    fn default() -> Self {
13447        Self::None
13448    }
13449}
13450
13451/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsGiropay`'s `setup_future_usage` field.
13452#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13453#[serde(rename_all = "snake_case")]
13454pub enum UpdatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
13455    None,
13456}
13457
13458impl UpdatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
13459    pub fn as_str(self) -> &'static str {
13460        match self {
13461            UpdatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage::None => "none",
13462        }
13463    }
13464}
13465
13466impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
13467    fn as_ref(&self) -> &str {
13468        self.as_str()
13469    }
13470}
13471
13472impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
13473    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13474        self.as_str().fmt(f)
13475    }
13476}
13477impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsGiropaySetupFutureUsage {
13478    fn default() -> Self {
13479        Self::None
13480    }
13481}
13482
13483/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsGrabpay`'s `setup_future_usage` field.
13484#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13485#[serde(rename_all = "snake_case")]
13486pub enum UpdatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
13487    None,
13488}
13489
13490impl UpdatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
13491    pub fn as_str(self) -> &'static str {
13492        match self {
13493            UpdatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage::None => "none",
13494        }
13495    }
13496}
13497
13498impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
13499    fn as_ref(&self) -> &str {
13500        self.as_str()
13501    }
13502}
13503
13504impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
13505    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13506        self.as_str().fmt(f)
13507    }
13508}
13509impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsGrabpaySetupFutureUsage {
13510    fn default() -> Self {
13511        Self::None
13512    }
13513}
13514
13515/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsIdeal`'s `setup_future_usage` field.
13516#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13517#[serde(rename_all = "snake_case")]
13518pub enum UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
13519    None,
13520    OffSession,
13521}
13522
13523impl UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
13524    pub fn as_str(self) -> &'static str {
13525        match self {
13526            UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage::None => "none",
13527            UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage::OffSession => {
13528                "off_session"
13529            }
13530        }
13531    }
13532}
13533
13534impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
13535    fn as_ref(&self) -> &str {
13536        self.as_str()
13537    }
13538}
13539
13540impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
13541    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13542        self.as_str().fmt(f)
13543    }
13544}
13545impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsIdealSetupFutureUsage {
13546    fn default() -> Self {
13547        Self::None
13548    }
13549}
13550
13551/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsKlarna`'s `capture_method` field.
13552#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13553#[serde(rename_all = "snake_case")]
13554pub enum UpdatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
13555    Manual,
13556}
13557
13558impl UpdatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
13559    pub fn as_str(self) -> &'static str {
13560        match self {
13561            UpdatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod::Manual => "manual",
13562        }
13563    }
13564}
13565
13566impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
13567    fn as_ref(&self) -> &str {
13568        self.as_str()
13569    }
13570}
13571
13572impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
13573    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13574        self.as_str().fmt(f)
13575    }
13576}
13577impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsKlarnaCaptureMethod {
13578    fn default() -> Self {
13579        Self::Manual
13580    }
13581}
13582
13583/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsKlarna`'s `preferred_locale` field.
13584#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13585#[serde(rename_all = "snake_case")]
13586pub enum UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
13587    #[serde(rename = "cs-CZ")]
13588    CsCz,
13589    #[serde(rename = "da-DK")]
13590    DaDk,
13591    #[serde(rename = "de-AT")]
13592    DeAt,
13593    #[serde(rename = "de-CH")]
13594    DeCh,
13595    #[serde(rename = "de-DE")]
13596    DeDe,
13597    #[serde(rename = "el-GR")]
13598    ElGr,
13599    #[serde(rename = "en-AT")]
13600    EnAt,
13601    #[serde(rename = "en-AU")]
13602    EnAu,
13603    #[serde(rename = "en-BE")]
13604    EnBe,
13605    #[serde(rename = "en-CA")]
13606    EnCa,
13607    #[serde(rename = "en-CH")]
13608    EnCh,
13609    #[serde(rename = "en-CZ")]
13610    EnCz,
13611    #[serde(rename = "en-DE")]
13612    EnDe,
13613    #[serde(rename = "en-DK")]
13614    EnDk,
13615    #[serde(rename = "en-ES")]
13616    EnEs,
13617    #[serde(rename = "en-FI")]
13618    EnFi,
13619    #[serde(rename = "en-FR")]
13620    EnFr,
13621    #[serde(rename = "en-GB")]
13622    EnGb,
13623    #[serde(rename = "en-GR")]
13624    EnGr,
13625    #[serde(rename = "en-IE")]
13626    EnIe,
13627    #[serde(rename = "en-IT")]
13628    EnIt,
13629    #[serde(rename = "en-NL")]
13630    EnNl,
13631    #[serde(rename = "en-NO")]
13632    EnNo,
13633    #[serde(rename = "en-NZ")]
13634    EnNz,
13635    #[serde(rename = "en-PL")]
13636    EnPl,
13637    #[serde(rename = "en-PT")]
13638    EnPt,
13639    #[serde(rename = "en-SE")]
13640    EnSe,
13641    #[serde(rename = "en-US")]
13642    EnUs,
13643    #[serde(rename = "es-ES")]
13644    EsEs,
13645    #[serde(rename = "es-US")]
13646    EsUs,
13647    #[serde(rename = "fi-FI")]
13648    FiFi,
13649    #[serde(rename = "fr-BE")]
13650    FrBe,
13651    #[serde(rename = "fr-CA")]
13652    FrCa,
13653    #[serde(rename = "fr-CH")]
13654    FrCh,
13655    #[serde(rename = "fr-FR")]
13656    FrFr,
13657    #[serde(rename = "it-CH")]
13658    ItCh,
13659    #[serde(rename = "it-IT")]
13660    ItIt,
13661    #[serde(rename = "nb-NO")]
13662    NbNo,
13663    #[serde(rename = "nl-BE")]
13664    NlBe,
13665    #[serde(rename = "nl-NL")]
13666    NlNl,
13667    #[serde(rename = "pl-PL")]
13668    PlPl,
13669    #[serde(rename = "pt-PT")]
13670    PtPt,
13671    #[serde(rename = "sv-FI")]
13672    SvFi,
13673    #[serde(rename = "sv-SE")]
13674    SvSe,
13675}
13676
13677impl UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
13678    pub fn as_str(self) -> &'static str {
13679        match self {
13680            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::CsCz => "cs-CZ",
13681            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DaDk => "da-DK",
13682            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DeAt => "de-AT",
13683            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DeCh => "de-CH",
13684            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::DeDe => "de-DE",
13685            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::ElGr => "el-GR",
13686            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnAt => "en-AT",
13687            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnAu => "en-AU",
13688            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnBe => "en-BE",
13689            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnCa => "en-CA",
13690            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnCh => "en-CH",
13691            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnCz => "en-CZ",
13692            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnDe => "en-DE",
13693            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnDk => "en-DK",
13694            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnEs => "en-ES",
13695            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnFi => "en-FI",
13696            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnFr => "en-FR",
13697            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnGb => "en-GB",
13698            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnGr => "en-GR",
13699            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnIe => "en-IE",
13700            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnIt => "en-IT",
13701            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnNl => "en-NL",
13702            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnNo => "en-NO",
13703            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnNz => "en-NZ",
13704            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnPl => "en-PL",
13705            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnPt => "en-PT",
13706            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnSe => "en-SE",
13707            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EnUs => "en-US",
13708            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EsEs => "es-ES",
13709            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::EsUs => "es-US",
13710            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FiFi => "fi-FI",
13711            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrBe => "fr-BE",
13712            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrCa => "fr-CA",
13713            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrCh => "fr-CH",
13714            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::FrFr => "fr-FR",
13715            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::ItCh => "it-CH",
13716            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::ItIt => "it-IT",
13717            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::NbNo => "nb-NO",
13718            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::NlBe => "nl-BE",
13719            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::NlNl => "nl-NL",
13720            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::PlPl => "pl-PL",
13721            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::PtPt => "pt-PT",
13722            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::SvFi => "sv-FI",
13723            UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale::SvSe => "sv-SE",
13724        }
13725    }
13726}
13727
13728impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
13729    fn as_ref(&self) -> &str {
13730        self.as_str()
13731    }
13732}
13733
13734impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
13735    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13736        self.as_str().fmt(f)
13737    }
13738}
13739impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsKlarnaPreferredLocale {
13740    fn default() -> Self {
13741        Self::CsCz
13742    }
13743}
13744
13745/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsKlarna`'s `setup_future_usage` field.
13746#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13747#[serde(rename_all = "snake_case")]
13748pub enum UpdatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
13749    None,
13750}
13751
13752impl UpdatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
13753    pub fn as_str(self) -> &'static str {
13754        match self {
13755            UpdatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage::None => "none",
13756        }
13757    }
13758}
13759
13760impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
13761    fn as_ref(&self) -> &str {
13762        self.as_str()
13763    }
13764}
13765
13766impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
13767    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13768        self.as_str().fmt(f)
13769    }
13770}
13771impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsKlarnaSetupFutureUsage {
13772    fn default() -> Self {
13773        Self::None
13774    }
13775}
13776
13777/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsKonbini`'s `setup_future_usage` field.
13778#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13779#[serde(rename_all = "snake_case")]
13780pub enum UpdatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
13781    None,
13782}
13783
13784impl UpdatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
13785    pub fn as_str(self) -> &'static str {
13786        match self {
13787            UpdatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage::None => "none",
13788        }
13789    }
13790}
13791
13792impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
13793    fn as_ref(&self) -> &str {
13794        self.as_str()
13795    }
13796}
13797
13798impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
13799    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13800        self.as_str().fmt(f)
13801    }
13802}
13803impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsKonbiniSetupFutureUsage {
13804    fn default() -> Self {
13805        Self::None
13806    }
13807}
13808
13809/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsLink`'s `capture_method` field.
13810#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13811#[serde(rename_all = "snake_case")]
13812pub enum UpdatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
13813    Manual,
13814}
13815
13816impl UpdatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
13817    pub fn as_str(self) -> &'static str {
13818        match self {
13819            UpdatePaymentIntentPaymentMethodOptionsLinkCaptureMethod::Manual => "manual",
13820        }
13821    }
13822}
13823
13824impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
13825    fn as_ref(&self) -> &str {
13826        self.as_str()
13827    }
13828}
13829
13830impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
13831    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13832        self.as_str().fmt(f)
13833    }
13834}
13835impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsLinkCaptureMethod {
13836    fn default() -> Self {
13837        Self::Manual
13838    }
13839}
13840
13841/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsLink`'s `setup_future_usage` field.
13842#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13843#[serde(rename_all = "snake_case")]
13844pub enum UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
13845    None,
13846    OffSession,
13847}
13848
13849impl UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
13850    pub fn as_str(self) -> &'static str {
13851        match self {
13852            UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage::None => "none",
13853            UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage::OffSession => {
13854                "off_session"
13855            }
13856        }
13857    }
13858}
13859
13860impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
13861    fn as_ref(&self) -> &str {
13862        self.as_str()
13863    }
13864}
13865
13866impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
13867    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13868        self.as_str().fmt(f)
13869    }
13870}
13871impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsLinkSetupFutureUsage {
13872    fn default() -> Self {
13873        Self::None
13874    }
13875}
13876
13877/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsOxxo`'s `setup_future_usage` field.
13878#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13879#[serde(rename_all = "snake_case")]
13880pub enum UpdatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
13881    None,
13882}
13883
13884impl UpdatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
13885    pub fn as_str(self) -> &'static str {
13886        match self {
13887            UpdatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage::None => "none",
13888        }
13889    }
13890}
13891
13892impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
13893    fn as_ref(&self) -> &str {
13894        self.as_str()
13895    }
13896}
13897
13898impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
13899    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13900        self.as_str().fmt(f)
13901    }
13902}
13903impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsOxxoSetupFutureUsage {
13904    fn default() -> Self {
13905        Self::None
13906    }
13907}
13908
13909/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsP24`'s `setup_future_usage` field.
13910#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13911#[serde(rename_all = "snake_case")]
13912pub enum UpdatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
13913    None,
13914}
13915
13916impl UpdatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
13917    pub fn as_str(self) -> &'static str {
13918        match self {
13919            UpdatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage::None => "none",
13920        }
13921    }
13922}
13923
13924impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
13925    fn as_ref(&self) -> &str {
13926        self.as_str()
13927    }
13928}
13929
13930impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
13931    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13932        self.as_str().fmt(f)
13933    }
13934}
13935impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsP24SetupFutureUsage {
13936    fn default() -> Self {
13937        Self::None
13938    }
13939}
13940
13941/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsPaynow`'s `setup_future_usage` field.
13942#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13943#[serde(rename_all = "snake_case")]
13944pub enum UpdatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
13945    None,
13946}
13947
13948impl UpdatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
13949    pub fn as_str(self) -> &'static str {
13950        match self {
13951            UpdatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage::None => "none",
13952        }
13953    }
13954}
13955
13956impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
13957    fn as_ref(&self) -> &str {
13958        self.as_str()
13959    }
13960}
13961
13962impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
13963    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13964        self.as_str().fmt(f)
13965    }
13966}
13967impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsPaynowSetupFutureUsage {
13968    fn default() -> Self {
13969        Self::None
13970    }
13971}
13972
13973/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsPaypal`'s `capture_method` field.
13974#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
13975#[serde(rename_all = "snake_case")]
13976pub enum UpdatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
13977    Manual,
13978}
13979
13980impl UpdatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
13981    pub fn as_str(self) -> &'static str {
13982        match self {
13983            UpdatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod::Manual => "manual",
13984        }
13985    }
13986}
13987
13988impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
13989    fn as_ref(&self) -> &str {
13990        self.as_str()
13991    }
13992}
13993
13994impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
13995    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
13996        self.as_str().fmt(f)
13997    }
13998}
13999impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsPaypalCaptureMethod {
14000    fn default() -> Self {
14001        Self::Manual
14002    }
14003}
14004
14005/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsPaypal`'s `preferred_locale` field.
14006#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14007#[serde(rename_all = "snake_case")]
14008pub enum UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
14009    #[serde(rename = "cs-CZ")]
14010    CsCz,
14011    #[serde(rename = "da-DK")]
14012    DaDk,
14013    #[serde(rename = "de-AT")]
14014    DeAt,
14015    #[serde(rename = "de-DE")]
14016    DeDe,
14017    #[serde(rename = "de-LU")]
14018    DeLu,
14019    #[serde(rename = "el-GR")]
14020    ElGr,
14021    #[serde(rename = "en-GB")]
14022    EnGb,
14023    #[serde(rename = "en-US")]
14024    EnUs,
14025    #[serde(rename = "es-ES")]
14026    EsEs,
14027    #[serde(rename = "fi-FI")]
14028    FiFi,
14029    #[serde(rename = "fr-BE")]
14030    FrBe,
14031    #[serde(rename = "fr-FR")]
14032    FrFr,
14033    #[serde(rename = "fr-LU")]
14034    FrLu,
14035    #[serde(rename = "hu-HU")]
14036    HuHu,
14037    #[serde(rename = "it-IT")]
14038    ItIt,
14039    #[serde(rename = "nl-BE")]
14040    NlBe,
14041    #[serde(rename = "nl-NL")]
14042    NlNl,
14043    #[serde(rename = "pl-PL")]
14044    PlPl,
14045    #[serde(rename = "pt-PT")]
14046    PtPt,
14047    #[serde(rename = "sk-SK")]
14048    SkSk,
14049    #[serde(rename = "sv-SE")]
14050    SvSe,
14051}
14052
14053impl UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
14054    pub fn as_str(self) -> &'static str {
14055        match self {
14056            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::CsCz => "cs-CZ",
14057            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DaDk => "da-DK",
14058            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DeAt => "de-AT",
14059            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DeDe => "de-DE",
14060            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::DeLu => "de-LU",
14061            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::ElGr => "el-GR",
14062            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::EnGb => "en-GB",
14063            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::EnUs => "en-US",
14064            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::EsEs => "es-ES",
14065            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FiFi => "fi-FI",
14066            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FrBe => "fr-BE",
14067            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FrFr => "fr-FR",
14068            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::FrLu => "fr-LU",
14069            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::HuHu => "hu-HU",
14070            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::ItIt => "it-IT",
14071            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::NlBe => "nl-BE",
14072            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::NlNl => "nl-NL",
14073            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::PlPl => "pl-PL",
14074            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::PtPt => "pt-PT",
14075            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::SkSk => "sk-SK",
14076            UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale::SvSe => "sv-SE",
14077        }
14078    }
14079}
14080
14081impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
14082    fn as_ref(&self) -> &str {
14083        self.as_str()
14084    }
14085}
14086
14087impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
14088    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14089        self.as_str().fmt(f)
14090    }
14091}
14092impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsPaypalPreferredLocale {
14093    fn default() -> Self {
14094        Self::CsCz
14095    }
14096}
14097
14098/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsPaypal`'s `setup_future_usage` field.
14099#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14100#[serde(rename_all = "snake_case")]
14101pub enum UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
14102    None,
14103    OffSession,
14104}
14105
14106impl UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
14107    pub fn as_str(self) -> &'static str {
14108        match self {
14109            UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage::None => "none",
14110            UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage::OffSession => {
14111                "off_session"
14112            }
14113        }
14114    }
14115}
14116
14117impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
14118    fn as_ref(&self) -> &str {
14119        self.as_str()
14120    }
14121}
14122
14123impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
14124    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14125        self.as_str().fmt(f)
14126    }
14127}
14128impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsPaypalSetupFutureUsage {
14129    fn default() -> Self {
14130        Self::None
14131    }
14132}
14133
14134/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsPix`'s `setup_future_usage` field.
14135#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14136#[serde(rename_all = "snake_case")]
14137pub enum UpdatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
14138    None,
14139}
14140
14141impl UpdatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
14142    pub fn as_str(self) -> &'static str {
14143        match self {
14144            UpdatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage::None => "none",
14145        }
14146    }
14147}
14148
14149impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
14150    fn as_ref(&self) -> &str {
14151        self.as_str()
14152    }
14153}
14154
14155impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
14156    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14157        self.as_str().fmt(f)
14158    }
14159}
14160impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsPixSetupFutureUsage {
14161    fn default() -> Self {
14162        Self::None
14163    }
14164}
14165
14166/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsPromptpay`'s `setup_future_usage` field.
14167#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14168#[serde(rename_all = "snake_case")]
14169pub enum UpdatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
14170    None,
14171}
14172
14173impl UpdatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
14174    pub fn as_str(self) -> &'static str {
14175        match self {
14176            UpdatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage::None => "none",
14177        }
14178    }
14179}
14180
14181impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
14182    fn as_ref(&self) -> &str {
14183        self.as_str()
14184    }
14185}
14186
14187impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
14188    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14189        self.as_str().fmt(f)
14190    }
14191}
14192impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsPromptpaySetupFutureUsage {
14193    fn default() -> Self {
14194        Self::None
14195    }
14196}
14197
14198/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsRevolutPay`'s `setup_future_usage` field.
14199#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14200#[serde(rename_all = "snake_case")]
14201pub enum UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
14202    None,
14203    OffSession,
14204}
14205
14206impl UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
14207    pub fn as_str(self) -> &'static str {
14208        match self {
14209            UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage::None => "none",
14210            UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage::OffSession => {
14211                "off_session"
14212            }
14213        }
14214    }
14215}
14216
14217impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
14218    fn as_ref(&self) -> &str {
14219        self.as_str()
14220    }
14221}
14222
14223impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
14224    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14225        self.as_str().fmt(f)
14226    }
14227}
14228impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsRevolutPaySetupFutureUsage {
14229    fn default() -> Self {
14230        Self::None
14231    }
14232}
14233
14234/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsSepaDebit`'s `setup_future_usage` field.
14235#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14236#[serde(rename_all = "snake_case")]
14237pub enum UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
14238    None,
14239    OffSession,
14240    OnSession,
14241}
14242
14243impl UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
14244    pub fn as_str(self) -> &'static str {
14245        match self {
14246            UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::None => "none",
14247            UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::OffSession => {
14248                "off_session"
14249            }
14250            UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage::OnSession => {
14251                "on_session"
14252            }
14253        }
14254    }
14255}
14256
14257impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
14258    fn as_ref(&self) -> &str {
14259        self.as_str()
14260    }
14261}
14262
14263impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
14264    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14265        self.as_str().fmt(f)
14266    }
14267}
14268impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsSepaDebitSetupFutureUsage {
14269    fn default() -> Self {
14270        Self::None
14271    }
14272}
14273
14274/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsSofort`'s `preferred_language` field.
14275#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14276#[serde(rename_all = "snake_case")]
14277pub enum UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
14278    De,
14279    En,
14280    Es,
14281    Fr,
14282    It,
14283    Nl,
14284    Pl,
14285}
14286
14287impl UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
14288    pub fn as_str(self) -> &'static str {
14289        match self {
14290            UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::De => "de",
14291            UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::En => "en",
14292            UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Es => "es",
14293            UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Fr => "fr",
14294            UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::It => "it",
14295            UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Nl => "nl",
14296            UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage::Pl => "pl",
14297        }
14298    }
14299}
14300
14301impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
14302    fn as_ref(&self) -> &str {
14303        self.as_str()
14304    }
14305}
14306
14307impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
14308    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14309        self.as_str().fmt(f)
14310    }
14311}
14312impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsSofortPreferredLanguage {
14313    fn default() -> Self {
14314        Self::De
14315    }
14316}
14317
14318/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsSofort`'s `setup_future_usage` field.
14319#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14320#[serde(rename_all = "snake_case")]
14321pub enum UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
14322    None,
14323    OffSession,
14324}
14325
14326impl UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
14327    pub fn as_str(self) -> &'static str {
14328        match self {
14329            UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage::None => "none",
14330            UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage::OffSession => {
14331                "off_session"
14332            }
14333        }
14334    }
14335}
14336
14337impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
14338    fn as_ref(&self) -> &str {
14339        self.as_str()
14340    }
14341}
14342
14343impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
14344    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14345        self.as_str().fmt(f)
14346    }
14347}
14348impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsSofortSetupFutureUsage {
14349    fn default() -> Self {
14350        Self::None
14351    }
14352}
14353
14354/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsSwish`'s `setup_future_usage` field.
14355#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14356#[serde(rename_all = "snake_case")]
14357pub enum UpdatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
14358    None,
14359}
14360
14361impl UpdatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
14362    pub fn as_str(self) -> &'static str {
14363        match self {
14364            UpdatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage::None => "none",
14365        }
14366    }
14367}
14368
14369impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
14370    fn as_ref(&self) -> &str {
14371        self.as_str()
14372    }
14373}
14374
14375impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
14376    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14377        self.as_str().fmt(f)
14378    }
14379}
14380impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsSwishSetupFutureUsage {
14381    fn default() -> Self {
14382        Self::None
14383    }
14384}
14385
14386/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections`'s `permissions` field.
14387#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14388#[serde(rename_all = "snake_case")]
14389pub enum UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions {
14390    Balances,
14391    Ownership,
14392    PaymentMethod,
14393    Transactions,
14394}
14395
14396impl UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions {
14397    pub fn as_str(self) -> &'static str {
14398        match self {
14399            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Balances => "balances",
14400            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Ownership => "ownership",
14401            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::PaymentMethod => "payment_method",
14402            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions::Transactions => "transactions",
14403        }
14404    }
14405}
14406
14407impl AsRef<str>
14408    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
14409{
14410    fn as_ref(&self) -> &str {
14411        self.as_str()
14412    }
14413}
14414
14415impl std::fmt::Display
14416    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
14417{
14418    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14419        self.as_str().fmt(f)
14420    }
14421}
14422impl std::default::Default
14423    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPermissions
14424{
14425    fn default() -> Self {
14426        Self::Balances
14427    }
14428}
14429
14430/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnections`'s `prefetch` field.
14431#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14432#[serde(rename_all = "snake_case")]
14433pub enum UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch {
14434    Balances,
14435    Transactions,
14436}
14437
14438impl UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch {
14439    pub fn as_str(self) -> &'static str {
14440        match self {
14441            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch::Balances => "balances",
14442            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch::Transactions => "transactions",
14443        }
14444    }
14445}
14446
14447impl AsRef<str>
14448    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
14449{
14450    fn as_ref(&self) -> &str {
14451        self.as_str()
14452    }
14453}
14454
14455impl std::fmt::Display
14456    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
14457{
14458    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14459        self.as_str().fmt(f)
14460    }
14461}
14462impl std::default::Default
14463    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountFinancialConnectionsPrefetch
14464{
14465    fn default() -> Self {
14466        Self::Balances
14467    }
14468}
14469
14470/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptions`'s `collection_method` field.
14471#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14472#[serde(rename_all = "snake_case")]
14473pub enum UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod {
14474    Paper,
14475}
14476
14477impl UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod {
14478    pub fn as_str(self) -> &'static str {
14479        match self {
14480            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod::Paper => "paper",
14481        }
14482    }
14483}
14484
14485impl AsRef<str>
14486    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod
14487{
14488    fn as_ref(&self) -> &str {
14489        self.as_str()
14490    }
14491}
14492
14493impl std::fmt::Display
14494    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod
14495{
14496    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14497        self.as_str().fmt(f)
14498    }
14499}
14500impl std::default::Default
14501    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountMandateOptionsCollectionMethod
14502{
14503    fn default() -> Self {
14504        Self::Paper
14505    }
14506}
14507
14508/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworks`'s `requested` field.
14509#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14510#[serde(rename_all = "snake_case")]
14511pub enum UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
14512    Ach,
14513    UsDomesticWire,
14514}
14515
14516impl UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
14517    pub fn as_str(self) -> &'static str {
14518        match self {
14519            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested::Ach => "ach",
14520            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested::UsDomesticWire => "us_domestic_wire",
14521        }
14522    }
14523}
14524
14525impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
14526    fn as_ref(&self) -> &str {
14527        self.as_str()
14528    }
14529}
14530
14531impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested {
14532    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14533        self.as_str().fmt(f)
14534    }
14535}
14536impl std::default::Default
14537    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountNetworksRequested
14538{
14539    fn default() -> Self {
14540        Self::Ach
14541    }
14542}
14543
14544/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsUsBankAccount`'s `preferred_settlement_speed` field.
14545#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14546#[serde(rename_all = "snake_case")]
14547pub enum UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
14548    Fastest,
14549    Standard,
14550}
14551
14552impl UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
14553    pub fn as_str(self) -> &'static str {
14554        match self {
14555            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed::Fastest => "fastest",
14556            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed::Standard => "standard",
14557        }
14558    }
14559}
14560
14561impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed {
14562    fn as_ref(&self) -> &str {
14563        self.as_str()
14564    }
14565}
14566
14567impl std::fmt::Display
14568    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed
14569{
14570    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14571        self.as_str().fmt(f)
14572    }
14573}
14574impl std::default::Default
14575    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountPreferredSettlementSpeed
14576{
14577    fn default() -> Self {
14578        Self::Fastest
14579    }
14580}
14581
14582/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsUsBankAccount`'s `setup_future_usage` field.
14583#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14584#[serde(rename_all = "snake_case")]
14585pub enum UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
14586    None,
14587    OffSession,
14588    OnSession,
14589}
14590
14591impl UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
14592    pub fn as_str(self) -> &'static str {
14593        match self {
14594            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::None => "none",
14595            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::OffSession => {
14596                "off_session"
14597            }
14598            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage::OnSession => {
14599                "on_session"
14600            }
14601        }
14602    }
14603}
14604
14605impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
14606    fn as_ref(&self) -> &str {
14607        self.as_str()
14608    }
14609}
14610
14611impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage {
14612    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14613        self.as_str().fmt(f)
14614    }
14615}
14616impl std::default::Default
14617    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountSetupFutureUsage
14618{
14619    fn default() -> Self {
14620        Self::None
14621    }
14622}
14623
14624/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsUsBankAccount`'s `verification_method` field.
14625#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14626#[serde(rename_all = "snake_case")]
14627pub enum UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
14628    Automatic,
14629    Instant,
14630    Microdeposits,
14631}
14632
14633impl UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
14634    pub fn as_str(self) -> &'static str {
14635        match self {
14636            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Automatic => "automatic",
14637            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Instant => "instant",
14638            UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod::Microdeposits => "microdeposits",
14639        }
14640    }
14641}
14642
14643impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
14644    fn as_ref(&self) -> &str {
14645        self.as_str()
14646    }
14647}
14648
14649impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod {
14650    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14651        self.as_str().fmt(f)
14652    }
14653}
14654impl std::default::Default
14655    for UpdatePaymentIntentPaymentMethodOptionsUsBankAccountVerificationMethod
14656{
14657    fn default() -> Self {
14658        Self::Automatic
14659    }
14660}
14661
14662/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsWechatPay`'s `client` field.
14663#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14664#[serde(rename_all = "snake_case")]
14665pub enum UpdatePaymentIntentPaymentMethodOptionsWechatPayClient {
14666    Android,
14667    Ios,
14668    Web,
14669}
14670
14671impl UpdatePaymentIntentPaymentMethodOptionsWechatPayClient {
14672    pub fn as_str(self) -> &'static str {
14673        match self {
14674            UpdatePaymentIntentPaymentMethodOptionsWechatPayClient::Android => "android",
14675            UpdatePaymentIntentPaymentMethodOptionsWechatPayClient::Ios => "ios",
14676            UpdatePaymentIntentPaymentMethodOptionsWechatPayClient::Web => "web",
14677        }
14678    }
14679}
14680
14681impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsWechatPayClient {
14682    fn as_ref(&self) -> &str {
14683        self.as_str()
14684    }
14685}
14686
14687impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsWechatPayClient {
14688    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14689        self.as_str().fmt(f)
14690    }
14691}
14692impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsWechatPayClient {
14693    fn default() -> Self {
14694        Self::Android
14695    }
14696}
14697
14698/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsWechatPay`'s `setup_future_usage` field.
14699#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14700#[serde(rename_all = "snake_case")]
14701pub enum UpdatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
14702    None,
14703}
14704
14705impl UpdatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
14706    pub fn as_str(self) -> &'static str {
14707        match self {
14708            UpdatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage::None => "none",
14709        }
14710    }
14711}
14712
14713impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
14714    fn as_ref(&self) -> &str {
14715        self.as_str()
14716    }
14717}
14718
14719impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
14720    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14721        self.as_str().fmt(f)
14722    }
14723}
14724impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsWechatPaySetupFutureUsage {
14725    fn default() -> Self {
14726        Self::None
14727    }
14728}
14729
14730/// An enum representing the possible values of an `UpdatePaymentIntentPaymentMethodOptionsZip`'s `setup_future_usage` field.
14731#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
14732#[serde(rename_all = "snake_case")]
14733pub enum UpdatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
14734    None,
14735}
14736
14737impl UpdatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
14738    pub fn as_str(self) -> &'static str {
14739        match self {
14740            UpdatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage::None => "none",
14741        }
14742    }
14743}
14744
14745impl AsRef<str> for UpdatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
14746    fn as_ref(&self) -> &str {
14747        self.as_str()
14748    }
14749}
14750
14751impl std::fmt::Display for UpdatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
14752    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
14753        self.as_str().fmt(f)
14754    }
14755}
14756impl std::default::Default for UpdatePaymentIntentPaymentMethodOptionsZipSetupFutureUsage {
14757    fn default() -> Self {
14758        Self::None
14759    }
14760}