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

stripe / stripe-java / #16599

29 Oct 2024 11:04PM UTC coverage: 12.519% (-0.1%) from 12.62%
#16599

push

github

web-flow
Merge pull request #1914 from stripe/latest-codegen-beta

Update generated code for beta

40 of 1580 new or added lines in 51 files covered. (2.53%)

19 existing lines in 15 files now uncovered.

18843 of 150513 relevant lines covered (12.52%)

0.13 hits per line

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

39.3
/src/main/java/com/stripe/model/PaymentIntent.java
1
// File generated from our OpenAPI spec
2
package com.stripe.model;
3

4
import com.google.gson.annotations.SerializedName;
5
import com.stripe.exception.StripeException;
6
import com.stripe.net.ApiRequest;
7
import com.stripe.net.ApiRequestParams;
8
import com.stripe.net.ApiResource;
9
import com.stripe.net.BaseAddress;
10
import com.stripe.net.RequestOptions;
11
import com.stripe.net.StripeResponseGetter;
12
import com.stripe.param.PaymentIntentApplyCustomerBalanceParams;
13
import com.stripe.param.PaymentIntentCancelParams;
14
import com.stripe.param.PaymentIntentCaptureParams;
15
import com.stripe.param.PaymentIntentConfirmParams;
16
import com.stripe.param.PaymentIntentCreateParams;
17
import com.stripe.param.PaymentIntentDecrementAuthorizationParams;
18
import com.stripe.param.PaymentIntentIncrementAuthorizationParams;
19
import com.stripe.param.PaymentIntentListParams;
20
import com.stripe.param.PaymentIntentRetrieveParams;
21
import com.stripe.param.PaymentIntentSearchParams;
22
import com.stripe.param.PaymentIntentTriggerActionParams;
23
import com.stripe.param.PaymentIntentUpdateParams;
24
import com.stripe.param.PaymentIntentVerifyMicrodepositsParams;
25
import java.util.List;
26
import java.util.Map;
27
import lombok.EqualsAndHashCode;
28
import lombok.Getter;
29
import lombok.Setter;
30

31
/**
32
 * A PaymentIntent guides you through the process of collecting a payment from your customer. We
33
 * recommend that you create exactly one PaymentIntent for each order or customer session in your
34
 * system. You can reference the PaymentIntent later to see the history of payment attempts for a
35
 * particular session.
36
 *
37
 * <p>A PaymentIntent transitions through <a
38
 * href="https://stripe.com/docs/payments/intents#intent-statuses">multiple statuses</a> throughout
39
 * its lifetime as it interfaces with Stripe.js to perform authentication flows and ultimately
40
 * creates at most one successful charge.
41
 *
42
 * <p>Related guide: <a href="https://stripe.com/docs/payments/payment-intents">Payment Intents
43
 * API</a>
44
 */
