• 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

31.5
/src/main/java/com/stripe/model/Charge.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.ChargeCaptureParams;
13
import com.stripe.param.ChargeCreateParams;
14
import com.stripe.param.ChargeListParams;
15
import com.stripe.param.ChargeRetrieveParams;
16
import com.stripe.param.ChargeSearchParams;
17
import com.stripe.param.ChargeUpdateParams;
18
import java.util.List;
19
import java.util.Map;
20
import lombok.EqualsAndHashCode;
21
import lombok.Getter;
22
import lombok.Setter;
23

24
/**
25
 * The {@code Charge} object represents a single attempt to move money into your Stripe account.
26
 * PaymentIntent confirmation is the most common way to create Charges, but transferring money to a
27
 * different Stripe account through Connect also creates Charges. Some legacy payment flows create
28
 * Charges directly, which is not recommended for new integrations.
29
 */
30
@Getter
31
@Setter
32
@EqualsAndHashCode(callSuper = false)
33
public class Charge extends ApiResource implements MetadataStore<Charge>, BalanceTransactionSource {
1✔
34
  /**
35
   * Amount intended to be collected by this payment. A positive integer representing how much to
36
   * charge in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency
37
   * unit</a> (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The
38
   * minimum amount is $0.50 US or <a
39
   * href="https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts">equivalent in
40
   * charge currency</a>. The amount value supports up to eight digits (e.g., a value of 99999999
41
   * for a USD charge of $999,999.99).
42
   */
43
  @SerializedName("amount")
44
  Long amount;
45

46
  /**
47
   * Amount in cents (or local equivalent) captured (can be less than the amount attribute on the
48
   * charge if a partial capture was made).
49
   */
50
  @SerializedName("amount_captured")
51
  Long amountCaptured;
52

53
  /**
54
   * Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the
55
   * charge if a partial refund was issued).
56
   */
57
  @SerializedName("amount_refunded")
58
  Long amountRefunded;
59

60
  /** ID of the Connect application that created the charge. */
61
  @SerializedName("application")
62
  @Getter(lombok.AccessLevel.NONE)
63
  @Setter(lombok.AccessLevel.NONE)
64
  ExpandableField<Application> application;
65

66
  /**
67
   * The application fee (if any) for the charge. <a
68
   * href="https://stripe.com/docs/connect/direct-charges#collect-fees">See the Connect
69
   * documentation</a> for details.
70
   */
71
  @SerializedName("application_fee")
72
  @Getter(lombok.AccessLevel.NONE)
73
  @Setter(lombok.AccessLevel.NONE)
74
  ExpandableField<ApplicationFee> applicationFee;
75

76
  /**
77
   * The amount of the application fee (if any) requested for the charge. <a
78
   * href="https://stripe.com/docs/connect/direct-charges#collect-fees">See the Connect
79
   * documentation</a> for details.
80
   */
81
  @SerializedName("application_fee_amount")
82
  Long applicationFeeAmount;
83

84
  /** Authorization code on the charge. */
85
  @SerializedName("authorization_code")
86
  String authorizationCode;
87

88
  /**
89
   * ID of the balance transaction that describes the impact of this charge on your account balance
90
   * (not including refunds or disputes).
91
   */
92
  @SerializedName("balance_transaction")
93
  @Getter(lombok.AccessLevel.NONE)
94
  @Setter(lombok.AccessLevel.NONE)
95
  ExpandableField<BalanceTransaction> balanceTransaction;
96

97
  @SerializedName("billing_details")
98
  BillingDetails billingDetails;
99

100
  /**
101
   * The full statement descriptor that is passed to card networks, and that is displayed on your
102
   * customers' credit card and bank statements. Allows you to see what the statement descriptor
103
   * looks like after the static and dynamic portions are combined. This value only exists for card
104
   * payments.
105
   */
106
  @SerializedName("calculated_statement_descriptor")
107
  String calculatedStatementDescriptor;
108

109
  /**
110
   * If the charge was created without capturing, this Boolean represents whether it is still
111
   * uncaptured or has since been captured.
112
   */
113
  @SerializedName("captured")
114
  Boolean captured;
115

116
  /** Time at which the object was created. Measured in seconds since the Unix epoch. */
117
  @SerializedName("created")
118
  Long created;
119

120
  /**
121
   * Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>,
122
   * in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
123
   */
124
  @SerializedName("currency")
125
  String currency;
126

127
  /** ID of the customer this charge is for if one exists. */
128
  @SerializedName("customer")
129
  @Getter(lombok.AccessLevel.NONE)
130
  @Setter(lombok.AccessLevel.NONE)
131
  ExpandableField<Customer> customer;
132

133
  /** An arbitrary string attached to the object. Often useful for displaying to users. */
134
  @SerializedName("description")
135
  String description;
136

137
  /** Whether the charge has been disputed. */
138
  @SerializedName("disputed")
139
  Boolean disputed;
140

141
  /**
142
   * ID of the balance transaction that describes the reversal of the balance on your account due to
143
   * payment failure.
144
   */
145
  @SerializedName("failure_balance_transaction")
146
  @Getter(lombok.AccessLevel.NONE)
147
  @Setter(lombok.AccessLevel.NONE)
148
  ExpandableField<BalanceTransaction> failureBalanceTransaction;
149

150
  /**
151
   * Error code explaining reason for charge failure if available (see <a
152
   * href="https://stripe.com/docs/error-codes">the errors section</a> for a list of codes).
153
   */
154
  @SerializedName("failure_code")
155
  String failureCode;
156

157
  /** Message to user further explaining reason for charge failure if available. */
158
  @SerializedName("failure_message")
159
  String failureMessage;
160

161
  /** Information on fraud assessments for the charge. */
162
  @SerializedName("fraud_details")
163
  FraudDetails fraudDetails;
164

165
  /** Unique identifier for the object. */
166
  @Getter(onMethod_ = {@Override})
167
  @SerializedName("id")
168
  String id;
169

170
  /** ID of the invoice this charge is for if one exists. */
171
  @SerializedName("invoice")
172
  @Getter(lombok.AccessLevel.NONE)
173
  @Setter(lombok.AccessLevel.NONE)
174
  ExpandableField<Invoice> invoice;
175

176
  @SerializedName("level3")
177
  Level3 level3;
178

179
  /**
180
   * Has the value {@code true} if the object exists in live mode or the value {@code false} if the
181
   * object exists in test mode.
182
   */
183
  @SerializedName("livemode")
184
  Boolean livemode;
185

186
  /**
187
   * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
188
   * to an object. This can be useful for storing additional information about the object in a
189
   * structured format.
190
   */
191
  @Getter(onMethod_ = {@Override})
192
  @SerializedName("metadata")
193
  Map<String, String> metadata;
194

195
  /**
196
   * String representing the object's type. Objects of the same type share the same value.
197
   *
198
   * <p>Equal to {@code charge}.
199
   */
200
  @SerializedName("object")
201
  String object;
202

203
  /**
204
   * The account (if any) the charge was made on behalf of without triggering an automatic transfer.
205
   * See the <a href="https://stripe.com/docs/connect/separate-charges-and-transfers">Connect
206
   * documentation</a> for details.
207
   */
208
  @SerializedName("on_behalf_of")
209
  @Getter(lombok.AccessLevel.NONE)
210
  @Setter(lombok.AccessLevel.NONE)
211
  ExpandableField<Account> onBehalfOf;
212

213
  /**
214
   * Details about whether the payment was accepted, and why. See <a
215
   * href="https://stripe.com/docs/declines">understanding declines</a> for details.
216
   */
217
  @SerializedName("outcome")
218
  Outcome outcome;
219

220
  /** {@code true} if the charge succeeded, or was successfully authorized for later capture. */
221
  @SerializedName("paid")
222
  Boolean paid;
223

224
  /** ID of the PaymentIntent associated with this charge, if one exists. */
225
  @SerializedName("payment_intent")
226
  @Getter(lombok.AccessLevel.NONE)
227
  @Setter(lombok.AccessLevel.NONE)
228
  ExpandableField<PaymentIntent> paymentIntent;
229

230
  /** ID of the payment method used in this charge. */
231
  @SerializedName("payment_method")
232
  String paymentMethod;
233

234
  /** Details about the payment method at the time of the transaction. */
235
  @SerializedName("payment_method_details")
236
  PaymentMethodDetails paymentMethodDetails;
237

238
  /**
239
   * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
240
   * Session</a> for more information.
241
   */
242
  @SerializedName("radar_options")
243
  RadarOptions radarOptions;
244

245
  /** This is the email address that the receipt for this charge was sent to. */
246
  @SerializedName("receipt_email")
247
  String receiptEmail;
248

249
  /**
250
   * This is the transaction number that appears on email receipts sent for this charge. This
251
   * attribute will be {@code null} until a receipt has been sent.
252
   */
253
  @SerializedName("receipt_number")
254
  String receiptNumber;
255

256
  /**
257
   * This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the
258
   * latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt
259
   * will be stylized as an Invoice receipt.
260
   */
261
  @SerializedName("receipt_url")
262
  String receiptUrl;
263

264
  /**
265
   * Whether the charge has been fully refunded. If the charge is only partially refunded, this
266
   * attribute will still be false.
267
   */
268
  @SerializedName("refunded")
269
  Boolean refunded;
270

271
  /** A list of refunds that have been applied to the charge. */
272
  @SerializedName("refunds")
273
  RefundCollection refunds;
274

275
  /** ID of the review associated with this charge if one exists. */
276
  @SerializedName("review")
277
  @Getter(lombok.AccessLevel.NONE)
278
  @Setter(lombok.AccessLevel.NONE)
279
  ExpandableField<Review> review;
280

281
  /** Shipping information for the charge. */
282
  @SerializedName("shipping")
283
  ShippingDetails shipping;
284

285
  /**
286
   * This is a legacy field that will be removed in the future. It contains the Source, Card, or
287
   * BankAccount object used for the charge. For details about the payment method used for this
288
   * charge, refer to {@code payment_method} or {@code payment_method_details} instead.
289
   */
290
  @SerializedName("source")
291
  PaymentSource source;
292

293
  /**
294
   * The transfer ID which created this charge. Only present if the charge came from another Stripe
295
   * account. <a href="https://docs.stripe.com/connect/destination-charges">See the Connect
296
   * documentation</a> for details.
297
   */
298
  @SerializedName("source_transfer")
299
  @Getter(lombok.AccessLevel.NONE)
300
  @Setter(lombok.AccessLevel.NONE)
301
  ExpandableField<Transfer> sourceTransfer;
302

303
  /**
304
   * For a non-card charge, text that appears on the customer's statement as the statement
305
   * descriptor. This value overrides the account's default statement descriptor. For information
306
   * about requirements, including the 22-character limit, see <a
307
   * href="https://docs.stripe.com/get-started/account/statement-descriptors">the Statement
308
   * Descriptor docs</a>.
309
   *
310
   * <p>For a card charge, this value is ignored unless you don't specify a {@code
311
   * statement_descriptor_suffix}, in which case this value is used as the suffix.
312
   */
313
  @SerializedName("statement_descriptor")
314
  String statementDescriptor;
315

316
  /**
317
   * Provides information about a card charge. Concatenated to the account's <a
318
   * href="https://docs.stripe.com/get-started/account/statement-descriptors#static">statement
319
   * descriptor prefix</a> to form the complete statement descriptor that appears on the customer's
320
   * statement. If the account has no prefix value, the suffix is concatenated to the account's
321
   * statement descriptor.
322
   */
323
  @SerializedName("statement_descriptor_suffix")
324
  String statementDescriptorSuffix;
325

326
  /**
327
   * The status of the payment is either {@code succeeded}, {@code pending}, or {@code failed}.
328
   *
329
   * <p>One of {@code failed}, {@code pending}, or {@code succeeded}.
330
   */
331
  @SerializedName("status")
332
  String status;
333

334
  /**
335
   * ID of the transfer to the {@code destination} account (only applicable if the charge was
336
   * created using the {@code destination} parameter).
337
   */
338
  @SerializedName("transfer")
339
  @Getter(lombok.AccessLevel.NONE)
340
  @Setter(lombok.AccessLevel.NONE)
341
  ExpandableField<Transfer> transfer;
342

343
  /**
344
   * An optional dictionary including the account to automatically transfer to as part of a
345
   * destination charge. <a href="https://stripe.com/docs/connect/destination-charges">See the
346
   * Connect documentation</a> for details.
347
   */
348
  @SerializedName("transfer_data")
349
  TransferData transferData;
350

351
  /**
352
   * A string that identifies this transaction as part of a group. See the <a
353
   * href="https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options">Connect
354
   * documentation</a> for details.
355
   */
356
  @SerializedName("transfer_group")
357
  String transferGroup;
358

359
  /** Get ID of expandable {@code application} object. */
360
  public String getApplication() {
361
    return (this.application != null) ? this.application.getId() : null;
1✔
362
  }
363

364
  public void setApplication(String id) {
365
    this.application = ApiResource.setExpandableFieldId(id, this.application);
×
366
  }
×
367

368
  /** Get expanded {@code application}. */
369
  public Application getApplicationObject() {
370
    return (this.application != null) ? this.application.getExpanded() : null;
1✔
371
  }
372

373
  public void setApplicationObject(Application expandableObject) {
374
    this.application = new ExpandableField<Application>(expandableObject.getId(), expandableObject);
×
375
  }
×
376

377
  /** Get ID of expandable {@code applicationFee} object. */
378
  public String getApplicationFee() {
379
    return (this.applicationFee != null) ? this.applicationFee.getId() : null;
×
380
  }
381

382
  public void setApplicationFee(String id) {
383
    this.applicationFee = ApiResource.setExpandableFieldId(id, this.applicationFee);
×
384
  }
×
385

386
  /** Get expanded {@code applicationFee}. */
387
  public ApplicationFee getApplicationFeeObject() {
388
    return (this.applicationFee != null) ? this.applicationFee.getExpanded() : null;
1✔
389
  }
390

391
  public void setApplicationFeeObject(ApplicationFee expandableObject) {
392
    this.applicationFee =
×
393
        new ExpandableField<ApplicationFee>(expandableObject.getId(), expandableObject);
×
394
  }
×
395

396
  /** Get ID of expandable {@code balanceTransaction} object. */
397
  public String getBalanceTransaction() {
398
    return (this.balanceTransaction != null) ? this.balanceTransaction.getId() : null;
1✔
399
  }
400

401
  public void setBalanceTransaction(String id) {
402
    this.balanceTransaction = ApiResource.setExpandableFieldId(id, this.balanceTransaction);
×
403
  }
×
404

405
  /** Get expanded {@code balanceTransaction}. */
406
  public BalanceTransaction getBalanceTransactionObject() {
407
    return (this.balanceTransaction != null) ? this.balanceTransaction.getExpanded() : null;
1✔
408
  }
409

410
  public void setBalanceTransactionObject(BalanceTransaction expandableObject) {
411
    this.balanceTransaction =
×
412
        new ExpandableField<BalanceTransaction>(expandableObject.getId(), expandableObject);
×
413
  }
×
414

415
  /** Get ID of expandable {@code customer} object. */
416
  public String getCustomer() {
417
    return (this.customer != null) ? this.customer.getId() : null;
1✔
418
  }
419

420
  public void setCustomer(String id) {
421
    this.customer = ApiResource.setExpandableFieldId(id, this.customer);
×
422
  }
×
423

424
  /** Get expanded {@code customer}. */
425
  public Customer getCustomerObject() {
426
    return (this.customer != null) ? this.customer.getExpanded() : null;
1✔
427
  }
428

429
  public void setCustomerObject(Customer expandableObject) {
430
    this.customer = new ExpandableField<Customer>(expandableObject.getId(), expandableObject);
×
431
  }
×
432

433
  /** Get ID of expandable {@code failureBalanceTransaction} object. */
434
  public String getFailureBalanceTransaction() {
435
    return (this.failureBalanceTransaction != null) ? this.failureBalanceTransaction.getId() : null;
×
436
  }
437

438
  public void setFailureBalanceTransaction(String id) {
439
    this.failureBalanceTransaction =
×
440
        ApiResource.setExpandableFieldId(id, this.failureBalanceTransaction);
×
441
  }
×
442

443
  /** Get expanded {@code failureBalanceTransaction}. */
444
  public BalanceTransaction getFailureBalanceTransactionObject() {
445
    return (this.failureBalanceTransaction != null)
×
446
        ? this.failureBalanceTransaction.getExpanded()
×
447
        : null;
×
448
  }
449

450
  public void setFailureBalanceTransactionObject(BalanceTransaction expandableObject) {
451
    this.failureBalanceTransaction =
×
452
        new ExpandableField<BalanceTransaction>(expandableObject.getId(), expandableObject);
×
453
  }
×
454

455
  /** Get ID of expandable {@code invoice} object. */
456
  public String getInvoice() {
457
    return (this.invoice != null) ? this.invoice.getId() : null;
1✔
458
  }
459

460
  public void setInvoice(String id) {
461
    this.invoice = ApiResource.setExpandableFieldId(id, this.invoice);
×
462
  }
×
463

464
  /** Get expanded {@code invoice}. */
465
  public Invoice getInvoiceObject() {
466
    return (this.invoice != null) ? this.invoice.getExpanded() : null;
1✔
467
  }
468

469
  public void setInvoiceObject(Invoice expandableObject) {
470
    this.invoice = new ExpandableField<Invoice>(expandableObject.getId(), expandableObject);
×
471
  }
×
472

473
  /** Get ID of expandable {@code onBehalfOf} object. */
474
  public String getOnBehalfOf() {
475
    return (this.onBehalfOf != null) ? this.onBehalfOf.getId() : null;
1✔
476
  }
477

478
  public void setOnBehalfOf(String id) {
479
    this.onBehalfOf = ApiResource.setExpandableFieldId(id, this.onBehalfOf);
×
480
  }
×
481

482
  /** Get expanded {@code onBehalfOf}. */
483
  public Account getOnBehalfOfObject() {
484
    return (this.onBehalfOf != null) ? this.onBehalfOf.getExpanded() : null;
1✔
485
  }
486

487
  public void setOnBehalfOfObject(Account expandableObject) {
488
    this.onBehalfOf = new ExpandableField<Account>(expandableObject.getId(), expandableObject);
×
489
  }
×
490

491
  /** Get ID of expandable {@code paymentIntent} object. */
492
  public String getPaymentIntent() {
493
    return (this.paymentIntent != null) ? this.paymentIntent.getId() : null;
×
494
  }
495

496
  public void setPaymentIntent(String id) {
497
    this.paymentIntent = ApiResource.setExpandableFieldId(id, this.paymentIntent);
×
498
  }
×
499

500
  /** Get expanded {@code paymentIntent}. */
501
  public PaymentIntent getPaymentIntentObject() {
502
    return (this.paymentIntent != null) ? this.paymentIntent.getExpanded() : null;
×
503
  }
504

505
  public void setPaymentIntentObject(PaymentIntent expandableObject) {
506
    this.paymentIntent =
×
507
        new ExpandableField<PaymentIntent>(expandableObject.getId(), expandableObject);
×
508
  }
×
509

510
  /** Get ID of expandable {@code review} object. */
511
  public String getReview() {
512
    return (this.review != null) ? this.review.getId() : null;
1✔
513
  }
514

515
  public void setReview(String id) {
516
    this.review = ApiResource.setExpandableFieldId(id, this.review);
×
517
  }
×
518

519
  /** Get expanded {@code review}. */
520
  public Review getReviewObject() {
521
    return (this.review != null) ? this.review.getExpanded() : null;
1✔
522
  }
523

524
  public void setReviewObject(Review expandableObject) {
525
    this.review = new ExpandableField<Review>(expandableObject.getId(), expandableObject);
×
526
  }
×
527

528
  /** Get ID of expandable {@code sourceTransfer} object. */
529
  public String getSourceTransfer() {
530
    return (this.sourceTransfer != null) ? this.sourceTransfer.getId() : null;
1✔
531
  }
532

533
  public void setSourceTransfer(String id) {
534
    this.sourceTransfer = ApiResource.setExpandableFieldId(id, this.sourceTransfer);
×
535
  }
×
536

537
  /** Get expanded {@code sourceTransfer}. */
538
  public Transfer getSourceTransferObject() {
539
    return (this.sourceTransfer != null) ? this.sourceTransfer.getExpanded() : null;
1✔
540
  }
541

542
  public void setSourceTransferObject(Transfer expandableObject) {
543
    this.sourceTransfer = new ExpandableField<Transfer>(expandableObject.getId(), expandableObject);
×
544
  }
×
545

546
  /** Get ID of expandable {@code transfer} object. */
547
  public String getTransfer() {
548
    return (this.transfer != null) ? this.transfer.getId() : null;
1✔
549
  }
550

551
  public void setTransfer(String id) {
552
    this.transfer = ApiResource.setExpandableFieldId(id, this.transfer);
×
553
  }
×
554

555
  /** Get expanded {@code transfer}. */
556
  public Transfer getTransferObject() {
557
    return (this.transfer != null) ? this.transfer.getExpanded() : null;
1✔
558
  }
559

560
  public void setTransferObject(Transfer expandableObject) {
561
    this.transfer = new ExpandableField<Transfer>(expandableObject.getId(), expandableObject);
×
562
  }
×
563

564
  /**
565
   * Capture the payment of an existing, uncaptured charge that was created with the {@code capture}
566
   * option set to false.
567
   *
568
   * <p>Uncaptured payments expire a set number of days after they are created (<a
569
   * href="https://stripe.com/docs/charges/placing-a-hold">7 by default</a>), after which they are
570
   * marked as refunded and capture attempts will fail.
571
   *
572
   * <p>Don’t use this method to capture a PaymentIntent-initiated charge. Use <a
573
   * href="https://stripe.com/docs/api/payment_intents/capture">Capture a PaymentIntent</a>.
574
   */
575
  public Charge capture() throws StripeException {
576
    return capture((Map<String, Object>) null, (RequestOptions) null);
×
577
  }
578

579
  /**
580
   * Capture the payment of an existing, uncaptured charge that was created with the {@code capture}
581
   * option set to false.
582
   *
583
   * <p>Uncaptured payments expire a set number of days after they are created (<a
584
   * href="https://stripe.com/docs/charges/placing-a-hold">7 by default</a>), after which they are
585
   * marked as refunded and capture attempts will fail.
586
   *
587
   * <p>Don’t use this method to capture a PaymentIntent-initiated charge. Use <a
588
   * href="https://stripe.com/docs/api/payment_intents/capture">Capture a PaymentIntent</a>.
589
   */
590
  public Charge capture(RequestOptions options) throws StripeException {
591
    return capture((Map<String, Object>) null, options);
×
592
  }
593

594
  /**
595
   * Capture the payment of an existing, uncaptured charge that was created with the {@code capture}
596
   * option set to false.
597
   *
598
   * <p>Uncaptured payments expire a set number of days after they are created (<a
599
   * href="https://stripe.com/docs/charges/placing-a-hold">7 by default</a>), after which they are
600
   * marked as refunded and capture attempts will fail.
601
   *
602
   * <p>Don’t use this method to capture a PaymentIntent-initiated charge. Use <a
603
   * href="https://stripe.com/docs/api/payment_intents/capture">Capture a PaymentIntent</a>.
604
   */
605
  public Charge capture(Map<String, Object> params) throws StripeException {
606
    return capture(params, (RequestOptions) null);
×
607
  }
608

609
  /**
610
   * Capture the payment of an existing, uncaptured charge that was created with the {@code capture}
611
   * option set to false.
612
   *
613
   * <p>Uncaptured payments expire a set number of days after they are created (<a
614
   * href="https://stripe.com/docs/charges/placing-a-hold">7 by default</a>), after which they are
615
   * marked as refunded and capture attempts will fail.
616
   *
617
   * <p>Don’t use this method to capture a PaymentIntent-initiated charge. Use <a
618
   * href="https://stripe.com/docs/api/payment_intents/capture">Capture a PaymentIntent</a>.
619
   */
620
  public Charge capture(Map<String, Object> params, RequestOptions options) throws StripeException {
621
    String path = String.format("/v1/charges/%s/capture", ApiResource.urlEncodeId(this.getId()));
×
622
    ApiRequest request =
×
623
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
624
    return getResponseGetter().request(request, Charge.class);
×
625
  }
626

627
  /**
628
   * Capture the payment of an existing, uncaptured charge that was created with the {@code capture}
629
   * option set to false.
630
   *
631
   * <p>Uncaptured payments expire a set number of days after they are created (<a
632
   * href="https://stripe.com/docs/charges/placing-a-hold">7 by default</a>), after which they are
633
   * marked as refunded and capture attempts will fail.
634
   *
635
   * <p>Don’t use this method to capture a PaymentIntent-initiated charge. Use <a
636
   * href="https://stripe.com/docs/api/payment_intents/capture">Capture a PaymentIntent</a>.
637
   */
638
  public Charge capture(ChargeCaptureParams params) throws StripeException {
639
    return capture(params, (RequestOptions) null);
1✔
640
  }
641

642
  /**
643
   * Capture the payment of an existing, uncaptured charge that was created with the {@code capture}
644
   * option set to false.
645
   *
646
   * <p>Uncaptured payments expire a set number of days after they are created (<a
647
   * href="https://stripe.com/docs/charges/placing-a-hold">7 by default</a>), after which they are
648
   * marked as refunded and capture attempts will fail.
649
   *
650
   * <p>Don’t use this method to capture a PaymentIntent-initiated charge. Use <a
651
   * href="https://stripe.com/docs/api/payment_intents/capture">Capture a PaymentIntent</a>.
652
   */
653
  public Charge capture(ChargeCaptureParams params, RequestOptions options) throws StripeException {
654
    String path = String.format("/v1/charges/%s/capture", ApiResource.urlEncodeId(this.getId()));
1✔
655
    ApiResource.checkNullTypedParams(path, params);
1✔
656
    ApiRequest request =
1✔
657
        new ApiRequest(
658
            BaseAddress.API,
659
            ApiResource.RequestMethod.POST,
660
            path,
661
            ApiRequestParams.paramsToMap(params),
1✔
662
            options);
663
    return getResponseGetter().request(request, Charge.class);
1✔
664
  }
665

666
  /**
667
   * This method is no longer recommended—use the <a
668
   * href="https://stripe.com/docs/api/payment_intents">Payment Intents API</a> to initiate a new
669
   * payment instead. Confirmation of the PaymentIntent creates the {@code Charge} object used to
670
   * request payment.
671
   */
672
  public static Charge create(Map<String, Object> params) throws StripeException {
673
    return create(params, (RequestOptions) null);
1✔
674
  }
675

676
  /**
677
   * This method is no longer recommended—use the <a
678
   * href="https://stripe.com/docs/api/payment_intents">Payment Intents API</a> to initiate a new
679
   * payment instead. Confirmation of the PaymentIntent creates the {@code Charge} object used to
680
   * request payment.
681
   */
682
  public static Charge create(Map<String, Object> params, RequestOptions options)
683
      throws StripeException {
684
    String path = "/v1/charges";
1✔
685
    ApiRequest request =
1✔
686
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
687
    return getGlobalResponseGetter().request(request, Charge.class);
1✔
688
  }
689

690
  /**
691
   * This method is no longer recommended—use the <a
692
   * href="https://stripe.com/docs/api/payment_intents">Payment Intents API</a> to initiate a new
693
   * payment instead. Confirmation of the PaymentIntent creates the {@code Charge} object used to
694
   * request payment.
695
   */
696
  public static Charge create(ChargeCreateParams params) throws StripeException {
697
    return create(params, (RequestOptions) null);
1✔
698
  }
699

700
  /**
701
   * This method is no longer recommended—use the <a
702
   * href="https://stripe.com/docs/api/payment_intents">Payment Intents API</a> to initiate a new
703
   * payment instead. Confirmation of the PaymentIntent creates the {@code Charge} object used to
704
   * request payment.
705
   */
706
  public static Charge create(ChargeCreateParams params, RequestOptions options)
707
      throws StripeException {
708
    String path = "/v1/charges";
1✔
709
    ApiResource.checkNullTypedParams(path, params);
1✔
710
    ApiRequest request =
1✔
711
        new ApiRequest(
712
            BaseAddress.API,
713
            ApiResource.RequestMethod.POST,
714
            path,
715
            ApiRequestParams.paramsToMap(params),
1✔
716
            options);
717
    return getGlobalResponseGetter().request(request, Charge.class);
1✔
718
  }
719

720
  /**
721
   * Returns a list of charges you’ve previously created. The charges are returned in sorted order,
722
   * with the most recent charges appearing first.
723
   */
724
  public static ChargeCollection list(Map<String, Object> params) throws StripeException {
725
    return list(params, (RequestOptions) null);
1✔
726
  }
727

728
  /**
729
   * Returns a list of charges you’ve previously created. The charges are returned in sorted order,
730
   * with the most recent charges appearing first.
731
   */
732
  public static ChargeCollection list(Map<String, Object> params, RequestOptions options)
733
      throws StripeException {
734
    String path = "/v1/charges";
1✔
735
    ApiRequest request =
1✔
736
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.GET, path, params, options);
737
    return getGlobalResponseGetter().request(request, ChargeCollection.class);
1✔
738
  }
739

740
  /**
741
   * Returns a list of charges you’ve previously created. The charges are returned in sorted order,
742
   * with the most recent charges appearing first.
743
   */
744
  public static ChargeCollection list(ChargeListParams params) throws StripeException {
745
    return list(params, (RequestOptions) null);
1✔
746
  }
747

748
  /**
749
   * Returns a list of charges you’ve previously created. The charges are returned in sorted order,
750
   * with the most recent charges appearing first.
751
   */
752
  public static ChargeCollection list(ChargeListParams params, RequestOptions options)
753
      throws StripeException {
754
    String path = "/v1/charges";
1✔
755
    ApiResource.checkNullTypedParams(path, params);
1✔
756
    ApiRequest request =
1✔
757
        new ApiRequest(
758
            BaseAddress.API,
759
            ApiResource.RequestMethod.GET,
760
            path,
761
            ApiRequestParams.paramsToMap(params),
1✔
762
            options);
763
    return getGlobalResponseGetter().request(request, ChargeCollection.class);
1✔
764
  }
765

766
  /**
767
   * Retrieves the details of a charge that has previously been created. Supply the unique charge ID
768
   * that was returned from your previous request, and Stripe will return the corresponding charge
769
   * information. The same information is returned when creating or refunding the charge.
770
   */
771
  public static Charge retrieve(String charge) throws StripeException {
772
    return retrieve(charge, (Map<String, Object>) null, (RequestOptions) null);
1✔
773
  }
774

775
  /**
776
   * Retrieves the details of a charge that has previously been created. Supply the unique charge ID
777
   * that was returned from your previous request, and Stripe will return the corresponding charge
778
   * information. The same information is returned when creating or refunding the charge.
779
   */
780
  public static Charge retrieve(String charge, RequestOptions options) throws StripeException {
781
    return retrieve(charge, (Map<String, Object>) null, options);
×
782
  }
783

784
  /**
785
   * Retrieves the details of a charge that has previously been created. Supply the unique charge ID
786
   * that was returned from your previous request, and Stripe will return the corresponding charge
787
   * information. The same information is returned when creating or refunding the charge.
788
   */
789
  public static Charge retrieve(String charge, Map<String, Object> params, RequestOptions options)
790
      throws StripeException {
791
    String path = String.format("/v1/charges/%s", ApiResource.urlEncodeId(charge));
1✔
792
    ApiRequest request =
1✔
793
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.GET, path, params, options);
794
    return getGlobalResponseGetter().request(request, Charge.class);
1✔
795
  }
796

797
  /**
798
   * Retrieves the details of a charge that has previously been created. Supply the unique charge ID
799
   * that was returned from your previous request, and Stripe will return the corresponding charge
800
   * information. The same information is returned when creating or refunding the charge.
801
   */
802
  public static Charge retrieve(String charge, ChargeRetrieveParams params, RequestOptions options)
803
      throws StripeException {
804
    String path = String.format("/v1/charges/%s", ApiResource.urlEncodeId(charge));
×
805
    ApiResource.checkNullTypedParams(path, params);
×
806
    ApiRequest request =
×
807
        new ApiRequest(
808
            BaseAddress.API,
809
            ApiResource.RequestMethod.GET,
810
            path,
811
            ApiRequestParams.paramsToMap(params),
×
812
            options);
813
    return getGlobalResponseGetter().request(request, Charge.class);
×
814
  }
815

816
  /**
817
   * Search for charges you’ve previously created using Stripe’s <a
818
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
819
   * use search in read-after-write flows where strict consistency is necessary. Under normal
820
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
821
   * new or updated data can be up to an hour behind during outages. Search functionality is not
822
   * available to merchants in India.
823
   */
824
  public static ChargeSearchResult search(Map<String, Object> params) throws StripeException {
825
    return search(params, (RequestOptions) null);
×
826
  }
827

828
  /**
829
   * Search for charges you’ve previously created using Stripe’s <a
830
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
831
   * use search in read-after-write flows where strict consistency is necessary. Under normal
832
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
833
   * new or updated data can be up to an hour behind during outages. Search functionality is not
834
   * available to merchants in India.
835
   */
836
  public static ChargeSearchResult search(Map<String, Object> params, RequestOptions options)
837
      throws StripeException {
838
    String path = "/v1/charges/search";
×
839
    ApiRequest request =
×
840
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.GET, path, params, options);
841
    return getGlobalResponseGetter().request(request, ChargeSearchResult.class);
×
842
  }
843

844
  /**
845
   * Search for charges you’ve previously created using Stripe’s <a
846
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
847
   * use search in read-after-write flows where strict consistency is necessary. Under normal
848
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
849
   * new or updated data can be up to an hour behind during outages. Search functionality is not
850
   * available to merchants in India.
851
   */
852
  public static ChargeSearchResult search(ChargeSearchParams params) throws StripeException {
853
    return search(params, (RequestOptions) null);
1✔
854
  }
855

856
  /**
857
   * Search for charges you’ve previously created using Stripe’s <a
858
   * href="https://stripe.com/docs/search#search-query-language">Search Query Language</a>. Don’t
859
   * use search in read-after-write flows where strict consistency is necessary. Under normal
860
   * operating conditions, data is searchable in less than a minute. Occasionally, propagation of
861
   * new or updated data can be up to an hour behind during outages. Search functionality is not
862
   * available to merchants in India.
863
   */
864
  public static ChargeSearchResult search(ChargeSearchParams params, RequestOptions options)
865
      throws StripeException {
866
    String path = "/v1/charges/search";
1✔
867
    ApiResource.checkNullTypedParams(path, params);
1✔
868
    ApiRequest request =
1✔
869
        new ApiRequest(
870
            BaseAddress.API,
871
            ApiResource.RequestMethod.GET,
872
            path,
873
            ApiRequestParams.paramsToMap(params),
1✔
874
            options);
875
    return getGlobalResponseGetter().request(request, ChargeSearchResult.class);
1✔
876
  }
877

878
  /**
879
   * Updates the specified charge by setting the values of the parameters passed. Any parameters not
880
   * provided will be left unchanged.
881
   */
882
  @Override
883
  public Charge update(Map<String, Object> params) throws StripeException {
884
    return update(params, (RequestOptions) null);
1✔
885
  }
886