45
@Getter
46
@Setter
47
@EqualsAndHashCode(callSuper = false)
48
public class PaymentIntent extends ApiResource implements HasId, MetadataStore<PaymentIntent> {
1✔
49
  /**
50
   * Amount intended to be collected by this PaymentIntent. A positive integer representing how much
51
   * to charge in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency
52
   * unit</a> (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The
53
   * minimum amount is $0.50 US or <a
54
   * href="https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts">equivalent in
55
   * charge currency</a>. The amount value supports up to eight digits (e.g., a value of 99999999
56
   * for a USD charge of $999,999.99).
57
   */
58
  @SerializedName("amount")
59
  Long amount;
60

61
  /** Amount that can be captured from this PaymentIntent. */
62
  @SerializedName("amount_capturable")
63
  Long amountCapturable;
64

65
  @SerializedName("amount_details")
66
  AmountDetails amountDetails;
67

68
  /** Amount that this PaymentIntent collects. */
69
  @SerializedName("amount_received")
70
  Long amountReceived;
71

72
  /** ID of the Connect application that created the PaymentIntent. */
73
  @SerializedName("application")
74
  @Getter(lombok.AccessLevel.NONE)
75
  @Setter(lombok.AccessLevel.NONE)
76
  ExpandableField<Application> application;
77

78
  /**
79
   * The amount of the application fee (if any) that will be requested to be applied to the payment
80
   * and transferred to the application owner's Stripe account. The amount of the application fee
81
   * collected will be capped at the total payment amount. For more information, see the
82
   * PaymentIntents <a href="https://stripe.com/docs/payments/connected-accounts">use case for
83
   * connected accounts</a>.
84
   */
85
  @SerializedName("application_fee_amount")
86
  Long applicationFeeAmount;
87

88
  @SerializedName("async_workflows")
89
  AsyncWorkflows asyncWorkflows;
90

91
  /**
92
   * Settings to configure compatible payment methods from the <a
93
   * href="https://dashboard.stripe.com/settings/payment_methods">Stripe Dashboard.</a>
94
   */
95
  @SerializedName("automatic_payment_methods")
96
  AutomaticPaymentMethods automaticPaymentMethods;
97

98
  /**
99
   * Populated when {@code status} is {@code canceled}, this is the time at which the PaymentIntent
100
   * was canceled. Measured in seconds since the Unix epoch.
101
   */
102
  @SerializedName("canceled_at")
103
  Long canceledAt;
104

105
  /**
106
   * Reason for cancellation of this PaymentIntent, either user-provided ({@code duplicate}, {@code
107
   * fraudulent}, {@code requested_by_customer}, or {@code abandoned}) or generated by Stripe
108
   * internally ({@code failed_invoice}, {@code void_invoice}, or {@code automatic}).
109
   *
110
   * <p>One of {@code abandoned}, {@code automatic}, {@code duplicate}, {@code failed_invoice},
111
   * {@code fraudulent}, {@code requested_by_customer}, or {@code void_invoice}.
112
   */
113
  @SerializedName("cancellation_reason")
114
  String cancellationReason;
115

116
  /**
117
   * Controls when the funds will be captured from the customer's account.
118
   *
119
   * <p>One of {@code automatic}, {@code automatic_async}, or {@code manual}.
120
   */
121
  @SerializedName("capture_method")
122
  String captureMethod;
123

124
  /**
125
   * The client secret of this PaymentIntent. Used for client-side retrieval using a publishable
126
   * key.
127
   *
128
   * <p>The client secret can be used to complete a payment from your frontend. It should not be
129
   * stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS
130
   * enabled on any page that includes the client secret.
131
   *
132
   * <p>Refer to our docs to <a
133
   * href="https://stripe.com/docs/payments/accept-a-payment?ui=elements">accept a payment</a> and
134
   * learn about how {@code client_secret} should be handled.
135
   */
136
  @SerializedName("client_secret")
137
  String clientSecret;
138

139
  /**
140
   * Describes whether we can confirm this PaymentIntent automatically, or if it requires customer
141
   * action to confirm the payment.
142
   *
143
   * <p>One of {@code automatic}, or {@code manual}.
144
   */
145
  @SerializedName("confirmation_method")
146
  String confirmationMethod;
147

148
  /** Time at which the object was created. Measured in seconds since the Unix epoch. */
149
  @SerializedName("created")
150
  Long created;
151

152
  /**
153
   * Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>,
154
   * in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
155
   */
156
  @SerializedName("currency")
157
  String currency;
158

159
  /**
160
   * ID of the Customer this PaymentIntent belongs to, if one exists.
161
   *
162
   * <p>Payment methods attached to other Customers cannot be used with this PaymentIntent.
163
   *
164
   * <p>If <a
165
   * href="https://stripe.com/docs/api#payment_intent_object-setup_future_usage">setup_future_usage</a>
166
   * is set and this PaymentIntent's payment method is not {@code card_present}, then the payment
167
   * method attaches to the Customer after the PaymentIntent has been confirmed and any required
168
   * actions from the user are complete. If the payment method is {@code card_present} and isn't a
169
   * digital wallet, then a <a
170
   * href="https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
171
   * payment method representing the card is created and attached to the Customer instead.
172
   */
173
  @SerializedName("customer")
174
  @Getter(lombok.AccessLevel.NONE)
175
  @Setter(lombok.AccessLevel.NONE)
176
  ExpandableField<Customer> customer;
177

178
  /** An arbitrary string attached to the object. Often useful for displaying to users. */
179
  @SerializedName("description")
180
  String description;
181

182
  /** Unique identifier for the object. */
183
  @Getter(onMethod_ = {@Override})
184
  @SerializedName("id")
185
  String id;
186

187
  /** ID of the invoice that created this PaymentIntent, if it exists. */
188
  @SerializedName("invoice")
189
  @Getter(lombok.AccessLevel.NONE)
190
  @Setter(lombok.AccessLevel.NONE)
191
  ExpandableField<Invoice> invoice;
192

193
  /**
194
   * The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if
195
   * the PaymentIntent is later updated for any reason.
196
   */
197
  @SerializedName("last_payment_error")
198
  StripeError lastPaymentError;
199

200
  /**
201
   * ID of the latest <a href="https://stripe.com/docs/api/charges">Charge object</a> created by
202
   * this PaymentIntent. This property is {@code null} until PaymentIntent confirmation is
203
   * attempted.
204
   */
205
  @SerializedName("latest_charge")
206
  @Getter(lombok.AccessLevel.NONE)
207
  @Setter(lombok.AccessLevel.NONE)
208
  ExpandableField<Charge> latestCharge;
209

210
  /**
211
   * Has the value {@code true} if the object exists in live mode or the value {@code false} if the
212
   * object exists in test mode.
213
   */
214
  @SerializedName("livemode")
215
  Boolean livemode;
216

217
  /**
218
   * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
219
   * to an object. This can be useful for storing additional information about the object in a
220
   * structured format. Learn more about <a
221
   * href="https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata">storing
222
   * information in metadata</a>.
223
   */
224
  @Getter(onMethod_ = {@Override})
225
  @SerializedName("metadata")
226
  Map<String, String> metadata;
227

228
  /**
229
   * If present, this property tells you what actions you need to take in order for your customer to
230
   * fulfill a payment using the provided source.
231
   */
232
  @SerializedName("next_action")
233
  NextAction nextAction;
234

235
  /**
236
   * String representing the object's type. Objects of the same type share the same value.
237
   *
238
   * <p>Equal to {@code payment_intent}.
239
   */
240
  @SerializedName("object")
241
  String object;
242

243
  /**
244
   * The account (if any) for which the funds of the PaymentIntent are intended. See the
245
   * PaymentIntents <a href="https://stripe.com/docs/payments/connected-accounts">use case for
246
   * connected accounts</a> for details.
247
   */
248
  @SerializedName("on_behalf_of")
249
  @Getter(lombok.AccessLevel.NONE)
250
  @Setter(lombok.AccessLevel.NONE)
251
  ExpandableField<Account> onBehalfOf;
252

253
  @SerializedName("payment_details")
254
  PaymentDetails paymentDetails;
255

256
  /** ID of the payment method used in this PaymentIntent. */
257
  @SerializedName("payment_method")
258
  @Getter(lombok.AccessLevel.NONE)
259
  @Setter(lombok.AccessLevel.NONE)
260
  ExpandableField<PaymentMethod> paymentMethod;
261

262
  /** Information about the payment method configuration used for this PaymentIntent. */
263
  @SerializedName("payment_method_configuration_details")
264
  PaymentMethodConfigurationDetails paymentMethodConfigurationDetails;
265

266
  /** Payment-method-specific configuration for this PaymentIntent. */
267
  @SerializedName("payment_method_options")
268
  PaymentMethodOptions paymentMethodOptions;
269

270
  /** The list of payment method types (e.g. card) that this PaymentIntent is allowed to use. */
271
  @SerializedName("payment_method_types")
272
  List<String> paymentMethodTypes;
273

274
  /** If present, this property tells you about the processing state of the payment. */
275
  @SerializedName("processing")
276
  Processing processing;
277

278
  /**
279
   * Email address that the receipt for the resulting payment will be sent to. If {@code
280
   * receipt_email} is specified for a payment in live mode, a receipt will be sent regardless of
281
   * your <a href="https://dashboard.stripe.com/account/emails">email settings</a>.
282
   */
283
  @SerializedName("receipt_email")
284
  String receiptEmail;
285

286
  /** ID of the review associated with this PaymentIntent, if any. */
287
  @SerializedName("review")
288
  @Getter(lombok.AccessLevel.NONE)
289
  @Setter(lombok.AccessLevel.NONE)
290
  ExpandableField<Review> review;
291

292
  /**
293
   * Indicates whether confirmation for this PaymentIntent using a secret key is {@code required} or
294
   * {@code optional}.
295
   *
296
   * <p>One of {@code optional}, or {@code required}.
297
   */
298
  @SerializedName("secret_key_confirmation")
299
  String secretKeyConfirmation;
300

301
  /**
302
   * Indicates that you intend to make future payments with this PaymentIntent's payment method.
303
   *
304
   * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
305
   * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
306
   * Customer after the PaymentIntent is confirmed and the customer completes any required actions.
307
   * If you don't provide a Customer, you can still <a
308
   * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
309
   * Customer after the transaction completes.
310
   *
311
   * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates and
312
   * attaches a <a
313
   * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
314
   * payment method representing the card to the Customer instead.
315
   *
316
   * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
317
   * with regional legislation and network rules, such as <a
318
   * href="https://stripe.com/strong-customer-authentication">SCA</a>.
319
   *
320
   * <p>One of {@code off_session}, or {@code on_session}.
321
   */
322
  @SerializedName("setup_future_usage")
323
  String setupFutureUsage;
324

325
  /** Shipping information for this PaymentIntent. */
326
  @SerializedName("shipping")
327
  ShippingDetails shipping;
328

329
  /**
330
   * This is a legacy field that will be removed in the future. It is the ID of the Source object
331
   * that is associated with this PaymentIntent, if one was supplied.
332
   */
333
  @SerializedName("source")
334
  @Getter(lombok.AccessLevel.NONE)
335
  @Setter(lombok.AccessLevel.NONE)
336
  ExpandableField<PaymentSource> source;
337

338
  /**
339
   * Text that appears on the customer's statement as the statement descriptor for a non-card
340
   * charge. This value overrides the account's default statement descriptor. For information about
341
   * requirements, including the 22-character limit, see <a
342
   * href="https://docs.stripe.com/get-started/account/statement-descriptors">the Statement
343
   * Descriptor docs</a>.
344
   *
345
   * <p>Setting this value for a card charge returns an error. For card charges, set the <a
346
   * href="https://docs.stripe.com/get-started/account/statement-descriptors#dynamic">statement_descriptor_suffix</a>
347
   * instead.
348
   */
349
  @SerializedName("statement_descriptor")
350
  String statementDescriptor;
351

352
  /**
353
   * Provides information about a card charge. Concatenated to the account's <a
354
   * href="https://docs.stripe.com/get-started/account/statement-descriptors#static">statement
355
   * descriptor prefix</a> to form the complete statement descriptor that appears on the customer's
356
   * statement.
357
   */
358
  @SerializedName("statement_descriptor_suffix")
359
  String statementDescriptorSuffix;
360

361
  /**
362
   * Status of this PaymentIntent, one of {@code requires_payment_method}, {@code
363
   * requires_confirmation}, {@code requires_action}, {@code processing}, {@code requires_capture},
364
   * {@code canceled}, or {@code succeeded}. Read more about each PaymentIntent <a
365
   * href="https://stripe.com/docs/payments/intents#intent-statuses">status</a>.
366
   */
367
  @SerializedName("status")
368
  String status;
369

370
  /**
371
   * The data that automatically creates a Transfer after the payment finalizes. Learn more about
372
   * the <a href="https://stripe.com/docs/payments/connected-accounts">use case for connected
373
   * accounts</a>.
374
   */
375
  @SerializedName("transfer_data")
376
  TransferData transferData;
377

378
  /**
379
   * A string that identifies the resulting payment as part of a group. Learn more about the <a
380
   * href="https://stripe.com/docs/connect/separate-charges-and-transfers">use case for connected
381
   * accounts</a>.
382
   */
383
  @SerializedName("transfer_group")
384
  String transferGroup;
385

386
  /** Get ID of expandable {@code application} object. */
387
  public String getApplication() {
388
    return (this.application != null) ? this.application.getId() : null;
1✔
389
  }
390

391
  public void setApplication(String id) {
392
    this.application = ApiResource.setExpandableFieldId(id, this.application);
×
393
  }
×
394

395
  /** Get expanded {@code application}. */
396
  public Application getApplicationObject() {
397
    return (this.application != null) ? this.application.getExpanded() : null;
1✔
398
  }
399

400
  public void setApplicationObject(Application expandableObject) {
401
    this.application = new ExpandableField<Application>(expandableObject.getId(), expandableObject);
×
402
  }
×
403

404
  /** Get ID of expandable {@code customer} object. */
405
  public String getCustomer() {
406
    return (this.customer != null) ? this.customer.getId() : null;
1✔
407
  }
408

409
  public void setCustomer(String id) {
410
    this.customer = ApiResource.setExpandableFieldId(id, this.customer);
×
411
  }
×
412

413
  /** Get expanded {@code customer}. */
414
  public Customer getCustomerObject() {
415
    return (this.customer != null) ? this.customer.getExpanded() : null;
1✔
416
  }
417

418
  public void setCustomerObject(Customer expandableObject) {
419
    this.customer = new ExpandableField<Customer>(expandableObject.getId(), expandableObject);
×
420
  }
×
421

422
  /** Get ID of expandable {@code invoice} object. */
423
  public String getInvoice() {
424
    return (this.invoice != null) ? this.invoice.getId() : null;
1✔
425
  }
426

427
  public void setInvoice(String id) {
428
    this.invoice = ApiResource.setExpandableFieldId(id, this.invoice);
×
429
  }
×
430

431
  /** Get expanded {@code invoice}. */
432
  public Invoice getInvoiceObject() {
433
    return (this.invoice != null) ? this.invoice.getExpanded() : null;
1✔
434
  }
435

436
  public void setInvoiceObject(Invoice expandableObject) {
437
    this.invoice = new ExpandableField<Invoice>(expandableObject.getId(), expandableObject);
×
438
  }
×
439

440
  /** Get ID of expandable {@code latestCharge} object. */
441
  public String getLatestCharge() {
442
    return (this.latestCharge != null) ? this.latestCharge.getId() : null;
×
443
  }
444

445
  public void setLatestCharge(String id) {
446
    this.latestCharge = ApiResource.setExpandableFieldId(id, this.latestCharge);
×
447
  }
×
448

449
  /** Get expanded {@code latestCharge}. */
450
  public Charge getLatestChargeObject() {
451
    return (this.latestCharge != null) ? this.latestCharge.getExpanded() : null;
×
452
  }
453

454
  public void setLatestChargeObject(Charge expandableObject) {
455
    this.latestCharge = new ExpandableField<Charge>(expandableObject.getId(), expandableObject);
×
456
  }
×
457

458
  /** Get ID of expandable {@code onBehalfOf} object. */
459
  public String getOnBehalfOf() {
460
    return (this.onBehalfOf != null) ? this.onBehalfOf.getId() : null;
1✔
461
  }
462

463
  public void setOnBehalfOf(String id) {
464
    this.onBehalfOf = ApiResource.setExpandableFieldId(id, this.onBehalfOf);
×
465
  }
×
466

467
  /** Get expanded {@code onBehalfOf}. */
468
  public Account getOnBehalfOfObject() {
469
    return (this.onBehalfOf != null) ? this.onBehalfOf.getExpanded() : null;
1✔
470
  }
471

472
  public void setOnBehalfOfObject(Account expandableObject) {
473
    this.onBehalfOf = new ExpandableField<Account>(expandableObject.getId(), expandableObject);
×
474
  }
×
475

476
  /** Get ID of expandable {@code paymentMethod} object. */
477
  public String getPaymentMethod() {
478
    return (this.paymentMethod != null) ? this.paymentMethod.getId() : null;
1✔
479
  }
480

481
  public void setPaymentMethod(String id) {
482
    this.paymentMethod = ApiResource.setExpandableFieldId(id, this.paymentMethod);
×
483
  }
×
484

485
  /** Get expanded {@code paymentMethod}. */
486
  public PaymentMethod getPaymentMethodObject() {
487
    return (this.paymentMethod != null) ? this.paymentMethod.getExpanded() : null;
1✔
488
  }
489

490
  public void setPaymentMethodObject(PaymentMethod expandableObject) {
491
    this.paymentMethod =
×
492
        new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
493
  }
×
494

495
  /** Get ID of expandable {@code review} object. */
496
  public String getReview() {
497
    return (this.review != null) ? this.review.getId() : null;
1✔
498
  }
499

500
  public void setReview(String id) {
501
    this.review = ApiResource.setExpandableFieldId(id, this.review);
×
502
  }
×
503

504
  /** Get expanded {@code review}. */
505
  public Review getReviewObject() {
506
    return (this.review != null) ? this.review.getExpanded() : null;
1✔
507
  }
508

509
  public void setReviewObject(Review expandableObject) {
510
    this.review = new ExpandableField<Review>(expandableObject.getId(), expandableObject);
×
511
  }
×
512

513
  /** Get ID of expandable {@code source} object. */
514
  public String getSource() {
515
    return (this.source != null) ? this.source.getId() : null;
×
516
  }
517

518
  public void setSource(String id) {
519
    this.source = ApiResource.setExpandableFieldId(id, this.source);
×
520
  }
×
521

522
  /** Get expanded {@code source}. */
523
  public PaymentSource getSourceObject() {
524
    return (this.source != null) ? this.source.getExpanded() : null;
×
525
  }
526

527
  public void setSourceObject(PaymentSource expandableObject) {
528
    this.source = new ExpandableField<PaymentSource>(expandableObject.getId(), expandableObject);
×
529
  }
×
530

531
  /** Manually reconcile the remaining amount for a {@code customer_balance} PaymentIntent. */
532
  public PaymentIntent applyCustomerBalance() throws StripeException {
533
    return applyCustomerBalance((Map<String, Object>) null, (RequestOptions) null);
×
534
  }
535

536
  /** Manually reconcile the remaining amount for a {@code customer_balance} PaymentIntent. */
537
  public PaymentIntent applyCustomerBalance(RequestOptions options) throws StripeException {
538
    return applyCustomerBalance((Map<String, Object>) null, options);
×
539
  }
540

541
  /** Manually reconcile the remaining amount for a {@code customer_balance} PaymentIntent. */
542
  public PaymentIntent applyCustomerBalance(Map<String, Object> params) throws StripeException {
543
    return applyCustomerBalance(params, (RequestOptions) null);
×
544
  }
545

546
  /** Manually reconcile the remaining amount for a {@code customer_balance} PaymentIntent. */
547
  public PaymentIntent applyCustomerBalance(Map<String, Object> params, RequestOptions options)
548
      throws StripeException {
549
    String path =
×
550
        String.format(
×
551
            "/v1/payment_intents/%s/apply_customer_balance", ApiResource.urlEncodeId(this.getId()));
×
552
    ApiRequest request =
×
553
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
554
    return getResponseGetter().request(request, PaymentIntent.class);
×
555
  }
556

557
  /** Manually reconcile the remaining amount for a {@code customer_balance} PaymentIntent. */
558
  public PaymentIntent applyCustomerBalance(PaymentIntentApplyCustomerBalanceParams params)
559
      throws StripeException {
560
    return applyCustomerBalance(params, (RequestOptions) null);
1✔
561
  }
562

563
  /** Manually reconcile the remaining amount for a {@code customer_balance} PaymentIntent. */
564
  public PaymentIntent applyCustomerBalance(
565
      PaymentIntentApplyCustomerBalanceParams params, RequestOptions options)
566
      throws StripeException {
567
    String path =
1✔
568
        String.format(
1✔
569
            "/v1/payment_intents/%s/apply_customer_balance", ApiResource.urlEncodeId(this.getId()));
1✔
570
    ApiResource.checkNullTypedParams(path, params);
1✔
571
    ApiRequest request =
1✔
572
        new ApiRequest(
573
            BaseAddress.API,
574
            ApiResource.RequestMethod.POST,
575
            path,
576
            ApiRequestParams.paramsToMap(params),
1✔
577
            options);
578
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
579
  }
580

581
  /**
582
   * You can cancel a PaymentIntent object when it’s in one of these statuses: {@code
583
   * requires_payment_method}, {@code requires_capture}, {@code requires_confirmation}, {@code
584
   * requires_action} or, <a href="https://stripe.com/docs/payments/intents">in rare cases</a>,
585
   * {@code processing}.
586
   *
587
   * <p>After it’s canceled, no additional charges are made by the PaymentIntent and any operations
588
   * on the PaymentIntent fail with an error. For PaymentIntents with a {@code status} of {@code
589
   * requires_capture}, the remaining {@code amount_capturable} is automatically refunded.
590
   *
591
   * <p>You can’t cancel the PaymentIntent for a Checkout Session. <a
592
   * href="https://stripe.com/docs/api/checkout/sessions/expire">Expire the Checkout Session</a>
593
   * instead.
594
   */
595
  public PaymentIntent cancel() throws StripeException {
596
    return cancel((Map<String, Object>) null, (RequestOptions) null);
1✔
597
  }
598

599
  /**
600
   * You can cancel a PaymentIntent object when it’s in one of these statuses: {@code
601
   * requires_payment_method}, {@code requires_capture}, {@code requires_confirmation}, {@code
602
   * requires_action} or, <a href="https://stripe.com/docs/payments/intents">in rare cases</a>,
603
   * {@code processing}.
604
   *
605
   * <p>After it’s canceled, no additional charges are made by the PaymentIntent and any operations
606
   * on the PaymentIntent fail with an error. For PaymentIntents with a {@code status} of {@code
607
   * requires_capture}, the remaining {@code amount_capturable} is automatically refunded.
608
   *
609
   * <p>You can’t cancel the PaymentIntent for a Checkout Session. <a
610
   * href="https://stripe.com/docs/api/checkout/sessions/expire">Expire the Checkout Session</a>
611
   * instead.
612
   */
613
  public PaymentIntent cancel(RequestOptions options) throws StripeException {
614
    return cancel((Map<String, Object>) null, options);
×
615
  }
616

617
  /**
618
   * You can cancel a PaymentIntent object when it’s in one of these statuses: {@code
619
   * requires_payment_method}, {@code requires_capture}, {@code requires_confirmation}, {@code
620
   * requires_action} or, <a href="https://stripe.com/docs/payments/intents">in rare cases</a>,
621
   * {@code processing}.
622
   *
623
   * <p>After it’s canceled, no additional charges are made by the PaymentIntent and any operations
624
   * on the PaymentIntent fail with an error. For PaymentIntents with a {@code status} of {@code
625
   * requires_capture}, the remaining {@code amount_capturable} is automatically refunded.
626
   *
627
   * <p>You can’t cancel the PaymentIntent for a Checkout Session. <a
628
   * href="https://stripe.com/docs/api/checkout/sessions/expire">Expire the Checkout Session</a>
629
   * instead.
630
   */
631
  public PaymentIntent cancel(Map<String, Object> params) throws StripeException {
632
    return cancel(params, (RequestOptions) null);
×
633
  }
634

635
  /**
636
   * You can cancel a PaymentIntent object when it’s in one of these statuses: {@code
637
   * requires_payment_method}, {@code requires_capture}, {@code requires_confirmation}, {@code
638
   * requires_action} or, <a href="https://stripe.com/docs/payments/intents">in rare cases</a>,
639
   * {@code processing}.
640
   *
641
   * <p>After it’s canceled, no additional charges are made by the PaymentIntent and any operations
642
   * on the PaymentIntent fail with an error. For PaymentIntents with a {@code status} of {@code
643
   * requires_capture}, the remaining {@code amount_capturable} is automatically refunded.
644
   *
645
   * <p>You can’t cancel the PaymentIntent for a Checkout Session. <a
646
   * href="https://stripe.com/docs/api/checkout/sessions/expire">Expire the Checkout Session</a>
647
   * instead.
648
   */
649
  public PaymentIntent cancel(Map<String, Object> params, RequestOptions options)
650
      throws StripeException {
651
    String path =
1✔
652
        String.format("/v1/payment_intents/%s/cancel", ApiResource.urlEncodeId(this.getId()));
1✔
653
    ApiRequest request =
1✔
654
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
655
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
656
  }
657

658
  /**
659
   * You can cancel a PaymentIntent object when it’s in one of these statuses: {@code
660
   * requires_payment_method}, {@code requires_capture}, {@code requires_confirmation}, {@code
661
   * requires_action} or, <a href="https://stripe.com/docs/payments/intents">in rare cases</a>,
662
   * {@code processing}.
663
   *
664
   * <p>After it’s canceled, no additional charges are made by the PaymentIntent and any operations
665
   * on the PaymentIntent fail with an error. For PaymentIntents with a {@code status} of {@code
666
   * requires_capture}, the remaining {@code amount_capturable} is automatically refunded.
667
   *
668
   * <p>You can’t cancel the PaymentIntent for a Checkout Session. <a
669
   * href="https://stripe.com/docs/api/checkout/sessions/expire">Expire the Checkout Session</a>
670
   * instead.
671
   */
672
  public PaymentIntent cancel(PaymentIntentCancelParams params) throws StripeException {
673
    return cancel(params, (RequestOptions) null);
1✔
674
  }
675

676
  /**
677
   * You can cancel a PaymentIntent object when it’s in one of these statuses: {@code
678
   * requires_payment_method}, {@code requires_capture}, {@code requires_confirmation}, {@code
679
   * requires_action} or, <a href="https://stripe.com/docs/payments/intents">in rare cases</a>,
680
   * {@code processing}.
681
   *
682
   * <p>After it’s canceled, no additional charges are made by the PaymentIntent and any operations
683
   * on the PaymentIntent fail with an error. For PaymentIntents with a {@code status} of {@code
684
   * requires_capture}, the remaining {@code amount_capturable} is automatically refunded.
685
   *
686
   * <p>You can’t cancel the PaymentIntent for a Checkout Session. <a
687
   * href="https://stripe.com/docs/api/checkout/sessions/expire">Expire the Checkout Session</a>
688
   * instead.
689
   */
690
  public PaymentIntent cancel(PaymentIntentCancelParams params, RequestOptions options)
691
      throws StripeException {
692
    String path =
1✔
693
        String.format("/v1/payment_intents/%s/cancel", ApiResource.urlEncodeId(this.getId()));
1✔
694
    ApiResource.checkNullTypedParams(path, params);
1✔
695
    ApiRequest request =
1✔
696
        new ApiRequest(
697
            BaseAddress.API,
698
            ApiResource.RequestMethod.POST,
699
            path,
700
            ApiRequestParams.paramsToMap(params),
1✔
701
            options);
702
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
703
  }
704

705
  /**
706
   * Capture the funds of an existing uncaptured PaymentIntent when its status is {@code
707
   * requires_capture}.
708
   *
709
   * <p>Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their
710
   * creation.
711
   *
712
   * <p>Learn more about <a href="https://stripe.com/docs/payments/capture-later">separate
713
   * authorization and capture</a>.
714
   */
715
  public PaymentIntent capture() throws StripeException {
716
    return capture((Map<String, Object>) null, (RequestOptions) null);
1✔
717
  }
718

719
  /**
720
   * Capture the funds of an existing uncaptured PaymentIntent when its status is {@code
721
   * requires_capture}.
722
   *
723
   * <p>Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their
724
   * creation.
725
   *
726
   * <p>Learn more about <a href="https://stripe.com/docs/payments/capture-later">separate
727
   * authorization and capture</a>.
728
   */
729
  public PaymentIntent capture(RequestOptions options) throws StripeException {
730
    return capture((Map<String, Object>) null, options);
×
731
  }
732

733
  /**
734
   * Capture the funds of an existing uncaptured PaymentIntent when its status is {@code
735
   * requires_capture}.
736
   *
737
   * <p>Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their
738
   * creation.
739
   *
740
   * <p>Learn more about <a href="https://stripe.com/docs/payments/capture-later">separate
741
   * authorization and capture</a>.
742
   */
743
  public PaymentIntent capture(Map<String, Object> params) throws StripeException {
744
    return capture(params, (RequestOptions) null);
×
745
  }
746

747
  /**
748
   * Capture the funds of an existing uncaptured PaymentIntent when its status is {@code
749
   * requires_capture}.
750
   *
751
   * <p>Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their
752
   * creation.
753
   *
754
   * <p>Learn more about <a href="https://stripe.com/docs/payments/capture-later">separate
755
   * authorization and capture</a>.
756
   */
757
  public PaymentIntent capture(Map<String, Object> params, RequestOptions options)
758
      throws StripeException {
759
    String path =
1✔
760
        String.format("/v1/payment_intents/%s/capture", ApiResource.urlEncodeId(this.getId()));
1✔
761
    ApiRequest request =
1✔
762
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
763
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
764
  }
765

766
  /**
767
   * Capture the funds of an existing uncaptured PaymentIntent when its status is {@code
768
   * requires_capture}.
769
   *
770
   * <p>Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their
771
   * creation.
772
   *
773
   * <p>Learn more about <a href="https://stripe.com/docs/payments/capture-later">separate
774
   * authorization and capture</a>.
775
   */
776
  public PaymentIntent capture(PaymentIntentCaptureParams params) throws StripeException {
777
    return capture(params, (RequestOptions) null);
1✔
778
  }
779

780
  /**
781
   * Capture the funds of an existing uncaptured PaymentIntent when its status is {@code
782
   * requires_capture}.
783
   *
784
   * <p>Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their
785
   * creation.
786
   *
787
   * <p>Learn more about <a href="https://stripe.com/docs/payments/capture-later">separate
788
   * authorization and capture</a>.
789
   */
790
  public PaymentIntent capture(PaymentIntentCaptureParams params, RequestOptions options)
791
      throws StripeException {
792
    String path =
1✔
793
        String.format("/v1/payment_intents/%s/capture", ApiResource.urlEncodeId(this.getId()));
1✔
794
    ApiResource.checkNullTypedParams(path, params);
1✔
795
    ApiRequest request =
1✔
796
        new ApiRequest(
797
            BaseAddress.API,
798
            ApiResource.RequestMethod.POST,
799
            path,
800
            ApiRequestParams.paramsToMap(params),
1✔
801
            options);
802
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
803
  }
804

805
  /**
806
   * Confirm that your customer intends to pay with current or provided payment method. Upon
807
   * confirmation, the PaymentIntent will attempt to initiate a payment. If the selected payment
808
   * method requires additional authentication steps, the PaymentIntent will transition to the
809
   * {@code requires_action} status and suggest additional actions via {@code next_action}. If
810
   * payment fails, the PaymentIntent transitions to the {@code requires_payment_method} status or
811
   * the {@code canceled} status if the confirmation limit is reached. If payment succeeds, the
812
   * PaymentIntent will transition to the {@code succeeded} status (or {@code requires_capture}, if
813
   * {@code capture_method} is set to {@code manual}). If the {@code confirmation_method} is {@code
814
   * automatic}, payment may be attempted using our <a
815
   * href="https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment">client SDKs</a>
816
   * and the PaymentIntent’s <a
817
   * href="https://stripe.com/docs/api#payment_intent_object-client_secret">client_secret</a>. After
818
   * {@code next_action}s are handled by the client, no additional confirmation is required to
819
   * complete the payment. If the {@code confirmation_method} is {@code manual}, all payment
820
   * attempts must be initiated using a secret key. If any actions are required for the payment, the
821
   * PaymentIntent will return to the {@code requires_confirmation} state after those actions are
822
   * completed. Your server needs to then explicitly re-confirm the PaymentIntent to initiate the
823
   * next payment attempt. There is a variable upper limit on how many times a PaymentIntent can be
824
   * confirmed. After this limit is reached, any further calls to this endpoint will transition the
825
   * PaymentIntent to the {@code canceled} state.
826
   */
827
  public PaymentIntent confirm() throws StripeException {
828
    return confirm((Map<String, Object>) null, (RequestOptions) null);
1✔
829
  }
830

831
  /**
832
   * Confirm that your customer intends to pay with current or provided payment method. Upon
833
   * confirmation, the PaymentIntent will attempt to initiate a payment. If the selected payment
834
   * method requires additional authentication steps, the PaymentIntent will transition to the
835
   * {@code requires_action} status and suggest additional actions via {@code next_action}. If
836
   * payment fails, the PaymentIntent transitions to the {@code requires_payment_method} status or
837
   * the {@code canceled} status if the confirmation limit is reached. If payment succeeds, the
838
   * PaymentIntent will transition to the {@code succeeded} status (or {@code requires_capture}, if
839
   * {@code capture_method} is set to {@code manual}). If the {@code confirmation_method} is {@code
840
   * automatic}, payment may be attempted using our <a
841
   * href="https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment">client SDKs</a>
842
   * and the PaymentIntent’s <a
843
   * href="https://stripe.com/docs/api#payment_intent_object-client_secret">client_secret</a>. After
844
   * {@code next_action}s are handled by the client, no additional confirmation is required to
845
   * complete the payment. If the {@code confirmation_method} is {@code manual}, all payment
846
   * attempts must be initiated using a secret key. If any actions are required for the payment, the
847
   * PaymentIntent will return to the {@code requires_confirmation} state after those actions are
848
   * completed. Your server needs to then explicitly re-confirm the PaymentIntent to initiate the
849
   * next payment attempt. There is a variable upper limit on how many times a PaymentIntent can be
850
   * confirmed. After this limit is reached, any further calls to this endpoint will transition the
851
   * PaymentIntent to the {@code canceled} state.
852
   */
853
  public PaymentIntent confirm(RequestOptions options) throws StripeException {
854
    return confirm((Map<String, Object>) null, options);
×
855
  }
856

857
  /**
858
   * Confirm that your customer intends to pay with current or provided payment method. Upon
859
   * confirmation, the PaymentIntent will attempt to initiate a payment. If the selected payment
860
   * method requires additional authentication steps, the PaymentIntent will transition to the
861
   * {@code requires_action} status and suggest additional actions via {@code next_action}. If
862
   * payment fails, the PaymentIntent transitions to the {@code requires_payment_method} status or
863
   * the {@code canceled} status if the confirmation limit is reached. If payment succeeds, the
864
   * PaymentIntent will transition to the {@code succeeded} status (or {@code requires_capture}, if
865
   * {@code capture_method} is set to {@code manual}). If the {@code confirmation_method} is {@code
866
   * automatic}, payment may be attempted using our <a
867
   * href="https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment">client SDKs</a>
868
   * and the PaymentIntent’s <a
869
   * href="https://stripe.com/docs/api#payment_intent_object-client_secret">client_secret</a>. After
870
   * {@code next_action}s are handled by the client, no additional confirmation is required to
871
   * complete the payment. If the {@code confirmation_method} is {@code manual}, all payment
872
   * attempts must be initiated using a secret key. If any actions are required for the payment, the
873
   * PaymentIntent will return to the {@code requires_confirmation} state after those actions are
874
   * completed. Your server needs to then explicitly re-confirm the PaymentIntent to initiate the
875
   * next payment attempt. There is a variable upper limit on how many times a PaymentIntent can be
876
   * confirmed. After this limit is reached, any further calls to this endpoint will transition the
877
   * PaymentIntent to the {@code canceled} state.
878
   */
879
  public PaymentIntent confirm(Map<String, Object> params) throws StripeException {
880
    return confirm(params, (RequestOptions) null);
×
881
  }
882

883
  /**
884
   * Confirm that your customer intends to pay with current or provided payment method. Upon
885
   * confirmation, the PaymentIntent will attempt to initiate a payment. If the selected payment
886
   * method requires additional authentication steps, the PaymentIntent will transition to the
887
   * {@code requires_action} status and suggest additional actions via {@code next_action}. If
888
   * payment fails, the PaymentIntent transitions to the {@code requires_payment_method} status or
889
   * the {@code canceled} status if the confirmation limit is reached. If payment succeeds, the
890
   * PaymentIntent will transition to the {@code succeeded} status (or {@code requires_capture}, if
891
   * {@code capture_method} is set to {@code manual}). If the {@code confirmation_method} is {@code
892
   * automatic}, payment may be attempted using our <a
893
   * href="https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment">client SDKs</a>
894
   * and the PaymentIntent’s <a
895
   * href="https://stripe.com/docs/api#payment_intent_object-client_secret">client_secret</a>. After
896
   * {@code next_action}s are handled by the client, no additional confirmation is required to
897
   * complete the payment. If the {@code confirmation_method} is {@code manual}, all payment
898
   * attempts must be initiated using a secret key. If any actions are required for the payment, the
899
   * PaymentIntent will return to the {@code requires_confirmation} state after those actions are
900
   * completed. Your server needs to then explicitly re-confirm the PaymentIntent to initiate the
901
   * next payment attempt. There is a variable upper limit on how many times a PaymentIntent can be
902
   * confirmed. After this limit is reached, any further calls to this endpoint will transition the
903
   * PaymentIntent to the {@code canceled} state.
904
   */
905
  public PaymentIntent confirm(Map<String, Object> params, RequestOptions options)
906
      throws StripeException {
907
    String path =
1✔
908
        String.format("/v1/payment_intents/%s/confirm", ApiResource.urlEncodeId(this.getId()));
1✔
909
    ApiRequest request =
1✔
910
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
911
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
912
  }
913

914
  /**
915
   * Confirm that your customer intends to pay with current or provided payment method. Upon
916
   * confirmation, the PaymentIntent will attempt to initiate a payment. If the selected payment
917
   * method requires additional authentication steps, the PaymentIntent will transition to the
918
   * {@code requires_action} status and suggest additional actions via {@code next_action}. If
919
   * payment fails, the PaymentIntent transitions to the {@code requires_payment_method} status or
920
   * the {@code canceled} status if the confirmation limit is reached. If payment succeeds, the
921
   * PaymentIntent will transition to the {@code succeeded} status (or {@code requires_capture}, if
922
   * {@code capture_method} is set to {@code manual}). If the {@code confirmation_method} is {@code
923
   * automatic}, payment may be attempted using our <a
924
   * href="https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment">client SDKs</a>
925
   * and the PaymentIntent’s <a
926
   * href="https://stripe.com/docs/api#payment_intent_object-client_secret">client_secret</a>. After
927
   * {@code next_action}s are handled by the client, no additional confirmation is required to
928
   * complete the payment. If the {@code confirmation_method} is {@code manual}, all payment
929
   * attempts must be initiated using a secret key. If any actions are required for the payment, the
930
   * PaymentIntent will return to the {@code requires_confirmation} state after those actions are
931
   * completed. Your server needs to then explicitly re-confirm the PaymentIntent to initiate the
932
   * next payment attempt. There is a variable upper limit on how many times a PaymentIntent can be
933
   * confirmed. After this limit is reached, any further calls to this endpoint will transition the
934
   * PaymentIntent to the {@code canceled} state.
935
   */
936
  public PaymentIntent confirm(PaymentIntentConfirmParams params) throws StripeException {
937
    return confirm(params, (RequestOptions) null);
1✔
938
  }
939

940
  /**
941
   * Confirm that your customer intends to pay with current or provided payment method. Upon
942
   * confirmation, the PaymentIntent will attempt to initiate a payment. If the selected payment
943
   * method requires additional authentication steps, the PaymentIntent will transition to the
944
   * {@code requires_action} status and suggest additional actions via {@code next_action}. If
945
   * payment fails, the PaymentIntent transitions to the {@code requires_payment_method} status or
946
   * the {@code canceled} status if the confirmation limit is reached. If payment succeeds, the
947
   * PaymentIntent will transition to the {@code succeeded} status (or {@code requires_capture}, if
948
   * {@code capture_method} is set to {@code manual}). If the {@code confirmation_method} is {@code
949
   * automatic}, payment may be attempted using our <a
950
   * href="https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment">client SDKs</a>
951
   * and the PaymentIntent’s <a
952
   * href="https://stripe.com/docs/api#payment_intent_object-client_secret">client_secret</a>. After
953
   * {@code next_action}s are handled by the client, no additional confirmation is required to
954
   * complete the payment. If the {@code confirmation_method} is {@code manual}, all payment
955
   * attempts must be initiated using a secret key. If any actions are required for the payment, the
956
   * PaymentIntent will return to the {@code requires_confirmation} state after those actions are
957
   * completed. Your server needs to then explicitly re-confirm the PaymentIntent to initiate the
958
   * next payment attempt. There is a variable upper limit on how many times a PaymentIntent can be
959
   * confirmed. After this limit is reached, any further calls to this endpoint will transition the
960
   * PaymentIntent to the {@code canceled} state.
961
   */
962
  public PaymentIntent confirm(PaymentIntentConfirmParams params, RequestOptions options)
963
      throws StripeException {
964
    String path =
1✔
965
        String.format("/v1/payment_intents/%s/confirm", ApiResource.urlEncodeId(this.getId()));
1✔
966
    ApiResource.checkNullTypedParams(path, params);
1✔
967
    ApiRequest request =
1✔
968
        new ApiRequest(
969
            BaseAddress.API,
970
            ApiResource.RequestMethod.POST,
971
            path,
972
            ApiRequestParams.paramsToMap(params),
1✔
973
            options);
974
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
975
  }
976

977
  /**
978
   * Creates a PaymentIntent object.
979
   *
980
   * <p>After the PaymentIntent is created, attach a payment method and <a
981
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm</a> to continue the payment.
982
   * Learn more about <a href="https://stripe.com/docs/payments/payment-intents">the available
983
   * payment flows with the Payment Intents API</a>.
984
   *
985
   * <p>When you use {@code confirm=true} during creation, it’s equivalent to creating and
986
   * confirming the PaymentIntent in the same call. You can use any parameters available in the <a
987
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> when you supply
988
   * {@code confirm=true}.
989
   */
990
  public static PaymentIntent create(Map<String, Object> params) throws StripeException {
991
    return create(params, (RequestOptions) null);
1✔
992
  }
993

994
  /**
995
   * Creates a PaymentIntent object.
996
   *
997
   * <p>After the PaymentIntent is created, attach a payment method and <a
998
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm</a> to continue the payment.
999
   * Learn more about <a href="https://stripe.com/docs/payments/payment-intents">the available
1000
   * payment flows with the Payment Intents API</a>.
1001
   *
1002
   * <p>When you use {@code confirm=true} during creation, it’s equivalent to creating and
1003
   * confirming the PaymentIntent in the same call. You can use any parameters available in the <a
1004
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> when you supply
1005
   * {@code confirm=true}.
1006
   */
1007
  public static PaymentIntent create(Map<String, Object> params, RequestOptions options)
1008
      throws StripeException {
1009
    String path = "/v1/payment_intents";
1✔
1010
    ApiRequest request =
1✔
1011
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
1012
    return getGlobalResponseGetter().request(request, PaymentIntent.class);
1✔
1013
  }
1014

1015
  /**
1016
   * Creates a PaymentIntent object.
1017
   *
1018
   * <p>After the PaymentIntent is created, attach a payment method and <a
1019
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm</a> to continue the payment.
1020
   * Learn more about <a href="https://stripe.com/docs/payments/payment-intents">the available
1021
   * payment flows with the Payment Intents API</a>.
1022
   *
1023
   * <p>When you use {@code confirm=true} during creation, it’s equivalent to creating and
1024
   * confirming the PaymentIntent in the same call. You can use any parameters available in the <a
1025
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> when you supply
1026
   * {@code confirm=true}.
1027
   */
1028
  public static PaymentIntent create(PaymentIntentCreateParams params) throws StripeException {
1029
    return create(params, (RequestOptions) null);
1✔
1030
  }
1031

1032
  /**
1033
   * Creates a PaymentIntent object.
1034
   *
1035
   * <p>After the PaymentIntent is created, attach a payment method and <a
1036
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm</a> to continue the payment.
1037
   * Learn more about <a href="https://stripe.com/docs/payments/payment-intents">the available
1038
   * payment flows with the Payment Intents API</a>.
1039
   *
1040
   * <p>When you use {@code confirm=true} during creation, it’s equivalent to creating and
1041
   * confirming the PaymentIntent in the same call. You can use any parameters available in the <a
1042
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> when you supply
1043
   * {@code confirm=true}.
1044
   */
1045
  public static PaymentIntent create(PaymentIntentCreateParams params, RequestOptions options)
1046
      throws StripeException {
1047
    String path = "/v1/payment_intents";
1✔
1048
    ApiResource.checkNullTypedParams(path, params);
1✔
1049
    ApiRequest request =
1✔
1050
        new ApiRequest(
1051
            BaseAddress.API,
1052
            ApiResource.RequestMethod.POST,
1053
            path,
1054
            ApiRequestParams.paramsToMap(params),
1✔
1055
            options);
1056
    return getGlobalResponseGetter().request(request, PaymentIntent.class);
1✔
1057
  }
1058

1059
  /**
1060
   * Perform a decremental authorization on an eligible <a
1061
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1062
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1063
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization">decremental_authorization.status</a>
1064
   * must be {@code available}.
1065
   *
1066
   * <p>Decremental authorizations decrease the authorized amount on your customer’s card to the
1067
   * new, lower {@code amount} provided. A single PaymentIntent can call this endpoint multiple
1068
   * times to further decrease the authorized amount.
1069
   *
1070
   * <p>After decrement, the PaymentIntent object returns with the updated <a
1071
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1072
   * The PaymentIntent will now be capturable up to the new authorized amount.
1073
   *
1074
   * <p>Each PaymentIntent can have a maximum of 10 decremental or incremental authorization
1075
   * attempts, including declines. After it’s fully captured, a PaymentIntent can no longer be
1076
   * decremented.
1077
   */
1078
  public PaymentIntent decrementAuthorization(Map<String, Object> params) throws StripeException {
1079
    return decrementAuthorization(params, (RequestOptions) null);
×
1080
  }
1081

1082
  /**
1083
   * Perform a decremental authorization on an eligible <a
1084
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1085
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1086
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization">decremental_authorization.status</a>
1087
   * must be {@code available}.
1088
   *
1089
   * <p>Decremental authorizations decrease the authorized amount on your customer’s card to the
1090
   * new, lower {@code amount} provided. A single PaymentIntent can call this endpoint multiple
1091
   * times to further decrease the authorized amount.
1092
   *
1093
   * <p>After decrement, the PaymentIntent object returns with the updated <a
1094
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1095
   * The PaymentIntent will now be capturable up to the new authorized amount.
1096
   *
1097
   * <p>Each PaymentIntent can have a maximum of 10 decremental or incremental authorization
1098
   * attempts, including declines. After it’s fully captured, a PaymentIntent can no longer be
1099
   * decremented.
1100
   */
1101
  public PaymentIntent decrementAuthorization(Map<String, Object> params, RequestOptions options)
1102
      throws StripeException {
1103
    String path =
×
1104
        String.format(
×
1105
            "/v1/payment_intents/%s/decrement_authorization",
1106
            ApiResource.urlEncodeId(this.getId()));
×
1107
    ApiRequest request =
×
1108
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
1109
    return getResponseGetter().request(request, PaymentIntent.class);
×
1110
  }
1111

1112
  /**
1113
   * Perform a decremental authorization on an eligible <a
1114
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1115
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1116
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization">decremental_authorization.status</a>
1117
   * must be {@code available}.
1118
   *
1119
   * <p>Decremental authorizations decrease the authorized amount on your customer’s card to the
1120
   * new, lower {@code amount} provided. A single PaymentIntent can call this endpoint multiple
1121
   * times to further decrease the authorized amount.
1122
   *
1123
   * <p>After decrement, the PaymentIntent object returns with the updated <a
1124
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1125
   * The PaymentIntent will now be capturable up to the new authorized amount.
1126
   *
1127
   * <p>Each PaymentIntent can have a maximum of 10 decremental or incremental authorization
1128
   * attempts, including declines. After it’s fully captured, a PaymentIntent can no longer be
1129
   * decremented.
1130
   */
1131
  public PaymentIntent decrementAuthorization(PaymentIntentDecrementAuthorizationParams params)
1132
      throws StripeException {
1133
    return decrementAuthorization(params, (RequestOptions) null);
×
1134
  }
1135

1136
  /**
1137
   * Perform a decremental authorization on an eligible <a
1138
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1139
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1140
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization">decremental_authorization.status</a>
1141
   * must be {@code available}.
1142
   *
1143
   * <p>Decremental authorizations decrease the authorized amount on your customer’s card to the
1144
   * new, lower {@code amount} provided. A single PaymentIntent can call this endpoint multiple
1145
   * times to further decrease the authorized amount.
1146
   *
1147
   * <p>After decrement, the PaymentIntent object returns with the updated <a
1148
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1149
   * The PaymentIntent will now be capturable up to the new authorized amount.
1150
   *
1151
   * <p>Each PaymentIntent can have a maximum of 10 decremental or incremental authorization
1152
   * attempts, including declines. After it’s fully captured, a PaymentIntent can no longer be
1153
   * decremented.
1154
   */
1155
  public PaymentIntent decrementAuthorization(
1156
      PaymentIntentDecrementAuthorizationParams params, RequestOptions options)
1157
      throws StripeException {
1158
    String path =
×
1159
        String.format(
×
1160
            "/v1/payment_intents/%s/decrement_authorization",
1161
            ApiResource.urlEncodeId(this.getId()));
×
1162
    ApiResource.checkNullTypedParams(path, params);
×
1163
    ApiRequest request =
×
1164
        new ApiRequest(
1165
            BaseAddress.API,
1166
            ApiResource.RequestMethod.POST,
1167
            path,
1168
            ApiRequestParams.paramsToMap(params),
×
1169
            options);
1170
    return getResponseGetter().request(request, PaymentIntent.class);
×
1171
  }
1172

1173
  /**
1174
   * Perform an incremental authorization on an eligible <a
1175
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1176
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1177
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported">incremental_authorization_supported</a>
1178
   * must be {@code true}.
1179
   *
1180
   * <p>Incremental authorizations attempt to increase the authorized amount on your customer’s card
1181
   * to the new, higher {@code amount} provided. Similar to the initial authorization, incremental
1182
   * authorizations can be declined. A single PaymentIntent can call this endpoint multiple times to
1183
   * further increase the authorized amount.
1184
   *
1185
   * <p>If the incremental authorization succeeds, the PaymentIntent object returns with the updated
1186
   * <a
1187
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1188
   * If the incremental authorization fails, a <a
1189
   * href="https://stripe.com/docs/error-codes#card-declined">card_declined</a> error returns, and
1190
   * no other fields on the PaymentIntent or Charge update. The PaymentIntent object remains
1191
   * capturable for the previously authorized amount.
1192
   *
1193
   * <p>Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including
1194
   * declines. After it’s captured, a PaymentIntent can no longer be incremented.
1195
   *
1196
   * <p>Learn more about <a
1197
   * href="https://stripe.com/docs/terminal/features/incremental-authorizations">incremental
1198
   * authorizations</a>.
1199
   */
1200
  public PaymentIntent incrementAuthorization(Map<String, Object> params) throws StripeException {
1201
    return incrementAuthorization(params, (RequestOptions) null);
×
1202
  }
1203

1204
  /**
1205
   * Perform an incremental authorization on an eligible <a
1206
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1207
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1208
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported">incremental_authorization_supported</a>
1209
   * must be {@code true}.
1210
   *
1211
   * <p>Incremental authorizations attempt to increase the authorized amount on your customer’s card
1212
   * to the new, higher {@code amount} provided. Similar to the initial authorization, incremental
1213
   * authorizations can be declined. A single PaymentIntent can call this endpoint multiple times to
1214
   * further increase the authorized amount.
1215
   *
1216
   * <p>If the incremental authorization succeeds, the PaymentIntent object returns with the updated
1217
   * <a
1218
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1219
   * If the incremental authorization fails, a <a
1220
   * href="https://stripe.com/docs/error-codes#card-declined">card_declined</a> error returns, and
1221
   * no other fields on the PaymentIntent or Charge update. The PaymentIntent object remains
1222
   * capturable for the previously authorized amount.
1223
   *
1224
   * <p>Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including
1225
   * declines. After it’s captured, a PaymentIntent can no longer be incremented.
1226
   *
1227
   * <p>Learn more about <a
1228
   * href="https://stripe.com/docs/terminal/features/incremental-authorizations">incremental
1229
   * authorizations</a>.
1230
   */
1231
  public PaymentIntent incrementAuthorization(Map<String, Object> params, RequestOptions options)
1232
      throws StripeException {
1233
    String path =
×
1234
        String.format(
×
1235
            "/v1/payment_intents/%s/increment_authorization",
1236
            ApiResource.urlEncodeId(this.getId()));
×
1237
    ApiRequest request =
×
1238
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
1239
    return getResponseGetter().request(request, PaymentIntent.class);
×
1240
  }
1241

1242
  /**
1243
   * Perform an incremental authorization on an eligible <a
1244
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1245
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1246
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported">incremental_authorization_supported</a>
1247
   * must be {@code true}.
1248
   *
1249
   * <p>Incremental authorizations attempt to increase the authorized amount on your customer’s card
1250
   * to the new, higher {@code amount} provided. Similar to the initial authorization, incremental
1251
   * authorizations can be declined. A single PaymentIntent can call this endpoint multiple times to
1252
   * further increase the authorized amount.
1253
   *
1254
   * <p>If the incremental authorization succeeds, the PaymentIntent object returns with the updated
1255
   * <a
1256
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1257
   * If the incremental authorization fails, a <a
1258
   * href="https://stripe.com/docs/error-codes#card-declined">card_declined</a> error returns, and
1259
   * no other fields on the PaymentIntent or Charge update. The PaymentIntent object remains
1260
   * capturable for the previously authorized amount.
1261
   *
1262
   * <p>Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including
1263
   * declines. After it’s captured, a PaymentIntent can no longer be incremented.
1264
   *
1265
   * <p>Learn more about <a
1266
   * href="https://stripe.com/docs/terminal/features/incremental-authorizations">incremental
1267
   * authorizations</a>.
1268
   */
1269
  public PaymentIntent incrementAuthorization(PaymentIntentIncrementAuthorizationParams params)
1270
      throws StripeException {
1271
    return incrementAuthorization(params, (RequestOptions) null);
1✔
1272
  }
1273

1274
  /**
1275
   * Perform an incremental authorization on an eligible <a
1276
   * href="https://stripe.com/docs/api/payment_intents/object">PaymentIntent</a>. To be eligible,
1277
   * the PaymentIntent’s status must be {@code requires_capture} and <a
1278
   * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported">incremental_authorization_supported</a>
1279
   * must be {@code true}.
1280
   *
1281
   * <p>Incremental authorizations attempt to increase the authorized amount on your customer’s card
1282
   * to the new, higher {@code amount} provided. Similar to the initial authorization, incremental
1283
   * authorizations can be declined. A single PaymentIntent can call this endpoint multiple times to
1284
   * further increase the authorized amount.
1285
   *
1286
   * <p>If the incremental authorization succeeds, the PaymentIntent object returns with the updated
1287
   * <a
1288
   * href="https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount">amount</a>.
1289
   * If the incremental authorization fails, a <a
1290
   * href="https://stripe.com/docs/error-codes#card-declined">card_declined</a> error returns, and
1291
   * no other fields on the PaymentIntent or Charge update. The PaymentIntent object remains
1292
   * capturable for the previously authorized amount.
1293
   *
1294
   * <p>Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including
1295
   * declines. After it’s captured, a PaymentIntent can no longer be incremented.
1296
   *
1297
   * <p>Learn more about <a
1298
   * href="https://stripe.com/docs/terminal/features/incremental-authorizations">incremental
1299
   * authorizations</a>.
1300
   */
1301
  public PaymentIntent incrementAuthorization(
1302
      PaymentIntentIncrementAuthorizationParams params, RequestOptions options)
1303
      throws StripeException {
1304
    String path =
1✔
1305
        String.format(
1✔
1306
            "/v1/payment_intents/%s/increment_authorization",
1307
            ApiResource.urlEncodeId(this.getId()));
1✔
1308
    ApiResource.checkNullTypedParams(path, params);
1✔
1309
    ApiRequest request =
1✔
1310
        new ApiRequest(
1311
            BaseAddress.API,
1312
            ApiResource.RequestMethod.POST,
1313
            path,
1314
            ApiRequestParams.paramsToMap(params),
1✔
1315
            options);
1316
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
1317
  }
1318

1319
  /** Returns a list of PaymentIntents. */
1320
  public static PaymentIntentCollection list(Map<String, Object> params) throws StripeException {
1321
    return list(params, (RequestOptions) null);
1✔
1322
  }
1323

1324
  /** Returns a list of PaymentIntents. */
1325
  public static PaymentIntentCollection list(Map<String, Object> params, RequestOptions options)
1326
      throws StripeException {
1327
    String path = "/v1/payment_intents";
1✔
1328
    ApiRequest request =
1✔
1329
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.GET, path, params, options);
1330
    return getGlobalResponseGetter().request(request, PaymentIntentCollection.class);
1✔
1331
  }