887
  /**
888
   * Updates the specified charge by setting the values of the parameters passed. Any parameters not
889
   * provided will be left unchanged.
890
   */
891
  @Override
892
  public Charge update(Map<String, Object> params, RequestOptions options) throws StripeException {
893
    String path = String.format("/v1/charges/%s", ApiResource.urlEncodeId(this.getId()));
1✔
894
    ApiRequest request =
1✔
895
        new ApiRequest(BaseAddress.API, ApiResource.RequestMethod.POST, path, params, options);
896
    return getResponseGetter().request(request, Charge.class);
1✔
897
  }
898

899
  /**
900
   * Updates the specified charge by setting the values of the parameters passed. Any parameters not
901
   * provided will be left unchanged.
902
   */
903
  public Charge update(ChargeUpdateParams params) throws StripeException {
904
    return update(params, (RequestOptions) null);
1✔
905
  }
906

907
  /**
908
   * Updates the specified charge by setting the values of the parameters passed. Any parameters not
909
   * provided will be left unchanged.
910
   */
911
  public Charge update(ChargeUpdateParams params, RequestOptions options) throws StripeException {
912
    String path = String.format("/v1/charges/%s", ApiResource.urlEncodeId(this.getId()));
1✔
913
    ApiResource.checkNullTypedParams(path, params);
1✔
914
    ApiRequest request =
1✔
915
        new ApiRequest(
916
            BaseAddress.API,
917
            ApiResource.RequestMethod.POST,
918
            path,
919
            ApiRequestParams.paramsToMap(params),
1✔
920
            options);
921
    return getResponseGetter().request(request, Charge.class);
1✔
922
  }
923

924
  /**
925
   * For more details about BillingDetails, please refer to the <a
926
   * href="https://docs.stripe.com/api">API Reference.</a>
927
   */
928
  @Getter
929
  @Setter
930
  @EqualsAndHashCode(callSuper = false)
931
  public static class BillingDetails extends StripeObject {
1✔
932
    /** Billing address. */
933
    @SerializedName("address")
934
    com.stripe.model.Address address;
935

936
    /** Email address. */
937
    @SerializedName("email")
938
    String email;
939

940
    /** Full name. */
941
    @SerializedName("name")
942
    String name;
943

944
    /** Billing phone number (including extension). */
945
    @SerializedName("phone")
946
    String phone;
947
  }
948

949
  /**
950
   * For more details about FraudDetails, please refer to the <a
951
   * href="https://docs.stripe.com/api">API Reference.</a>
952
   */
953
  @Getter
954
  @Setter
955
  @EqualsAndHashCode(callSuper = false)
956
  public static class FraudDetails extends StripeObject {
1✔
957
    /** Assessments from Stripe. If set, the value is {@code fraudulent}. */
958
    @SerializedName("stripe_report")
959
    String stripeReport;
960

961
    /**
962
     * Assessments reported by you. If set, possible values of are {@code safe} and {@code
963
     * fraudulent}.
964
     */
965
    @SerializedName("user_report")
966
    String userReport;
967
  }
968

969
  /**
970
   * For more details about Level3, please refer to the <a href="https://docs.stripe.com/api">API
971
   * Reference.</a>
972
   */
973
  @Getter
974
  @Setter
975
  @EqualsAndHashCode(callSuper = false)
976
  public static class Level3 extends StripeObject {
1✔
977
    @SerializedName("customer_reference")
978
    String customerReference;
979

980
    @SerializedName("line_items")
981
    List<Charge.Level3.LineItem> lineItems;
982

983
    @SerializedName("merchant_reference")
984
    String merchantReference;
985

986
    @SerializedName("shipping_address_zip")
987
    String shippingAddressZip;
988

989
    @SerializedName("shipping_amount")
990
    Long shippingAmount;
991

992
    @SerializedName("shipping_from_zip")
993
    String shippingFromZip;
994

995
    /**
996
     * For more details about LineItem, please refer to the <a
997
     * href="https://docs.stripe.com/api">API Reference.</a>
998
     */
999
    @Getter
1000
    @Setter
1001
    @EqualsAndHashCode(callSuper = false)
1002
    public static class LineItem extends StripeObject {
1✔
1003
      @SerializedName("discount_amount")
1004
      Long discountAmount;
1005

1006
      @SerializedName("product_code")
1007
      String productCode;
1008

1009
      @SerializedName("product_description")
1010
      String productDescription;
1011

1012
      @SerializedName("quantity")
1013
      Long quantity;
1014

1015
      @SerializedName("tax_amount")
1016
      Long taxAmount;
1017

1018
      @SerializedName("unit_cost")
1019
      Long unitCost;
1020
    }
1021
  }
1022

1023
  /**
1024
   * For more details about Outcome, please refer to the <a href="https://docs.stripe.com/api">API
1025
   * Reference.</a>
1026
   */
1027
  @Getter
1028
  @Setter
1029
  @EqualsAndHashCode(callSuper = false)
1030
  public static class Outcome extends StripeObject {
1✔
1031
    /**
1032
     * Possible values are {@code approved_by_network}, {@code declined_by_network}, {@code
1033
     * not_sent_to_network}, and {@code reversed_after_approval}. The value {@code
1034
     * reversed_after_approval} indicates the payment was <a
1035
     * href="https://stripe.com/docs/declines#blocked-payments">blocked by Stripe</a> after bank
1036
     * authorization, and may temporarily appear as &quot;pending&quot; on a cardholder's statement.
1037
     */
1038
    @SerializedName("network_status")
1039
    String networkStatus;
1040

1041
    /**
1042
     * An enumerated value providing a more detailed explanation of the outcome's {@code type}.
1043
     * Charges blocked by Radar's default block rule have the value {@code highest_risk_level}.
1044
     * Charges placed in review by Radar's default review rule have the value {@code
1045
     * elevated_risk_level}. Charges authorized, blocked, or placed in review by custom rules have
1046
     * the value {@code rule}. See <a href="https://stripe.com/docs/declines">understanding
1047
     * declines</a> for more details.
1048
     */
1049
    @SerializedName("reason")
1050
    String reason;
1051

1052
    /**
1053
     * Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated
1054
     * payments are {@code normal}, {@code elevated}, {@code highest}. For non-card payments, and
1055
     * card-based payments predating the public assignment of risk levels, this field will have the
1056
     * value {@code not_assessed}. In the event of an error in the evaluation, this field will have
1057
     * the value {@code unknown}. This field is only available with Radar.
1058
     */
1059
    @SerializedName("risk_level")
1060
    String riskLevel;
1061

1062
    /**
1063
     * Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated
1064
     * payments are between 0 and 100. For non-card payments, card-based payments predating the
1065
     * public assignment of risk scores, or in the event of an error during evaluation, this field
1066
     * will not be present. This field is only available with Radar for Fraud Teams.
1067
     */
1068
    @SerializedName("risk_score")
1069
    Long riskScore;
1070

1071
    /** The ID of the Radar rule that matched the payment, if applicable. */
1072
    @SerializedName("rule")
1073
    @Getter(lombok.AccessLevel.NONE)
1074
    @Setter(lombok.AccessLevel.NONE)
1075
    ExpandableField<Rule> rule;
1076

1077
    /**
1078
     * A human-readable description of the outcome type and reason, designed for you (the recipient
1079
     * of the payment), not your customer.
1080
     */
1081
    @SerializedName("seller_message")
1082
    String sellerMessage;
1083

1084
    /**
1085
     * Possible values are {@code authorized}, {@code manual_review}, {@code issuer_declined},
1086
     * {@code blocked}, and {@code invalid}. See <a
1087
     * href="https://stripe.com/docs/declines">understanding declines</a> and <a
1088
     * href="https://stripe.com/docs/radar/reviews">Radar reviews</a> for details.
1089
     */
1090
    @SerializedName("type")
1091
    String type;
1092

1093
    /** Get ID of expandable {@code rule} object. */
1094
    public String getRule() {
1095
      return (this.rule != null) ? this.rule.getId() : null;
×
1096
    }
1097

1098
    public void setRule(String id) {
1099
      this.rule = ApiResource.setExpandableFieldId(id, this.rule);
×
1100
    }
×
1101

1102
    /** Get expanded {@code rule}. */
1103
    public Rule getRuleObject() {
1104
      return (this.rule != null) ? this.rule.getExpanded() : null;
×
1105
    }
1106

1107
    public void setRuleObject(Rule expandableObject) {
1108
      this.rule = new ExpandableField<Rule>(expandableObject.getId(), expandableObject);
×
1109
    }
×
1110

1111
    /**
1112
     * For more details about Rule, please refer to the <a href="https://docs.stripe.com/api">API
1113
     * Reference.</a>
1114
     */
1115
    @Getter
1116
    @Setter
1117
    @EqualsAndHashCode(callSuper = false)
1118
    public static class Rule extends StripeObject implements HasId {
×
1119
      /** The action taken on the payment. */
1120
      @SerializedName("action")
1121
      String action;
1122

1123
      /** Unique identifier for the object. */
1124
      @Getter(onMethod_ = {@Override})
1125
      @SerializedName("id")
1126
      String id;
1127

1128
      /** The predicate to evaluate the payment against. */
1129
      @SerializedName("predicate")
1130
      String predicate;
1131
    }
1132
  }
1133

1134
  /**
1135
   * For more details about PaymentMethodDetails, please refer to the <a
1136
   * href="https://docs.stripe.com/api">API Reference.</a>
1137
   */
1138
  @Getter
1139
  @Setter
1140
  @EqualsAndHashCode(callSuper = false)
1141
  public static class PaymentMethodDetails extends StripeObject {
1✔
1142
    @SerializedName("ach_credit_transfer")
1143
    AchCreditTransfer achCreditTransfer;
1144

1145
    @SerializedName("ach_debit")
1146
    AchDebit achDebit;
1147

1148
    @SerializedName("acss_debit")
1149
    AcssDebit acssDebit;
1150

1151
    @SerializedName("affirm")
1152
    Affirm affirm;
1153

1154
    @SerializedName("afterpay_clearpay")
1155
    AfterpayClearpay afterpayClearpay;
1156

1157
    @SerializedName("alipay")
1158
    Alipay alipay;
1159

1160
    @SerializedName("alma")
1161
    Alma alma;
1162

1163
    @SerializedName("amazon_pay")
1164
    AmazonPay amazonPay;
1165

1166
    @SerializedName("au_becs_debit")
1167
    AuBecsDebit auBecsDebit;
1168

1169
    @SerializedName("bacs_debit")
1170
    BacsDebit bacsDebit;
1171

1172
    @SerializedName("bancontact")
1173
    Bancontact bancontact;
1174

1175
    @SerializedName("blik")
1176
    Blik blik;
1177

1178
    @SerializedName("boleto")
1179
    Boleto boleto;
1180

1181
    @SerializedName("card")
1182
    Card card;
1183

1184
    @SerializedName("card_present")
1185
    CardPresent cardPresent;
1186

1187
    @SerializedName("cashapp")
1188
    Cashapp cashapp;
1189

1190
    @SerializedName("customer_balance")
1191
    CustomerBalance customerBalance;
1192

1193
    @SerializedName("eps")
1194
    Eps eps;
1195

1196
    @SerializedName("fpx")
1197
    Fpx fpx;
1198

1199
    @SerializedName("giropay")
1200
    Giropay giropay;
1201

1202
    @SerializedName("gopay")
1203
    Gopay gopay;
1204

1205
    @SerializedName("grabpay")
1206
    Grabpay grabpay;
1207

1208
    @SerializedName("id_bank_transfer")
1209
    IdBankTransfer idBankTransfer;
1210

1211
    @SerializedName("ideal")
1212
    Ideal ideal;
1213

1214
    @SerializedName("interac_present")
1215
    InteracPresent interacPresent;
1216

1217
    @SerializedName("kakao_pay")
1218
    KakaoPay kakaoPay;
1219

1220
    @SerializedName("klarna")
1221
    Klarna klarna;
1222

1223
    @SerializedName("konbini")
1224
    Konbini konbini;
1225

1226
    @SerializedName("kr_card")
1227
    KrCard krCard;
1228

1229
    @SerializedName("link")
1230
    Link link;
1231

1232
    @SerializedName("mb_way")
1233
    MbWay mbWay;
1234

1235
    @SerializedName("mobilepay")
1236
    Mobilepay mobilepay;
1237

1238
    @SerializedName("multibanco")
1239
    Multibanco multibanco;
1240

1241
    @SerializedName("naver_pay")
1242
    NaverPay naverPay;
1243

1244
    @SerializedName("oxxo")
1245
    Oxxo oxxo;
1246

1247
    @SerializedName("p24")
1248
    P24 p24;
1249

1250
    @SerializedName("payco")
1251
    Payco payco;
1252

1253
    @SerializedName("paynow")
1254
    Paynow paynow;
1255

1256
    @SerializedName("paypal")
1257
    Paypal paypal;
1258

1259
    @SerializedName("payto")
1260
    Payto payto;
1261

1262
    @SerializedName("pix")
1263
    Pix pix;
1264

1265
    @SerializedName("promptpay")
1266
    Promptpay promptpay;
1267

1268
    @SerializedName("qris")
1269
    Qris qris;
1270

1271
    @SerializedName("rechnung")
1272
    Rechnung rechnung;
1273

1274
    @SerializedName("revolut_pay")
1275
    RevolutPay revolutPay;
1276

1277
    @SerializedName("samsung_pay")
1278
    SamsungPay samsungPay;
1279

1280
    @SerializedName("sepa_credit_transfer")
1281
    SepaCreditTransfer sepaCreditTransfer;
1282

1283
    @SerializedName("sepa_debit")
1284
    SepaDebit sepaDebit;
1285

1286
    @SerializedName("shopeepay")
1287
    Shopeepay shopeepay;
1288

1289
    @SerializedName("sofort")
1290
    Sofort sofort;
1291

1292
    @SerializedName("stripe_account")
1293
    StripeAccount stripeAccount;
1294

1295
    @SerializedName("swish")
1296
    Swish swish;
1297

1298
    @SerializedName("twint")
1299
    Twint twint;
1300

1301
    /**
1302
     * The type of transaction-specific details of the payment method used in the payment, one of
1303
     * {@code ach_credit_transfer}, {@code ach_debit}, {@code acss_debit}, {@code alipay}, {@code
1304
     * au_becs_debit}, {@code bancontact}, {@code card}, {@code card_present}, {@code eps}, {@code
1305
     * giropay}, {@code ideal}, {@code klarna}, {@code multibanco}, {@code p24}, {@code sepa_debit},
1306
     * {@code sofort}, {@code stripe_account}, or {@code wechat}. An additional hash is included on
1307
     * {@code payment_method_details} with a name matching this value. It contains information
1308
     * specific to the payment method.
1309
     */
1310
    @SerializedName("type")
1311
    String type;
1312

1313
    @SerializedName("us_bank_account")
1314
    UsBankAccount usBankAccount;
1315

1316
    @SerializedName("wechat")
1317
    Wechat wechat;
1318

1319
    @SerializedName("wechat_pay")
1320
    WechatPay wechatPay;
1321

1322
    @SerializedName("zip")
1323
    Zip zip;
1324

1325
    /**
1326
     * For more details about AchCreditTransfer, please refer to the <a
1327
     * href="https://docs.stripe.com/api">API Reference.</a>
1328
     */
1329
    @Getter
1330
    @Setter
1331
    @EqualsAndHashCode(callSuper = false)
1332
    public static class AchCreditTransfer extends StripeObject {
×
1333
      /** Account number to transfer funds to. */
1334
      @SerializedName("account_number")
1335
      String accountNumber;
1336

1337
      /** Name of the bank associated with the routing number. */
1338
      @SerializedName("bank_name")
1339
      String bankName;
1340

1341
      /** Routing transit number for the bank account to transfer funds to. */
1342
      @SerializedName("routing_number")
1343
      String routingNumber;
1344

1345
      /** SWIFT code of the bank associated with the routing number. */
1346
      @SerializedName("swift_code")
1347
      String swiftCode;
1348
    }
1349

1350
    /**
1351
     * For more details about AchDebit, please refer to the <a
1352
     * href="https://docs.stripe.com/api">API Reference.</a>
1353
     */
1354
    @Getter
1355
    @Setter
1356
    @EqualsAndHashCode(callSuper = false)
1357
    public static class AchDebit extends StripeObject {
×
1358
      /**
1359
       * Type of entity that holds the account. This can be either {@code individual} or {@code
1360
       * company}.
1361
       *
1362
       * <p>One of {@code company}, or {@code individual}.
1363
       */
1364
      @SerializedName("account_holder_type")
1365
      String accountHolderType;
1366

1367
      /** Name of the bank associated with the bank account. */
1368
      @SerializedName("bank_name")
1369
      String bankName;
1370

1371
      /** Two-letter ISO code representing the country the bank account is located in. */
1372
      @SerializedName("country")
1373
      String country;
1374

1375
      /**
1376
       * Uniquely identifies this particular bank account. You can use this attribute to check
1377
       * whether two bank accounts are the same.
1378
       */
1379
      @SerializedName("fingerprint")
1380
      String fingerprint;
1381

1382
      /** Last four digits of the bank account number. */
1383
      @SerializedName("last4")
1384
      String last4;
1385

1386
      /** Routing transit number of the bank account. */
1387
      @SerializedName("routing_number")
1388
      String routingNumber;
1389
    }
1390

1391
    /**
1392
     * For more details about AcssDebit, please refer to the <a
1393
     * href="https://docs.stripe.com/api">API Reference.</a>
1394
     */
1395
    @Getter
1396
    @Setter
1397
    @EqualsAndHashCode(callSuper = false)
1398
    public static class AcssDebit extends StripeObject {
×
1399
      /** Name of the bank associated with the bank account. */
1400
      @SerializedName("bank_name")
1401
      String bankName;
1402

1403
      /**
1404
       * Uniquely identifies this particular bank account. You can use this attribute to check
1405
       * whether two bank accounts are the same.
1406
       */
1407
      @SerializedName("fingerprint")
1408
      String fingerprint;
1409

1410
      /** Institution number of the bank account. */
1411
      @SerializedName("institution_number")
1412
      String institutionNumber;
1413

1414
      /** Last four digits of the bank account number. */
1415
      @SerializedName("last4")
1416
      String last4;
1417

1418
      /** ID of the mandate used to make this payment. */
1419
      @SerializedName("mandate")
1420
      String mandate;
1421

1422
      /** Transit number of the bank account. */
1423
      @SerializedName("transit_number")
1424
      String transitNumber;
1425
    }
1426

1427
    /**
1428
     * For more details about Affirm, please refer to the <a href="https://docs.stripe.com/api">API
1429
     * Reference.</a>
1430
     */
1431
    @Getter
1432
    @Setter
1433
    @EqualsAndHashCode(callSuper = false)
1434
    public static class Affirm extends StripeObject {
×
1435
      /** The Affirm transaction ID associated with this payment. */
1436
      @SerializedName("transaction_id")
1437
      String transactionId;
1438
    }
1439

1440
    /**
1441
     * For more details about AfterpayClearpay, please refer to the <a
1442
     * href="https://docs.stripe.com/api">API Reference.</a>
1443
     */
1444
    @Getter
1445
    @Setter
1446
    @EqualsAndHashCode(callSuper = false)
1447
    public static class AfterpayClearpay extends StripeObject {
×
1448
      /** The Afterpay order ID associated with this payment intent. */
1449
      @SerializedName("order_id")
1450
      String orderId;
1451

1452
      /** Order identifier shown to the merchant in Afterpay’s online portal. */
1453
      @SerializedName("reference")
1454
      String reference;
1455
    }
1456

1457
    /**
1458
     * For more details about Alipay, please refer to the <a href="https://docs.stripe.com/api">API
1459
     * Reference.</a>
1460
     */
1461
    @Getter
1462
    @Setter
1463
    @EqualsAndHashCode(callSuper = false)
1464
    public static class Alipay extends StripeObject {
×
1465
      /**
1466
       * Uniquely identifies this particular Alipay account. You can use this attribute to check
1467
       * whether two Alipay accounts are the same.
1468
       */
1469
      @SerializedName("buyer_id")
1470
      String buyerId;
1471

1472
      /**
1473
       * Uniquely identifies this particular Alipay account. You can use this attribute to check
1474
       * whether two Alipay accounts are the same.
1475
       */
1476
      @SerializedName("fingerprint")
1477
      String fingerprint;
1478

1479
      /** Transaction ID of this particular Alipay transaction. */
1480
      @SerializedName("transaction_id")
1481
      String transactionId;
1482
    }
1483

1484
    /**
1485
     * For more details about Alma, please refer to the <a href="https://docs.stripe.com/api">API
1486
     * Reference.</a>
1487
     */
1488
    @Getter
1489
    @Setter
1490
    @EqualsAndHashCode(callSuper = false)
1491
    public static class Alma extends StripeObject {}
×
1492

1493
    /**
1494
     * For more details about AmazonPay, please refer to the <a
1495
     * href="https://docs.stripe.com/api">API Reference.</a>
1496
     */
1497
    @Getter
1498
    @Setter
1499
    @EqualsAndHashCode(callSuper = false)
1500
    public static class AmazonPay extends StripeObject {}
×
1501

1502
    /**
1503
     * For more details about AuBecsDebit, please refer to the <a
1504
     * href="https://docs.stripe.com/api">API Reference.</a>
1505
     */
1506
    @Getter
1507
    @Setter
1508
    @EqualsAndHashCode(callSuper = false)
1509
    public static class AuBecsDebit extends StripeObject {
×
1510
      /** Bank-State-Branch number of the bank account. */
1511
      @SerializedName("bsb_number")
1512
      String bsbNumber;
1513

1514
      /**
1515
       * Uniquely identifies this particular bank account. You can use this attribute to check
1516
       * whether two bank accounts are the same.
1517
       */
1518
      @SerializedName("fingerprint")
1519
      String fingerprint;
1520

1521
      /** Last four digits of the bank account number. */
1522
      @SerializedName("last4")
1523
      String last4;
1524

1525
      /** ID of the mandate used to make this payment. */
1526
      @SerializedName("mandate")
1527
      String mandate;
1528
    }
1529

1530
    /**
1531
     * For more details about BacsDebit, please refer to the <a
1532
     * href="https://docs.stripe.com/api">API Reference.</a>
1533
     */
1534
    @Getter
1535
    @Setter
1536
    @EqualsAndHashCode(callSuper = false)
1537
    public static class BacsDebit extends StripeObject {
×
1538
      /**
1539
       * Uniquely identifies this particular bank account. You can use this attribute to check
1540
       * whether two bank accounts are the same.
1541
       */
1542
      @SerializedName("fingerprint")
1543
      String fingerprint;
1544

1545
      /** Last four digits of the bank account number. */
1546
      @SerializedName("last4")
1547
      String last4;
1548

1549
      /** ID of the mandate used to make this payment. */
1550
      @SerializedName("mandate")
1551
      String mandate;
1552

1553
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1554
      @SerializedName("sort_code")
1555
      String sortCode;
1556
    }
1557

1558
    /**
1559
     * For more details about Bancontact, please refer to the <a
1560
     * href="https://docs.stripe.com/api">API Reference.</a>
1561
     */
1562
    @Getter
1563
    @Setter
1564
    @EqualsAndHashCode(callSuper = false)
1565
    public static class Bancontact extends StripeObject {
×
1566
      /** Bank code of bank associated with the bank account. */
1567
      @SerializedName("bank_code")
1568
      String bankCode;
1569

1570
      /** Name of the bank associated with the bank account. */
1571
      @SerializedName("bank_name")
1572
      String bankName;
1573

1574
      /** Bank Identifier Code of the bank associated with the bank account. */
1575
      @SerializedName("bic")
1576
      String bic;
1577

1578
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
1579
      @SerializedName("generated_sepa_debit")
1580
      @Getter(lombok.AccessLevel.NONE)
1581
      @Setter(lombok.AccessLevel.NONE)
1582
      ExpandableField<PaymentMethod> generatedSepaDebit;
1583

1584
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
1585
      @SerializedName("generated_sepa_debit_mandate")
1586
      @Getter(lombok.AccessLevel.NONE)
1587
      @Setter(lombok.AccessLevel.NONE)
1588
      ExpandableField<Mandate> generatedSepaDebitMandate;
1589

1590
      /** Last four characters of the IBAN. */
1591
      @SerializedName("iban_last4")
1592
      String ibanLast4;
1593

1594
      /**
1595
       * Preferred language of the Bancontact authorization page that the customer is redirected to.
1596
       * Can be one of {@code en}, {@code de}, {@code fr}, or {@code nl}
1597
       */
1598
      @SerializedName("preferred_language")
1599
      String preferredLanguage;
1600

1601
      /**
1602
       * Owner's verified full name. Values are verified or provided by Bancontact directly (if
1603
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
1604
       */
1605
      @SerializedName("verified_name")
1606
      String verifiedName;
1607

1608
      /** Get ID of expandable {@code generatedSepaDebit} object. */
1609
      public String getGeneratedSepaDebit() {
1610
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
1611
      }
1612

1613
      public void setGeneratedSepaDebit(String id) {
1614
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
1615
      }
×
1616

1617
      /** Get expanded {@code generatedSepaDebit}. */
1618
      public PaymentMethod getGeneratedSepaDebitObject() {
1619
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
1620
      }
1621

1622
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
1623
        this.generatedSepaDebit =
×
1624
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
1625
      }
×
1626

1627
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
1628
      public String getGeneratedSepaDebitMandate() {
1629
        return (this.generatedSepaDebitMandate != null)
×
1630
            ? this.generatedSepaDebitMandate.getId()
×
1631
            : null;
×
1632
      }
1633

1634
      public void setGeneratedSepaDebitMandate(String id) {
1635
        this.generatedSepaDebitMandate =
×
1636
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
1637
      }
×
1638

1639
      /** Get expanded {@code generatedSepaDebitMandate}. */
1640
      public Mandate getGeneratedSepaDebitMandateObject() {
1641
        return (this.generatedSepaDebitMandate != null)
×
1642
            ? this.generatedSepaDebitMandate.getExpanded()
×
1643
            : null;
×
1644
      }
1645

1646
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
1647
        this.generatedSepaDebitMandate =
×
1648
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
1649
      }
×
1650
    }
1651

1652
    /**
1653
     * For more details about Blik, please refer to the <a href="https://docs.stripe.com/api">API
1654
     * Reference.</a>
1655
     */
1656
    @Getter
1657
    @Setter
1658
    @EqualsAndHashCode(callSuper = false)
1659
    public static class Blik extends StripeObject {
×
1660
      /** A unique and immutable identifier assigned by BLIK to every buyer. */
1661
      @SerializedName("buyer_id")
1662
      String buyerId;
1663
    }
1664

1665
    /**
1666
     * For more details about Boleto, please refer to the <a href="https://docs.stripe.com/api">API
1667
     * Reference.</a>
1668
     */
1669
    @Getter
1670
    @Setter
1671
    @EqualsAndHashCode(callSuper = false)
1672
    public static class Boleto extends StripeObject {
×
1673
      /**
1674
       * The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses
1675
       * consumers).
1676
       */
1677
      @SerializedName("tax_id")
1678
      String taxId;
1679
    }
1680

1681
    /**
1682
     * For more details about Card, please refer to the <a href="https://docs.stripe.com/api">API
1683
     * Reference.</a>
1684
     */
1685
    @Getter
1686
    @Setter
1687
    @EqualsAndHashCode(callSuper = false)