1332

1333
  /** Returns a list of PaymentIntents. */
1334
  public static PaymentIntentCollection list(PaymentIntentListParams params)
1335
      throws StripeException {
1336
    return list(params, (RequestOptions) null);
1✔
1337
  }
1338

1339
  /** Returns a list of PaymentIntents. */
1340
  public static PaymentIntentCollection list(PaymentIntentListParams params, RequestOptions options)
1341
      throws StripeException {
1342
    String path = "/v1/payment_intents";
1✔
1343
    ApiResource.checkNullTypedParams(path, params);
1✔
1344
    ApiRequest request =
1✔
1345
        new ApiRequest(
1346
            BaseAddress.API,
1347
            ApiResource.RequestMethod.GET,
1348
            path,
1349
            ApiRequestParams.paramsToMap(params),
1✔
1350
            options);
1351
    return getGlobalResponseGetter().request(request, PaymentIntentCollection.class);
1✔
1352
  }
1353

1354
  /**
1355
   * Retrieves the details of a PaymentIntent that has previously been created.
1356
   *
1357
   * <p>You can retrieve a PaymentIntent client-side using a publishable key when the {@code
1358
   * client_secret} is in the query string.
1359
   *
1360
   * <p>If you retrieve a PaymentIntent with a publishable key, it only returns a subset of
1361
   * properties. Refer to the <a href="https://stripe.com/docs/api#payment_intent_object">payment
1362
   * intent</a> object reference for more details.
1363
   */
1364
  public static PaymentIntent retrieve(String intent) throws StripeException {
1365
    return retrieve(intent, (Map<String, Object>) null, (RequestOptions) null);
1✔
1366
  }
1367

1368
  /**
1369
   * Retrieves the details of a PaymentIntent that has previously been created.
1370
   *
1371
   * <p>You can retrieve a PaymentIntent client-side using a publishable key when the {@code
1372
   * client_secret} is in the query string.
1373
   *
1374
   * <p>If you retrieve a PaymentIntent with a publishable key, it only returns a subset of
1375
   * properties. Refer to the <a href="https://stripe.com/docs/api#payment_intent_object">payment
1376
   * intent</a> object reference for more details.
1377
   */
1378
  public static PaymentIntent retrieve(String intent, RequestOptions options)
1379
      throws StripeException {
1380
    return retrieve(intent, (Map<String, Object>) null, options);
×
1381
  }
1382

1383
  /**
1384
   * Retrieves the details of a PaymentIntent that has previously been created.
1385
   *
1386
   * <p>You can retrieve a PaymentIntent client-side using a publishable key when the {@code
1387
   * client_secret} is in the query string.
1388
   *
1389
   * <p>If you retrieve a PaymentIntent with a publishable key, it only returns a subset of
1390
   * properties. Refer to the <a href="https://stripe.com/docs/api#payment_intent_object">payment
1391
   * intent</a> object reference for more details.
1392
   */
1393
  public static PaymentIntent retrieve(
1394
      String intent, Map<String, Object> params, RequestOptions options) throws StripeException {
1395
    String path = String.format("/v1/payment_intents/%s", ApiResource.urlEncodeId(intent));
1✔
1396
    ApiRequest request =
1✔
1397
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.GET, path, params, options);
1398
    return getGlobalResponseGetter().request(request, PaymentIntent.class);
1✔
1399
  }
1400

1401
  /**
1402
   * Retrieves the details of a PaymentIntent that has previously been created.
1403
   *
1404
   * <p>You can retrieve a PaymentIntent client-side using a publishable key when the {@code
1405
   * client_secret} is in the query string.
1406
   *
1407
   * <p>If you retrieve a PaymentIntent with a publishable key, it only returns a subset of
1408
   * properties. Refer to the <a href="https://stripe.com/docs/api#payment_intent_object">payment
1409
   * intent</a> object reference for more details.
1410
   */
1411
  public static PaymentIntent retrieve(
1412
      String intent, PaymentIntentRetrieveParams params, RequestOptions options)
1413
      throws StripeException {
1414
    String path = String.format("/v1/payment_intents/%s", ApiResource.urlEncodeId(intent));
1✔
1415
    ApiResource.checkNullTypedParams(path, params);
1✔
1416
    ApiRequest request =
1✔
1417
        new ApiRequest(
1418
            BaseAddress.API,
1419
            ApiResource.RequestMethod.GET,
1420
            path,
1421
            ApiRequestParams.paramsToMap(params),
1✔
1422
            options);
1423
    return getGlobalResponseGetter().request(request, PaymentIntent.class);
1✔
1424
  }
1425

1426
  /**
1427
   * Search for PaymentIntents you’ve previously created using Stripe’s <a
1428
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
1429
   * use search in read-after-write flows where strict consistency is necessary. Under normal
1430
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
1431
   * new or updated data can be up to an hour behind during outages. Search functionality is not
1432
   * available to merchants in India.
1433
   */
1434
  public static PaymentIntentSearchResult search(Map<String, Object> params)
1435
      throws StripeException {
1436
    return search(params, (RequestOptions) null);
×
1437
  }
1438

1439
  /**
1440
   * Search for PaymentIntents you’ve previously created using Stripe’s <a
1441
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
1442
   * use search in read-after-write flows where strict consistency is necessary. Under normal
1443
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
1444
   * new or updated data can be up to an hour behind during outages. Search functionality is not
1445
   * available to merchants in India.
1446
   */
1447
  public static PaymentIntentSearchResult search(Map<String, Object> params, RequestOptions options)
1448
      throws StripeException {
1449
    String path = "/v1/payment_intents/search";
×
1450
    ApiRequest request =
×
1451
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.GET, path, params, options);
1452
    return getGlobalResponseGetter().request(request, PaymentIntentSearchResult.class);
×
1453
  }
1454

1455
  /**
1456
   * Search for PaymentIntents you’ve previously created using Stripe’s <a
1457
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
1458
   * use search in read-after-write flows where strict consistency is necessary. Under normal
1459
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
1460
   * new or updated data can be up to an hour behind during outages. Search functionality is not
1461
   * available to merchants in India.
1462
   */
1463
  public static PaymentIntentSearchResult search(PaymentIntentSearchParams params)
1464
      throws StripeException {
1465
    return search(params, (RequestOptions) null);
1✔
1466
  }
1467

1468
  /**
1469
   * Search for PaymentIntents you’ve previously created using Stripe’s <a
1470
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
1471
   * use search in read-after-write flows where strict consistency is necessary. Under normal
1472
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
1473
   * new or updated data can be up to an hour behind during outages. Search functionality is not
1474
   * available to merchants in India.
1475
   */
1476
  public static PaymentIntentSearchResult search(
1477
      PaymentIntentSearchParams params, RequestOptions options) throws StripeException {
1478
    String path = "/v1/payment_intents/search";
1✔
1479
    ApiResource.checkNullTypedParams(path, params);
1✔
1480
    ApiRequest request =
1✔
1481
        new ApiRequest(
1482
            BaseAddress.API,
1483
            ApiResource.RequestMethod.GET,
1484
            path,
1485
            ApiRequestParams.paramsToMap(params),
1✔
1486
            options);
1487
    return getGlobalResponseGetter().request(request, PaymentIntentSearchResult.class);
1✔
1488
  }
1489

1490
  /** Trigger an external action on a PaymentIntent. */
1491
  public static PaymentIntent triggerAction(String intent, Map<String, Object> params)
1492
      throws StripeException {
NEW
1493
    return triggerAction(intent, params, (RequestOptions) null);
×
1494
  }
1495

1496
  /** Trigger an external action on a PaymentIntent. */
1497
  public static PaymentIntent triggerAction(
1498
      String intent, Map<String, Object> params, RequestOptions options) throws StripeException {
NEW
1499
    String path =
×
NEW
1500
        String.format(
×
NEW
1501
            "/v1/test/payment_intents/%s/trigger_action", ApiResource.urlEncodeId(intent));
×
NEW
1502
    ApiRequest request =
×
1503
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
NEW
1504
    return getGlobalResponseGetter().request(request, PaymentIntent.class);
×
1505
  }
1506

1507
  /** Trigger an external action on a PaymentIntent. */
1508
  public static PaymentIntent triggerAction(String intent, PaymentIntentTriggerActionParams params)
1509
      throws StripeException {
NEW
1510
    return triggerAction(intent, params, (RequestOptions) null);
×
1511
  }
1512

1513
  /** Trigger an external action on a PaymentIntent. */
1514
  public static PaymentIntent triggerAction(
1515
      String intent, PaymentIntentTriggerActionParams params, RequestOptions options)
1516
      throws StripeException {
NEW
1517
    String path =
×
NEW
1518
        String.format(
×
NEW
1519
            "/v1/test/payment_intents/%s/trigger_action", ApiResource.urlEncodeId(intent));
×
NEW
1520
    ApiResource.checkNullTypedParams(path, params);
×
NEW
1521
    ApiRequest request =
×
1522
        new ApiRequest(
1523
            BaseAddress.API,
1524
            ApiResource.RequestMethod.POST,
1525
            path,
NEW
1526
            ApiRequestParams.paramsToMap(params),
×
1527
            options);
NEW
1528
    return getGlobalResponseGetter().request(request, PaymentIntent.class);
×
1529
  }
1530

1531
  /**
1532
   * Updates properties on a PaymentIntent object without confirming.
1533
   *
1534
   * <p>Depending on which properties you update, you might need to confirm the PaymentIntent again.
1535
   * For example, updating the {@code payment_method} always requires you to confirm the
1536
   * PaymentIntent again. If you prefer to update and confirm at the same time, we recommend
1537
   * updating properties through the <a
1538
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> instead.
1539
   */
1540
  @Override
1541
  public PaymentIntent update(Map<String, Object> params) throws StripeException {
1542
    return update(params, (RequestOptions) null);
1✔
1543
  }
1544

1545
  /**
1546
   * Updates properties on a PaymentIntent object without confirming.
1547
   *
1548
   * <p>Depending on which properties you update, you might need to confirm the PaymentIntent again.
1549
   * For example, updating the {@code payment_method} always requires you to confirm the
1550
   * PaymentIntent again. If you prefer to update and confirm at the same time, we recommend
1551
   * updating properties through the <a
1552
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> instead.
1553
   */
1554
  @Override
1555
  public PaymentIntent update(Map<String, Object> params, RequestOptions options)
1556
      throws StripeException {
1557
    String path = String.format("/v1/payment_intents/%s", ApiResource.urlEncodeId(this.getId()));
1✔
1558
    ApiRequest request =
1✔
1559
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
1560
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
1561
  }
1562

1563
  /**
1564
   * Updates properties on a PaymentIntent object without confirming.
1565
   *
1566
   * <p>Depending on which properties you update, you might need to confirm the PaymentIntent again.
1567
   * For example, updating the {@code payment_method} always requires you to confirm the
1568
   * PaymentIntent again. If you prefer to update and confirm at the same time, we recommend
1569
   * updating properties through the <a
1570
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> instead.
1571
   */
1572
  public PaymentIntent update(PaymentIntentUpdateParams params) throws StripeException {
1573
    return update(params, (RequestOptions) null);
1✔
1574
  }
1575

1576
  /**
1577
   * Updates properties on a PaymentIntent object without confirming.
1578
   *
1579
   * <p>Depending on which properties you update, you might need to confirm the PaymentIntent again.
1580
   * For example, updating the {@code payment_method} always requires you to confirm the
1581
   * PaymentIntent again. If you prefer to update and confirm at the same time, we recommend
1582
   * updating properties through the <a
1583
   * href="https://stripe.com/docs/api/payment_intents/confirm">confirm API</a> instead.
1584
   */
1585
  public PaymentIntent update(PaymentIntentUpdateParams params, RequestOptions options)
1586
      throws StripeException {
1587
    String path = String.format("/v1/payment_intents/%s", ApiResource.urlEncodeId(this.getId()));
1✔
1588
    ApiResource.checkNullTypedParams(path, params);
1✔
1589
    ApiRequest request =
1✔
1590
        new ApiRequest(
1591
            BaseAddress.API,
1592
            ApiResource.RequestMethod.POST,
1593
            path,
1594
            ApiRequestParams.paramsToMap(params),
1✔
1595
            options);
1596
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
1597
  }
1598

1599
  /** Verifies microdeposits on a PaymentIntent object. */
1600
  public PaymentIntent verifyMicrodeposits() throws StripeException {
1601
    return verifyMicrodeposits((Map<String, Object>) null, (RequestOptions) null);
×
1602
  }
1603

1604
  /** Verifies microdeposits on a PaymentIntent object. */
1605
  public PaymentIntent verifyMicrodeposits(RequestOptions options) throws StripeException {
1606
    return verifyMicrodeposits((Map<String, Object>) null, options);
×
1607
  }
1608

1609
  /** Verifies microdeposits on a PaymentIntent object. */
1610
  public PaymentIntent verifyMicrodeposits(Map<String, Object> params) throws StripeException {
1611
    return verifyMicrodeposits(params, (RequestOptions) null);
×
1612
  }
1613

1614
  /** Verifies microdeposits on a PaymentIntent object. */
1615
  public PaymentIntent verifyMicrodeposits(Map<String, Object> params, RequestOptions options)
1616
      throws StripeException {
1617
    String path =
×
1618
        String.format(
×
1619
            "/v1/payment_intents/%s/verify_microdeposits", ApiResource.urlEncodeId(this.getId()));
×
1620
    ApiRequest request =
×
1621
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
1622
    return getResponseGetter().request(request, PaymentIntent.class);
×
1623
  }
1624

1625
  /** Verifies microdeposits on a PaymentIntent object. */
1626
  public PaymentIntent verifyMicrodeposits(PaymentIntentVerifyMicrodepositsParams params)
1627
      throws StripeException {
1628
    return verifyMicrodeposits(params, (RequestOptions) null);
1✔
1629
  }
1630

1631
  /** Verifies microdeposits on a PaymentIntent object. */
1632
  public PaymentIntent verifyMicrodeposits(
1633
      PaymentIntentVerifyMicrodepositsParams params, RequestOptions options)
1634
      throws StripeException {
1635
    String path =
1✔
1636
        String.format(
1✔
1637
            "/v1/payment_intents/%s/verify_microdeposits", ApiResource.urlEncodeId(this.getId()));
1✔
1638
    ApiResource.checkNullTypedParams(path, params);
1✔
1639
    ApiRequest request =
1✔
1640
        new ApiRequest(
1641
            BaseAddress.API,
1642
            ApiResource.RequestMethod.POST,
1643
            path,
1644
            ApiRequestParams.paramsToMap(params),
1✔
1645
            options);
1646
    return getResponseGetter().request(request, PaymentIntent.class);
1✔
1647
  }
1648

1649
  /**
1650
   * For more details about AmountDetails, please refer to the <a
1651
   * href="https://docs.stripe.com/api">API Reference.</a>
1652
   */
1653
  @Getter
1654
  @Setter
1655
  @EqualsAndHashCode(callSuper = false)
1656
  public static class AmountDetails extends StripeObject {
1✔
1657
    @SerializedName("tip")
1658
    Tip tip;
1659

1660
    /**
1661
     * For more details about Tip, please refer to the <a href="https://docs.stripe.com/api">API
1662
     * Reference.</a>
1663
     */
1664
    @Getter
1665
    @Setter
1666
    @EqualsAndHashCode(callSuper = false)
1667
    public static class Tip extends StripeObject {
1✔
1668
      /** Portion of the amount that corresponds to a tip. */
1669
      @SerializedName("amount")
1670
      Long amount;
1671
    }
1672
  }
1673

1674
  /**
1675
   * For more details about AsyncWorkflows, please refer to the <a
1676
   * href="https://docs.stripe.com/api">API Reference.</a>
1677
   */
1678
  @Getter
1679
  @Setter
1680
  @EqualsAndHashCode(callSuper = false)
1681
  public static class AsyncWorkflows extends StripeObject {
×
1682
    @SerializedName("inputs")
1683
    Inputs inputs;
1684

1685
    /**
1686
     * For more details about Inputs, please refer to the <a href="https://docs.stripe.com/api">API
1687
     * Reference.</a>
1688
     */
1689
    @Getter
1690
    @Setter
1691
    @EqualsAndHashCode(callSuper = false)
1692
    public static class Inputs extends StripeObject {
×
1693
      @SerializedName("tax")
1694
      Tax tax;
1695

1696
      /**
1697
       * For more details about Tax, please refer to the <a href="https://docs.stripe.com/api">API
1698
       * Reference.</a>
1699
       */
1700
      @Getter
1701
      @Setter
1702
      @EqualsAndHashCode(callSuper = false)
1703
      public static class Tax extends StripeObject {
×
1704
        /** The <a href="https://stripe.com/docs/api/tax/calculations">TaxCalculation</a> id */
1705
        @SerializedName("calculation")
1706
        String calculation;
1707
      }
1708
    }
1709
  }
1710

1711
  /**
1712
   * For more details about AutomaticPaymentMethods, please refer to the <a
1713
   * href="https://docs.stripe.com/api">API Reference.</a>
1714
   */
1715
  @Getter
1716
  @Setter
1717
  @EqualsAndHashCode(callSuper = false)
1718
  public static class AutomaticPaymentMethods extends StripeObject {
×
1719
    /**
1720
     * Controls whether this PaymentIntent will accept redirect-based payment methods.
1721
     *
1722
     * <p>Redirect-based payment methods may require your customer to be redirected to a payment
1723
     * method's app or site for authentication or additional steps. To <a
1724
     * href="https://stripe.com/docs/api/payment_intents/confirm">confirm</a> this PaymentIntent,
1725
     * you may be required to provide a {@code return_url} to redirect customers back to your site
1726
     * after they authenticate or complete the payment.
1727
     *
1728
     * <p>One of {@code always}, or {@code never}.
1729
     */
1730
    @SerializedName("allow_redirects")
1731
    String allowRedirects;
1732

1733
    /** Automatically calculates compatible payment methods. */
1734
    @SerializedName("enabled")
1735
    Boolean enabled;
1736
  }
1737

1738
  /**
1739
   * For more details about NextAction, please refer to the <a
1740
   * href="https://docs.stripe.com/api">API Reference.</a>
1741
   */