1688
    public static class Card extends StripeObject {
1✔
1689
      /** The authorized amount. */
1690
      @SerializedName("amount_authorized")
1691
      Long amountAuthorized;
1692

1693
      /** Authorization code on the charge. */
1694
      @SerializedName("authorization_code")
1695
      String authorizationCode;
1696

1697
      /**
1698
       * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
1699
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
1700
       */
1701
      @SerializedName("brand")
1702
      String brand;
1703

1704
      /**
1705
       * When using manual capture, a future timestamp at which the charge will be automatically
1706
       * refunded if uncaptured.
1707
       */
1708
      @SerializedName("capture_before")
1709
      Long captureBefore;
1710

1711
      /** Check results by Card networks on Card address and CVC at time of payment. */
1712
      @SerializedName("checks")
1713
      Checks checks;
1714

1715
      /**
1716
       * Two-letter ISO code representing the country of the card. You could use this attribute to
1717
       * get a sense of the international breakdown of cards you've collected.
1718
       */
1719
      @SerializedName("country")
1720
      String country;
1721

1722
      @SerializedName("decremental_authorization")
1723
      DecrementalAuthorization decrementalAuthorization;
1724

1725
      /**
1726
       * A high-level description of the type of cards issued in this range. (For internal use only
1727
       * and not typically available in standard API requests.)
1728
       */
1729
      @SerializedName("description")
1730
      String description;
1731

1732
      /** Two-digit number representing the card's expiration month. */
1733
      @SerializedName("exp_month")
1734
      Long expMonth;
1735

1736
      /** Four-digit number representing the card's expiration year. */
1737
      @SerializedName("exp_year")
1738
      Long expYear;
1739

1740
      @SerializedName("extended_authorization")
1741
      ExtendedAuthorization extendedAuthorization;
1742

1743
      /**
1744
       * Uniquely identifies this particular card number. You can use this attribute to check
1745
       * whether two customers who’ve signed up with you are using the same card number, for
1746
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
1747
       * tokenized number might be provided instead of the underlying card number.
1748
       *
1749
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
1750
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
1751
       */
1752
      @SerializedName("fingerprint")
1753
      String fingerprint;
1754

1755
      /**
1756
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
1757
       * unknown}.
1758
       */
1759
      @SerializedName("funding")
1760
      String funding;
1761

1762
      /**
1763
       * Issuer identification number of the card. (For internal use only and not typically
1764
       * available in standard API requests.)
1765
       */
1766
      @SerializedName("iin")
1767
      String iin;
1768

1769
      @SerializedName("incremental_authorization")
1770
      IncrementalAuthorization incrementalAuthorization;
1771

1772
      /**
1773
       * Installment details for this payment (Mexico only).
1774
       *
1775
       * <p>For more information, see the <a
1776
       * href="https://stripe.com/docs/payments/installments">installments integration guide</a>.
1777
       */
1778
      @SerializedName("installments")
1779
      Installments installments;
1780

1781
      /**
1782
       * The name of the card's issuing bank. (For internal use only and not typically available in
1783
       * standard API requests.)
1784
       */
1785
      @SerializedName("issuer")
1786
      String issuer;
1787

1788
      /** The last four digits of the card. */
1789
      @SerializedName("last4")
1790
      String last4;
1791

1792
      /** ID of the mandate used to make this payment or created by it. */
1793
      @SerializedName("mandate")
1794
      String mandate;
1795

1796
      /** True if this payment was marked as MOTO and out of scope for SCA. */
1797
      @SerializedName("moto")
1798
      Boolean moto;
1799

1800
      @SerializedName("multicapture")
1801
      Multicapture multicapture;
1802

1803
      /**
1804
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
1805
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
1806
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
1807
       */
1808
      @SerializedName("network")
1809
      String network;
1810

1811
      /**
1812
       * If this card has network token credentials, this contains the details of the network token
1813
       * credentials.
1814
       */
1815
      @SerializedName("network_token")
1816
      NetworkToken networkToken;
1817

1818
      @SerializedName("overcapture")
1819
      Overcapture overcapture;
1820

1821
      /** Populated if this transaction used 3D Secure authentication. */
1822
      @SerializedName("three_d_secure")
1823
      ThreeDSecure threeDSecure;
1824

1825
      /** If this Card is part of a card wallet, this contains the details of the card wallet. */
1826
      @SerializedName("wallet")
1827
      Wallet wallet;
1828

1829
      /**
1830
       * For more details about Checks, please refer to the <a
1831
       * href="https://docs.stripe.com/api">API Reference.</a>
1832
       */
1833
      @Getter
1834
      @Setter
1835
      @EqualsAndHashCode(callSuper = false)
1836
      public static class Checks extends StripeObject {
1✔
1837
        /**
1838
         * If a address line1 was provided, results of the check, one of {@code pass}, {@code fail},
1839
         * {@code unavailable}, or {@code unchecked}.
1840
         */
1841
        @SerializedName("address_line1_check")
1842
        String addressLine1Check;
1843

1844
        /**
1845
         * If a address postal code was provided, results of the check, one of {@code pass}, {@code
1846
         * fail}, {@code unavailable}, or {@code unchecked}.
1847
         */
1848
        @SerializedName("address_postal_code_check")
1849
        String addressPostalCodeCheck;
1850

1851
        /**
1852
         * If a CVC was provided, results of the check, one of {@code pass}, {@code fail}, {@code
1853
         * unavailable}, or {@code unchecked}.
1854
         */
1855
        @SerializedName("cvc_check")
1856
        String cvcCheck;
1857
      }
1858

1859
      /**
1860
       * For more details about DecrementalAuthorization, please refer to the <a
1861
       * href="https://docs.stripe.com/api">API Reference.</a>
1862
       */
1863
      @Getter
1864
      @Setter
1865
      @EqualsAndHashCode(callSuper = false)
1866
      public static class DecrementalAuthorization extends StripeObject {
×
1867
        /**
1868
         * Indicates whether or not the decremental authorization feature is supported.
1869
         *
1870
         * <p>One of {@code available}, or {@code unavailable}.
1871
         */
1872
        @SerializedName("status")
1873
        String status;
1874
      }
1875

1876
      /**
1877
       * For more details about ExtendedAuthorization, please refer to the <a
1878
       * href="https://docs.stripe.com/api">API Reference.</a>
1879
       */
1880
      @Getter
1881
      @Setter
1882
      @EqualsAndHashCode(callSuper = false)
1883
      public static class ExtendedAuthorization extends StripeObject {
1✔
1884
        /**
1885
         * Indicates whether or not the capture window is extended beyond the standard
1886
         * authorization.
1887
         *
1888
         * <p>One of {@code disabled}, or {@code enabled}.
1889
         */
1890
        @SerializedName("status")
1891
        String status;
1892
      }
1893

1894
      /**
1895
       * For more details about IncrementalAuthorization, please refer to the <a
1896
       * href="https://docs.stripe.com/api">API Reference.</a>
1897
       */
1898
      @Getter
1899
      @Setter
1900
      @EqualsAndHashCode(callSuper = false)
1901
      public static class IncrementalAuthorization extends StripeObject {
1✔
1902
        /**
1903
         * Indicates whether or not the incremental authorization feature is supported.
1904
         *
1905
         * <p>One of {@code available}, or {@code unavailable}.
1906
         */
1907
        @SerializedName("status")
1908
        String status;
1909
      }
1910

1911
      /**
1912
       * For more details about Installments, please refer to the <a
1913
       * href="https://docs.stripe.com/api">API Reference.</a>
1914
       */
1915
      @Getter
1916
      @Setter
1917
      @EqualsAndHashCode(callSuper = false)
1918
      public static class Installments extends StripeObject {
×
1919
        /** Installment plan selected for the payment. */
1920
        @SerializedName("plan")
1921
        Plan plan;
1922

1923
        /**
1924
         * For more details about Plan, please refer to the <a
1925
         * href="https://docs.stripe.com/api">API Reference.</a>
1926
         */
1927
        @Getter
1928
        @Setter
1929
        @EqualsAndHashCode(callSuper = false)
1930
        public static class Plan extends StripeObject {
×
1931
          /**
1932
           * For {@code fixed_count} installment plans, this is the number of installment payments
1933
           * your customer will make to their credit card.
1934
           */
1935
          @SerializedName("count")
1936
          Long count;
1937

1938
          /**
1939
           * For {@code fixed_count} installment plans, this is the interval between installment
1940
           * payments your customer will make to their credit card. One of {@code month}.
1941
           */
1942
          @SerializedName("interval")
1943
          String interval;
1944

1945
          /** Type of installment plan, one of {@code fixed_count}. */
1946
          @SerializedName("type")
1947
          String type;
1948
        }
1949
      }
1950

1951
      /**
1952
       * For more details about Multicapture, please refer to the <a
1953
       * href="https://docs.stripe.com/api">API Reference.</a>
1954
       */
1955
      @Getter
1956
      @Setter
1957
      @EqualsAndHashCode(callSuper = false)
1958
      public static class Multicapture extends StripeObject {
1✔
1959
        /**
1960
         * Indicates whether or not multiple captures are supported.
1961
         *
1962
         * <p>One of {@code available}, or {@code unavailable}.
1963
         */
1964
        @SerializedName("status")
1965
        String status;
1966
      }
1967

1968
      /**
1969
       * For more details about NetworkToken, please refer to the <a
1970
       * href="https://docs.stripe.com/api">API Reference.</a>
1971
       */
1972
      @Getter
1973
      @Setter
1974
      @EqualsAndHashCode(callSuper = false)
1975
      public static class NetworkToken extends StripeObject {
1✔
1976
        /**
1977
         * Indicates if Stripe used a network token, either user provided or Stripe managed when
1978
         * processing the transaction.
1979
         */
1980
        @SerializedName("used")
1981
        Boolean used;
1982
      }
1983

1984
      /**
1985
       * For more details about Overcapture, please refer to the <a
1986
       * href="https://docs.stripe.com/api">API Reference.</a>
1987
       */
1988
      @Getter
1989
      @Setter
1990
      @EqualsAndHashCode(callSuper = false)
1991
      public static class Overcapture extends StripeObject {
1✔
1992
        /** The maximum amount that can be captured. */
1993
        @SerializedName("maximum_amount_capturable")
1994
        Long maximumAmountCapturable;
1995

1996
        /**
1997
         * Indicates whether or not the authorized amount can be over-captured.
1998
         *
1999
         * <p>One of {@code available}, or {@code unavailable}.
2000
         */
2001
        @SerializedName("status")
2002
        String status;
2003
      }
2004

2005
      /**
2006
       * For more details about ThreeDSecure, please refer to the <a
2007
       * href="https://docs.stripe.com/api">API Reference.</a>
2008
       */
2009
      @Getter
2010
      @Setter
2011
      @EqualsAndHashCode(callSuper = false)
2012
      public static class ThreeDSecure extends StripeObject {
×
2013
        /**
2014
         * For authenticated transactions: how the customer was authenticated by the issuing bank.
2015
         *
2016
         * <p>One of {@code challenge}, or {@code frictionless}.
2017
         */
2018
        @SerializedName("authentication_flow")
2019
        String authenticationFlow;
2020

2021
        /**
2022
         * The Electronic Commerce Indicator (ECI). A protocol-level field indicating what degree of
2023
         * authentication was performed.
2024
         *
2025
         * <p>One of {@code 01}, {@code 02}, {@code 05}, {@code 06}, or {@code 07}.
2026
         */
2027
        @SerializedName("electronic_commerce_indicator")
2028
        String electronicCommerceIndicator;
2029

2030
        /**
2031
         * The exemption requested via 3DS and accepted by the issuer at authentication time.
2032
         *
2033
         * <p>One of {@code low_risk}, or {@code none}.
2034
         */
2035
        @SerializedName("exemption_indicator")
2036
        String exemptionIndicator;
2037

2038
        /**
2039
         * Whether Stripe requested the value of {@code exemption_indicator} in the transaction.
2040
         * This will depend on the outcome of Stripe's internal risk assessment.
2041
         */
2042
        @SerializedName("exemption_indicator_applied")
2043
        Boolean exemptionIndicatorApplied;
2044

2045
        /**
2046
         * Indicates the outcome of 3D Secure authentication.
2047
         *
2048
         * <p>One of {@code attempt_acknowledged}, {@code authenticated}, {@code exempted}, {@code
2049
         * failed}, {@code not_supported}, or {@code processing_error}.
2050
         */
2051
        @SerializedName("result")
2052
        String result;
2053

2054
        /**
2055
         * Additional information about why 3D Secure succeeded or failed based on the {@code
2056
         * result}.
2057
         *
2058
         * <p>One of {@code abandoned}, {@code bypassed}, {@code canceled}, {@code
2059
         * card_not_enrolled}, {@code network_not_supported}, {@code protocol_error}, or {@code
2060
         * rejected}.
2061
         */
2062
        @SerializedName("result_reason")
2063
        String resultReason;
2064

2065
        /**
2066
         * The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID (dsTransId) for this
2067
         * payment.
2068
         */
2069
        @SerializedName("transaction_id")
2070
        String transactionId;
2071

2072
        /**
2073
         * The version of 3D Secure that was used.
2074
         *
2075
         * <p>One of {@code 1.0.2}, {@code 2.1.0}, or {@code 2.2.0}.
2076
         */
2077
        @SerializedName("version")
2078
        String version;
2079
      }
2080

2081
      /**
2082
       * For more details about Wallet, please refer to the <a
2083
       * href="https://docs.stripe.com/api">API Reference.</a>
2084
       */
2085
      @Getter
2086
      @Setter
2087
      @EqualsAndHashCode(callSuper = false)
2088
      public static class Wallet extends StripeObject {
×
2089
        @SerializedName("amex_express_checkout")
2090
        AmexExpressCheckout amexExpressCheckout;
2091

2092
        @SerializedName("apple_pay")
2093
        ApplePay applePay;
2094

2095
        /** (For tokenized numbers only.) The last four digits of the device account number. */
2096
        @SerializedName("dynamic_last4")
2097
        String dynamicLast4;
2098

2099
        @SerializedName("google_pay")
2100
        GooglePay googlePay;
2101

2102
        @SerializedName("link")
2103
        Link link;
2104

2105
        @SerializedName("masterpass")
2106
        Masterpass masterpass;
2107

2108
        @SerializedName("samsung_pay")
2109
        SamsungPay samsungPay;
2110

2111
        /**
2112
         * The type of the card wallet, one of {@code amex_express_checkout}, {@code apple_pay},
2113
         * {@code google_pay}, {@code masterpass}, {@code samsung_pay}, {@code visa_checkout}, or
2114
         * {@code link}. An additional hash is included on the Wallet subhash with a name matching
2115
         * this value. It contains additional information specific to the card wallet type.
2116
         */
2117
        @SerializedName("type")
2118
        String type;
2119

2120
        @SerializedName("visa_checkout")
2121
        VisaCheckout visaCheckout;
2122

2123
        /**
2124
         * For more details about AmexExpressCheckout, please refer to the <a
2125
         * href="https://docs.stripe.com/api">API Reference.</a>
2126
         */
2127
        @Getter
2128
        @Setter
2129
        @EqualsAndHashCode(callSuper = false)
2130
        public static class AmexExpressCheckout extends StripeObject {}
×
2131

2132
        /**
2133
         * For more details about ApplePay, please refer to the <a
2134
         * href="https://docs.stripe.com/api">API Reference.</a>
2135
         */
2136
        @Getter
2137
        @Setter
2138
        @EqualsAndHashCode(callSuper = false)
2139
        public static class ApplePay extends StripeObject {}
×
2140

2141
        /**
2142
         * For more details about GooglePay, please refer to the <a
2143
         * href="https://docs.stripe.com/api">API Reference.</a>
2144
         */
2145
        @Getter
2146
        @Setter
2147
        @EqualsAndHashCode(callSuper = false)
2148
        public static class GooglePay extends StripeObject {}
×
2149

2150
        /**
2151
         * For more details about Link, please refer to the <a
2152
         * href="https://docs.stripe.com/api">API Reference.</a>
2153
         */
2154
        @Getter
2155
        @Setter
2156
        @EqualsAndHashCode(callSuper = false)
2157
        public static class Link extends StripeObject {}
×
2158

2159
        /**
2160
         * For more details about Masterpass, please refer to the <a
2161
         * href="https://docs.stripe.com/api">API Reference.</a>
2162
         */
2163
        @Getter
2164
        @Setter
2165
        @EqualsAndHashCode(callSuper = false)
2166
        public static class Masterpass extends StripeObject {
×
2167
          /**
2168
           * Owner's verified billing address. Values are verified or provided by the wallet
2169
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2170
           * or mutated.
2171
           */
2172
          @SerializedName("billing_address")
2173
          com.stripe.model.Address billingAddress;
2174

2175
          /**
2176
           * Owner's verified email. Values are verified or provided by the wallet directly (if
2177
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2178
           */
2179
          @SerializedName("email")
2180
          String email;
2181

2182
          /**
2183
           * Owner's verified full name. Values are verified or provided by the wallet directly (if
2184
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2185
           */
2186
          @SerializedName("name")
2187
          String name;
2188

2189
          /**
2190
           * Owner's verified shipping address. Values are verified or provided by the wallet
2191
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2192
           * or mutated.
2193
           */
2194
          @SerializedName("shipping_address")
2195
          com.stripe.model.Address shippingAddress;
2196
        }
2197

2198
        /**
2199
         * For more details about SamsungPay, please refer to the <a
2200
         * href="https://docs.stripe.com/api">API Reference.</a>
2201
         */
2202
        @Getter
2203
        @Setter
2204
        @EqualsAndHashCode(callSuper = false)
2205
        public static class SamsungPay extends StripeObject {}
×
2206

2207
        /**
2208
         * For more details about VisaCheckout, please refer to the <a
2209
         * href="https://docs.stripe.com/api">API Reference.</a>
2210
         */
2211
        @Getter
2212
        @Setter
2213
        @EqualsAndHashCode(callSuper = false)
2214
        public static class VisaCheckout extends StripeObject {
×
2215
          /**
2216
           * Owner's verified billing address. Values are verified or provided by the wallet
2217
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2218
           * or mutated.
2219
           */
2220
          @SerializedName("billing_address")
2221
          com.stripe.model.Address billingAddress;
2222

2223
          /**
2224
           * Owner's verified email. Values are verified or provided by the wallet directly (if
2225
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2226
           */
2227
          @SerializedName("email")
2228
          String email;
2229

2230
          /**
2231
           * Owner's verified full name. Values are verified or provided by the wallet directly (if
2232
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2233
           */
2234
          @SerializedName("name")
2235
          String name;
2236

2237
          /**
2238
           * Owner's verified shipping address. Values are verified or provided by the wallet
2239
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2240
           * or mutated.
2241
           */
2242
          @SerializedName("shipping_address")
2243
          com.stripe.model.Address shippingAddress;
2244
        }
2245
      }
2246
    }
2247

2248
    /**
2249
     * For more details about CardPresent, please refer to the <a
2250
     * href="https://docs.stripe.com/api">API Reference.</a>
2251
     */
2252
    @Getter
2253
    @Setter
2254
    @EqualsAndHashCode(callSuper = false)
2255
    public static class CardPresent extends StripeObject {
×
2256
      /** The authorized amount. */
2257
      @SerializedName("amount_authorized")
2258
      Long amountAuthorized;
2259

2260
      /**
2261
       * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
2262
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
2263
       */
2264
      @SerializedName("brand")
2265
      String brand;
2266

2267
      /**
2268
       * The <a href="https://stripe.com/docs/card-product-codes">product code</a> that identifies
2269
       * the specific program or product associated with a card.
2270
       */
2271
      @SerializedName("brand_product")
2272
      String brandProduct;
2273

2274
      /**
2275
       * When using manual capture, a future timestamp after which the charge will be automatically
2276
       * refunded if uncaptured.
2277
       */
2278
      @SerializedName("capture_before")
2279
      Long captureBefore;
2280

2281
      /**
2282
       * The cardholder name as read from the card, in <a
2283
       * href="https://en.wikipedia.org/wiki/ISO/IEC_7813">ISO 7813</a> format. May include
2284
       * alphanumeric characters, special characters and first/last name separator ({@code /}). In
2285
       * some cases, the cardholder name may not be available depending on how the issuer has
2286
       * configured the card. Cardholder name is typically not available on swipe or contactless
2287
       * payments, such as those made with Apple Pay and Google Pay.
2288
       */
2289
      @SerializedName("cardholder_name")
2290
      String cardholderName;
2291

2292
      /**
2293
       * Two-letter ISO code representing the country of the card. You could use this attribute to
2294
       * get a sense of the international breakdown of cards you've collected.
2295
       */
2296
      @SerializedName("country")
2297
      String country;
2298

2299
      /**
2300
       * A high-level description of the type of cards issued in this range. (For internal use only
2301
       * and not typically available in standard API requests.)
2302
       */
2303
      @SerializedName("description")
2304
      String description;
2305

2306
      /** Authorization response cryptogram. */
2307
      @SerializedName("emv_auth_data")
2308
      String emvAuthData;
2309

2310
      /** Two-digit number representing the card's expiration month. */
2311
      @SerializedName("exp_month")
2312
      Long expMonth;
2313

2314
      /** Four-digit number representing the card's expiration year. */
2315
      @SerializedName("exp_year")
2316
      Long expYear;
2317

2318
      /**
2319
       * Uniquely identifies this particular card number. You can use this attribute to check
2320
       * whether two customers who’ve signed up with you are using the same card number, for
2321
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
2322
       * tokenized number might be provided instead of the underlying card number.
2323
       *
2324
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
2325
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
2326
       */
2327
      @SerializedName("fingerprint")
2328
      String fingerprint;
2329

2330
      /**
2331
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
2332
       * unknown}.
2333
       */
2334
      @SerializedName("funding")
2335
      String funding;
2336

2337
      /**
2338
       * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
2339
       * attached to a Customer for future transactions. Only present if it was possible to generate
2340
       * a card PaymentMethod.
2341
       */
2342
      @SerializedName("generated_card")
2343
      String generatedCard;
2344

2345
      /**
2346
       * Issuer identification number of the card. (For internal use only and not typically
2347
       * available in standard API requests.)
2348
       */
2349
      @SerializedName("iin")
2350
      String iin;
2351

2352
      /**
2353
       * Whether this <a href="https://stripe.com/docs/api/payment_intents">PaymentIntent</a> is
2354
       * eligible for incremental authorizations. Request support using <a
2355
       * href="https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support">request_incremental_authorization_support</a>.
2356
       */
2357
      @SerializedName("incremental_authorization_supported")
2358
      Boolean incrementalAuthorizationSupported;
2359

2360
      /**
2361
       * The name of the card's issuing bank. (For internal use only and not typically available in
2362
       * standard API requests.)
2363
       */
2364
      @SerializedName("issuer")
2365
      String issuer;
2366

2367
      /** The last four digits of the card. */
2368
      @SerializedName("last4")
2369
      String last4;
2370

2371
      /**
2372
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
2373
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
2374
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
2375
       */
2376
      @SerializedName("network")
2377
      String network;
2378

2379
      /**
2380
       * This is used by the financial networks to identify a transaction. Visa calls this the
2381
       * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
2382
       * Acquirer Reference Data. The first three digits of the Trace ID is the Financial Network
2383
       * Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent
2384
       * the date (MM/DD). This field will be available for successful Visa, Mastercard, or American
2385
       * Express transactions and always null for other card brands.
2386
       */
2387
      @SerializedName("network_transaction_id")
2388
      String networkTransactionId;
2389

2390
      /** Details about payments collected offline. */
2391
      @SerializedName("offline")
2392
      Offline offline;
2393

2394
      /** Defines whether the authorized amount can be over-captured or not. */
2395
      @SerializedName("overcapture_supported")
2396
      Boolean overcaptureSupported;
2397

2398
      /** EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. */
2399
      @SerializedName("preferred_locales")
2400
      List<String> preferredLocales;
2401

2402
      /**
2403
       * How card details were read in this transaction.
2404
       *
2405
       * <p>One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
2406
       * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
2407
       */
2408
      @SerializedName("read_method")
2409
      String readMethod;
2410

2411
      /**
2412
       * A collection of fields required to be displayed on receipts. Only required for EMV
2413
       * transactions.
2414
       */
2415
      @SerializedName("receipt")
2416
      Receipt receipt;
2417

2418
      @SerializedName("wallet")
2419
      Wallet wallet;
2420

2421
      /**
2422
       * For more details about Offline, please refer to the <a
2423
       * href="https://docs.stripe.com/api">API Reference.</a>
2424
       */
2425
      @Getter
2426
      @Setter
2427
      @EqualsAndHashCode(callSuper = false)
2428
      public static class Offline extends StripeObject {
×
2429
        /** Time at which the payment was collected while offline. */
2430
        @SerializedName("stored_at")
2431
        Long storedAt;
2432

2433
        /**
2434
         * The method used to process this payment method offline. Only deferred is allowed.
2435
         *
2436
         * <p>Equal to {@code deferred}.
2437
         */
2438
        @SerializedName("type")
2439
        String type;
2440
      }
2441

2442
      /**
2443
       * For more details about Receipt, please refer to the <a
2444
       * href="https://docs.stripe.com/api">API Reference.</a>
2445
       */
2446
      @Getter
2447
      @Setter
2448
      @EqualsAndHashCode(callSuper = false)
2449
      public static class Receipt extends StripeObject {
×
2450
        /**
2451
         * The type of account being debited or credited
2452
         *
2453
         * <p>One of {@code checking}, {@code credit}, {@code prepaid}, or {@code unknown}.
2454
         */
2455
        @SerializedName("account_type")
2456
        String accountType;
2457

2458
        /** EMV tag 9F26, cryptogram generated by the integrated circuit chip. */
2459
        @SerializedName("application_cryptogram")
2460
        String applicationCryptogram;
2461

2462
        /** Mnenomic of the Application Identifier. */
2463
        @SerializedName("application_preferred_name")
2464
        String applicationPreferredName;
2465

2466
        /** Identifier for this transaction. */
2467
        @SerializedName("authorization_code")
2468
        String authorizationCode;
2469

2470
        /** EMV tag 8A. A code returned by the card issuer. */
2471
        @SerializedName("authorization_response_code")
2472
        String authorizationResponseCode;
2473

2474
        /**
2475
         * Describes the method used by the cardholder to verify ownership of the card. One of the
2476
         * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
2477
         * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
2478
         */
2479
        @SerializedName("cardholder_verification_method")
2480
        String cardholderVerificationMethod;
2481

2482
        /**
2483
         * EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
2484
         */
2485
        @SerializedName("dedicated_file_name")
2486
        String dedicatedFileName;
2487

2488
        /** The outcome of a series of EMV functions performed by the card reader. */
2489
        @SerializedName("terminal_verification_results")
2490
        String terminalVerificationResults;
2491

2492
        /** An indication of various EMV functions performed during the transaction. */
2493
        @SerializedName("transaction_status_information")
2494
        String transactionStatusInformation;
2495
      }
2496

2497
      /**
2498
       * For more details about Wallet, please refer to the <a
2499
       * href="https://docs.stripe.com/api">API Reference.</a>
2500
       */
2501
      @Getter
2502
      @Setter
2503
      @EqualsAndHashCode(callSuper = false)
2504
      public static class Wallet extends StripeObject {
×
2505
        /**
2506
         * The type of mobile wallet, one of {@code apple_pay}, {@code google_pay}, {@code
2507
         * samsung_pay}, or {@code unknown}.
2508
         */
2509
        @SerializedName("type")
2510
        String type;
2511
      }
2512
    }