1742
  @Getter
1743
  @Setter
1744
  @EqualsAndHashCode(callSuper = false)
1745
  public static class NextAction extends StripeObject {
1✔
1746
    @SerializedName("alipay_handle_redirect")
1747
    AlipayHandleRedirect alipayHandleRedirect;
1748

1749
    @SerializedName("boleto_display_details")
1750
    BoletoDisplayDetails boletoDisplayDetails;
1751

1752
    @SerializedName("card_await_notification")
1753
    CardAwaitNotification cardAwaitNotification;
1754

1755
    @SerializedName("cashapp_handle_redirect_or_display_qr_code")
1756
    CashappHandleRedirectOrDisplayQrCode cashappHandleRedirectOrDisplayQrCode;
1757

1758
    @SerializedName("display_bank_transfer_instructions")
1759
    DisplayBankTransferInstructions displayBankTransferInstructions;
1760

1761
    @SerializedName("konbini_display_details")
1762
    KonbiniDisplayDetails konbiniDisplayDetails;
1763

1764
    @SerializedName("multibanco_display_details")
1765
    MultibancoDisplayDetails multibancoDisplayDetails;
1766

1767
    @SerializedName("oxxo_display_details")
1768
    OxxoDisplayDetails oxxoDisplayDetails;
1769

1770
    @SerializedName("paynow_display_qr_code")
1771
    PaynowDisplayQrCode paynowDisplayQrCode;
1772

1773
    @SerializedName("pix_display_qr_code")
1774
    PixDisplayQrCode pixDisplayQrCode;
1775

1776
    @SerializedName("promptpay_display_qr_code")
1777
    PromptpayDisplayQrCode promptpayDisplayQrCode;
1778

1779
    @SerializedName("redirect_to_url")
1780
    RedirectToUrl redirectToUrl;
1781

1782
    @SerializedName("swish_handle_redirect_or_display_qr_code")
1783
    SwishHandleRedirectOrDisplayQrCode swishHandleRedirectOrDisplayQrCode;
1784

1785
    /**
1786
     * Type of the next action to perform, one of {@code redirect_to_url}, {@code use_stripe_sdk},
1787
     * {@code alipay_handle_redirect}, {@code oxxo_display_details}, or {@code
1788
     * verify_with_microdeposits}.
1789
     */
1790
    @SerializedName("type")
1791
    String type;
1792

1793
    /**
1794
     * When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this
1795
     * dictionary to invoke authentication flows. The shape of the contents is subject to change and
1796
     * is only intended to be used by Stripe.js.
1797
     */
1798
    @SerializedName("use_stripe_sdk")
1799
    Map<String, Object> useStripeSdk;
1800

1801
    @SerializedName("verify_with_microdeposits")
1802
    VerifyWithMicrodeposits verifyWithMicrodeposits;
1803

1804
    @SerializedName("wechat_pay_display_qr_code")
1805
    WechatPayDisplayQrCode wechatPayDisplayQrCode;
1806

1807
    @SerializedName("wechat_pay_redirect_to_android_app")
1808
    WechatPayRedirectToAndroidApp wechatPayRedirectToAndroidApp;
1809

1810
    @SerializedName("wechat_pay_redirect_to_ios_app")
1811
    WechatPayRedirectToIosApp wechatPayRedirectToIosApp;
1812

1813
    /**
1814
     * For more details about AlipayHandleRedirect, please refer to the <a
1815
     * href="https://docs.stripe.com/api">API Reference.</a>
1816
     */
1817
    @Getter
1818
    @Setter
1819
    @EqualsAndHashCode(callSuper = false)
1820
    public static class AlipayHandleRedirect extends StripeObject {
×
1821
      /**
1822
       * The native data to be used with Alipay SDK you must redirect your customer to in order to
1823
       * authenticate the payment in an Android App.
1824
       */
1825
      @SerializedName("native_data")
1826
      String nativeData;
1827

1828
      /**
1829
       * The native URL you must redirect your customer to in order to authenticate the payment in
1830
       * an iOS App.
1831
       */
1832
      @SerializedName("native_url")
1833
      String nativeUrl;
1834

1835
      /**
1836
       * If the customer does not exit their browser while authenticating, they will be redirected
1837
       * to this specified URL after completion.
1838
       */
1839
      @SerializedName("return_url")
1840
      String returnUrl;
1841

1842
      /** The URL you must redirect your customer to in order to authenticate the payment. */
1843
      @SerializedName("url")
1844
      String url;
1845
    }
1846

1847
    /**
1848
     * For more details about BoletoDisplayDetails, please refer to the <a
1849
     * href="https://docs.stripe.com/api">API Reference.</a>
1850
     */
1851
    @Getter
1852
    @Setter
1853
    @EqualsAndHashCode(callSuper = false)
1854
    public static class BoletoDisplayDetails extends StripeObject {
×
1855
      /** The timestamp after which the boleto expires. */
1856
      @SerializedName("expires_at")
1857
      Long expiresAt;
1858

1859
      /**
1860
       * The URL to the hosted boleto voucher page, which allows customers to view the boleto
1861
       * voucher.
1862
       */
1863
      @SerializedName("hosted_voucher_url")
1864
      String hostedVoucherUrl;
1865

1866
      /** The boleto number. */
1867
      @SerializedName("number")
1868
      String number;
1869

1870
      /** The URL to the downloadable boleto voucher PDF. */
1871
      @SerializedName("pdf")
1872
      String pdf;
1873
    }
1874

1875
    /**
1876
     * For more details about CardAwaitNotification, please refer to the <a
1877
     * href="https://docs.stripe.com/api">API Reference.</a>
1878
     */
1879
    @Getter
1880
    @Setter
1881
    @EqualsAndHashCode(callSuper = false)
1882
    public static class CardAwaitNotification extends StripeObject {
×
1883
      /**
1884
       * The time that payment will be attempted. If customer approval is required, they need to
1885
       * provide approval before this time.
1886
       */
1887
      @SerializedName("charge_attempt_at")
1888
      Long chargeAttemptAt;
1889

1890
      /**
1891
       * For payments greater than INR 15000, the customer must provide explicit approval of the
1892
       * payment with their bank. For payments of lower amount, no customer action is required.
1893
       */
1894
      @SerializedName("customer_approval_required")
1895
      Boolean customerApprovalRequired;
1896
    }
1897

1898
    /**
1899
     * For more details about CashappHandleRedirectOrDisplayQrCode, please refer to the <a
1900
     * href="https://docs.stripe.com/api">API Reference.</a>
1901
     */
1902
    @Getter
1903
    @Setter
1904
    @EqualsAndHashCode(callSuper = false)
1905
    public static class CashappHandleRedirectOrDisplayQrCode extends StripeObject {
×
1906
      /**
1907
       * The URL to the hosted Cash App Pay instructions page, which allows customers to view the QR
1908
       * code, and supports QR code refreshing on expiration.
1909
       */
1910
      @SerializedName("hosted_instructions_url")
1911
      String hostedInstructionsUrl;
1912

1913
      /** The url for mobile redirect based auth. */
1914
      @SerializedName("mobile_auth_url")
1915
      String mobileAuthUrl;
1916

1917
      @SerializedName("qr_code")
1918
      QrCode qrCode;
1919

1920
      /**
1921
       * For more details about QrCode, please refer to the <a
1922
       * href="https://docs.stripe.com/api">API Reference.</a>
1923
       */
1924
      @Getter
1925
      @Setter
1926
      @EqualsAndHashCode(callSuper = false)
1927
      public static class QrCode extends StripeObject {
×
1928
        /** The date (unix timestamp) when the QR code expires. */
1929
        @SerializedName("expires_at")
1930
        Long expiresAt;
1931

1932
        /** The image_url_png string used to render QR code. */
1933
        @SerializedName("image_url_png")
1934
        String imageUrlPng;
1935

1936
        /** The image_url_svg string used to render QR code. */
1937
        @SerializedName("image_url_svg")
1938
        String imageUrlSvg;
1939
      }
1940
    }
1941

1942
    /**
1943
     * For more details about DisplayBankTransferInstructions, please refer to the <a
1944
     * href="https://docs.stripe.com/api">API Reference.</a>
1945
     */
1946
    @Getter
1947
    @Setter
1948
    @EqualsAndHashCode(callSuper = false)
1949
    public static class DisplayBankTransferInstructions extends StripeObject {
×
1950
      /** The remaining amount that needs to be transferred to complete the payment. */
1951
      @SerializedName("amount_remaining")
1952
      Long amountRemaining;
1953

1954
      /**
1955
       * Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency
1956
       * code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported
1957
       * currency</a>.
1958
       */
1959
      @SerializedName("currency")
1960
      String currency;
1961

1962
      /** A list of financial addresses that can be used to fund the customer balance. */
1963
      @SerializedName("financial_addresses")
1964
      List<PaymentIntent.NextAction.DisplayBankTransferInstructions.FinancialAddress>
1965
          financialAddresses;
1966

1967
      /** A link to a hosted page that guides your customer through completing the transfer. */
1968
      @SerializedName("hosted_instructions_url")
1969
      String hostedInstructionsUrl;
1970

1971
      /**
1972
       * A string identifying this payment. Instruct your customer to include this code in the
1973
       * reference or memo field of their bank transfer.
1974
       */
1975
      @SerializedName("reference")
1976
      String reference;
1977

1978
      /**
1979
       * Type of bank transfer
1980
       *
1981
       * <p>One of {@code eu_bank_transfer}, {@code gb_bank_transfer}, {@code jp_bank_transfer},
1982
       * {@code mx_bank_transfer}, or {@code us_bank_transfer}.
1983
       */
1984
      @SerializedName("type")
1985
      String type;
1986

1987
      /** FinancialAddresses contain identifying information that resolves to a FinancialAccount. */
1988
      @Getter
1989
      @Setter
1990
      @EqualsAndHashCode(callSuper = false)
1991
      public static class FinancialAddress extends StripeObject {
×
1992
        /** ABA Records contain U.S. bank account details per the ABA format. */
1993
        @SerializedName("aba")
1994
        Aba aba;
1995

1996
        /** Iban Records contain E.U. bank account details per the SEPA format. */
1997
        @SerializedName("iban")
1998
        Iban iban;
1999

2000
        /** Sort Code Records contain U.K. bank account details per the sort code format. */
2001
        @SerializedName("sort_code")
2002
        SortCode sortCode;
2003

2004
        /** SPEI Records contain Mexico bank account details per the SPEI format. */
2005
        @SerializedName("spei")
2006
        Spei spei;
2007

2008
        /** The payment networks supported by this FinancialAddress. */
2009
        @SerializedName("supported_networks")
2010
        List<String> supportedNetworks;
2011

2012
        /** SWIFT Records contain U.S. bank account details per the SWIFT format. */
2013
        @SerializedName("swift")
2014
        Swift swift;
2015

2016
        /**
2017
         * The type of financial address
2018
         *
2019
         * <p>One of {@code aba}, {@code iban}, {@code sort_code}, {@code spei}, {@code swift}, or
2020
         * {@code zengin}.
2021
         */
2022
        @SerializedName("type")
2023
        String type;
2024

2025
        /** Zengin Records contain Japan bank account details per the Zengin format. */
2026
        @SerializedName("zengin")
2027
        Zengin zengin;
2028

2029
        /** ABA Records contain U.S. bank account details per the ABA format. */
2030
        @Getter
2031
        @Setter
2032
        @EqualsAndHashCode(callSuper = false)
2033
        public static class Aba extends StripeObject {
×
2034
          /** The ABA account number. */
2035
          @SerializedName("account_number")
2036
          String accountNumber;
2037

2038
          /** The bank name. */
2039
          @SerializedName("bank_name")
2040
          String bankName;
2041

2042
          /** The ABA routing number. */
2043
          @SerializedName("routing_number")
2044
          String routingNumber;
2045
        }
2046

2047
        /** Iban Records contain E.U. bank account details per the SEPA format. */
2048
        @Getter
2049
        @Setter
2050
        @EqualsAndHashCode(callSuper = false)
2051
        public static class Iban extends StripeObject {
×
2052
          /** The name of the person or business that owns the bank account. */
2053
          @SerializedName("account_holder_name")
2054
          String accountHolderName;
2055

2056
          /** The BIC/SWIFT code of the account. */
2057
          @SerializedName("bic")
2058
          String bic;
2059

2060
          /**
2061
           * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2062
           * 3166-1 alpha-2</a>).
2063
           */
2064
          @SerializedName("country")
2065
          String country;
2066

2067
          /** The IBAN of the account. */
2068
          @SerializedName("iban")
2069
          String iban;
2070
        }
2071

2072
        /** Sort Code Records contain U.K. bank account details per the sort code format. */
2073
        @Getter
2074
        @Setter
2075
        @EqualsAndHashCode(callSuper = false)
2076
        public static class SortCode extends StripeObject {
×
2077
          /** The name of the person or business that owns the bank account. */
2078
          @SerializedName("account_holder_name")
2079
          String accountHolderName;
2080

2081
          /** The account number. */
2082
          @SerializedName("account_number")
2083
          String accountNumber;
2084

2085
          /** The six-digit sort code. */
2086
          @SerializedName("sort_code")
2087
          String sortCode;
2088
        }
2089

2090
        /** SPEI Records contain Mexico bank account details per the SPEI format. */
2091
        @Getter
2092
        @Setter
2093
        @EqualsAndHashCode(callSuper = false)
2094
        public static class Spei extends StripeObject {
×
2095
          /** The three-digit bank code. */
2096
          @SerializedName("bank_code")
2097
          String bankCode;
2098

2099
          /** The short banking institution name. */
2100
          @SerializedName("bank_name")
2101
          String bankName;
2102

2103
          /** The CLABE number. */
2104
          @SerializedName("clabe")
2105
          String clabe;
2106
        }
2107

2108
        /** SWIFT Records contain U.S. bank account details per the SWIFT format. */
2109
        @Getter
2110
        @Setter
2111
        @EqualsAndHashCode(callSuper = false)
2112
        public static class Swift extends StripeObject {
×
2113
          /** The account number. */
2114
          @SerializedName("account_number")
2115
          String accountNumber;
2116

2117
          /** The bank name. */
2118
          @SerializedName("bank_name")
2119
          String bankName;
2120

2121
          /** The SWIFT code. */
2122
          @SerializedName("swift_code")
2123
          String swiftCode;
2124
        }
2125

2126
        /** Zengin Records contain Japan bank account details per the Zengin format. */
2127
        @Getter
2128
        @Setter
2129
        @EqualsAndHashCode(callSuper = false)
2130
        public static class Zengin extends StripeObject {
×
2131
          /** The account holder name. */
2132
          @SerializedName("account_holder_name")
2133
          String accountHolderName;
2134

2135
          /** The account number. */
2136
          @SerializedName("account_number")
2137
          String accountNumber;
2138

2139
          /** The bank account type. In Japan, this can only be {@code futsu} or {@code toza}. */
2140
          @SerializedName("account_type")
2141
          String accountType;
2142

2143
          /** The bank code of the account. */
2144
          @SerializedName("bank_code")
2145
          String bankCode;
2146

2147
          /** The bank name of the account. */
2148
          @SerializedName("bank_name")
2149
          String bankName;
2150

2151
          /** The branch code of the account. */
2152
          @SerializedName("branch_code")
2153
          String branchCode;
2154

2155
          /** The branch name of the account. */
2156
          @SerializedName("branch_name")
2157
          String branchName;
2158
        }
2159
      }
2160
    }
2161

2162
    /**
2163
     * For more details about KonbiniDisplayDetails, please refer to the <a
2164
     * href="https://docs.stripe.com/api">API Reference.</a>
2165
     */
2166
    @Getter
2167
    @Setter
2168
    @EqualsAndHashCode(callSuper = false)
2169
    public static class KonbiniDisplayDetails extends StripeObject {
×
2170
      /** The timestamp at which the pending Konbini payment expires. */
2171
      @SerializedName("expires_at")
2172
      Long expiresAt;
2173

2174
      /**
2175
       * The URL for the Konbini payment instructions page, which allows customers to view and print
2176
       * a Konbini voucher.
2177
       */
2178
      @SerializedName("hosted_voucher_url")
2179
      String hostedVoucherUrl;
2180

2181
      @SerializedName("stores")
2182
      Stores stores;
2183

2184
      /**
2185
       * For more details about Stores, please refer to the <a
2186
       * href="https://docs.stripe.com/api">API Reference.</a>
2187
       */
2188
      @Getter
2189
      @Setter
2190
      @EqualsAndHashCode(callSuper = false)
2191
      public static class Stores extends StripeObject {
×
2192
        /** FamilyMart instruction details. */
2193
        @SerializedName("familymart")
2194
        Familymart familymart;
2195

2196
        /** Lawson instruction details. */
2197
        @SerializedName("lawson")
2198
        Lawson lawson;
2199

2200
        /** Ministop instruction details. */
2201
        @SerializedName("ministop")
2202
        Ministop ministop;
2203

2204
        /** Seicomart instruction details. */
2205
        @SerializedName("seicomart")
2206
        Seicomart seicomart;
2207

2208
        /**
2209
         * For more details about Familymart, please refer to the <a
2210
         * href="https://docs.stripe.com/api">API Reference.</a>
2211
         */
2212
        @Getter
2213
        @Setter
2214
        @EqualsAndHashCode(callSuper = false)
2215
        public static class Familymart extends StripeObject {
×
2216
          /** The confirmation number. */
2217
          @SerializedName("confirmation_number")
2218
          String confirmationNumber;
2219

2220
          /** The payment code. */
2221
          @SerializedName("payment_code")
2222
          String paymentCode;
2223
        }
2224

2225
        /**
2226
         * For more details about Lawson, please refer to the <a
2227
         * href="https://docs.stripe.com/api">API Reference.</a>
2228
         */
2229
        @Getter
2230
        @Setter
2231
        @EqualsAndHashCode(callSuper = false)
2232
        public static class Lawson extends StripeObject {
×
2233
          /** The confirmation number. */
2234
          @SerializedName("confirmation_number")
2235
          String confirmationNumber;
2236

2237
          /** The payment code. */
2238
          @SerializedName("payment_code")
2239
          String paymentCode;
2240
        }
2241

2242
        /**
2243
         * For more details about Ministop, please refer to the <a
2244
         * href="https://docs.stripe.com/api">API Reference.</a>
2245
         */
2246
        @Getter
2247
        @Setter
2248
        @EqualsAndHashCode(callSuper = false)
2249
        public static class Ministop extends StripeObject {
×
2250
          /** The confirmation number. */
2251
          @SerializedName("confirmation_number")
2252
          String confirmationNumber;
2253

2254
          /** The payment code. */
2255
          @SerializedName("payment_code")
2256
          String paymentCode;
2257
        }
2258

2259
        /**
2260
         * For more details about Seicomart, please refer to the <a
2261
         * href="https://docs.stripe.com/api">API Reference.</a>
2262
         */
2263
        @Getter
2264
        @Setter
2265
        @EqualsAndHashCode(callSuper = false)
2266
        public static class Seicomart extends StripeObject {
×
2267
          /** The confirmation number. */
2268
          @SerializedName("confirmation_number")
2269
          String confirmationNumber;
2270

2271
          /** The payment code. */
2272
          @SerializedName("payment_code")
2273
          String paymentCode;
2274
        }
2275
      }
2276
    }
2277

2278
    /**
2279
     * For more details about MultibancoDisplayDetails, please refer to the <a
2280
     * href="https://docs.stripe.com/api">API Reference.</a>
2281
     */
2282
    @Getter
2283
    @Setter
2284
    @EqualsAndHashCode(callSuper = false)
2285
    public static class MultibancoDisplayDetails extends StripeObject {
×
2286
      /** Entity number associated with this Multibanco payment. */
2287
      @SerializedName("entity")
2288
      String entity;
2289

2290
      /** The timestamp at which the Multibanco voucher expires. */
2291
      @SerializedName("expires_at")
2292
      Long expiresAt;
2293

2294
      /**
2295
       * The URL for the hosted Multibanco voucher page, which allows customers to view a Multibanco
2296
       * voucher.
2297
       */
2298
      @SerializedName("hosted_voucher_url")
2299
      String hostedVoucherUrl;
2300

2301
      /** Reference number associated with this Multibanco payment. */
2302
      @SerializedName("reference")
2303
      String reference;
2304
    }
2305

2306
    /**
2307
     * For more details about OxxoDisplayDetails, please refer to the <a
2308
     * href="https://docs.stripe.com/api">API Reference.</a>
2309
     */
2310
    @Getter
2311
    @Setter
2312
    @EqualsAndHashCode(callSuper = false)
2313
    public static class OxxoDisplayDetails extends StripeObject {
×
2314
      /** The timestamp after which the OXXO voucher expires. */
2315
      @SerializedName("expires_after")
2316
      Long expiresAfter;
2317

2318
      /**
2319
       * The URL for the hosted OXXO voucher page, which allows customers to view and print an OXXO
2320
       * voucher.
2321
       */
2322
      @SerializedName("hosted_voucher_url")
2323
      String hostedVoucherUrl;
2324

2325
      /** OXXO reference number. */
2326
      @SerializedName("number")
2327
      String number;
2328
    }
2329

2330
    /**
2331
     * For more details about PaynowDisplayQrCode, please refer to the <a
2332
     * href="https://docs.stripe.com/api">API Reference.</a>
2333
     */
2334
    @Getter
2335
    @Setter
2336
    @EqualsAndHashCode(callSuper = false)
2337
    public static class PaynowDisplayQrCode extends StripeObject {
×
2338
      /**
2339
       * The raw data string used to generate QR code, it should be used together with QR code
2340
       * library.
2341
       */
2342
      @SerializedName("data")
2343
      String data;
2344

2345
      /**
2346
       * The URL to the hosted PayNow instructions page, which allows customers to view the PayNow
2347
       * QR code.
2348
       */
2349
      @SerializedName("hosted_instructions_url")
2350
      String hostedInstructionsUrl;
2351

2352
      /** The image_url_png string used to render QR code. */
2353
      @SerializedName("image_url_png")
2354
      String imageUrlPng;
2355

2356
      /** The image_url_svg string used to render QR code. */
2357
      @SerializedName("image_url_svg")
2358
      String imageUrlSvg;
2359
    }
2360

2361
    /**
2362
     * For more details about PixDisplayQrCode, please refer to the <a
2363
     * href="https://docs.stripe.com/api">API Reference.</a>
2364
     */
2365
    @Getter
2366
    @Setter
2367
    @EqualsAndHashCode(callSuper = false)
2368
    public static class PixDisplayQrCode extends StripeObject {
×
2369
      /**
2370
       * The raw data string used to generate QR code, it should be used together with QR code
2371
       * library.
2372
       */
2373
      @SerializedName("data")
2374
      String data;
2375

2376
      /** The date (unix timestamp) when the PIX expires. */
2377
      @SerializedName("expires_at")
2378
      Long expiresAt;
2379

2380
      /**
2381
       * The URL to the hosted pix instructions page, which allows customers to view the pix QR
2382
       * code.
2383
       */
2384
      @SerializedName("hosted_instructions_url")
2385
      String hostedInstructionsUrl;
2386

2387
      /** The image_url_png string used to render png QR code. */
2388
      @SerializedName("image_url_png")
2389
      String imageUrlPng;
2390

2391
      /** The image_url_svg string used to render svg QR code. */
2392
      @SerializedName("image_url_svg")
2393
      String imageUrlSvg;
2394
    }
2395

2396
    /**
2397
     * For more details about PromptpayDisplayQrCode, please refer to the <a
2398
     * href="https://docs.stripe.com/api">API Reference.</a>
2399
     */
2400
    @Getter
2401
    @Setter
2402
    @EqualsAndHashCode(callSuper = false)
2403
    public static class PromptpayDisplayQrCode extends StripeObject {
×
2404
      /**
2405
       * The raw data string used to generate QR code, it should be used together with QR code
2406
       * library.
2407
       */
2408
      @SerializedName("data")
2409
      String data;
2410

2411
      /**
2412
       * The URL to the hosted PromptPay instructions page, which allows customers to view the
2413
       * PromptPay QR code.
2414
       */
2415
      @SerializedName("hosted_instructions_url")
2416
      String hostedInstructionsUrl;
2417

2418
      /** The PNG path used to render the QR code, can be used as the source in an HTML img tag. */
2419
      @SerializedName("image_url_png")
2420
      String imageUrlPng;
2421

2422
      /** The SVG path used to render the QR code, can be used as the source in an HTML img tag. */
2423
      @SerializedName("image_url_svg")
2424
      String imageUrlSvg;
2425
    }
2426

2427
    /**
2428
     * For more details about RedirectToUrl, please refer to the <a
2429
     * href="https://docs.stripe.com/api">API Reference.</a>
2430
     */
2431
    @Getter
2432
    @Setter
2433
    @EqualsAndHashCode(callSuper = false)
2434
    public static class RedirectToUrl extends StripeObject {
1✔
2435
      /**
2436
       * If the customer does not exit their browser while authenticating, they will be redirected
2437
       * to this specified URL after completion.
2438
       */
2439
      @SerializedName("return_url")
2440
      String returnUrl;
2441

2442
      /** The URL you must redirect your customer to in order to authenticate the payment. */
2443
      @SerializedName("url")
2444
      String url;
2445
    }
2446

2447
    /**
2448
     * For more details about SwishHandleRedirectOrDisplayQrCode, please refer to the <a
2449
     * href="https://docs.stripe.com/api">API Reference.</a>
2450
     */
2451
    @Getter
2452
    @Setter
2453
    @EqualsAndHashCode(callSuper = false)
2454
    public static class SwishHandleRedirectOrDisplayQrCode extends StripeObject {
×
2455
      /**
2456
       * The URL to the hosted Swish instructions page, which allows customers to view the QR code.
2457
       */
2458
      @SerializedName("hosted_instructions_url")
2459
      String hostedInstructionsUrl;
2460

2461
      /**
2462
       * The url for mobile redirect based auth (for internal use only and not typically available
2463
       * in standard API requests).
2464
       */
2465
      @SerializedName("mobile_auth_url")
2466
      String mobileAuthUrl;
2467

2468
      @SerializedName("qr_code")
2469
      QrCode qrCode;
2470

2471
      /**
2472
       * For more details about QrCode, please refer to the <a
2473
       * href="https://docs.stripe.com/api">API Reference.</a>
2474
       */
2475
      @Getter
2476
      @Setter
2477
      @EqualsAndHashCode(callSuper = false)
2478
      public static class QrCode extends StripeObject {
×
2479
        /**
2480
         * The raw data string used to generate QR code, it should be used together with QR code
2481
         * library.
2482
         */
2483
        @SerializedName("data")
2484
        String data;
2485

2486
        /** The image_url_png string used to render QR code. */
2487
        @SerializedName("image_url_png")
2488
        String imageUrlPng;
2489

2490
        /** The image_url_svg string used to render QR code. */
2491
        @SerializedName("image_url_svg")
2492
        String imageUrlSvg;
2493
      }
2494
    }
2495

2496
    /**
2497
     * For more details about VerifyWithMicrodeposits, please refer to the <a
2498
     * href="https://docs.stripe.com/api">API Reference.</a>
2499
     */
2500
    @Getter
2501
    @Setter
2502
    @EqualsAndHashCode(callSuper = false)
2503
    public static class VerifyWithMicrodeposits extends StripeObject {
×
2504
      /** The timestamp when the microdeposits are expected to land. */
2505
      @SerializedName("arrival_date")
2506
      Long arrivalDate;
2507

2508
      /**
2509
       * The URL for the hosted verification page, which allows customers to verify their bank
2510
       * account.
2511
       */
2512
      @SerializedName("hosted_verification_url")
2513
      String hostedVerificationUrl;
2514

2515
      /**
2516
       * The type of the microdeposit sent to the customer. Used to distinguish between different
2517
       * verification methods.
2518
       *
2519
       * <p>One of {@code amounts}, or {@code descriptor_code}.
2520
       */
2521
      @SerializedName("microdeposit_type")
2522
      String microdepositType;
2523
    }
2524

2525
    /**
2526
     * For more details about WechatPayDisplayQrCode, please refer to the <a
2527
     * href="https://docs.stripe.com/api">API Reference.</a>
2528
     */
2529
    @Getter
2530
    @Setter
2531
    @EqualsAndHashCode(callSuper = false)
2532
    public static class WechatPayDisplayQrCode extends StripeObject {
×
2533
      /** The data being used to generate QR code. */
2534
      @SerializedName("data")
2535
      String data;
2536

2537
      /**
2538
       * The URL to the hosted WeChat Pay instructions page, which allows customers to view the
2539
       * WeChat Pay QR code.
2540
       */
2541
      @SerializedName("hosted_instructions_url")
2542
      String hostedInstructionsUrl;
2543

2544
      /** The base64 image data for a pre-generated QR code. */
2545
      @SerializedName("image_data_url")
2546
      String imageDataUrl;
2547

2548
      /** The image_url_png string used to render QR code. */
2549
      @SerializedName("image_url_png")
2550
      String imageUrlPng;
2551

2552
      /** The image_url_svg string used to render QR code. */
2553
      @SerializedName("image_url_svg")
2554
      String imageUrlSvg;
2555
    }
2556

2557
    /**
2558
     * For more details about WechatPayRedirectToAndroidApp, please refer to the <a
2559
     * href="https://docs.stripe.com/api">API Reference.</a>
2560
     */
2561
    @Getter
2562
    @Setter
2563
    @EqualsAndHashCode(callSuper = false)
2564
    public static class WechatPayRedirectToAndroidApp extends StripeObject {
×
2565
      /** app_id is the APP ID registered on WeChat open platform. */
2566
      @SerializedName("app_id")
2567
      String appId;
2568

2569
      /** nonce_str is a random string. */
2570
      @SerializedName("nonce_str")
2571
      String nonceStr;
2572

2573
      /** an unique merchant ID assigned by WeChat Pay. */
2574
      @SerializedName("partner_id")
2575
      String partnerId;
2576

2577
      /** an unique trading ID assigned by WeChat Pay. */
2578
      @SerializedName("prepay_id")
2579
      String prepayId;
2580

2581
      /** A signature. */
2582
      @SerializedName("sign")
2583
      String sign;
2584

2585
      /** Specifies the current time in epoch format. */
2586
      @SerializedName("timestamp")
2587
      String timestamp;
2588

2589
      // package is a reserved word so we append an
2590
      // underscore to the private field and expose
2591
      // a custom getter and setter
2592
      @SerializedName("package")
2593
      String package_;
2594

2595
      public String getPackage() {
2596
        return this.package_;
×
2597
      }
2598

2599
      public void setPackage(String package_) {
2600
        this.package_ = package_;
×
2601
      }
×
2602
    }
2603

2604
    /**
2605
     * For more details about WechatPayRedirectToIosApp, please refer to the <a
2606
     * href="https://docs.stripe.com/api">API Reference.</a>
2607
     */
2608
    @Getter
2609
    @Setter
2610
    @EqualsAndHashCode(callSuper = false)
2611
    public static class WechatPayRedirectToIosApp extends StripeObject {
×
2612
      /** An universal link that redirect to WeChat Pay app. */
2613
      @SerializedName("native_url")
2614
      String nativeUrl;
2615
    }
2616
  }