2513

2514
    /**
2515
     * For more details about Cashapp, please refer to the <a href="https://docs.stripe.com/api">API
2516
     * Reference.</a>
2517
     */
2518
    @Getter
2519
    @Setter
2520
    @EqualsAndHashCode(callSuper = false)
2521
    public static class Cashapp extends StripeObject {
×
2522
      /** A unique and immutable identifier assigned by Cash App to every buyer. */
2523
      @SerializedName("buyer_id")
2524
      String buyerId;
2525

2526
      /** A public identifier for buyers using Cash App. */
2527
      @SerializedName("cashtag")
2528
      String cashtag;
2529
    }
2530

2531
    /**
2532
     * For more details about CustomerBalance, please refer to the <a
2533
     * href="https://docs.stripe.com/api">API Reference.</a>
2534
     */
2535
    @Getter
2536
    @Setter
2537
    @EqualsAndHashCode(callSuper = false)
2538
    public static class CustomerBalance extends StripeObject {}
×
2539

2540
    /**
2541
     * For more details about Eps, please refer to the <a href="https://docs.stripe.com/api">API
2542
     * Reference.</a>
2543
     */
2544
    @Getter
2545
    @Setter
2546
    @EqualsAndHashCode(callSuper = false)
2547
    public static class Eps extends StripeObject {
×
2548
      /**
2549
       * The customer's bank. Should be one of {@code arzte_und_apotheker_bank}, {@code
2550
       * austrian_anadi_bank_ag}, {@code bank_austria}, {@code bankhaus_carl_spangler}, {@code
2551
       * bankhaus_schelhammer_und_schattera_ag}, {@code bawag_psk_ag}, {@code bks_bank_ag}, {@code
2552
       * brull_kallmus_bank_ag}, {@code btv_vier_lander_bank}, {@code capital_bank_grawe_gruppe_ag},
2553
       * {@code deutsche_bank_ag}, {@code dolomitenbank}, {@code easybank_ag}, {@code
2554
       * erste_bank_und_sparkassen}, {@code hypo_alpeadriabank_international_ag}, {@code
2555
       * hypo_noe_lb_fur_niederosterreich_u_wien}, {@code hypo_oberosterreich_salzburg_steiermark},
2556
       * {@code hypo_tirol_bank_ag}, {@code hypo_vorarlberg_bank_ag}, {@code
2557
       * hypo_bank_burgenland_aktiengesellschaft}, {@code marchfelder_bank}, {@code oberbank_ag},
2558
       * {@code raiffeisen_bankengruppe_osterreich}, {@code schoellerbank_ag}, {@code
2559
       * sparda_bank_wien}, {@code volksbank_gruppe}, {@code volkskreditbank_ag}, or {@code
2560
       * vr_bank_braunau}.
2561
       */
2562
      @SerializedName("bank")
2563
      String bank;
2564

2565
      /**
2566
       * Owner's verified full name. Values are verified or provided by EPS directly (if supported)
2567
       * at the time of authorization or settlement. They cannot be set or mutated. EPS rarely
2568
       * provides this information so the attribute is usually empty.
2569
       */
2570
      @SerializedName("verified_name")
2571
      String verifiedName;
2572
    }
2573

2574
    /**
2575
     * For more details about Fpx, please refer to the <a href="https://docs.stripe.com/api">API
2576
     * Reference.</a>
2577
     */
2578
    @Getter
2579
    @Setter
2580
    @EqualsAndHashCode(callSuper = false)
2581
    public static class Fpx extends StripeObject {
×
2582
      /** Account holder type, if provided. Can be one of {@code individual} or {@code company}. */
2583
      @SerializedName("account_holder_type")
2584
      String accountHolderType;
2585

2586
      /**
2587
       * The customer's bank. Can be one of {@code affin_bank}, {@code agrobank}, {@code
2588
       * alliance_bank}, {@code ambank}, {@code bank_islam}, {@code bank_muamalat}, {@code
2589
       * bank_rakyat}, {@code bsn}, {@code cimb}, {@code hong_leong_bank}, {@code hsbc}, {@code
2590
       * kfh}, {@code maybank2u}, {@code ocbc}, {@code public_bank}, {@code rhb}, {@code
2591
       * standard_chartered}, {@code uob}, {@code deutsche_bank}, {@code maybank2e}, {@code
2592
       * pb_enterprise}, or {@code bank_of_china}.
2593
       */
2594
      @SerializedName("bank")
2595
      String bank;
2596

2597
      /** Unique transaction id generated by FPX for every request from the merchant. */
2598
      @SerializedName("transaction_id")
2599
      String transactionId;
2600
    }
2601

2602
    /**
2603
     * For more details about Giropay, please refer to the <a href="https://docs.stripe.com/api">API
2604
     * Reference.</a>
2605
     */
2606
    @Getter
2607
    @Setter
2608
    @EqualsAndHashCode(callSuper = false)
2609
    public static class Giropay extends StripeObject {
×
2610
      /** Bank code of bank associated with the bank account. */
2611
      @SerializedName("bank_code")
2612
      String bankCode;
2613

2614
      /** Name of the bank associated with the bank account. */
2615
      @SerializedName("bank_name")
2616
      String bankName;
2617

2618
      /** Bank Identifier Code of the bank associated with the bank account. */
2619
      @SerializedName("bic")
2620
      String bic;
2621

2622
      /**
2623
       * Owner's verified full name. Values are verified or provided by Giropay directly (if
2624
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2625
       * Giropay rarely provides this information so the attribute is usually empty.
2626
       */
2627
      @SerializedName("verified_name")
2628
      String verifiedName;
2629
    }
2630

2631
    /**
2632
     * For more details about Gopay, please refer to the <a href="https://docs.stripe.com/api">API
2633
     * Reference.</a>
2634
     */
2635
    @Getter
2636
    @Setter
2637
    @EqualsAndHashCode(callSuper = false)
2638
    public static class Gopay extends StripeObject {}
×
2639

2640
    /**
2641
     * For more details about Grabpay, please refer to the <a href="https://docs.stripe.com/api">API
2642
     * Reference.</a>
2643
     */
2644
    @Getter
2645
    @Setter
2646
    @EqualsAndHashCode(callSuper = false)
2647
    public static class Grabpay extends StripeObject {
×
2648
      /** Unique transaction id generated by GrabPay. */
2649
      @SerializedName("transaction_id")
2650
      String transactionId;
2651
    }
2652

2653
    /**
2654
     * For more details about IdBankTransfer, please refer to the <a
2655
     * href="https://docs.stripe.com/api">API Reference.</a>
2656
     */
2657
    @Getter
2658
    @Setter
2659
    @EqualsAndHashCode(callSuper = false)
NEW
2660
    public static class IdBankTransfer extends StripeObject {
×
2661
      /** Account number of the bank account to transfer funds to. */
2662
      @SerializedName("account_number")
2663
      String accountNumber;
2664

2665
      /**
2666
       * Bank where the account is located.
2667
       *
2668
       * <p>One of {@code bca}, {@code bni}, {@code bri}, {@code cimb}, or {@code permata}.
2669
       */
2670
      @SerializedName("bank")
2671
      String bank;
2672

2673
      /** Local bank code of the bank. */
2674
      @SerializedName("bank_code")
2675
      String bankCode;
2676

2677
      /** Name of the bank associated with the bank account. */
2678
      @SerializedName("bank_name")
2679
      String bankName;
2680

2681
      /**
2682
       * Merchant name and billing details name, for the customer to check for the correct merchant
2683
       * when performing the bank transfer.
2684
       */
2685
      @SerializedName("display_name")
2686
      String displayName;
2687
    }
2688

2689
    /**
2690
     * For more details about Ideal, please refer to the <a href="https://docs.stripe.com/api">API
2691
     * Reference.</a>
2692
     */
2693
    @Getter
2694
    @Setter
2695
    @EqualsAndHashCode(callSuper = false)
2696
    public static class Ideal extends StripeObject {
×
2697
      /**
2698
       * The customer's bank. Can be one of {@code abn_amro}, {@code asn_bank}, {@code bunq}, {@code
2699
       * handelsbanken}, {@code ing}, {@code knab}, {@code moneyou}, {@code n26}, {@code nn}, {@code
2700
       * rabobank}, {@code regiobank}, {@code revolut}, {@code sns_bank}, {@code triodos_bank},
2701
       * {@code van_lanschot}, or {@code yoursafe}.
2702
       */
2703
      @SerializedName("bank")
2704
      String bank;
2705

2706
      /**
2707
       * The Bank Identifier Code of the customer's bank.
2708
       *
2709
       * <p>One of {@code ABNANL2A}, {@code ASNBNL21}, {@code BITSNL2A}, {@code BUNQNL2A}, {@code
2710
       * FVLBNL22}, {@code HANDNL2A}, {@code INGBNL2A}, {@code KNABNL2H}, {@code MOYONL21}, {@code
2711
       * NNBANL2G}, {@code NTSBDEB1}, {@code RABONL2U}, {@code RBRBNL21}, {@code REVOIE23}, {@code
2712
       * REVOLT21}, {@code SNSBNL2A}, or {@code TRIONL2U}.
2713
       */
2714
      @SerializedName("bic")
2715
      String bic;
2716

2717
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
2718
      @SerializedName("generated_sepa_debit")
2719
      @Getter(lombok.AccessLevel.NONE)
2720
      @Setter(lombok.AccessLevel.NONE)
2721
      ExpandableField<PaymentMethod> generatedSepaDebit;
2722

2723
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
2724
      @SerializedName("generated_sepa_debit_mandate")
2725
      @Getter(lombok.AccessLevel.NONE)
2726
      @Setter(lombok.AccessLevel.NONE)
2727
      ExpandableField<Mandate> generatedSepaDebitMandate;
2728

2729
      /** Last four characters of the IBAN. */
2730
      @SerializedName("iban_last4")
2731
      String ibanLast4;
2732

2733
      /**
2734
       * Owner's verified full name. Values are verified or provided by iDEAL directly (if
2735
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2736
       */
2737
      @SerializedName("verified_name")
2738
      String verifiedName;
2739

2740
      /** Get ID of expandable {@code generatedSepaDebit} object. */
2741
      public String getGeneratedSepaDebit() {
2742
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
2743
      }
2744

2745
      public void setGeneratedSepaDebit(String id) {
2746
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
2747
      }
×
2748

2749
      /** Get expanded {@code generatedSepaDebit}. */
2750
      public PaymentMethod getGeneratedSepaDebitObject() {
2751
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
2752
      }
2753

2754
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
2755
        this.generatedSepaDebit =
×
2756
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
2757
      }
×
2758

2759
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
2760
      public String getGeneratedSepaDebitMandate() {
2761
        return (this.generatedSepaDebitMandate != null)
×
2762
            ? this.generatedSepaDebitMandate.getId()
×
2763
            : null;
×
2764
      }
2765

2766
      public void setGeneratedSepaDebitMandate(String id) {
2767
        this.generatedSepaDebitMandate =
×
2768
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
2769
      }
×
2770

2771
      /** Get expanded {@code generatedSepaDebitMandate}. */
2772
      public Mandate getGeneratedSepaDebitMandateObject() {
2773
        return (this.generatedSepaDebitMandate != null)
×
2774
            ? this.generatedSepaDebitMandate.getExpanded()
×
2775
            : null;
×
2776
      }
2777

2778
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
2779
        this.generatedSepaDebitMandate =
×
2780
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
2781
      }
×
2782
    }
2783

2784
    /**
2785
     * For more details about InteracPresent, please refer to the <a
2786
     * href="https://docs.stripe.com/api">API Reference.</a>
2787
     */
2788
    @Getter
2789
    @Setter
2790
    @EqualsAndHashCode(callSuper = false)
2791
    public static class InteracPresent extends StripeObject {
×
2792
      /** Card brand. Can be {@code interac}, {@code mastercard} or {@code visa}. */
2793
      @SerializedName("brand")
2794
      String brand;
2795

2796
      /**
2797
       * The cardholder name as read from the card, in <a
2798
       * href="https://en.wikipedia.org/wiki/ISO/IEC_7813">ISO 7813</a> format. May include
2799
       * alphanumeric characters, special characters and first/last name separator ({@code /}). In
2800
       * some cases, the cardholder name may not be available depending on how the issuer has
2801
       * configured the card. Cardholder name is typically not available on swipe or contactless
2802
       * payments, such as those made with Apple Pay and Google Pay.
2803
       */
2804
      @SerializedName("cardholder_name")
2805
      String cardholderName;
2806

2807
      /**
2808
       * Two-letter ISO code representing the country of the card. You could use this attribute to
2809
       * get a sense of the international breakdown of cards you've collected.
2810
       */
2811
      @SerializedName("country")
2812
      String country;
2813

2814
      /**
2815
       * A high-level description of the type of cards issued in this range. (For internal use only
2816
       * and not typically available in standard API requests.)
2817
       */
2818
      @SerializedName("description")
2819
      String description;
2820

2821
      /** Authorization response cryptogram. */
2822
      @SerializedName("emv_auth_data")
2823
      String emvAuthData;
2824

2825
      /** Two-digit number representing the card's expiration month. */
2826
      @SerializedName("exp_month")
2827
      Long expMonth;
2828

2829
      /** Four-digit number representing the card's expiration year. */
2830
      @SerializedName("exp_year")
2831
      Long expYear;
2832

2833
      /**
2834
       * Uniquely identifies this particular card number. You can use this attribute to check
2835
       * whether two customers who’ve signed up with you are using the same card number, for
2836
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
2837
       * tokenized number might be provided instead of the underlying card number.
2838
       *
2839
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
2840
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
2841
       */
2842
      @SerializedName("fingerprint")
2843
      String fingerprint;
2844

2845
      /**
2846
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
2847
       * unknown}.
2848
       */
2849
      @SerializedName("funding")
2850
      String funding;
2851

2852
      /**
2853
       * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
2854
       * attached to a Customer for future transactions. Only present if it was possible to generate
2855
       * a card PaymentMethod.
2856
       */
2857
      @SerializedName("generated_card")
2858
      String generatedCard;
2859

2860
      /**
2861
       * Issuer identification number of the card. (For internal use only and not typically
2862
       * available in standard API requests.)
2863
       */
2864
      @SerializedName("iin")
2865
      String iin;
2866

2867
      /**
2868
       * The name of the card's issuing bank. (For internal use only and not typically available in
2869
       * standard API requests.)
2870
       */
2871
      @SerializedName("issuer")
2872
      String issuer;
2873

2874
      /** The last four digits of the card. */
2875
      @SerializedName("last4")
2876
      String last4;
2877

2878
      /**
2879
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
2880
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
2881
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
2882
       */
2883
      @SerializedName("network")
2884
      String network;
2885

2886
      /**
2887
       * This is used by the financial networks to identify a transaction. Visa calls this the
2888
       * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
2889
       * Acquirer Reference Data. The first three digits of the Trace ID is the Financial Network
2890
       * Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent
2891
       * the date (MM/DD). This field will be available for successful Visa, Mastercard, or American
2892
       * Express transactions and always null for other card brands.
2893
       */
2894
      @SerializedName("network_transaction_id")
2895
      String networkTransactionId;
2896

2897
      /** EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. */
2898
      @SerializedName("preferred_locales")
2899
      List<String> preferredLocales;
2900

2901
      /**
2902
       * How card details were read in this transaction.
2903
       *
2904
       * <p>One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
2905
       * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
2906
       */
2907
      @SerializedName("read_method")
2908
      String readMethod;
2909

2910
      /**
2911
       * A collection of fields required to be displayed on receipts. Only required for EMV
2912
       * transactions.
2913
       */
2914
      @SerializedName("receipt")
2915
      Receipt receipt;
2916

2917
      /**
2918
       * For more details about Receipt, please refer to the <a
2919
       * href="https://docs.stripe.com/api">API Reference.</a>
2920
       */
2921
      @Getter
2922
      @Setter
2923
      @EqualsAndHashCode(callSuper = false)
2924
      public static class Receipt extends StripeObject {
×
2925
        /**
2926
         * The type of account being debited or credited
2927
         *
2928
         * <p>One of {@code checking}, {@code savings}, or {@code unknown}.
2929
         */
2930
        @SerializedName("account_type")
2931
        String accountType;
2932

2933
        /** EMV tag 9F26, cryptogram generated by the integrated circuit chip. */
2934
        @SerializedName("application_cryptogram")
2935
        String applicationCryptogram;
2936

2937
        /** Mnenomic of the Application Identifier. */
2938
        @SerializedName("application_preferred_name")
2939
        String applicationPreferredName;
2940

2941
        /** Identifier for this transaction. */
2942
        @SerializedName("authorization_code")
2943
        String authorizationCode;
2944

2945
        /** EMV tag 8A. A code returned by the card issuer. */
2946
        @SerializedName("authorization_response_code")
2947
        String authorizationResponseCode;
2948

2949
        /**
2950
         * Describes the method used by the cardholder to verify ownership of the card. One of the
2951
         * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
2952
         * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
2953
         */
2954
        @SerializedName("cardholder_verification_method")
2955
        String cardholderVerificationMethod;
2956

2957
        /**
2958
         * EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
2959
         */
2960
        @SerializedName("dedicated_file_name")
2961
        String dedicatedFileName;
2962

2963
        /** The outcome of a series of EMV functions performed by the card reader. */
2964
        @SerializedName("terminal_verification_results")
2965
        String terminalVerificationResults;
2966

2967
        /** An indication of various EMV functions performed during the transaction. */
2968
        @SerializedName("transaction_status_information")
2969
        String transactionStatusInformation;
2970
      }
2971
    }
2972

2973
    /**
2974
     * For more details about KakaoPay, please refer to the <a
2975
     * href="https://docs.stripe.com/api">API Reference.</a>
2976
     */
2977
    @Getter
2978
    @Setter
2979
    @EqualsAndHashCode(callSuper = false)
2980
    public static class KakaoPay extends StripeObject {
×
2981
      /** A unique identifier for the buyer as determined by the local payment processor. */
2982
      @SerializedName("buyer_id")
2983
      String buyerId;
2984
    }
2985

2986
    /**
2987
     * For more details about Klarna, please refer to the <a href="https://docs.stripe.com/api">API
2988
     * Reference.</a>
2989
     */
2990
    @Getter
2991
    @Setter
2992
    @EqualsAndHashCode(callSuper = false)
2993
    public static class Klarna extends StripeObject {
×
2994
      /** The payer details for this transaction. */
2995
      @SerializedName("payer_details")
2996
      PayerDetails payerDetails;
2997

2998
      /**
2999
       * The Klarna payment method used for this transaction. Can be one of {@code pay_later},
3000
       * {@code pay_now}, {@code pay_with_financing}, or {@code pay_in_installments}
3001
       */
3002
      @SerializedName("payment_method_category")
3003
      String paymentMethodCategory;
3004

3005
      /**
3006
       * Preferred language of the Klarna authorization page that the customer is redirected to. Can
3007
       * be one of {@code de-AT}, {@code en-AT}, {@code nl-BE}, {@code fr-BE}, {@code en-BE}, {@code
3008
       * de-DE}, {@code en-DE}, {@code da-DK}, {@code en-DK}, {@code es-ES}, {@code en-ES}, {@code
3009
       * fi-FI}, {@code sv-FI}, {@code en-FI}, {@code en-GB}, {@code en-IE}, {@code it-IT}, {@code
3010
       * en-IT}, {@code nl-NL}, {@code en-NL}, {@code nb-NO}, {@code en-NO}, {@code sv-SE}, {@code
3011
       * en-SE}, {@code en-US}, {@code es-US}, {@code fr-FR}, {@code en-FR}, {@code cs-CZ}, {@code
3012
       * en-CZ}, {@code ro-RO}, {@code en-RO}, {@code el-GR}, {@code en-GR}, {@code en-AU}, {@code
3013
       * en-NZ}, {@code en-CA}, {@code fr-CA}, {@code pl-PL}, {@code en-PL}, {@code pt-PT}, {@code
3014
       * en-PT}, {@code de-CH}, {@code fr-CH}, {@code it-CH}, or {@code en-CH}
3015
       */
3016
      @SerializedName("preferred_locale")
3017
      String preferredLocale;
3018

3019
      /**
3020
       * For more details about PayerDetails, please refer to the <a
3021
       * href="https://docs.stripe.com/api">API Reference.</a>
3022
       */
3023
      @Getter
3024
      @Setter
3025
      @EqualsAndHashCode(callSuper = false)
3026
      public static class PayerDetails extends StripeObject {
×
3027
        /** The payer's address. */
3028
        @SerializedName("address")
3029
        com.stripe.model.Charge.PaymentMethodDetails.Klarna.PayerDetails.Address address;
3030

3031
        /**
3032
         * For more details about Address, please refer to the <a
3033
         * href="https://docs.stripe.com/api">API Reference.</a>
3034
         */
3035
        @Getter
3036
        @Setter
3037
        @EqualsAndHashCode(callSuper = false)
3038
        public static class Address extends StripeObject {
×
3039
          /** The payer address country. */
3040
          @SerializedName("country")
3041
          String country;
3042
        }
3043
      }
3044
    }
3045

3046
    /**
3047
     * For more details about Konbini, please refer to the <a href="https://docs.stripe.com/api">API
3048
     * Reference.</a>
3049
     */
3050
    @Getter
3051
    @Setter
3052
    @EqualsAndHashCode(callSuper = false)
3053
    public static class Konbini extends StripeObject {
×
3054
      /**
3055
       * If the payment succeeded, this contains the details of the convenience store where the
3056
       * payment was completed.
3057
       */
3058
      @SerializedName("store")
3059
      Store store;
3060

3061
      /**
3062
       * For more details about Store, please refer to the <a href="https://docs.stripe.com/api">API
3063
       * Reference.</a>
3064
       */
3065
      @Getter
3066
      @Setter
3067
      @EqualsAndHashCode(callSuper = false)
3068
      public static class Store extends StripeObject {
×
3069
        /**
3070
         * The name of the convenience store chain where the payment was completed.
3071
         *
3072
         * <p>One of {@code familymart}, {@code lawson}, {@code ministop}, or {@code seicomart}.
3073
         */
3074
        @SerializedName("chain")
3075
        String chain;
3076
      }
3077
    }
3078

3079
    /**
3080
     * For more details about KrCard, please refer to the <a href="https://docs.stripe.com/api">API
3081
     * Reference.</a>
3082
     */
3083
    @Getter
3084
    @Setter
3085
    @EqualsAndHashCode(callSuper = false)
3086
    public static class KrCard extends StripeObject {
×
3087
      /**
3088
       * The local credit or debit card brand.
3089
       *
3090
       * <p>One of {@code bc}, {@code citi}, {@code hana}, {@code hyundai}, {@code jeju}, {@code
3091
       * jeonbuk}, {@code kakaobank}, {@code kbank}, {@code kdbbank}, {@code kookmin}, {@code
3092
       * kwangju}, {@code lotte}, {@code mg}, {@code nh}, {@code post}, {@code samsung}, {@code
3093
       * savingsbank}, {@code shinhan}, {@code shinhyup}, {@code suhyup}, {@code tossbank}, or
3094
       * {@code woori}.
3095
       */
3096
      @SerializedName("brand")
3097
      String brand;
3098

3099
      /** A unique identifier for the buyer as determined by the local payment processor. */
3100
      @SerializedName("buyer_id")
3101
      String buyerId;
3102

3103
      /** The last four digits of the card. This may not be present for American Express cards. */
3104
      @SerializedName("last4")
3105
      String last4;
3106
    }
3107

3108
    /**
3109
     * For more details about Link, please refer to the <a href="https://docs.stripe.com/api">API
3110
     * Reference.</a>
3111
     */
3112
    @Getter
3113
    @Setter
3114
    @EqualsAndHashCode(callSuper = false)
3115
    public static class Link extends StripeObject {
×
3116
      /**
3117
       * Two-letter ISO code representing the funding source country beneath the Link payment. You
3118
       * could use this attribute to get a sense of international fees.
3119
       */
3120
      @SerializedName("country")
3121
      String country;
3122
    }
3123

3124
    /**
3125
     * For more details about MbWay, please refer to the <a href="https://docs.stripe.com/api">API
3126
     * Reference.</a>
3127
     */
3128
    @Getter
3129
    @Setter
3130
    @EqualsAndHashCode(callSuper = false)
3131
    public static class MbWay extends StripeObject {}
×
3132

3133
    /**
3134
     * For more details about Mobilepay, please refer to the <a
3135
     * href="https://docs.stripe.com/api">API Reference.</a>
3136
     */
3137
    @Getter
3138
    @Setter
3139
    @EqualsAndHashCode(callSuper = false)
3140
    public static class Mobilepay extends StripeObject {
×
3141
      /** Internal card details. */
3142
      @SerializedName("card")
3143
      Card card;
3144

3145
      /**
3146
       * For more details about Card, please refer to the <a href="https://docs.stripe.com/api">API
3147
       * Reference.</a>
3148
       */
3149
      @Getter
3150
      @Setter
3151
      @EqualsAndHashCode(callSuper = false)
3152
      public static class Card extends StripeObject {
×
3153
        /** Brand of the card used in the transaction. */
3154
        @SerializedName("brand")
3155
        String brand;
3156

3157
        /** Two-letter ISO code representing the country of the card. */
3158
        @SerializedName("country")
3159
        String country;
3160

3161
        /** Two digit number representing the card's expiration month. */
3162
        @SerializedName("exp_month")
3163
        Long expMonth;
3164

3165
        /** Two digit number representing the card's expiration year. */
3166
        @SerializedName("exp_year")
3167
        Long expYear;
3168

3169
        /** The last 4 digits of the card. */
3170
        @SerializedName("last4")
3171
        String last4;
3172
      }
3173
    }
3174

3175
    /**
3176
     * For more details about Multibanco, please refer to the <a
3177
     * href="https://docs.stripe.com/api">API Reference.</a>
3178
     */
3179
    @Getter
3180
    @Setter
3181
    @EqualsAndHashCode(callSuper = false)
3182
    public static class Multibanco extends StripeObject {
×
3183
      /** Entity number associated with this Multibanco payment. */
3184
      @SerializedName("entity")
3185
      String entity;
3186

3187
      /** Reference number associated with this Multibanco payment. */
3188
      @SerializedName("reference")
3189
      String reference;
3190
    }
3191

3192
    /**
3193
     * For more details about NaverPay, please refer to the <a
3194
     * href="https://docs.stripe.com/api">API Reference.</a>
3195
     */
3196
    @Getter
3197
    @Setter
3198
    @EqualsAndHashCode(callSuper = false)
3199
    public static class NaverPay extends StripeObject {
×
3200
      /** A unique identifier for the buyer as determined by the local payment processor. */
3201
      @SerializedName("buyer_id")
3202
      String buyerId;
3203
    }
3204

3205
    /**
3206
     * For more details about Oxxo, please refer to the <a href="https://docs.stripe.com/api">API
3207
     * Reference.</a>
3208
     */
3209
    @Getter
3210
    @Setter
3211
    @EqualsAndHashCode(callSuper = false)
3212
    public static class Oxxo extends StripeObject {
×
3213
      /** OXXO reference number. */
3214
      @SerializedName("number")
3215
      String number;
3216
    }
3217

3218
    /**
3219
     * For more details about P24, 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 P24 extends StripeObject {
×
3226
      /**
3227
       * The customer's bank. Can be one of {@code ing}, {@code citi_handlowy}, {@code
3228
       * tmobile_usbugi_bankowe}, {@code plus_bank}, {@code etransfer_pocztowy24}, {@code
3229
       * banki_spbdzielcze}, {@code bank_nowy_bfg_sa}, {@code getin_bank}, {@code velobank}, {@code
3230
       * blik}, {@code noble_pay}, {@code ideabank}, {@code envelobank}, {@code
3231
       * santander_przelew24}, {@code nest_przelew}, {@code mbank_mtransfer}, {@code inteligo},
3232
       * {@code pbac_z_ipko}, {@code bnp_paribas}, {@code credit_agricole}, {@code toyota_bank},
3233
       * {@code bank_pekao_sa}, {@code volkswagen_bank}, {@code bank_millennium}, {@code
3234
       * alior_bank}, or {@code boz}.
3235
       */
3236
      @SerializedName("bank")
3237
      String bank;
3238

3239
      /** Unique reference for this Przelewy24 payment. */
3240
      @SerializedName("reference")
3241
      String reference;
3242

3243
      /**
3244
       * Owner's verified full name. Values are verified or provided by Przelewy24 directly (if
3245
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
3246
       * Przelewy24 rarely provides this information so the attribute is usually empty.
3247
       */
3248
      @SerializedName("verified_name")
3249
      String verifiedName;
3250
    }
3251

3252
    /**
3253
     * For more details about Payco, please refer to the <a href="https://docs.stripe.com/api">API
3254
     * Reference.</a>
3255
     */
3256
    @Getter
3257
    @Setter
3258
    @EqualsAndHashCode(callSuper = false)
3259
    public static class Payco extends StripeObject {
×
3260
      /** A unique identifier for the buyer as determined by the local payment processor. */
3261
      @SerializedName("buyer_id")
3262
      String buyerId;
3263
    }
3264

3265
    /**
3266
     * For more details about Paynow, please refer to the <a href="https://docs.stripe.com/api">API
3267
     * Reference.</a>
3268
     */
3269
    @Getter
3270
    @Setter
3271
    @EqualsAndHashCode(callSuper = false)
3272
    public static class Paynow extends StripeObject {
×
3273
      /** Reference number associated with this PayNow payment. */
3274
      @SerializedName("reference")
3275
      String reference;
3276
    }
3277

3278
    /**
3279
     * For more details about Paypal, please refer to the <a href="https://docs.stripe.com/api">API
3280
     * Reference.</a>
3281
     */
3282
    @Getter
3283
    @Setter
3284
    @EqualsAndHashCode(callSuper = false)
3285
    public static class Paypal extends StripeObject {
×
3286
      /**
3287
       * Owner's email. Values are provided by PayPal directly (if supported) at the time of
3288
       * authorization or settlement. They cannot be set or mutated.
3289
       */
3290
      @SerializedName("payer_email")
3291
      String payerEmail;
3292

3293
      /** PayPal account PayerID. This identifier uniquely identifies the PayPal customer. */
3294
      @SerializedName("payer_id")
3295
      String payerId;
3296

3297
      /**
3298
       * Owner's full name. Values provided by PayPal directly (if supported) at the time of
3299
       * authorization or settlement. They cannot be set or mutated.
3300
       */
3301
      @SerializedName("payer_name")
3302
      String payerName;
3303

3304
      /**
3305
       * The level of protection offered as defined by PayPal Seller Protection for Merchants, for
3306
       * this transaction.
3307
       */
3308
      @SerializedName("seller_protection")
3309
      SellerProtection sellerProtection;
3310

3311
      /**
3312
       * The shipping address for the customer, as supplied by the merchant at the point of payment
3313
       * execution. This shipping address will not be updated if the merchant updates the shipping
3314
       * address on the PaymentIntent after the PaymentIntent was successfully confirmed.
3315
       */
3316
      @SerializedName("shipping")
3317
      com.stripe.model.Address shipping;
3318

3319
      /** A unique ID generated by PayPal for this transaction. */
3320
      @SerializedName("transaction_id")
3321
      String transactionId;
3322

3323
      /**
3324
       * The shipping address for the customer, as supplied by the merchant at the point of payment
3325
       * execution. This shipping address will not be updated if the merchant updates the shipping
3326
       * address on the PaymentIntent after the PaymentIntent was successfully confirmed.
3327
       */
3328
      @SerializedName("verified_address")
3329
      com.stripe.model.Address verifiedAddress;
3330

3331
      /**
3332
       * Owner's verified email. Values are verified or provided by PayPal directly (if supported)
3333
       * at the time of authorization or settlement. They cannot be set or mutated.
3334
       */
3335
      @SerializedName("verified_email")
3336
      String verifiedEmail;
3337

3338
      /**
3339
       * Owner's verified full name. Values are verified or provided by PayPal directly (if
3340
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
3341
       */
3342
      @SerializedName("verified_name")
3343
      String verifiedName;
3344

3345
      /**
3346
       * For more details about SellerProtection, please refer to the <a
3347
       * href="https://docs.stripe.com/api">API Reference.</a>
3348
       */
3349
      @Getter
3350
      @Setter
3351
      @EqualsAndHashCode(callSuper = false)
3352
      public static class SellerProtection extends StripeObject {
×
3353
        /** An array of conditions that are covered for the transaction, if applicable. */
3354
        @SerializedName("dispute_categories")
3355
        List<String> disputeCategories;
3356

3357
        /**
3358
         * Indicates whether the transaction is eligible for PayPal's seller protection.
3359
         *
3360
         * <p>One of {@code eligible}, {@code not_eligible}, or {@code partially_eligible}.
3361
         */
3362
        @SerializedName("status")
3363
        String status;
3364
      }
3365
    }
3366

3367
    /**
3368
     * For more details about Payto, please refer to the <a href="https://docs.stripe.com/api">API
3369
     * Reference.</a>
3370
     */
3371
    @Getter
3372
    @Setter
3373
    @EqualsAndHashCode(callSuper = false)