2617

2618
  /**
2619
   * For more details about PaymentDetails, please refer to the <a
2620
   * href="https://docs.stripe.com/api">API Reference.</a>
2621
   */
2622
  @Getter
2623
  @Setter
2624
  @EqualsAndHashCode(callSuper = false)
2625
  public static class PaymentDetails extends StripeObject {
×
2626
    @SerializedName("car_rental")
2627
    CarRental carRental;
2628

2629
    @SerializedName("event_details")
2630
    EventDetails eventDetails;
2631

2632
    @SerializedName("subscription")
2633
    Subscription subscription;
2634

2635
    /**
2636
     * For more details about CarRental, please refer to the <a
2637
     * href="https://docs.stripe.com/api">API Reference.</a>
2638
     */
2639
    @Getter
2640
    @Setter
2641
    @EqualsAndHashCode(callSuper = false)
2642
    public static class CarRental extends StripeObject {
×
2643
      @SerializedName("affiliate")
2644
      Affiliate affiliate;
2645

2646
      /** The booking number associated with the car rental. */
2647
      @SerializedName("booking_number")
2648
      String bookingNumber;
2649

2650
      /** Class code of the car. */
2651
      @SerializedName("car_class_code")
2652
      String carClassCode;
2653

2654
      /** Make of the car. */
2655
      @SerializedName("car_make")
2656
      String carMake;
2657

2658
      /** Model of the car. */
2659
      @SerializedName("car_model")
2660
      String carModel;
2661

2662
      /** The name of the rental car company. */
2663
      @SerializedName("company")
2664
      String company;
2665

2666
      /** The customer service phone number of the car rental company. */
2667
      @SerializedName("customer_service_phone_number")
2668
      String customerServicePhoneNumber;
2669

2670
      /** Number of days the car is being rented. */
2671
      @SerializedName("days_rented")
2672
      Long daysRented;
2673

2674
      @SerializedName("delivery")
2675
      Delivery delivery;
2676

2677
      /** The details of the drivers associated with the trip. */
2678
      @SerializedName("drivers")
2679
      List<PaymentIntent.PaymentDetails.CarRental.Driver> drivers;
2680

2681
      /** List of additional charges being billed. */
2682
      @SerializedName("extra_charges")
2683
      List<String> extraCharges;
2684

2685
      /** Indicates if the customer did not keep nor cancel their booking. */
2686
      @SerializedName("no_show")
2687
      Boolean noShow;
2688

2689
      @SerializedName("pickup_address")
2690
      com.stripe.model.Address pickupAddress;
2691

2692
      /** Car pick-up time. Measured in seconds since the Unix epoch. */
2693
      @SerializedName("pickup_at")
2694
      Long pickupAt;
2695

2696
      /** Rental rate. */
2697
      @SerializedName("rate_amount")
2698
      Long rateAmount;
2699

2700
      /**
2701
       * The frequency at which the rate amount is applied. One of {@code day}, {@code week} or
2702
       * {@code month}
2703
       */
2704
      @SerializedName("rate_interval")
2705
      String rateInterval;
2706

2707
      /** The full name of the person or entity renting the car. */
2708
      @SerializedName("renter_name")
2709
      String renterName;
2710

2711
      @SerializedName("return_address")
2712
      com.stripe.model.Address returnAddress;
2713

2714
      /** Car return time. Measured in seconds since the Unix epoch. */
2715
      @SerializedName("return_at")
2716
      Long returnAt;
2717

2718
      /** Indicates whether the goods or services are tax-exempt or tax is not collected. */
2719
      @SerializedName("tax_exempt")
2720
      Boolean taxExempt;
2721

2722
      /**
2723
       * For more details about Affiliate, please refer to the <a
2724
       * href="https://docs.stripe.com/api">API Reference.</a>
2725
       */
2726
      @Getter
2727
      @Setter
2728
      @EqualsAndHashCode(callSuper = false)
2729
      public static class Affiliate extends StripeObject {
×
2730
        /** The name of the affiliate that originated the purchase. */
2731
        @SerializedName("name")
2732
        String name;
2733
      }
2734

2735
      /**
2736
       * For more details about Delivery, please refer to the <a
2737
       * href="https://docs.stripe.com/api">API Reference.</a>
2738
       */
2739
      @Getter
2740
      @Setter
2741
      @EqualsAndHashCode(callSuper = false)
2742
      public static class Delivery extends StripeObject {
×
2743
        /**
2744
         * The delivery method for the payment
2745
         *
2746
         * <p>One of {@code email}, {@code phone}, {@code pickup}, or {@code post}.
2747
         */
2748
        @SerializedName("mode")
2749
        String mode;
2750

2751
        @SerializedName("recipient")
2752
        Recipient recipient;
2753

2754
        /**
2755
         * For more details about Recipient, please refer to the <a
2756
         * href="https://docs.stripe.com/api">API Reference.</a>
2757
         */
2758
        @Getter
2759
        @Setter
2760
        @EqualsAndHashCode(callSuper = false)
2761
        public static class Recipient extends StripeObject {
×
2762
          /** The email of the recipient the ticket is delivered to. */
2763
          @SerializedName("email")
2764
          String email;
2765

2766
          /** The name of the recipient the ticket is delivered to. */
2767
          @SerializedName("name")
2768
          String name;
2769

2770
          /** The phone number of the recipient the ticket is delivered to. */
2771
          @SerializedName("phone")
2772
          String phone;
2773
        }
2774
      }
2775

2776
      /**
2777
       * For more details about Driver, please refer to the <a
2778
       * href="https://docs.stripe.com/api">API Reference.</a>
2779
       */
2780
      @Getter
2781
      @Setter
2782
      @EqualsAndHashCode(callSuper = false)
2783
      public static class Driver extends StripeObject {
×
2784
        /** Full name of the driver on the reservation. */
2785
        @SerializedName("name")
2786
        String name;
2787
      }
2788
    }
2789

2790
    /**
2791
     * For more details about EventDetails, please refer to the <a
2792
     * href="https://docs.stripe.com/api">API Reference.</a>
2793
     */
2794
    @Getter
2795
    @Setter
2796
    @EqualsAndHashCode(callSuper = false)
2797
    public static class EventDetails extends StripeObject {
×
2798
      /** Indicates if the tickets are digitally checked when entering the venue. */
2799
      @SerializedName("access_controlled_venue")
2800
      Boolean accessControlledVenue;
2801

2802
      @SerializedName("address")
2803
      com.stripe.model.Address address;
2804

2805
      @SerializedName("affiliate")
2806
      Affiliate affiliate;
2807

2808
      /** The name of the company. */
2809
      @SerializedName("company")
2810
      String company;
2811

2812
      @SerializedName("delivery")
2813
      Delivery delivery;
2814

2815
      /** Event end time. Measured in seconds since the Unix epoch. */
2816
      @SerializedName("ends_at")
2817
      Long endsAt;
2818

2819
      /** Type of the event entertainment (concert, sports event etc). */
2820
      @SerializedName("genre")
2821
      String genre;
2822

2823
      /** The name of the event. */
2824
      @SerializedName("name")
2825
      String name;
2826

2827
      /** Event start time. Measured in seconds since the Unix epoch. */
2828
      @SerializedName("starts_at")
2829
      Long startsAt;
2830

2831
      /**
2832
       * For more details about Affiliate, please refer to the <a
2833
       * href="https://docs.stripe.com/api">API Reference.</a>
2834
       */
2835
      @Getter
2836
      @Setter
2837
      @EqualsAndHashCode(callSuper = false)
2838
      public static class Affiliate extends StripeObject {
×
2839
        /** The name of the affiliate that originated the purchase. */
2840
        @SerializedName("name")
2841
        String name;
2842
      }
2843

2844
      /**
2845
       * For more details about Delivery, please refer to the <a
2846
       * href="https://docs.stripe.com/api">API Reference.</a>
2847
       */
2848
      @Getter
2849
      @Setter
2850
      @EqualsAndHashCode(callSuper = false)
2851
      public static class Delivery extends StripeObject {
×
2852
        /**
2853
         * The delivery method for the payment
2854
         *
2855
         * <p>One of {@code email}, {@code phone}, {@code pickup}, or {@code post}.
2856
         */
2857
        @SerializedName("mode")
2858
        String mode;
2859

2860
        @SerializedName("recipient")
2861
        Recipient recipient;
2862

2863
        /**
2864
         * For more details about Recipient, please refer to the <a
2865
         * href="https://docs.stripe.com/api">API Reference.</a>
2866
         */
2867
        @Getter
2868
        @Setter
2869
        @EqualsAndHashCode(callSuper = false)
2870
        public static class Recipient extends StripeObject {
×
2871
          /** The email of the recipient the ticket is delivered to. */
2872
          @SerializedName("email")
2873
          String email;
2874

2875
          /** The name of the recipient the ticket is delivered to. */
2876
          @SerializedName("name")
2877
          String name;
2878

2879
          /** The phone number of the recipient the ticket is delivered to. */
2880
          @SerializedName("phone")
2881
          String phone;
2882
        }
2883
      }
2884
    }
2885

2886
    /**
2887
     * For more details about Subscription, please refer to the <a
2888
     * href="https://docs.stripe.com/api">API Reference.</a>
2889
     */
2890
    @Getter
2891
    @Setter
2892
    @EqualsAndHashCode(callSuper = false)
2893
    public static class Subscription extends StripeObject {
×
2894
      @SerializedName("affiliate")
2895
      Affiliate affiliate;
2896

2897
      /** Info whether the subscription will be auto renewed upon expiry. */
2898
      @SerializedName("auto_renewal")
2899
      Boolean autoRenewal;
2900

2901
      @SerializedName("billing_interval")
2902
      BillingInterval billingInterval;
2903

2904
      /** Subscription end time. Measured in seconds since the Unix epoch. */
2905
      @SerializedName("ends_at")
2906
      Long endsAt;
2907

2908
      /** Name of the product on subscription. e.g. Apple Music Subscription. */
2909
      @SerializedName("name")
2910
      String name;
2911

2912
      /** Subscription start time. Measured in seconds since the Unix epoch. */
2913
      @SerializedName("starts_at")
2914
      Long startsAt;
2915

2916
      /**
2917
       * For more details about Affiliate, please refer to the <a
2918
       * href="https://docs.stripe.com/api">API Reference.</a>
2919
       */
2920
      @Getter
2921
      @Setter
2922
      @EqualsAndHashCode(callSuper = false)
2923
      public static class Affiliate extends StripeObject {
×
2924
        /** The name of the affiliate that originated the purchase. */
2925
        @SerializedName("name")
2926
        String name;
2927
      }
2928

2929
      /**
2930
       * For more details about BillingInterval, please refer to the <a
2931
       * href="https://docs.stripe.com/api">API Reference.</a>
2932
       */
2933
      @Getter
2934
      @Setter
2935
      @EqualsAndHashCode(callSuper = false)
2936
      public static class BillingInterval extends StripeObject {
×
2937
        /**
2938
         * The number of intervals, as an whole number greater than 0. Stripe multiplies this by the
2939
         * interval type to get the overall duration.
2940
         */
2941
        @SerializedName("count")
2942
        Long count;
2943

2944
        /**
2945
         * Specifies a type of interval unit. Either {@code day}, {@code week}, {@code month} or
2946
         * {@code year}.
2947
         *
2948
         * <p>One of {@code day}, {@code month}, {@code week}, or {@code year}.
2949
         */
2950
        @SerializedName("interval")
2951
        String interval;
2952
      }
2953
    }
2954
  }
2955

2956
  /**
2957
   * For more details about PaymentMethodConfigurationDetails, please refer to the <a
2958
   * href="https://docs.stripe.com/api">API Reference.</a>
2959
   */
2960
  @Getter
2961
  @Setter
2962
  @EqualsAndHashCode(callSuper = false)
2963
  public static class PaymentMethodConfigurationDetails extends StripeObject implements HasId {
×
2964
    /** ID of the payment method configuration used. */
2965
    @Getter(onMethod_ = {@Override})
2966
    @SerializedName("id")
2967
    String id;
2968

2969
    /** ID of the parent payment method configuration used. */
2970
    @SerializedName("parent")
2971
    String parent;
2972
  }
2973

2974
  /**
2975
   * For more details about PaymentMethodOptions, please refer to the <a
2976
   * href="https://docs.stripe.com/api">API Reference.</a>
2977
   */
2978
  @Getter
2979
  @Setter
2980
  @EqualsAndHashCode(callSuper = false)
2981
  public static class PaymentMethodOptions extends StripeObject {
1✔
2982
    @SerializedName("acss_debit")
2983
    AcssDebit acssDebit;
2984

2985
    @SerializedName("affirm")
2986
    Affirm affirm;
2987

2988
    @SerializedName("afterpay_clearpay")
2989
    AfterpayClearpay afterpayClearpay;
2990

2991
    @SerializedName("alipay")
2992
    Alipay alipay;
2993

2994
    @SerializedName("alma")
2995
    Alma alma;
2996

2997
    @SerializedName("amazon_pay")
2998
    AmazonPay amazonPay;
2999

3000
    @SerializedName("au_becs_debit")
3001
    AuBecsDebit auBecsDebit;
3002

3003
    @SerializedName("bacs_debit")
3004
    BacsDebit bacsDebit;
3005

3006
    @SerializedName("bancontact")
3007
    Bancontact bancontact;
3008

3009
    @SerializedName("blik")
3010
    Blik blik;
3011

3012
    @SerializedName("boleto")
3013
    Boleto boleto;
3014

3015
    @SerializedName("card")
3016
    Card card;
3017

3018
    @SerializedName("card_present")
3019
    CardPresent cardPresent;
3020

3021
    @SerializedName("cashapp")
3022
    Cashapp cashapp;
3023

3024
    @SerializedName("customer_balance")
3025
    CustomerBalance customerBalance;
3026

3027
    @SerializedName("eps")
3028
    Eps eps;
3029

3030
    @SerializedName("fpx")
3031
    Fpx fpx;
3032

3033
    @SerializedName("giropay")
3034
    Giropay giropay;
3035

3036
    @SerializedName("gopay")
3037
    Gopay gopay;
3038

3039
    @SerializedName("grabpay")
3040
    Grabpay grabpay;
3041

3042
    @SerializedName("id_bank_transfer")
3043
    IdBankTransfer idBankTransfer;
3044

3045
    @SerializedName("ideal")
3046
    Ideal ideal;
3047

3048
    @SerializedName("interac_present")
3049
    InteracPresent interacPresent;
3050

3051
    @SerializedName("kakao_pay")
3052
    KakaoPay kakaoPay;
3053

3054
    @SerializedName("klarna")
3055
    Klarna klarna;
3056

3057
    @SerializedName("konbini")
3058
    Konbini konbini;
3059

3060
    @SerializedName("kr_card")
3061
    KrCard krCard;
3062

3063
    @SerializedName("link")
3064
    Link link;
3065

3066
    @SerializedName("mb_way")
3067
    MbWay mbWay;
3068

3069
    @SerializedName("mobilepay")
3070
    Mobilepay mobilepay;
3071

3072
    @SerializedName("multibanco")
3073
    Multibanco multibanco;
3074

3075
    @SerializedName("naver_pay")
3076
    NaverPay naverPay;
3077

3078
    @SerializedName("oxxo")
3079
    Oxxo oxxo;
3080

3081
    @SerializedName("p24")
3082
    P24 p24;
3083

3084
    @SerializedName("payco")
3085
    Payco payco;
3086

3087
    @SerializedName("paynow")
3088
    Paynow paynow;
3089

3090
    @SerializedName("paypal")
3091
    Paypal paypal;
3092

3093
    @SerializedName("payto")
3094
    Payto payto;
3095

3096
    @SerializedName("pix")
3097
    Pix pix;
3098

3099
    @SerializedName("promptpay")
3100
    Promptpay promptpay;
3101

3102
    @SerializedName("qris")
3103
    Qris qris;
3104

3105
    @SerializedName("rechnung")
3106
    Rechnung rechnung;
3107

3108
    @SerializedName("revolut_pay")
3109
    RevolutPay revolutPay;
3110

3111
    @SerializedName("samsung_pay")
3112
    SamsungPay samsungPay;
3113

3114
    @SerializedName("sepa_debit")
3115
    SepaDebit sepaDebit;
3116

3117
    @SerializedName("shopeepay")
3118
    Shopeepay shopeepay;
3119

3120
    @SerializedName("sofort")
3121
    Sofort sofort;
3122

3123
    @SerializedName("swish")
3124
    Swish swish;
3125

3126
    @SerializedName("twint")
3127
    Twint twint;
3128

3129
    @SerializedName("us_bank_account")
3130
    UsBankAccount usBankAccount;
3131

3132
    @SerializedName("wechat_pay")
3133
    WechatPay wechatPay;
3134

3135
    @SerializedName("zip")
3136
    Zip zip;
3137

3138
    /**
3139
     * For more details about AcssDebit, please refer to the <a
3140
     * href="https://docs.stripe.com/api">API Reference.</a>
3141
     */
3142
    @Getter
3143
    @Setter
3144
    @EqualsAndHashCode(callSuper = false)
3145
    public static class AcssDebit extends StripeObject {
×
3146
      @SerializedName("mandate_options")
3147
      MandateOptions mandateOptions;
3148

3149
      /**
3150
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3151
       *
3152
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3153
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3154
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3155
       * actions. If you don't provide a Customer, you can still <a
3156
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3157
       * Customer after the transaction completes.
3158
       *
3159
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3160
       * and attaches a <a
3161
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3162
       * payment method representing the card to the Customer instead.
3163
       *
3164
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3165
       * with regional legislation and network rules, such as <a
3166
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3167
       *
3168
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
3169
       */
3170
      @SerializedName("setup_future_usage")
3171
      String setupFutureUsage;
3172

3173
      /**
3174
       * Bank account verification method.
3175
       *
3176
       * <p>One of {@code automatic}, {@code instant}, or {@code microdeposits}.
3177
       */
3178
      @SerializedName("verification_method")
3179
      String verificationMethod;
3180

3181
      /**
3182
       * For more details about MandateOptions, please refer to the <a
3183
       * href="https://docs.stripe.com/api">API Reference.</a>
3184
       */
3185
      @Getter
3186
      @Setter
3187
      @EqualsAndHashCode(callSuper = false)
3188
      public static class MandateOptions extends StripeObject {
×
3189
        /** A URL for custom mandate text. */
3190
        @SerializedName("custom_mandate_url")
3191
        String customMandateUrl;
3192

3193
        /**
3194
         * Description of the interval. Only required if the 'payment_schedule' parameter is
3195
         * 'interval' or 'combined'.
3196
         */
3197
        @SerializedName("interval_description")
3198
        String intervalDescription;
3199

3200
        /**
3201
         * Payment schedule for the mandate.
3202
         *
3203
         * <p>One of {@code combined}, {@code interval}, or {@code sporadic}.
3204
         */
3205
        @SerializedName("payment_schedule")
3206
        String paymentSchedule;
3207

3208
        /**
3209
         * Transaction type of the mandate.
3210
         *
3211
         * <p>One of {@code business}, or {@code personal}.
3212
         */
3213
        @SerializedName("transaction_type")
3214
        String transactionType;
3215
      }
3216
    }
3217

3218
    /**
3219
     * For more details about Affirm, please refer to the <a href="https://docs.stripe.com/api">API
3220
     * Reference.</a>
3221
     */
3222
    @Getter
3223
    @Setter
3224
    @EqualsAndHashCode(callSuper = false)
3225
    public static class Affirm extends StripeObject {
×
3226
      /**
3227
       * Controls when the funds will be captured from the customer's account.
3228
       *
3229
       * <p>Equal to {@code manual}.
3230
       */
3231
      @SerializedName("capture_method")
3232
      String captureMethod;
3233

3234
      /** Preferred language of the Affirm authorization page that the customer is redirected to. */
3235
      @SerializedName("preferred_locale")
3236
      String preferredLocale;
3237

3238
      /**
3239
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3240
       *
3241
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3242
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3243
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3244
       * actions. If you don't provide a Customer, you can still <a
3245
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3246
       * Customer after the transaction completes.
3247
       *
3248
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3249
       * and attaches a <a
3250
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3251
       * payment method representing the card to the Customer instead.
3252
       *
3253
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3254
       * with regional legislation and network rules, such as <a
3255
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3256
       *
3257
       * <p>Equal to {@code none}.
3258
       */
3259
      @SerializedName("setup_future_usage")
3260
      String setupFutureUsage;
3261
    }
3262

3263
    /**
3264
     * For more details about AfterpayClearpay, please refer to the <a
3265
     * href="https://docs.stripe.com/api">API Reference.</a>
3266
     */
3267
    @Getter
3268
    @Setter
3269
    @EqualsAndHashCode(callSuper = false)
3270
    public static class AfterpayClearpay extends StripeObject {
×
3271
      /**
3272
       * Controls when the funds will be captured from the customer's account.
3273
       *
3274
       * <p>Equal to {@code manual}.
3275
       */
3276
      @SerializedName("capture_method")
3277
      String captureMethod;
3278

3279
      /**
3280
       * An internal identifier or reference that this payment corresponds to. You must limit the
3281
       * identifier to 128 characters, and it can only contain letters, numbers, underscores,
3282
       * backslashes, and dashes. This field differs from the statement descriptor and item name.
3283
       */
3284
      @SerializedName("reference")
3285
      String reference;
3286

3287
      /**
3288
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3289
       *
3290
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3291
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3292
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3293
       * actions. If you don't provide a Customer, you can still <a
3294
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3295
       * Customer after the transaction completes.
3296
       *
3297
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3298
       * and attaches a <a
3299
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3300
       * payment method representing the card to the Customer instead.
3301
       *
3302
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3303
       * with regional legislation and network rules, such as <a
3304
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3305
       *
3306
       * <p>Equal to {@code none}.
3307
       */
3308
      @SerializedName("setup_future_usage")
3309
      String setupFutureUsage;
3310
    }
3311

3312
    /**
3313
     * For more details about Alipay, please refer to the <a href="https://docs.stripe.com/api">API
3314
     * Reference.</a>
3315
     */
3316
    @Getter
3317
    @Setter
3318
    @EqualsAndHashCode(callSuper = false)
3319
    public static class Alipay extends StripeObject {
×
3320
      /**
3321
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3322
       *
3323
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3324
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3325
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3326
       * actions. If you don't provide a Customer, you can still <a
3327
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3328
       * Customer after the transaction completes.
3329
       *
3330
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3331
       * and attaches a <a
3332
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3333
       * payment method representing the card to the Customer instead.
3334
       *
3335
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3336
       * with regional legislation and network rules, such as <a
3337
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3338
       *
3339
       * <p>One of {@code none}, or {@code off_session}.
3340
       */
3341
      @SerializedName("setup_future_usage")
3342
      String setupFutureUsage;
3343
    }
3344

3345
    /**
3346
     * For more details about Alma, please refer to the <a href="https://docs.stripe.com/api">API
3347
     * Reference.</a>
3348
     */
3349
    @Getter
3350
    @Setter
3351
    @EqualsAndHashCode(callSuper = false)
3352
    public static class Alma extends StripeObject {
×
3353
      /**
3354
       * Controls when the funds will be captured from the customer's account.
3355
       *
3356
       * <p>Equal to {@code manual}.
3357
       */
3358
      @SerializedName("capture_method")
3359
      String captureMethod;
3360
    }
3361

3362
    /**
3363
     * For more details about AmazonPay, please refer to the <a
3364
     * href="https://docs.stripe.com/api">API Reference.</a>
3365
     */
3366
    @Getter
3367
    @Setter
3368
    @EqualsAndHashCode(callSuper = false)
3369
    public static class AmazonPay extends StripeObject {
×
3370
      /**
3371
       * Controls when the funds will be captured from the customer's account.
3372
       *
3373
       * <p>Equal to {@code manual}.
3374
       */
3375
      @SerializedName("capture_method")
3376
      String captureMethod;
3377

3378
      /**
3379
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3380
       *
3381
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3382
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3383
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3384
       * actions. If you don't provide a Customer, you can still <a
3385
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3386
       * Customer after the transaction completes.
3387
       *
3388
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3389
       * and attaches a <a
3390
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3391
       * payment method representing the card to the Customer instead.
3392
       *
3393
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3394
       * with regional legislation and network rules, such as <a
3395
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3396
       *
3397
       * <p>One of {@code none}, or {@code off_session}.
3398
       */
3399
      @SerializedName("setup_future_usage")
3400
      String setupFutureUsage;
3401
    }
3402

3403
    /**
3404
     * For more details about AuBecsDebit, please refer to the <a
3405
     * href="https://docs.stripe.com/api">API Reference.</a>
3406
     */
3407
    @Getter
3408
    @Setter
3409
    @EqualsAndHashCode(callSuper = false)
3410
    public static class AuBecsDebit extends StripeObject {
×
3411
      /**
3412
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3413
       *
3414
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3415
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3416
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3417
       * actions. If you don't provide a Customer, you can still <a
3418
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3419
       * Customer after the transaction completes.
3420
       *
3421
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3422
       * and attaches a <a
3423
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3424
       * payment method representing the card to the Customer instead.
3425
       *
3426
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3427
       * with regional legislation and network rules, such as <a
3428
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3429
       *
3430
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
3431
       */
3432
      @SerializedName("setup_future_usage")
3433
      String setupFutureUsage;
3434
    }
3435

3436
    /**
3437
     * For more details about BacsDebit, please refer to the <a
3438
     * href="https://docs.stripe.com/api">API Reference.</a>
3439
     */
3440
    @Getter
3441
    @Setter
3442
    @EqualsAndHashCode(callSuper = false)
3443
    public static class BacsDebit extends StripeObject {
×
3444
      @SerializedName("mandate_options")
3445
      MandateOptions mandateOptions;
3446

3447
      /**
3448
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3449
       *
3450
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3451
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3452
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3453
       * actions. If you don't provide a Customer, you can still <a
3454
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3455
       * Customer after the transaction completes.
3456
       *
3457
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3458
       * and attaches a <a
3459
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3460
       * payment method representing the card to the Customer instead.
3461
       *
3462
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3463
       * with regional legislation and network rules, such as <a
3464
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3465
       *
3466
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
3467
       */
3468
      @SerializedName("setup_future_usage")
3469
      String setupFutureUsage;
3470

3471
      /**
3472
       * For more details about MandateOptions, please refer to the <a
3473
       * href="https://docs.stripe.com/api">API Reference.</a>
3474
       */
3475
      @Getter
3476
      @Setter
3477
      @EqualsAndHashCode(callSuper = false)
3478
      public static class MandateOptions extends StripeObject {}
×
3479
    }
3480

3481
    /**
3482
     * For more details about Bancontact, please refer to the <a
3483
     * href="https://docs.stripe.com/api">API Reference.</a>
3484
     */
3485
    @Getter
3486
    @Setter
3487
    @EqualsAndHashCode(callSuper = false)
3488
    public static class Bancontact extends StripeObject {
×
3489
      /**
3490
       * Preferred language of the Bancontact authorization page that the customer is redirected to.
3491
       *
3492
       * <p>One of {@code de}, {@code en}, {@code fr}, or {@code nl}.
3493
       */
3494
      @SerializedName("preferred_language")
3495
      String preferredLanguage;
3496

3497
      /**
3498
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3499
       *
3500
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3501
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3502
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3503
       * actions. If you don't provide a Customer, you can still <a
3504
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3505
       * Customer after the transaction completes.
3506
       *
3507
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3508
       * and attaches a <a
3509
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3510
       * payment method representing the card to the Customer instead.
3511
       *
3512
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3513
       * with regional legislation and network rules, such as <a
3514
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3515
       *
3516
       * <p>One of {@code none}, or {@code off_session}.
3517
       */
3518
      @SerializedName("setup_future_usage")
3519
      String setupFutureUsage;
3520
    }
3521

3522
    /**
3523
     * For more details about Blik, please refer to the <a href="https://docs.stripe.com/api">API
3524
     * Reference.</a>
3525
     */
3526
    @Getter
3527
    @Setter
3528
    @EqualsAndHashCode(callSuper = false)
3529
    public static class Blik extends StripeObject {
×
3530
      /**
3531
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3532
       *
3533
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3534
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3535
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3536
       * actions. If you don't provide a Customer, you can still <a
3537
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3538
       * Customer after the transaction completes.
3539
       *
3540
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3541
       * and attaches a <a
3542
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3543
       * payment method representing the card to the Customer instead.
3544
       *
3545
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3546
       * with regional legislation and network rules, such as <a
3547
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3548
       *
3549
       * <p>Equal to {@code none}.
3550
       */
3551
      @SerializedName("setup_future_usage")
3552
      String setupFutureUsage;
3553
    }
3554

3555
    /**
3556
     * For more details about Boleto, please refer to the <a href="https://docs.stripe.com/api">API
3557
     * Reference.</a>
3558
     */
3559
    @Getter
3560
    @Setter
3561
    @EqualsAndHashCode(callSuper = false)
3562
    public static class Boleto extends StripeObject {
×
3563
      /**
3564
       * The number of calendar days before a Boleto voucher expires. For example, if you create a
3565
       * Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will
3566
       * expire on Wednesday at 23:59 America/Sao_Paulo time.
3567
       */
3568
      @SerializedName("expires_after_days")
3569
      Long expiresAfterDays;
3570

3571
      /**
3572
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3573
       *
3574
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3575
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3576
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3577
       * actions. If you don't provide a Customer, you can still <a
3578
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3579
       * Customer after the transaction completes.
3580
       *
3581
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3582
       * and attaches a <a
3583
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3584
       * payment method representing the card to the Customer instead.
3585
       *
3586
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3587
       * with regional legislation and network rules, such as <a
3588
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3589
       *
3590
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
3591
       */
3592
      @SerializedName("setup_future_usage")
3593
      String setupFutureUsage;
3594
    }
3595

3596
    /**
3597
     * For more details about Card, please refer to the <a href="https://docs.stripe.com/api">API
3598
     * Reference.</a>
3599
     */
3600
    @Getter
3601
    @Setter
3602
    @EqualsAndHashCode(callSuper = false)
3603
    public static class Card extends StripeObject {
×
3604
      /**
3605
       * Controls when the funds will be captured from the customer's account.
3606
       *
3607
       * <p>Equal to {@code manual}.
3608
       */
3609
      @SerializedName("capture_method")
3610
      String captureMethod;
3611

3612
      /**
3613
       * Installment details for this payment (Mexico only).
3614
       *
3615
       * <p>For more information, see the <a
3616
       * href="https://stripe.com/docs/payments/installments">installments integration guide</a>.
3617
       */
3618
      @SerializedName("installments")
3619
      Installments installments;
3620

3621
      /** Configuration options for setting up an eMandate for cards issued in India. */
3622
      @SerializedName("mandate_options")
3623
      MandateOptions mandateOptions;
3624

3625
      /**
3626
       * Selected network to process this payment intent on. Depends on the available networks of
3627
       * the card attached to the payment intent. Can be only set confirm-time.
3628
       */
3629
      @SerializedName("network")
3630
      String network;
3631

3632
      /**
3633
       * Request ability to <a
3634
       * href="https://stripe.com/docs/payments/decremental-authorization">decrement the
3635
       * authorization</a> for this PaymentIntent.
3636
       *
3637
       * <p>One of {@code if_available}, or {@code never}.
3638
       */
3639
      @SerializedName("request_decremental_authorization")
3640
      String requestDecrementalAuthorization;
3641

3642
      /**
3643
       * Request ability to <a
3644
       * href="https://stripe.com/docs/payments/extended-authorization">capture beyond the standard
3645
       * authorization validity window</a> for this PaymentIntent.
3646
       *
3647
       * <p>One of {@code if_available}, or {@code never}.
3648
       */
3649
      @SerializedName("request_extended_authorization")
3650
      String requestExtendedAuthorization;
3651

3652
      /**
3653
       * Request ability to <a
3654
       * href="https://stripe.com/docs/payments/incremental-authorization">increment the
3655
       * authorization</a> for this PaymentIntent.
3656
       *
3657
       * <p>One of {@code if_available}, or {@code never}.
3658
       */
3659
      @SerializedName("request_incremental_authorization")
3660
      String requestIncrementalAuthorization;
3661

3662
      /**
3663
       * Request ability to make <a href="https://stripe.com/docs/payments/multicapture">multiple
3664
       * captures</a> for this PaymentIntent.
3665
       *
3666
       * <p>One of {@code if_available}, or {@code never}.
3667
       */
3668
      @SerializedName("request_multicapture")
3669
      String requestMulticapture;
3670

3671
      /**
3672
       * Request ability to <a href="https://stripe.com/docs/payments/overcapture">overcapture</a>
3673
       * for this PaymentIntent.
3674
       *
3675
       * <p>One of {@code if_available}, or {@code never}.
3676
       */
3677
      @SerializedName("request_overcapture")
3678
      String requestOvercapture;
3679

3680
      /**
3681
       * We strongly recommend that you rely on our SCA Engine to automatically prompt your
3682
       * customers for authentication based on risk level and <a
3683
       * href="https://stripe.com/docs/strong-customer-authentication">other requirements</a>.
3684
       * However, if you wish to request 3D Secure based on logic from your own fraud engine,
3685
       * provide this option. If not provided, this value defaults to {@code automatic}. Read our
3686
       * guide on <a
3687
       * href="https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds">manually
3688
       * requesting 3D Secure</a> for more information on how this configuration interacts with
3689
       * Radar and our SCA Engine.
3690
       *
3691
       * <p>One of {@code any}, {@code automatic}, or {@code challenge}.
3692
       */
3693
      @SerializedName("request_three_d_secure")
3694
      String requestThreeDSecure;
3695

3696
      /**
3697
       * When enabled, using a card that is attached to a customer will require the CVC to be
3698
       * provided again (i.e. using the cvc_token parameter).
3699
       */
3700
      @SerializedName("require_cvc_recollection")
3701
      Boolean requireCvcRecollection;
3702

3703
      /**
3704
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
3705
       *
3706
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
3707
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
3708
       * Customer after the PaymentIntent is confirmed and the customer completes any required
3709
       * actions. If you don't provide a Customer, you can still <a
3710
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
3711
       * Customer after the transaction completes.
3712
       *
3713
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
3714
       * and attaches a <a
3715
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
3716
       * payment method representing the card to the Customer instead.
3717
       *
3718
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
3719
       * with regional legislation and network rules, such as <a
3720
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
3721
       *
3722
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
3723
       */
3724
      @SerializedName("setup_future_usage")
3725
      String setupFutureUsage;
3726

3727
      /**
3728
       * Provides information about a card payment that customers see on their statements.
3729
       * Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor
3730
       * that’s set on the account to form the complete statement descriptor. Maximum 22 characters.
3731
       * On card statements, the <em>concatenation</em> of both prefix and suffix (including
3732
       * separators) will appear truncated to 22 characters.
3733
       */
3734
      @SerializedName("statement_descriptor_suffix_kana")
3735
      String statementDescriptorSuffixKana;
3736

3737
      /**
3738
       * Provides information about a card payment that customers see on their statements.
3739
       * Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement
3740
       * descriptor that’s set on the account to form the complete statement descriptor. Maximum 17
3741
       * characters. On card statements, the <em>concatenation</em> of both prefix and suffix
3742
       * (including separators) will appear truncated to 17 characters.
3743
       */
3744
      @SerializedName("statement_descriptor_suffix_kanji")
3745
      String statementDescriptorSuffixKanji;
3746

3747
      @SerializedName("statement_details")
3748
      StatementDetails statementDetails;
3749

3750
      /**
3751
       * For more details about Installments, please refer to the <a
3752
       * href="https://docs.stripe.com/api">API Reference.</a>
3753
       */
3754
      @Getter
3755
      @Setter
3756
      @EqualsAndHashCode(callSuper = false)
3757
      public static class Installments extends StripeObject {
×
3758
        /** Installment plans that may be selected for this PaymentIntent. */
3759
        @SerializedName("available_plans")
3760
        List<PaymentIntent.PaymentMethodOptions.Card.Installments.AvailablePlan> availablePlans;
3761

3762
        /** Whether Installments are enabled for this PaymentIntent. */
3763
        @SerializedName("enabled")
3764
        Boolean enabled;
3765

3766
        /** Installment plan selected for this PaymentIntent. */
3767
        @SerializedName("plan")
3768
        Plan plan;
3769

3770
        /**
3771
         * For more details about AvailablePlan, please refer to the <a
3772
         * href="https://docs.stripe.com/api">API Reference.</a>
3773
         */
3774
        @Getter
3775
        @Setter
3776
        @EqualsAndHashCode(callSuper = false)
3777
        public static class AvailablePlan extends StripeObject {
×
3778
          /**
3779
           * For {@code fixed_count} installment plans, this is the number of installment payments
3780
           * your customer will make to their credit card.
3781
           */
3782
          @SerializedName("count")
3783
          Long count;
3784

3785
          /**
3786
           * For {@code fixed_count} installment plans, this is the interval between installment
3787
           * payments your customer will make to their credit card. One of {@code month}.
3788
           */
3789
          @SerializedName("interval")
3790
          String interval;
3791

3792
          /** Type of installment plan, one of {@code fixed_count}. */
3793
          @SerializedName("type")
3794
          String type;
3795
        }
3796

3797
        /**
3798
         * For more details about Plan, please refer to the <a
3799
         * href="https://docs.stripe.com/api">API Reference.</a>
3800
         */
3801
        @Getter
3802
        @Setter
3803
        @EqualsAndHashCode(callSuper = false)
3804
        public static class Plan extends StripeObject {
×
3805
          /**
3806
           * For {@code fixed_count} installment plans, this is the number of installment payments
3807
           * your customer will make to their credit card.
3808
           */
3809
          @SerializedName("count")
3810
          Long count;
3811

3812
          /**
3813
           * For {@code fixed_count} installment plans, this is the interval between installment
3814
           * payments your customer will make to their credit card. One of {@code month}.
3815
           */
3816
          @SerializedName("interval")
3817
          String interval;
3818

3819
          /** Type of installment plan, one of {@code fixed_count}. */
3820
          @SerializedName("type")
3821
          String type;
3822
        }
3823
      }
3824

3825
      /**
3826
       * For more details about MandateOptions, please refer to the <a
3827
       * href="https://docs.stripe.com/api">API Reference.</a>
3828
       */
3829
      @Getter
3830
      @Setter
3831
      @EqualsAndHashCode(callSuper = false)
3832
      public static class MandateOptions extends StripeObject {
×
3833
        /** Amount to be charged for future payments. */
3834
        @SerializedName("amount")
3835
        Long amount;
3836

3837
        /**
3838
         * One of {@code fixed} or {@code maximum}. If {@code fixed}, the {@code amount} param
3839
         * refers to the exact amount to be charged in future payments. If {@code maximum}, the
3840
         * amount charged can be up to the value passed for the {@code amount} param.
3841
         */
3842
        @SerializedName("amount_type")
3843
        String amountType;
3844

3845
        /**
3846
         * A description of the mandate or subscription that is meant to be displayed to the
3847
         * customer.
3848
         */
3849
        @SerializedName("description")
3850
        String description;
3851

3852
        /**
3853
         * End date of the mandate or subscription. If not provided, the mandate will be active
3854
         * until canceled. If provided, end date should be after start date.
3855
         */
3856
        @SerializedName("end_date")
3857
        Long endDate;
3858

3859
        /**
3860
         * Specifies payment frequency. One of {@code day}, {@code week}, {@code month}, {@code
3861
         * year}, or {@code sporadic}.
3862
         */
3863
        @SerializedName("interval")
3864
        String interval;
3865

3866
        /**
3867
         * The number of intervals between payments. For example, {@code interval=month} and {@code
3868
         * interval_count=3} indicates one payment every three months. Maximum of one year interval
3869
         * allowed (1 year, 12 months, or 52 weeks). This parameter is optional when {@code
3870
         * interval=sporadic}.
3871
         */
3872
        @SerializedName("interval_count")
3873
        Long intervalCount;
3874

3875
        /** Unique identifier for the mandate or subscription. */
3876
        @SerializedName("reference")
3877
        String reference;
3878

3879
        /**
3880
         * Start date of the mandate or subscription. Start date should not be lesser than
3881
         * yesterday.
3882
         */
3883
        @SerializedName("start_date")
3884
        Long startDate;
3885

3886
        /** Specifies the type of mandates supported. Possible values are {@code india}. */
3887
        @SerializedName("supported_types")
3888
        List<String> supportedTypes;
3889
      }
3890

3891
      /**
3892
       * For more details about StatementDetails, please refer to the <a
3893
       * href="https://docs.stripe.com/api">API Reference.</a>
3894
       */
3895
      @Getter
3896
      @Setter
3897
      @EqualsAndHashCode(callSuper = false)
3898
      public static class StatementDetails extends StripeObject {
×
3899
        @SerializedName("address")
3900
        com.stripe.model.PaymentIntent.PaymentMethodOptions.Card.StatementDetails.Address address;
3901

3902
        /** Phone number. */
3903
        @SerializedName("phone")
3904
        String phone;
3905

3906
        /**
3907
         * For more details about Address, please refer to the <a
3908
         * href="https://docs.stripe.com/api">API Reference.</a>
3909
         */
3910
        @Getter
3911
        @Setter
3912
        @EqualsAndHashCode(callSuper = false)
3913
        public static class Address extends StripeObject {
×
3914
          /** City, district, suburb, town, or village. */
3915
          @SerializedName("city")
3916
          String city;
3917

3918
          /**
3919
           * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
3920
           * 3166-1 alpha-2</a>).
3921
           */
3922
          @SerializedName("country")
3923
          String country;
3924

3925
          /** Address line 1 (e.g., street, PO Box, or company name). */
3926
          @SerializedName("line1")
3927
          String line1;
3928

3929
          /** Address line 2 (e.g., apartment, suite, unit, or building). */
3930
          @SerializedName("line2")
3931
          String line2;
3932

3933
          /** ZIP or postal code. */
3934
          @SerializedName("postal_code")
3935
          String postalCode;
3936

3937
          /** State, county, province, or region. */
3938
          @SerializedName("state")
3939
          String state;
3940
        }
3941
      }
3942
    }
3943

3944
    /**
3945
     * For more details about CardPresent, please refer to the <a
3946
     * href="https://docs.stripe.com/api">API Reference.</a>
3947
     */
3948
    @Getter
3949
    @Setter
3950
    @EqualsAndHashCode(callSuper = false)
3951
    public static class CardPresent extends StripeObject {
×
3952
      /**
3953
       * Request ability to capture this payment beyond the standard <a
3954
       * href="https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity">authorization
3955
       * validity window.</a>
3956
       */
3957
      @SerializedName("request_extended_authorization")
3958
      Boolean requestExtendedAuthorization;
3959

3960
      /**
3961
       * Request ability to <a
3962
       * href="https://stripe.com/docs/terminal/features/incremental-authorizations">increment</a>
3963
       * this PaymentIntent if the combination of MCC and card brand is eligible. Check <a
3964
       * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported">incremental_authorization_supported</a>
3965
       * in the <a href="https://stripe.com/docs/api/payment_intents/confirm">Confirm</a> response
3966
       * to verify support.
3967
       */
3968
      @SerializedName("request_incremental_authorization_support")
3969
      Boolean requestIncrementalAuthorizationSupport;
3970

3971
      @SerializedName("routing")
3972
      Routing routing;
3973

3974
      /**
3975
       * For more details about Routing, please refer to the <a
3976
       * href="https://docs.stripe.com/api">API Reference.</a>
3977
       */
3978
      @Getter
3979
      @Setter
3980
      @EqualsAndHashCode(callSuper = false)
3981
      public static class Routing extends StripeObject {
×
3982
        /**
3983
         * Requested routing priority
3984
         *
3985
         * <p>One of {@code domestic}, or {@code international}.
3986
         */
3987
        @SerializedName("requested_priority")
3988
        String requestedPriority;
3989
      }
3990
    }
3991

3992
    /**
3993
     * For more details about Cashapp, please refer to the <a href="https://docs.stripe.com/api">API
3994
     * Reference.</a>
3995
     */
3996
    @Getter
3997
    @Setter
3998
    @EqualsAndHashCode(callSuper = false)
3999
    public static class Cashapp extends StripeObject {
×
4000
      /**
4001
       * Controls when the funds will be captured from the customer's account.
4002
       *
4003
       * <p>Equal to {@code manual}.
4004
       */
4005
      @SerializedName("capture_method")
4006
      String captureMethod;
4007

4008
      /**
4009
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4010
       *
4011
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4012
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4013
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4014
       * actions. If you don't provide a Customer, you can still <a
4015
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4016
       * Customer after the transaction completes.
4017
       *
4018
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4019
       * and attaches a <a
4020
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4021
       * payment method representing the card to the Customer instead.
4022
       *
4023
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4024
       * with regional legislation and network rules, such as <a
4025
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4026
       *
4027
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
4028
       */
4029
      @SerializedName("setup_future_usage")
4030
      String setupFutureUsage;
4031
    }
4032

4033
    /**
4034
     * For more details about CustomerBalance, please refer to the <a
4035
     * href="https://docs.stripe.com/api">API Reference.</a>
4036
     */
4037
    @Getter
4038
    @Setter
4039
    @EqualsAndHashCode(callSuper = false)
4040
    public static class CustomerBalance extends StripeObject {
×
4041
      @SerializedName("bank_transfer")
4042
      BankTransfer bankTransfer;
4043

4044
      /**
4045
       * The funding method type to be used when there are not enough funds in the customer balance.
4046
       * Permitted values include: {@code bank_transfer}.
4047
       *
4048
       * <p>Equal to {@code bank_transfer}.
4049
       */
4050
      @SerializedName("funding_type")
4051
      String fundingType;
4052

4053
      /**
4054
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4055
       *
4056
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4057
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4058
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4059
       * actions. If you don't provide a Customer, you can still <a
4060
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4061
       * Customer after the transaction completes.
4062
       *
4063
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4064
       * and attaches a <a
4065
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4066
       * payment method representing the card to the Customer instead.
4067
       *
4068
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4069
       * with regional legislation and network rules, such as <a
4070
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4071
       *
4072
       * <p>Equal to {@code none}.
4073
       */
4074
      @SerializedName("setup_future_usage")
4075
      String setupFutureUsage;
4076

4077
      /**
4078
       * For more details about BankTransfer, please refer to the <a
4079
       * href="https://docs.stripe.com/api">API Reference.</a>
4080
       */
4081
      @Getter
4082
      @Setter
4083
      @EqualsAndHashCode(callSuper = false)
4084
      public static class BankTransfer extends StripeObject {
×
4085
        @SerializedName("eu_bank_transfer")
4086
        EuBankTransfer euBankTransfer;
4087

4088
        /**
4089
         * List of address types that should be returned in the financial_addresses response. If not
4090
         * specified, all valid types will be returned.
4091
         *
4092
         * <p>Permitted values include: {@code sort_code}, {@code zengin}, {@code iban}, or {@code
4093
         * spei}.
4094
         */
4095
        @SerializedName("requested_address_types")
4096
        List<String> requestedAddressTypes;
4097

4098
        /**
4099
         * The bank transfer type that this PaymentIntent is allowed to use for funding Permitted
4100
         * values include: {@code eu_bank_transfer}, {@code gb_bank_transfer}, {@code
4101
         * jp_bank_transfer}, {@code mx_bank_transfer}, or {@code us_bank_transfer}.
4102
         *
4103
         * <p>One of {@code eu_bank_transfer}, {@code gb_bank_transfer}, {@code jp_bank_transfer},
4104
         * {@code mx_bank_transfer}, or {@code us_bank_transfer}.
4105
         */
4106
        @SerializedName("type")
4107
        String type;
4108

4109
        /**
4110
         * For more details about EuBankTransfer, please refer to the <a
4111
         * href="https://docs.stripe.com/api">API Reference.</a>
4112
         */
4113
        @Getter
4114
        @Setter
4115
        @EqualsAndHashCode(callSuper = false)
4116
        public static class EuBankTransfer extends StripeObject {
×
4117
          /**
4118
           * The desired country code of the bank account information. Permitted values include:
4119
           * {@code BE}, {@code DE}, {@code ES}, {@code FR}, {@code IE}, or {@code NL}.
4120
           *
4121
           * <p>One of {@code BE}, {@code DE}, {@code ES}, {@code FR}, {@code IE}, or {@code NL}.
4122
           */
4123
          @SerializedName("country")
4124
          String country;
4125
        }
4126
      }
4127
    }
4128

4129
    /**
4130
     * For more details about Eps, please refer to the <a href="https://docs.stripe.com/api">API
4131
     * Reference.</a>
4132
     */
4133
    @Getter
4134
    @Setter
4135
    @EqualsAndHashCode(callSuper = false)
4136
    public static class Eps extends StripeObject {
×
4137
      /**
4138
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4139
       *
4140
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4141
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4142
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4143
       * actions. If you don't provide a Customer, you can still <a
4144
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4145
       * Customer after the transaction completes.
4146
       *
4147
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4148
       * and attaches a <a
4149
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4150
       * payment method representing the card to the Customer instead.
4151
       *
4152
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4153
       * with regional legislation and network rules, such as <a
4154
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4155
       *
4156
       * <p>Equal to {@code none}.
4157
       */
4158
      @SerializedName("setup_future_usage")
4159
      String setupFutureUsage;
4160
    }
4161

4162
    /**
4163
     * For more details about Fpx, please refer to the <a href="https://docs.stripe.com/api">API
4164
     * Reference.</a>
4165
     */
4166
    @Getter
4167
    @Setter
4168
    @EqualsAndHashCode(callSuper = false)
4169
    public static class Fpx extends StripeObject {
×
4170
      /**
4171
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4172
       *
4173
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4174
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4175
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4176
       * actions. If you don't provide a Customer, you can still <a
4177
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4178
       * Customer after the transaction completes.
4179
       *
4180
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4181
       * and attaches a <a
4182
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4183
       * payment method representing the card to the Customer instead.
4184
       *
4185
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4186
       * with regional legislation and network rules, such as <a
4187
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4188
       *
4189
       * <p>Equal to {@code none}.
4190
       */
4191
      @SerializedName("setup_future_usage")
4192
      String setupFutureUsage;
4193
    }
4194

4195
    /**
4196
     * For more details about Giropay, please refer to the <a href="https://docs.stripe.com/api">API
4197
     * Reference.</a>
4198
     */
4199
    @Getter
4200
    @Setter
4201
    @EqualsAndHashCode(callSuper = false)
4202
    public static class Giropay extends StripeObject {
×
4203
      /**
4204
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4205
       *
4206
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4207
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4208
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4209
       * actions. If you don't provide a Customer, you can still <a
4210
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4211
       * Customer after the transaction completes.
4212
       *
4213
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4214
       * and attaches a <a
4215
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4216
       * payment method representing the card to the Customer instead.
4217
       *
4218
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4219
       * with regional legislation and network rules, such as <a
4220
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4221
       *
4222
       * <p>Equal to {@code none}.
4223
       */
4224
      @SerializedName("setup_future_usage")
4225
      String setupFutureUsage;
4226
    }
4227

4228
    /**
4229
     * For more details about Gopay, please refer to the <a href="https://docs.stripe.com/api">API
4230
     * Reference.</a>
4231
     */
4232
    @Getter
4233
    @Setter
4234
    @EqualsAndHashCode(callSuper = false)
4235
    public static class Gopay extends StripeObject {
×
4236
      /**
4237
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4238
       *
4239
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4240
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4241
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4242
       * actions. If you don't provide a Customer, you can still <a
4243
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4244
       * Customer after the transaction completes.
4245
       *
4246
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4247
       * and attaches a <a
4248
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4249
       * payment method representing the card to the Customer instead.
4250
       *
4251
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4252
       * with regional legislation and network rules, such as <a
4253
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4254
       *
4255
       * <p>Equal to {@code none}.
4256
       */
4257
      @SerializedName("setup_future_usage")
4258
      String setupFutureUsage;
4259
    }
4260

4261
    /**
4262
     * For more details about Grabpay, please refer to the <a href="https://docs.stripe.com/api">API
4263
     * Reference.</a>
4264
     */
4265
    @Getter
4266
    @Setter
4267
    @EqualsAndHashCode(callSuper = false)
4268
    public static class Grabpay extends StripeObject {
×
4269
      /**
4270
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4271
       *
4272
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4273
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4274
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4275
       * actions. If you don't provide a Customer, you can still <a
4276
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4277
       * Customer after the transaction completes.
4278
       *
4279
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4280
       * and attaches a <a
4281
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4282
       * payment method representing the card to the Customer instead.
4283
       *
4284
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4285
       * with regional legislation and network rules, such as <a
4286
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4287
       *
4288
       * <p>Equal to {@code none}.
4289
       */
4290
      @SerializedName("setup_future_usage")
4291
      String setupFutureUsage;
4292
    }
4293

4294
    /**
4295
     * For more details about IdBankTransfer, please refer to the <a
4296
     * href="https://docs.stripe.com/api">API Reference.</a>
4297
     */
4298
    @Getter
4299
    @Setter
4300
    @EqualsAndHashCode(callSuper = false)
NEW
4301
    public static class IdBankTransfer extends StripeObject {
×
4302
      /**
4303
       * The UNIX timestamp until which the virtual bank account is valid. Permitted range is from
4304
       * now till 2678400 seconds (31 days) from now.
4305
       */
4306
      @SerializedName("expires_after")
4307
      Long expiresAfter;
4308

4309
      /**
4310
       * The UNIX timestamp until which the virtual bank account is valid. Permitted range is from
4311
       * now until 30 days from now. If unset, it defaults to 1 days from now.
4312
       */
4313
      @SerializedName("expires_at")
4314
      Long expiresAt;
4315

4316
      /**
4317
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4318
       *
4319
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4320
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4321
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4322
       * actions. If you don't provide a Customer, you can still <a
4323
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4324
       * Customer after the transaction completes.
4325
       *
4326
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4327
       * and attaches a <a
4328
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4329
       * payment method representing the card to the Customer instead.
4330
       *
4331
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4332
       * with regional legislation and network rules, such as <a
4333
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4334
       *
4335
       * <p>Equal to {@code none}.
4336
       */
4337
      @SerializedName("setup_future_usage")
4338
      String setupFutureUsage;
4339
    }
4340

4341
    /**
4342
     * For more details about Ideal, please refer to the <a href="https://docs.stripe.com/api">API
4343
     * Reference.</a>
4344
     */
4345
    @Getter
4346
    @Setter
4347
    @EqualsAndHashCode(callSuper = false)
4348
    public static class Ideal extends StripeObject {
×
4349
      /**
4350
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4351
       *
4352
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4353
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4354
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4355
       * actions. If you don't provide a Customer, you can still <a
4356
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4357
       * Customer after the transaction completes.
4358
       *
4359
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4360
       * and attaches a <a
4361
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4362
       * payment method representing the card to the Customer instead.
4363
       *
4364
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4365
       * with regional legislation and network rules, such as <a
4366
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4367
       *
4368
       * <p>One of {@code none}, or {@code off_session}.
4369
       */
4370
      @SerializedName("setup_future_usage")
4371
      String setupFutureUsage;
4372
    }
4373

4374
    /**
4375
     * For more details about InteracPresent, please refer to the <a
4376
     * href="https://docs.stripe.com/api">API Reference.</a>
4377
     */
4378
    @Getter
4379
    @Setter
4380
    @EqualsAndHashCode(callSuper = false)
4381
    public static class InteracPresent extends StripeObject {}
×
4382

4383
    /**
4384
     * For more details about KakaoPay, please refer to the <a
4385
     * href="https://docs.stripe.com/api">API Reference.</a>
4386
     */
4387
    @Getter
4388
    @Setter
4389
    @EqualsAndHashCode(callSuper = false)
4390
    public static class KakaoPay extends StripeObject {
×
4391
      /**
4392
       * Controls when the funds will be captured from the customer's account.
4393
       *
4394
       * <p>Equal to {@code manual}.
4395
       */
4396
      @SerializedName("capture_method")
4397
      String captureMethod;
4398

4399
      /**
4400
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4401
       *
4402
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4403
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4404
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4405
       * actions. If you don't provide a Customer, you can still <a
4406
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4407
       * Customer after the transaction completes.
4408
       *
4409
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4410
       * and attaches a <a
4411
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4412
       * payment method representing the card to the Customer instead.
4413
       *
4414
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4415
       * with regional legislation and network rules, such as <a
4416
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4417
       *
4418
       * <p>One of {@code none}, or {@code off_session}.
4419
       */
4420
      @SerializedName("setup_future_usage")
4421
      String setupFutureUsage;
4422
    }
4423

4424
    /**
4425
     * For more details about Klarna, please refer to the <a href="https://docs.stripe.com/api">API
4426
     * Reference.</a>
4427
     */
4428
    @Getter
4429
    @Setter
4430
    @EqualsAndHashCode(callSuper = false)
4431
    public static class Klarna extends StripeObject {
×
4432
      /**
4433
       * Controls when the funds will be captured from the customer's account.
4434
       *
4435
       * <p>Equal to {@code manual}.
4436
       */
4437
      @SerializedName("capture_method")
4438
      String captureMethod;
4439

4440
      /** Preferred locale of the Klarna checkout page that the customer is redirected to. */
4441
      @SerializedName("preferred_locale")
4442
      String preferredLocale;
4443

4444
      /**
4445
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4446
       *
4447
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4448
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4449
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4450
       * actions. If you don't provide a Customer, you can still <a
4451
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4452
       * Customer after the transaction completes.
4453
       *
4454
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4455
       * and attaches a <a
4456
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4457
       * payment method representing the card to the Customer instead.
4458
       *
4459
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4460
       * with regional legislation and network rules, such as <a
4461
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4462
       *
4463
       * <p>Equal to {@code none}.
4464
       */
4465
      @SerializedName("setup_future_usage")
4466
      String setupFutureUsage;
4467
    }
4468

4469
    /**
4470
     * For more details about Konbini, please refer to the <a href="https://docs.stripe.com/api">API
4471
     * Reference.</a>
4472
     */
4473
    @Getter
4474
    @Setter
4475
    @EqualsAndHashCode(callSuper = false)
4476
    public static class Konbini extends StripeObject {
×
4477
      /**
4478
       * An optional 10 to 11 digit numeric-only string determining the confirmation code at
4479
       * applicable convenience stores.
4480
       */
4481
      @SerializedName("confirmation_number")
4482
      String confirmationNumber;
4483

4484
      /**
4485
       * The number of calendar days (between 1 and 60) after which Konbini payment instructions
4486
       * will expire. For example, if a PaymentIntent is confirmed with Konbini and {@code
4487
       * expires_after_days} set to 2 on Monday JST, the instructions will expire on Wednesday
4488
       * 23:59:59 JST.
4489
       */
4490
      @SerializedName("expires_after_days")
4491
      Long expiresAfterDays;
4492

4493
      /**
4494
       * The timestamp at which the Konbini payment instructions will expire. Only one of {@code
4495
       * expires_after_days} or {@code expires_at} may be set.
4496
       */
4497
      @SerializedName("expires_at")
4498
      Long expiresAt;
4499

4500
      /**
4501
       * A product descriptor of up to 22 characters, which will appear to customers at the
4502
       * convenience store.
4503
       */
4504
      @SerializedName("product_description")
4505
      String productDescription;
4506

4507
      /**
4508
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4509
       *
4510
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4511
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4512
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4513
       * actions. If you don't provide a Customer, you can still <a
4514
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4515
       * Customer after the transaction completes.
4516
       *
4517
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4518
       * and attaches a <a
4519
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4520
       * payment method representing the card to the Customer instead.
4521
       *
4522
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4523
       * with regional legislation and network rules, such as <a
4524
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4525
       *
4526
       * <p>Equal to {@code none}.
4527
       */
4528
      @SerializedName("setup_future_usage")
4529
      String setupFutureUsage;
4530
    }
4531

4532
    /**
4533
     * For more details about KrCard, please refer to the <a href="https://docs.stripe.com/api">API
4534
     * Reference.</a>
4535
     */
4536
    @Getter
4537
    @Setter
4538
    @EqualsAndHashCode(callSuper = false)
4539
    public static class KrCard extends StripeObject {
×
4540
      /**
4541
       * Controls when the funds will be captured from the customer's account.
4542
       *
4543
       * <p>Equal to {@code manual}.
4544
       */
4545
      @SerializedName("capture_method")
4546
      String captureMethod;
4547

4548
      /**
4549
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4550
       *
4551
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4552
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4553
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4554
       * actions. If you don't provide a Customer, you can still <a
4555
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4556
       * Customer after the transaction completes.
4557
       *
4558
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4559
       * and attaches a <a
4560
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4561
       * payment method representing the card to the Customer instead.
4562
       *
4563
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4564
       * with regional legislation and network rules, such as <a
4565
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4566
       *
4567
       * <p>One of {@code none}, or {@code off_session}.
4568
       */
4569
      @SerializedName("setup_future_usage")
4570
      String setupFutureUsage;
4571
    }
4572

4573
    /**
4574
     * For more details about Link, please refer to the <a href="https://docs.stripe.com/api">API
4575
     * Reference.</a>
4576
     */
4577
    @Getter
4578
    @Setter
4579
    @EqualsAndHashCode(callSuper = false)
4580
    public static class Link extends StripeObject {
×
4581
      /**
4582
       * Controls when the funds will be captured from the customer's account.
4583
       *
4584
       * <p>Equal to {@code manual}.
4585
       */
4586
      @SerializedName("capture_method")
4587
      String captureMethod;
4588

4589
      /** [Deprecated] This is a legacy parameter that no longer has any function. */
4590
      @SerializedName("persistent_token")
4591
      @Deprecated
4592
      String persistentToken;
4593

4594
      /**
4595
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4596
       *
4597
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4598
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4599
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4600
       * actions. If you don't provide a Customer, you can still <a
4601
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4602
       * Customer after the transaction completes.
4603
       *
4604
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4605
       * and attaches a <a
4606
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4607
       * payment method representing the card to the Customer instead.
4608
       *
4609
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4610
       * with regional legislation and network rules, such as <a
4611
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4612
       *
4613
       * <p>One of {@code none}, or {@code off_session}.
4614
       */
4615
      @SerializedName("setup_future_usage")
4616
      String setupFutureUsage;
4617
    }
4618

4619
    /**
4620
     * For more details about MbWay, please refer to the <a href="https://docs.stripe.com/api">API
4621
     * Reference.</a>
4622
     */
4623
    @Getter
4624
    @Setter
4625
    @EqualsAndHashCode(callSuper = false)
4626
    public static class MbWay extends StripeObject {
×
4627
      /**
4628
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4629
       *
4630
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4631
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4632
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4633
       * actions. If you don't provide a Customer, you can still <a
4634
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4635
       * Customer after the transaction completes.
4636
       *
4637
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4638
       * and attaches a <a
4639
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4640
       * payment method representing the card to the Customer instead.
4641
       *
4642
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4643
       * with regional legislation and network rules, such as <a
4644
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4645
       *
4646
       * <p>Equal to {@code none}.
4647
       */
4648
      @SerializedName("setup_future_usage")
4649
      String setupFutureUsage;
4650
    }
4651

4652
    /**
4653
     * For more details about Mobilepay, please refer to the <a
4654
     * href="https://docs.stripe.com/api">API Reference.</a>
4655
     */
4656
    @Getter
4657
    @Setter
4658
    @EqualsAndHashCode(callSuper = false)
4659
    public static class Mobilepay extends StripeObject {
×
4660
      /**
4661
       * Controls when the funds will be captured from the customer's account.
4662
       *
4663
       * <p>Equal to {@code manual}.
4664
       */
4665
      @SerializedName("capture_method")
4666
      String captureMethod;
4667

4668
      /**
4669
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4670
       *
4671
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4672
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4673
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4674
       * actions. If you don't provide a Customer, you can still <a
4675
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4676
       * Customer after the transaction completes.
4677
       *
4678
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4679
       * and attaches a <a
4680
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4681
       * payment method representing the card to the Customer instead.
4682
       *
4683
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4684
       * with regional legislation and network rules, such as <a
4685
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4686
       *
4687
       * <p>Equal to {@code none}.
4688
       */
4689
      @SerializedName("setup_future_usage")
4690
      String setupFutureUsage;
4691
    }
4692

4693
    /**
4694
     * For more details about Multibanco, please refer to the <a
4695
     * href="https://docs.stripe.com/api">API Reference.</a>
4696
     */
4697
    @Getter
4698
    @Setter
4699
    @EqualsAndHashCode(callSuper = false)
4700
    public static class Multibanco extends StripeObject {
×
4701
      /**
4702
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4703
       *
4704
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4705
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4706
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4707
       * actions. If you don't provide a Customer, you can still <a
4708
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4709
       * Customer after the transaction completes.
4710
       *
4711
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4712
       * and attaches a <a
4713
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4714
       * payment method representing the card to the Customer instead.
4715
       *
4716
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4717
       * with regional legislation and network rules, such as <a
4718
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4719
       *
4720
       * <p>Equal to {@code none}.
4721
       */
4722
      @SerializedName("setup_future_usage")
4723
      String setupFutureUsage;
4724
    }
4725

4726
    /**
4727
     * For more details about NaverPay, please refer to the <a
4728
     * href="https://docs.stripe.com/api">API Reference.</a>
4729
     */
4730
    @Getter
4731
    @Setter
4732
    @EqualsAndHashCode(callSuper = false)
4733
    public static class NaverPay extends StripeObject {
×
4734
      /**
4735
       * Controls when the funds will be captured from the customer's account.
4736
       *
4737
       * <p>Equal to {@code manual}.
4738
       */
4739
      @SerializedName("capture_method")
4740
      String captureMethod;
4741
    }
4742

4743
    /**
4744
     * For more details about Oxxo, please refer to the <a href="https://docs.stripe.com/api">API
4745
     * Reference.</a>
4746
     */
4747
    @Getter
4748
    @Setter
4749
    @EqualsAndHashCode(callSuper = false)
4750
    public static class Oxxo extends StripeObject {
×
4751
      /**
4752
       * The number of calendar days before an OXXO invoice expires. For example, if you create an
4753
       * OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on
4754
       * Wednesday at 23:59 America/Mexico_City time.
4755
       */
4756
      @SerializedName("expires_after_days")
4757
      Long expiresAfterDays;
4758

4759
      /**
4760
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4761
       *
4762
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4763
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4764
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4765
       * actions. If you don't provide a Customer, you can still <a
4766
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4767
       * Customer after the transaction completes.
4768
       *
4769
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4770
       * and attaches a <a
4771
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4772
       * payment method representing the card to the Customer instead.
4773
       *
4774
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4775
       * with regional legislation and network rules, such as <a
4776
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4777
       *
4778
       * <p>Equal to {@code none}.
4779
       */
4780
      @SerializedName("setup_future_usage")
4781
      String setupFutureUsage;
4782
    }
4783

4784
    /**
4785
     * For more details about P24, please refer to the <a href="https://docs.stripe.com/api">API
4786
     * Reference.</a>
4787
     */
4788
    @Getter
4789
    @Setter
4790
    @EqualsAndHashCode(callSuper = false)
4791
    public static class P24 extends StripeObject {
×
4792
      /**
4793
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4794
       *
4795
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4796
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4797
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4798
       * actions. If you don't provide a Customer, you can still <a
4799
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4800
       * Customer after the transaction completes.
4801
       *
4802
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4803
       * and attaches a <a
4804
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4805
       * payment method representing the card to the Customer instead.
4806
       *
4807
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4808
       * with regional legislation and network rules, such as <a
4809
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4810
       *
4811
       * <p>Equal to {@code none}.
4812
       */
4813
      @SerializedName("setup_future_usage")
4814
      String setupFutureUsage;
4815
    }
4816

4817
    /**
4818
     * For more details about Payco, please refer to the <a href="https://docs.stripe.com/api">API
4819
     * Reference.</a>
4820
     */
4821
    @Getter
4822
    @Setter
4823
    @EqualsAndHashCode(callSuper = false)
4824
    public static class Payco extends StripeObject {
×
4825
      /**
4826
       * Controls when the funds will be captured from the customer's account.
4827
       *
4828
       * <p>Equal to {@code manual}.
4829
       */
4830
      @SerializedName("capture_method")
4831
      String captureMethod;
4832
    }
4833

4834
    /**
4835
     * For more details about Paynow, please refer to the <a href="https://docs.stripe.com/api">API
4836
     * Reference.</a>
4837
     */
4838
    @Getter
4839
    @Setter
4840
    @EqualsAndHashCode(callSuper = false)
4841
    public static class Paynow extends StripeObject {
×
4842
      /**
4843
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4844
       *
4845
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4846
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4847
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4848
       * actions. If you don't provide a Customer, you can still <a
4849
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4850
       * Customer after the transaction completes.
4851
       *
4852
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4853
       * and attaches a <a
4854
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4855
       * payment method representing the card to the Customer instead.
4856
       *
4857
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4858
       * with regional legislation and network rules, such as <a
4859
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4860
       *
4861
       * <p>Equal to {@code none}.
4862
       */
4863
      @SerializedName("setup_future_usage")
4864
      String setupFutureUsage;
4865
    }
4866

4867
    /**
4868
     * For more details about Paypal, please refer to the <a href="https://docs.stripe.com/api">API
4869
     * Reference.</a>
4870
     */
4871
    @Getter
4872
    @Setter
4873
    @EqualsAndHashCode(callSuper = false)
4874
    public static class Paypal extends StripeObject {
×
4875
      /**
4876
       * Controls when the funds will be captured from the customer's account.
4877
       *
4878
       * <p>Equal to {@code manual}.
4879
       */
4880
      @SerializedName("capture_method")
4881
      String captureMethod;
4882

4883
      /** The line items purchased by the customer. */
4884
      @SerializedName("line_items")
4885
      List<PaymentIntent.PaymentMethodOptions.Paypal.LineItem> lineItems;
4886

4887
      /** Preferred locale of the PayPal checkout page that the customer is redirected to. */
4888
      @SerializedName("preferred_locale")
4889
      String preferredLocale;
4890

4891
      /**
4892
       * A reference of the PayPal transaction visible to customer which is mapped to PayPal's
4893
       * invoice ID. This must be a globally unique ID if you have configured in your PayPal
4894
       * settings to block multiple payments per invoice ID.
4895
       */
4896
      @SerializedName("reference")
4897
      String reference;
4898

4899
      /**
4900
       * A reference of the PayPal transaction visible to customer which is mapped to PayPal's
4901
       * invoice ID. This must be a globally unique ID if you have configured in your PayPal
4902
       * settings to block multiple payments per invoice ID.
4903
       */
4904
      @SerializedName("reference_id")
4905
      String referenceId;
4906

4907
      /**
4908
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
4909
       *
4910
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
4911
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
4912
       * Customer after the PaymentIntent is confirmed and the customer completes any required
4913
       * actions. If you don't provide a Customer, you can still <a
4914
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
4915
       * Customer after the transaction completes.
4916
       *
4917
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
4918
       * and attaches a <a
4919
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
4920
       * payment method representing the card to the Customer instead.
4921
       *
4922
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
4923
       * with regional legislation and network rules, such as <a
4924
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
4925
       *
4926
       * <p>One of {@code none}, or {@code off_session}.
4927
       */
4928
      @SerializedName("setup_future_usage")
4929
      String setupFutureUsage;
4930

4931
      /**
4932
       * The Stripe connected account IDs of the sellers on the platform for this transaction
4933
       * (optional). Only allowed when <a
4934
       * href="https://stripe.com/docs/connect/separate-charges-and-transfers">separate charges and
4935
       * transfers</a> are used.
4936
       */
4937
      @SerializedName("subsellers")
4938
      List<String> subsellers;
4939

4940
      /**
4941
       * For more details about LineItem, please refer to the <a
4942
       * href="https://docs.stripe.com/api">API Reference.</a>
4943
       */
4944
      @Getter
4945
      @Setter
4946
      @EqualsAndHashCode(callSuper = false)
4947
      public static class LineItem extends StripeObject {
×
4948
        /**
4949
         * Type of the line item.
4950
         *
4951
         * <p>One of {@code digital_goods}, {@code donation}, or {@code physical_goods}.
4952
         */
4953
        @SerializedName("category")
4954
        String category;
4955

4956
        /** Description of the line item. */
4957
        @SerializedName("description")
4958
        String description;
4959

4960
        /** Descriptive name of the line item. */
4961
        @SerializedName("name")
4962
        String name;
4963

4964
        /** Quantity of the line item. Cannot be a negative number. */
4965
        @SerializedName("quantity")
4966
        Long quantity;
4967

4968
        /** Client facing stock keeping unit, article number or similar. */
4969
        @SerializedName("sku")
4970
        String sku;
4971

4972
        /**
4973
         * The Stripe account ID of the connected account that sells the item. This is only needed
4974
         * when using <a
4975
         * href="https://docs.stripe.com/connect/separate-charges-and-transfers">Separate Charges
4976
         * and Transfers</a>.
4977
         */
4978
        @SerializedName("sold_by")
4979
        String soldBy;
4980

4981
        @SerializedName("tax")
4982
        Tax tax;
4983

4984
        /** Price for a single unit of the line item in minor units. Cannot be a negative number. */
4985
        @SerializedName("unit_amount")
4986
        Long unitAmount;
4987

4988
        /**
4989
         * For more details about Tax, please refer to the <a href="https://docs.stripe.com/api">API
4990
         * Reference.</a>
4991
         */
4992
        @Getter
4993
        @Setter
4994
        @EqualsAndHashCode(callSuper = false)
4995
        public static class Tax extends StripeObject {
×
4996
          /**
4997
           * The tax for a single unit of the line item in minor units. Cannot be a negative number.
4998
           */
4999
          @SerializedName("amount")
5000
          Long amount;
5001

5002
          /**
5003
           * The tax behavior for the line item.
5004
           *
5005
           * <p>One of {@code exclusive}, or {@code inclusive}.
5006
           */
5007
          @SerializedName("behavior")
5008
          String behavior;
5009
        }
5010
      }
5011
    }
5012

5013
    /**
5014
     * For more details about Payto, please refer to the <a href="https://docs.stripe.com/api">API
5015
     * Reference.</a>
5016
     */
5017
    @Getter
5018
    @Setter
5019
    @EqualsAndHashCode(callSuper = false)
5020
    public static class Payto extends StripeObject {
×
5021
      @SerializedName("mandate_options")
5022
      MandateOptions mandateOptions;
5023

5024
      /**
5025
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5026
       *
5027
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5028
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5029
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5030
       * actions. If you don't provide a Customer, you can still <a
5031
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5032
       * Customer after the transaction completes.
5033
       *
5034
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5035
       * and attaches a <a
5036
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5037
       * payment method representing the card to the Customer instead.
5038
       *
5039
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5040
       * with regional legislation and network rules, such as <a
5041
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5042
       *
5043
       * <p>One of {@code none}, or {@code off_session}.
5044
       */
5045
      @SerializedName("setup_future_usage")
5046
      String setupFutureUsage;
5047

5048
      /**
5049
       * For more details about MandateOptions, please refer to the <a
5050
       * href="https://docs.stripe.com/api">API Reference.</a>
5051
       */
5052
      @Getter
5053
      @Setter
5054
      @EqualsAndHashCode(callSuper = false)
5055
      public static class MandateOptions extends StripeObject {
×
5056
        /**
5057
         * Amount that will be collected. It is required when {@code amount_type} is {@code fixed}.
5058
         */
5059
        @SerializedName("amount")
5060
        Long amount;
5061

5062
        /**
5063
         * The type of amount that will be collected. The amount charged must be exact or up to the
5064
         * value of {@code amount} param for {@code fixed} or {@code maximum} type respectively.
5065
         *
5066
         * <p>One of {@code fixed}, or {@code maximum}.
5067
         */
5068
        @SerializedName("amount_type")
5069
        String amountType;
5070

5071
        /**
5072
         * Date, in YYYY-MM-DD format, after which payments will not be collected. Defaults to no
5073
         * end date.
5074
         */
5075
        @SerializedName("end_date")
5076
        String endDate;
5077

5078
        /**
5079
         * The periodicity at which payments will be collected.
5080
         *
5081
         * <p>One of {@code adhoc}, {@code annual}, {@code daily}, {@code fortnightly}, {@code
5082
         * monthly}, {@code quarterly}, {@code semi_annual}, or {@code weekly}.
5083
         */
5084
        @SerializedName("payment_schedule")
5085
        String paymentSchedule;
5086

5087
        /**
5088
         * The number of payments that will be made during a payment period. Defaults to 1 except
5089
         * for when {@code payment_schedule} is {@code adhoc}. In that case, it defaults to no
5090
         * limit.
5091
         */
5092
        @SerializedName("payments_per_period")
5093
        Long paymentsPerPeriod;
5094

5095
        /**
5096
         * The purpose for which payments are made. Defaults to retail.
5097
         *
5098
         * <p>One of {@code dependant_support}, {@code government}, {@code loan}, {@code mortgage},
5099
         * {@code other}, {@code pension}, {@code personal}, {@code retail}, {@code salary}, {@code
5100
         * tax}, or {@code utility}.
5101
         */
5102
        @SerializedName("purpose")
5103
        String purpose;
5104
      }
5105
    }
5106

5107
    /**
5108
     * For more details about Pix, please refer to the <a href="https://docs.stripe.com/api">API
5109
     * Reference.</a>
5110
     */
5111
    @Getter
5112
    @Setter
5113
    @EqualsAndHashCode(callSuper = false)
5114
    public static class Pix extends StripeObject {
×
5115
      /** The number of seconds (between 10 and 1209600) after which Pix payment will expire. */
5116
      @SerializedName("expires_after_seconds")
5117
      Long expiresAfterSeconds;
5118

5119
      /** The timestamp at which the Pix expires. */
5120
      @SerializedName("expires_at")
5121
      Long expiresAt;
5122

5123
      /**
5124
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5125
       *
5126
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5127
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5128
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5129
       * actions. If you don't provide a Customer, you can still <a
5130
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5131
       * Customer after the transaction completes.
5132
       *
5133
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5134
       * and attaches a <a
5135
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5136
       * payment method representing the card to the Customer instead.
5137
       *
5138
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5139
       * with regional legislation and network rules, such as <a
5140
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5141
       *
5142
       * <p>Equal to {@code none}.
5143
       */
5144
      @SerializedName("setup_future_usage")
5145
      String setupFutureUsage;
5146
    }
5147

5148
    /**
5149
     * For more details about Promptpay, please refer to the <a
5150
     * href="https://docs.stripe.com/api">API Reference.</a>
5151
     */
5152
    @Getter
5153
    @Setter
5154
    @EqualsAndHashCode(callSuper = false)
5155
    public static class Promptpay extends StripeObject {
×
5156
      /**
5157
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5158
       *
5159
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5160
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5161
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5162
       * actions. If you don't provide a Customer, you can still <a
5163
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5164
       * Customer after the transaction completes.
5165
       *
5166
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5167
       * and attaches a <a
5168
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5169
       * payment method representing the card to the Customer instead.
5170
       *
5171
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5172
       * with regional legislation and network rules, such as <a
5173
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5174
       *
5175
       * <p>Equal to {@code none}.
5176
       */
5177
      @SerializedName("setup_future_usage")
5178
      String setupFutureUsage;
5179
    }
5180

5181
    /**
5182
     * For more details about Qris, please refer to the <a href="https://docs.stripe.com/api">API
5183
     * Reference.</a>
5184
     */
5185
    @Getter
5186
    @Setter
5187
    @EqualsAndHashCode(callSuper = false)
5188
    public static class Qris extends StripeObject {
×
5189
      /**
5190
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5191
       *
5192
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5193
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5194
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5195
       * actions. If you don't provide a Customer, you can still <a
5196
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5197
       * Customer after the transaction completes.
5198
       *
5199
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5200
       * and attaches a <a
5201
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5202
       * payment method representing the card to the Customer instead.
5203
       *
5204
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5205
       * with regional legislation and network rules, such as <a
5206
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5207
       *
5208
       * <p>Equal to {@code none}.
5209
       */
5210
      @SerializedName("setup_future_usage")
5211
      String setupFutureUsage;
5212
    }
5213

5214
    /**
5215
     * For more details about Rechnung, please refer to the <a
5216
     * href="https://docs.stripe.com/api">API Reference.</a>
5217
     */
5218
    @Getter
5219
    @Setter
5220
    @EqualsAndHashCode(callSuper = false)
5221
    public static class Rechnung extends StripeObject {}
×
5222

5223
    /**
5224
     * For more details about RevolutPay, please refer to the <a
5225
     * href="https://docs.stripe.com/api">API Reference.</a>
5226
     */
5227
    @Getter
5228
    @Setter
5229
    @EqualsAndHashCode(callSuper = false)
5230
    public static class RevolutPay extends StripeObject {
×
5231
      /**
5232
       * Controls when the funds will be captured from the customer's account.
5233
       *
5234
       * <p>Equal to {@code manual}.
5235
       */
5236
      @SerializedName("capture_method")
5237
      String captureMethod;
5238

5239
      /**
5240
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5241
       *
5242
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5243
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5244
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5245
       * actions. If you don't provide a Customer, you can still <a
5246
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5247
       * Customer after the transaction completes.
5248
       *
5249
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5250
       * and attaches a <a
5251
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5252
       * payment method representing the card to the Customer instead.
5253
       *
5254
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5255
       * with regional legislation and network rules, such as <a
5256
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5257
       *
5258
       * <p>One of {@code none}, or {@code off_session}.
5259
       */
5260
      @SerializedName("setup_future_usage")
5261
      String setupFutureUsage;
5262
    }
5263

5264
    /**
5265
     * For more details about SamsungPay, please refer to the <a
5266
     * href="https://docs.stripe.com/api">API Reference.</a>
5267
     */
5268
    @Getter
5269
    @Setter
5270
    @EqualsAndHashCode(callSuper = false)
5271
    public static class SamsungPay extends StripeObject {
×
5272
      /**
5273
       * Controls when the funds will be captured from the customer's account.
5274
       *
5275
       * <p>Equal to {@code manual}.
5276
       */
5277
      @SerializedName("capture_method")
5278
      String captureMethod;
5279
    }
5280

5281
    /**
5282
     * For more details about SepaDebit, please refer to the <a
5283
     * href="https://docs.stripe.com/api">API Reference.</a>
5284
     */
5285
    @Getter
5286
    @Setter
5287
    @EqualsAndHashCode(callSuper = false)
5288
    public static class SepaDebit extends StripeObject {
×
5289
      @SerializedName("mandate_options")
5290
      MandateOptions mandateOptions;
5291

5292
      /**
5293
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5294
       *
5295
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5296
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5297
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5298
       * actions. If you don't provide a Customer, you can still <a
5299
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5300
       * Customer after the transaction completes.
5301
       *
5302
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5303
       * and attaches a <a
5304
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5305
       * payment method representing the card to the Customer instead.
5306
       *
5307
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5308
       * with regional legislation and network rules, such as <a
5309
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5310
       *
5311
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
5312
       */
5313
      @SerializedName("setup_future_usage")
5314
      String setupFutureUsage;
5315

5316
      /**
5317
       * For more details about MandateOptions, please refer to the <a
5318
       * href="https://docs.stripe.com/api">API Reference.</a>
5319
       */
5320
      @Getter
5321
      @Setter
5322
      @EqualsAndHashCode(callSuper = false)
5323
      public static class MandateOptions extends StripeObject {}
×
5324
    }
5325

5326
    /**
5327
     * For more details about Shopeepay, please refer to the <a
5328
     * href="https://docs.stripe.com/api">API Reference.</a>
5329
     */
5330
    @Getter
5331
    @Setter
5332
    @EqualsAndHashCode(callSuper = false)
5333
    public static class Shopeepay extends StripeObject {
×
5334
      /**
5335
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5336
       *
5337
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5338
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5339
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5340
       * actions. If you don't provide a Customer, you can still <a
5341
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5342
       * Customer after the transaction completes.
5343
       *
5344
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5345
       * and attaches a <a
5346
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5347
       * payment method representing the card to the Customer instead.
5348
       *
5349
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5350
       * with regional legislation and network rules, such as <a
5351
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5352
       *
5353
       * <p>Equal to {@code none}.
5354
       */
5355
      @SerializedName("setup_future_usage")
5356
      String setupFutureUsage;
5357
    }
5358

5359
    /**
5360
     * For more details about Sofort, please refer to the <a href="https://docs.stripe.com/api">API
5361
     * Reference.</a>
5362
     */
5363
    @Getter
5364
    @Setter
5365
    @EqualsAndHashCode(callSuper = false)
5366
    public static class Sofort extends StripeObject {
×
5367
      /**
5368
       * Preferred language of the SOFORT authorization page that the customer is redirected to.
5369
       *
5370
       * <p>One of {@code de}, {@code en}, {@code es}, {@code fr}, {@code it}, {@code nl}, or {@code
5371
       * pl}.
5372
       */
5373
      @SerializedName("preferred_language")
5374
      String preferredLanguage;
5375

5376
      /**
5377
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5378
       *
5379
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5380
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5381
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5382
       * actions. If you don't provide a Customer, you can still <a
5383
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5384
       * Customer after the transaction completes.
5385
       *
5386
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5387
       * and attaches a <a
5388
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5389
       * payment method representing the card to the Customer instead.
5390
       *
5391
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5392
       * with regional legislation and network rules, such as <a
5393
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5394
       *
5395
       * <p>One of {@code none}, or {@code off_session}.
5396
       */
5397
      @SerializedName("setup_future_usage")
5398
      String setupFutureUsage;
5399
    }
5400

5401
    /**
5402
     * For more details about Swish, please refer to the <a href="https://docs.stripe.com/api">API
5403
     * Reference.</a>
5404
     */
5405
    @Getter
5406
    @Setter
5407
    @EqualsAndHashCode(callSuper = false)
5408
    public static class Swish extends StripeObject {
×
5409
      /** The order ID displayed in the Swish app after the payment is authorized. */
5410
      @SerializedName("reference")
5411
      String reference;
5412

5413
      /**
5414
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5415
       *
5416
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5417
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5418
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5419
       * actions. If you don't provide a Customer, you can still <a
5420
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5421
       * Customer after the transaction completes.
5422
       *
5423
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5424
       * and attaches a <a
5425
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5426
       * payment method representing the card to the Customer instead.
5427
       *
5428
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5429
       * with regional legislation and network rules, such as <a
5430
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5431
       *
5432
       * <p>Equal to {@code none}.
5433
       */
5434
      @SerializedName("setup_future_usage")
5435
      String setupFutureUsage;
5436
    }
5437

5438
    /**
5439
     * For more details about Twint, please refer to the <a href="https://docs.stripe.com/api">API
5440
     * Reference.</a>
5441
     */
5442
    @Getter
5443
    @Setter
5444
    @EqualsAndHashCode(callSuper = false)
5445
    public static class Twint extends StripeObject {
×
5446
      /**
5447
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5448
       *
5449
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5450
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5451
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5452
       * actions. If you don't provide a Customer, you can still <a
5453
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5454
       * Customer after the transaction completes.
5455
       *
5456
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5457
       * and attaches a <a
5458
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5459
       * payment method representing the card to the Customer instead.
5460
       *
5461
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5462
       * with regional legislation and network rules, such as <a
5463
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5464
       *
5465
       * <p>Equal to {@code none}.
5466
       */
5467
      @SerializedName("setup_future_usage")
5468
      String setupFutureUsage;
5469
    }
5470

5471
    /**
5472
     * For more details about UsBankAccount, please refer to the <a
5473
     * href="https://docs.stripe.com/api">API Reference.</a>
5474
     */
5475
    @Getter
5476
    @Setter
5477
    @EqualsAndHashCode(callSuper = false)
5478
    public static class UsBankAccount extends StripeObject {
×
5479
      @SerializedName("financial_connections")
5480
      FinancialConnections financialConnections;
5481

5482
      @SerializedName("mandate_options")
5483
      MandateOptions mandateOptions;
5484

5485
      /**
5486
       * Preferred transaction settlement speed
5487
       *
5488
       * <p>One of {@code fastest}, or {@code standard}.
5489
       */
5490
      @SerializedName("preferred_settlement_speed")
5491
      String preferredSettlementSpeed;
5492

5493
      /**
5494
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5495
       *
5496
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5497
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5498
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5499
       * actions. If you don't provide a Customer, you can still <a
5500
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5501
       * Customer after the transaction completes.
5502
       *
5503
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5504
       * and attaches a <a
5505
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5506
       * payment method representing the card to the Customer instead.
5507
       *
5508
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5509
       * with regional legislation and network rules, such as <a
5510
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5511
       *
5512
       * <p>One of {@code none}, {@code off_session}, or {@code on_session}.
5513
       */
5514
      @SerializedName("setup_future_usage")
5515
      String setupFutureUsage;
5516

5517
      /**
5518
       * Bank account verification method.
5519
       *
5520
       * <p>One of {@code automatic}, {@code instant}, or {@code microdeposits}.
5521
       */
5522
      @SerializedName("verification_method")
5523
      String verificationMethod;
5524

5525
      /**
5526
       * For more details about FinancialConnections, please refer to the <a
5527
       * href="https://docs.stripe.com/api">API Reference.</a>
5528
       */
5529
      @Getter
5530
      @Setter
5531
      @EqualsAndHashCode(callSuper = false)
5532
      public static class FinancialConnections extends StripeObject {
×
5533
        @SerializedName("filters")
5534
        Filters filters;
5535

5536
        @SerializedName("manual_entry")
5537
        ManualEntry manualEntry;
5538

5539
        /**
5540
         * The list of permissions to request. The {@code payment_method} permission must be
5541
         * included.
5542
         */
5543
        @SerializedName("permissions")
5544
        List<String> permissions;
5545

5546
        /** Data features requested to be retrieved upon account creation. */
5547
        @SerializedName("prefetch")
5548
        List<String> prefetch;
5549

5550
        /**
5551
         * For webview integrations only. Upon completing OAuth login in the native browser, the
5552
         * user will be redirected to this URL to return to your app.
5553
         */
5554
        @SerializedName("return_url")
5555
        String returnUrl;
5556

5557
        /**
5558
         * For more details about Filters, please refer to the <a
5559
         * href="https://docs.stripe.com/api">API Reference.</a>
5560
         */
5561
        @Getter
5562
        @Setter
5563
        @EqualsAndHashCode(callSuper = false)
5564
        public static class Filters extends StripeObject {
×
5565
          /**
5566
           * The account subcategories to use to filter for possible accounts to link. Valid
5567
           * subcategories are {@code checking} and {@code savings}.
5568
           */
5569
          @SerializedName("account_subcategories")
5570
          List<String> accountSubcategories;
5571

5572
          /** The institution to use to filter for possible accounts to link. */
5573
          @SerializedName("institution")
5574
          String institution;
5575
        }
5576

5577
        /**
5578
         * For more details about ManualEntry, please refer to the <a
5579
         * href="https://docs.stripe.com/api">API Reference.</a>
5580
         */
5581
        @Getter
5582
        @Setter
5583
        @EqualsAndHashCode(callSuper = false)
5584
        public static class ManualEntry extends StripeObject {
×
5585
          /**
5586
           * Settings for configuring manual entry of account details.
5587
           *
5588
           * <p>One of {@code automatic}, or {@code custom}.
5589
           */
5590
          @SerializedName("mode")
5591
          String mode;
5592
        }
5593
      }
5594

5595
      /**
5596
       * For more details about MandateOptions, please refer to the <a
5597
       * href="https://docs.stripe.com/api">API Reference.</a>
5598
       */
5599
      @Getter
5600
      @Setter
5601
      @EqualsAndHashCode(callSuper = false)
5602
      public static class MandateOptions extends StripeObject {
×
5603
        /**
5604
         * Mandate collection method
5605
         *
5606
         * <p>Equal to {@code paper}.
5607
         */
5608
        @SerializedName("collection_method")
5609
        String collectionMethod;
5610
      }
5611
    }
5612

5613
    /**
5614
     * For more details about WechatPay, please refer to the <a
5615
     * href="https://docs.stripe.com/api">API Reference.</a>
5616
     */
5617
    @Getter
5618
    @Setter
5619
    @EqualsAndHashCode(callSuper = false)
5620
    public static class WechatPay extends StripeObject {
×
5621
      /** The app ID registered with WeChat Pay. Only required when client is ios or android. */
5622
      @SerializedName("app_id")
5623
      String appId;
5624

5625
      /**
5626
       * The client type that the end customer will pay from
5627
       *
5628
       * <p>One of {@code android}, {@code ios}, or {@code web}.
5629
       */
5630
      @SerializedName("client")
5631
      String client;
5632

5633
      /**
5634
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5635
       *
5636
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5637
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5638
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5639
       * actions. If you don't provide a Customer, you can still <a
5640
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5641
       * Customer after the transaction completes.
5642
       *
5643
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5644
       * and attaches a <a
5645
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5646
       * payment method representing the card to the Customer instead.
5647
       *
5648
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5649
       * with regional legislation and network rules, such as <a
5650
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5651
       *
5652
       * <p>Equal to {@code none}.
5653
       */
5654
      @SerializedName("setup_future_usage")
5655
      String setupFutureUsage;
5656
    }
5657

5658
    /**
5659
     * For more details about Zip, please refer to the <a href="https://docs.stripe.com/api">API
5660
     * Reference.</a>
5661
     */
5662
    @Getter
5663
    @Setter
5664
    @EqualsAndHashCode(callSuper = false)
5665
    public static class Zip extends StripeObject {
×
5666
      /**
5667
       * Indicates that you intend to make future payments with this PaymentIntent's payment method.
5668
       *
5669
       * <p>If you provide a Customer with the PaymentIntent, you can use this parameter to <a
5670
       * href="https://stripe.com/payments/save-during-payment">attach the payment method</a> to the
5671
       * Customer after the PaymentIntent is confirmed and the customer completes any required
5672
       * actions. If you don't provide a Customer, you can still <a
5673
       * href="https://stripe.com/api/payment_methods/attach">attach</a> the payment method to a
5674
       * Customer after the transaction completes.
5675
       *
5676
       * <p>If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
5677
       * and attaches a <a
5678
       * href="https://stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card">generated_card</a>
5679
       * payment method representing the card to the Customer instead.
5680
       *
5681
       * <p>When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
5682
       * with regional legislation and network rules, such as <a
5683
       * href="https://stripe.com/strong-customer-authentication">SCA</a>.
5684
       *
5685
       * <p>Equal to {@code none}.
5686
       */
5687
      @SerializedName("setup_future_usage")
5688
      String setupFutureUsage;
5689
    }
5690
  }