3374
    public static class Payto extends StripeObject {
×
3375
      /** Bank-State-Branch number of the bank account. */
3376
      @SerializedName("bsb_number")
3377
      String bsbNumber;
3378

3379
      /** Last four digits of the bank account number. */
3380
      @SerializedName("last4")
3381
      String last4;
3382

3383
      /** ID of the mandate used to make this payment. */
3384
      @SerializedName("mandate")
3385
      String mandate;
3386

3387
      /** The PayID alias for the bank account. */
3388
      @SerializedName("pay_id")
3389
      String payId;
3390
    }
3391

3392
    /**
3393
     * For more details about Pix, please refer to the <a href="https://docs.stripe.com/api">API
3394
     * Reference.</a>
3395
     */
3396
    @Getter
3397
    @Setter
3398
    @EqualsAndHashCode(callSuper = false)
3399
    public static class Pix extends StripeObject {
×
3400
      /** Unique transaction id generated by BCB. */
3401
      @SerializedName("bank_transaction_id")
3402
      String bankTransactionId;
3403
    }
3404

3405
    /**
3406
     * For more details about Promptpay, please refer to the <a
3407
     * href="https://docs.stripe.com/api">API Reference.</a>
3408
     */
3409
    @Getter
3410
    @Setter
3411
    @EqualsAndHashCode(callSuper = false)
3412
    public static class Promptpay extends StripeObject {
×
3413
      /** Bill reference generated by PromptPay. */
3414
      @SerializedName("reference")
3415
      String reference;
3416
    }
3417

3418
    /**
3419
     * For more details about Qris, please refer to the <a href="https://docs.stripe.com/api">API
3420
     * Reference.</a>
3421
     */
3422
    @Getter
3423
    @Setter
3424
    @EqualsAndHashCode(callSuper = false)
3425
    public static class Qris extends StripeObject {}
×
3426

3427
    /**
3428
     * For more details about Rechnung, please refer to the <a
3429
     * href="https://docs.stripe.com/api">API Reference.</a>
3430
     */
3431
    @Getter
3432
    @Setter
3433
    @EqualsAndHashCode(callSuper = false)
3434
    public static class Rechnung extends StripeObject {}
×
3435

3436
    /**
3437
     * For more details about RevolutPay, 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 RevolutPay extends StripeObject {}
×
3444

3445
    /**
3446
     * For more details about SamsungPay, please refer to the <a
3447
     * href="https://docs.stripe.com/api">API Reference.</a>
3448
     */
3449
    @Getter
3450
    @Setter
3451
    @EqualsAndHashCode(callSuper = false)
3452
    public static class SamsungPay extends StripeObject {
×
3453
      /** A unique identifier for the buyer as determined by the local payment processor. */
3454
      @SerializedName("buyer_id")
3455
      String buyerId;
3456
    }
3457

3458
    /**
3459
     * For more details about SepaCreditTransfer, please refer to the <a
3460
     * href="https://docs.stripe.com/api">API Reference.</a>
3461
     */
3462
    @Getter
3463
    @Setter
3464
    @EqualsAndHashCode(callSuper = false)
3465
    public static class SepaCreditTransfer extends StripeObject {
×
3466
      /** Name of the bank associated with the bank account. */
3467
      @SerializedName("bank_name")
3468
      String bankName;
3469

3470
      /** Bank Identifier Code of the bank associated with the bank account. */
3471
      @SerializedName("bic")
3472
      String bic;
3473

3474
      /** IBAN of the bank account to transfer funds to. */
3475
      @SerializedName("iban")
3476
      String iban;
3477
    }
3478

3479
    /**
3480
     * For more details about SepaDebit, please refer to the <a
3481
     * href="https://docs.stripe.com/api">API Reference.</a>
3482
     */
3483
    @Getter
3484
    @Setter
3485
    @EqualsAndHashCode(callSuper = false)
3486
    public static class SepaDebit extends StripeObject {
×
3487
      /** Bank code of bank associated with the bank account. */
3488
      @SerializedName("bank_code")
3489
      String bankCode;
3490

3491
      /** Branch code of bank associated with the bank account. */
3492
      @SerializedName("branch_code")
3493
      String branchCode;
3494

3495
      /** Two-letter ISO code representing the country the bank account is located in. */
3496
      @SerializedName("country")
3497
      String country;
3498

3499
      /**
3500
       * Uniquely identifies this particular bank account. You can use this attribute to check
3501
       * whether two bank accounts are the same.
3502
       */
3503
      @SerializedName("fingerprint")
3504
      String fingerprint;
3505

3506
      /** Last four characters of the IBAN. */
3507
      @SerializedName("last4")
3508
      String last4;
3509

3510
      /**
3511
       * Find the ID of the mandate used for this payment under the <a
3512
       * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate">payment_method_details.sepa_debit.mandate</a>
3513
       * property on the Charge. Use this mandate ID to <a
3514
       * href="https://stripe.com/docs/api/mandates/retrieve">retrieve the Mandate</a>.
3515
       */
3516
      @SerializedName("mandate")
3517
      String mandate;
3518
    }
3519

3520
    /**
3521
     * For more details about Shopeepay, please refer to the <a
3522
     * href="https://docs.stripe.com/api">API Reference.</a>
3523
     */
3524
    @Getter
3525
    @Setter
3526
    @EqualsAndHashCode(callSuper = false)
3527
    public static class Shopeepay extends StripeObject {}
×
3528

3529
    /**
3530
     * For more details about Sofort, please refer to the <a href="https://docs.stripe.com/api">API
3531
     * Reference.</a>
3532
     */
3533
    @Getter
3534
    @Setter
3535
    @EqualsAndHashCode(callSuper = false)
3536
    public static class Sofort extends StripeObject {
×
3537
      /** Bank code of bank associated with the bank account. */
3538
      @SerializedName("bank_code")
3539
      String bankCode;
3540

3541
      /** Name of the bank associated with the bank account. */
3542
      @SerializedName("bank_name")
3543
      String bankName;
3544

3545
      /** Bank Identifier Code of the bank associated with the bank account. */
3546
      @SerializedName("bic")
3547
      String bic;
3548

3549
      /** Two-letter ISO code representing the country the bank account is located in. */
3550
      @SerializedName("country")
3551
      String country;
3552

3553
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
3554
      @SerializedName("generated_sepa_debit")
3555
      @Getter(lombok.AccessLevel.NONE)
3556
      @Setter(lombok.AccessLevel.NONE)
3557
      ExpandableField<PaymentMethod> generatedSepaDebit;
3558

3559
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
3560
      @SerializedName("generated_sepa_debit_mandate")
3561
      @Getter(lombok.AccessLevel.NONE)
3562
      @Setter(lombok.AccessLevel.NONE)
3563
      ExpandableField<Mandate> generatedSepaDebitMandate;
3564

3565
      /** Last four characters of the IBAN. */
3566
      @SerializedName("iban_last4")
3567
      String ibanLast4;
3568

3569
      /**
3570
       * Preferred language of the SOFORT authorization page that the customer is redirected to. Can
3571
       * be one of {@code de}, {@code en}, {@code es}, {@code fr}, {@code it}, {@code nl}, or {@code
3572
       * pl}
3573
       */
3574
      @SerializedName("preferred_language")
3575
      String preferredLanguage;
3576

3577
      /**
3578
       * Owner's verified full name. Values are verified or provided by SOFORT directly (if
3579
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
3580
       */
3581
      @SerializedName("verified_name")
3582
      String verifiedName;
3583

3584
      /** Get ID of expandable {@code generatedSepaDebit} object. */
3585
      public String getGeneratedSepaDebit() {
3586
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
3587
      }
3588

3589
      public void setGeneratedSepaDebit(String id) {
3590
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
3591
      }
×
3592

3593
      /** Get expanded {@code generatedSepaDebit}. */
3594
      public PaymentMethod getGeneratedSepaDebitObject() {
3595
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
3596
      }
3597

3598
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
3599
        this.generatedSepaDebit =
×
3600
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
3601
      }
×
3602

3603
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
3604
      public String getGeneratedSepaDebitMandate() {
3605
        return (this.generatedSepaDebitMandate != null)
×
3606
            ? this.generatedSepaDebitMandate.getId()
×
3607
            : null;
×
3608
      }
3609

3610
      public void setGeneratedSepaDebitMandate(String id) {
3611
        this.generatedSepaDebitMandate =
×
3612
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
3613
      }
×
3614

3615
      /** Get expanded {@code generatedSepaDebitMandate}. */
3616
      public Mandate getGeneratedSepaDebitMandateObject() {
3617
        return (this.generatedSepaDebitMandate != null)
×
3618
            ? this.generatedSepaDebitMandate.getExpanded()
×
3619
            : null;
×
3620
      }
3621

3622
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
3623
        this.generatedSepaDebitMandate =
×
3624
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
3625
      }
×
3626
    }
3627

3628
    /**
3629
     * For more details about StripeAccount, please refer to the <a
3630
     * href="https://docs.stripe.com/api">API Reference.</a>
3631
     */
3632
    @Getter
3633
    @Setter
3634
    @EqualsAndHashCode(callSuper = false)
3635
    public static class StripeAccount extends StripeObject {}
×
3636

3637
    /**
3638
     * For more details about Swish, please refer to the <a href="https://docs.stripe.com/api">API
3639
     * Reference.</a>
3640
     */
3641
    @Getter
3642
    @Setter
3643
    @EqualsAndHashCode(callSuper = false)
3644
    public static class Swish extends StripeObject {
×
3645
      /**
3646
       * Uniquely identifies the payer's Swish account. You can use this attribute to check whether
3647
       * two Swish transactions were paid for by the same payer
3648
       */
3649
      @SerializedName("fingerprint")
3650
      String fingerprint;
3651

3652
      /** Payer bank reference number for the payment. */
3653
      @SerializedName("payment_reference")
3654
      String paymentReference;
3655

3656
      /** The last four digits of the Swish account phone number. */
3657
      @SerializedName("verified_phone_last4")
3658
      String verifiedPhoneLast4;
3659
    }
3660

3661
    /**
3662
     * For more details about Twint, please refer to the <a href="https://docs.stripe.com/api">API
3663
     * Reference.</a>
3664
     */
3665
    @Getter
3666
    @Setter
3667
    @EqualsAndHashCode(callSuper = false)
3668
    public static class Twint extends StripeObject {}
×
3669

3670
    /**
3671
     * For more details about UsBankAccount, please refer to the <a
3672
     * href="https://docs.stripe.com/api">API Reference.</a>
3673
     */
3674
    @Getter
3675
    @Setter
3676
    @EqualsAndHashCode(callSuper = false)
3677
    public static class UsBankAccount extends StripeObject {
×
3678
      /**
3679
       * Account holder type: individual or company.
3680
       *
3681
       * <p>One of {@code company}, or {@code individual}.
3682
       */
3683
      @SerializedName("account_holder_type")
3684
      String accountHolderType;
3685

3686
      /**
3687
       * Account type: checkings or savings. Defaults to checking if omitted.
3688
       *
3689
       * <p>One of {@code checking}, or {@code savings}.
3690
       */
3691
      @SerializedName("account_type")
3692
      String accountType;
3693

3694
      /** Name of the bank associated with the bank account. */
3695
      @SerializedName("bank_name")
3696
      String bankName;
3697

3698
      /**
3699
       * Uniquely identifies this particular bank account. You can use this attribute to check
3700
       * whether two bank accounts are the same.
3701
       */
3702
      @SerializedName("fingerprint")
3703
      String fingerprint;
3704

3705
      /** Last four digits of the bank account number. */
3706
      @SerializedName("last4")
3707
      String last4;
3708

3709
      /** ID of the mandate used to make this payment. */
3710
      @SerializedName("mandate")
3711
      @Getter(lombok.AccessLevel.NONE)
3712
      @Setter(lombok.AccessLevel.NONE)
3713
      ExpandableField<Mandate> mandate;
3714

3715
      /** Reference number to locate ACH payments with customer's bank. */
3716
      @SerializedName("payment_reference")
3717
      String paymentReference;
3718

3719
      /** Routing number of the bank account. */
3720
      @SerializedName("routing_number")
3721
      String routingNumber;
3722

3723
      /** Get ID of expandable {@code mandate} object. */
3724
      public String getMandate() {
3725
        return (this.mandate != null) ? this.mandate.getId() : null;
×
3726
      }
3727

3728
      public void setMandate(String id) {
3729
        this.mandate = ApiResource.setExpandableFieldId(id, this.mandate);
×
3730
      }
×
3731

3732
      /** Get expanded {@code mandate}. */
3733
      public Mandate getMandateObject() {
3734
        return (this.mandate != null) ? this.mandate.getExpanded() : null;
×
3735
      }
3736

3737
      public void setMandateObject(Mandate expandableObject) {
3738
        this.mandate = new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
3739
      }
×
3740
    }
3741

3742
    /**
3743
     * For more details about Wechat, please refer to the <a href="https://docs.stripe.com/api">API
3744
     * Reference.</a>
3745
     */
3746
    @Getter
3747
    @Setter
3748
    @EqualsAndHashCode(callSuper = false)
3749
    public static class Wechat extends StripeObject {}
×
3750

3751
    /**
3752
     * For more details about WechatPay, please refer to the <a
3753
     * href="https://docs.stripe.com/api">API Reference.</a>
3754
     */
3755
    @Getter
3756
    @Setter
3757
    @EqualsAndHashCode(callSuper = false)
3758
    public static class WechatPay extends StripeObject {
×
3759
      /**
3760
       * Uniquely identifies this particular WeChat Pay account. You can use this attribute to check
3761
       * whether two WeChat accounts are the same.
3762
       */
3763
      @SerializedName("fingerprint")
3764
      String fingerprint;
3765

3766
      /** Transaction ID of this particular WeChat Pay transaction. */
3767
      @SerializedName("transaction_id")
3768
      String transactionId;
3769
    }
3770

3771
    /**
3772
     * For more details about Zip, please refer to the <a href="https://docs.stripe.com/api">API
3773
     * Reference.</a>
3774
     */
3775
    @Getter
3776
    @Setter
3777
    @EqualsAndHashCode(callSuper = false)
3778
    public static class Zip extends StripeObject {}
×
3779
  }
3780

3781
  /**
3782
   * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
3783
   * Session</a> for more information.
3784
   */
3785
  @Getter
3786
  @Setter
3787
  @EqualsAndHashCode(callSuper = false)
3788
  public static class RadarOptions extends StripeObject {
×
3789
    /**
3790
     * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
3791
     * the browser metadata and device details that help Radar make more accurate predictions on
3792
     * your payments.
3793
     */
3794
    @SerializedName("session")
3795
    String session;
3796
  }
3797

3798
  /**
3799
   * For more details about TransferData, please refer to the <a
3800
   * href="https://docs.stripe.com/api">API Reference.</a>
3801
   */
3802
  @Getter
3803
  @Setter
3804
  @EqualsAndHashCode(callSuper = false)
3805
  public static class TransferData extends StripeObject {
1✔
3806
    /**
3807
     * The amount transferred to the destination account, if specified. By default, the entire
3808
     * charge amount is transferred to the destination account.
3809
     */
3810
    @SerializedName("amount")
3811
    Long amount;
3812

3813
    /**
3814
     * ID of an existing, connected Stripe account to transfer funds to if {@code transfer_data} was
3815
     * specified in the charge request.
3816
     */
3817
    @SerializedName("destination")
3818
    @Getter(lombok.AccessLevel.NONE)
3819
    @Setter(lombok.AccessLevel.NONE)
3820
    ExpandableField<Account> destination;
3821

3822
    /** Get ID of expandable {@code destination} object. */
3823
    public String getDestination() {
3824
      return (this.destination != null) ? this.destination.getId() : null;
1✔
3825
    }
3826

3827
    public void setDestination(String id) {
3828
      this.destination = ApiResource.setExpandableFieldId(id, this.destination);
×
3829
    }
×
3830

3831
    /** Get expanded {@code destination}. */
3832
    public Account getDestinationObject() {
3833
      return (this.destination != null) ? this.destination.getExpanded() : null;
1✔
3834
    }
3835

3836
    public void setDestinationObject(Account expandableObject) {
3837
      this.destination = new ExpandableField<Account>(expandableObject.getId(), expandableObject);
×
3838
    }
×
3839
  }
3840

3841
  @Override
3842
  public void setResponseGetter(StripeResponseGetter responseGetter) {
3843
    super.setResponseGetter(responseGetter);
1✔
3844
    trySetResponseGetter(application, responseGetter);
1✔
3845
    trySetResponseGetter(applicationFee, responseGetter);
1✔
3846
    trySetResponseGetter(balanceTransaction, responseGetter);
1✔
3847
    trySetResponseGetter(billingDetails, responseGetter);
1✔
3848
    trySetResponseGetter(customer, responseGetter);
1✔
3849
    trySetResponseGetter(failureBalanceTransaction, responseGetter);
1✔
3850
    trySetResponseGetter(fraudDetails, responseGetter);
1✔
3851
    trySetResponseGetter(invoice, responseGetter);
1✔
3852
    trySetResponseGetter(level3, responseGetter);
1✔
3853
    trySetResponseGetter(onBehalfOf, responseGetter);
1✔
3854
    trySetResponseGetter(outcome, responseGetter);
1✔
3855
    trySetResponseGetter(paymentIntent, responseGetter);
1✔
3856
    trySetResponseGetter(paymentMethodDetails, responseGetter);
1✔
3857
    trySetResponseGetter(radarOptions, responseGetter);
1✔
3858
    trySetResponseGetter(refunds, responseGetter);
1✔
3859
    trySetResponseGetter(review, responseGetter);
1✔
3860
    trySetResponseGetter(shipping, responseGetter);
1✔
3861
    trySetResponseGetter(source, responseGetter);
1✔
3862
    trySetResponseGetter(sourceTransfer, responseGetter);
1✔
3863
    trySetResponseGetter(transfer, responseGetter);
1✔
3864
    trySetResponseGetter(transferData, responseGetter);
1✔
3865
  }
1✔
3866
}
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