5691

5692
  /**
5693
   * For more details about Processing, please refer to the <a
5694
   * href="https://docs.stripe.com/api">API Reference.</a>
5695
   */
5696
  @Getter
5697
  @Setter
5698
  @EqualsAndHashCode(callSuper = false)
5699
  public static class Processing extends StripeObject {
×
5700
    @SerializedName("card")
5701
    Card card;
5702

5703
    /**
5704
     * Type of the payment method for which payment is in {@code processing} state, one of {@code
5705
     * card}.
5706
     */
5707
    @SerializedName("type")
5708
    String type;
5709

5710
    /**
5711
     * For more details about Card, please refer to the <a href="https://docs.stripe.com/api">API
5712
     * Reference.</a>
5713
     */
5714
    @Getter
5715
    @Setter
5716
    @EqualsAndHashCode(callSuper = false)
5717
    public static class Card extends StripeObject {
×
5718
      @SerializedName("customer_notification")
5719
      CustomerNotification customerNotification;
5720

5721
      /**
5722
       * For more details about CustomerNotification, please refer to the <a
5723
       * href="https://docs.stripe.com/api">API Reference.</a>
5724
       */
5725
      @Getter
5726
      @Setter
5727
      @EqualsAndHashCode(callSuper = false)
5728
      public static class CustomerNotification extends StripeObject {
×
5729
        /**
5730
         * Whether customer approval has been requested for this payment. For payments greater than
5731
         * INR 15000 or mandate amount, the customer must provide explicit approval of the payment
5732
         * with their bank.
5733
         */
5734
        @SerializedName("approval_requested")
5735
        Boolean approvalRequested;
5736

5737
        /** If customer approval is required, they need to provide approval before this time. */
5738
        @SerializedName("completes_at")
5739
        Long completesAt;
5740
      }
5741
    }
5742
  }
5743

5744
  /**
5745
   * For more details about TransferData, please refer to the <a
5746
   * href="https://docs.stripe.com/api">API Reference.</a>
5747
   */
5748
  @Getter
5749
  @Setter
5750
  @EqualsAndHashCode(callSuper = false)
5751
  public static class TransferData extends StripeObject {
1✔
5752
    /**
5753
     * Amount intended to be collected by this PaymentIntent. A positive integer representing how
5754
     * much to charge in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest
5755
     * currency unit</a> (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal
5756
     * currency). The minimum amount is $0.50 US or <a
5757
     * href="https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts">equivalent in
5758
     * charge currency</a>. The amount value supports up to eight digits (e.g., a value of 99999999
5759
     * for a USD charge of $999,999.99).
5760
     */
5761
    @SerializedName("amount")
5762
    Long amount;
5763

5764
    /**
5765
     * The account (if any) that the payment is attributed to for tax reporting, and where funds
5766
     * from the payment are transferred to after payment success.
5767
     */
5768
    @SerializedName("destination")
5769
    @Getter(lombok.AccessLevel.NONE)
5770
    @Setter(lombok.AccessLevel.NONE)
5771
    ExpandableField<Account> destination;
5772

5773
    /** Get ID of expandable {@code destination} object. */
5774
    public String getDestination() {
5775
      return (this.destination != null) ? this.destination.getId() : null;
1✔
5776
    }
5777

5778
    public void setDestination(String id) {
5779
      this.destination = ApiResource.setExpandableFieldId(id, this.destination);
×
5780
    }
×
5781

5782
    /** Get expanded {@code destination}. */
5783
    public Account getDestinationObject() {
5784
      return (this.destination != null) ? this.destination.getExpanded() : null;
1✔
5785
    }
5786

5787
    public void setDestinationObject(Account expandableObject) {
5788
      this.destination = new ExpandableField<Account>(expandableObject.getId(), expandableObject);
×
5789
    }
×
5790
  }
5791

5792
  @Override
5793
  public void setResponseGetter(StripeResponseGetter responseGetter) {
5794
    super.setResponseGetter(responseGetter);
1✔
5795
    trySetResponseGetter(amountDetails, responseGetter);
1✔
5796
    trySetResponseGetter(application, responseGetter);
1✔
5797
    trySetResponseGetter(asyncWorkflows, responseGetter);
1✔
5798
    trySetResponseGetter(automaticPaymentMethods, responseGetter);
1✔
5799
    trySetResponseGetter(customer, responseGetter);
1✔
5800
    trySetResponseGetter(invoice, responseGetter);
1✔
5801
    trySetResponseGetter(lastPaymentError, responseGetter);
1✔
5802
    trySetResponseGetter(latestCharge, responseGetter);
1✔
5803
    trySetResponseGetter(nextAction, responseGetter);
1✔
5804
    trySetResponseGetter(onBehalfOf, responseGetter);
1✔
5805
    trySetResponseGetter(paymentDetails, responseGetter);
1✔
5806
    trySetResponseGetter(paymentMethod, responseGetter);
1✔
5807
    trySetResponseGetter(paymentMethodConfigurationDetails, responseGetter);
1✔
5808
    trySetResponseGetter(paymentMethodOptions, responseGetter);
1✔
5809
    trySetResponseGetter(processing, responseGetter);
1✔
5810
    trySetResponseGetter(review, responseGetter);
1✔
5811
    trySetResponseGetter(shipping, responseGetter);
1✔
5812
    trySetResponseGetter(source, responseGetter);
1✔
5813
    trySetResponseGetter(transferData, responseGetter);
1✔
5814
  }
1✔
5815
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc