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

stripe / stripe-java / #16659

21 Nov 2024 07:24PM UTC coverage: 12.4% (-0.01%) from 12.414%
#16659

push

github

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

Update generated code for beta

3 of 189 new or added lines in 10 files covered. (1.59%)

1 existing line in 1 file now uncovered.

18860 of 152092 relevant lines covered (12.4%)

0.12 hits per line

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

31.02
/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
     * For charges declined by the network, a 2 digit code which indicates the advice returned by
1033
     * the network on how to proceed with an error.
1034
     */
1035
    @SerializedName("network_advice_code")
1036
    String networkAdviceCode;
1037

1038
    /**
1039
     * For charges declined by the network, a brand specific 2, 3, or 4 digit code which indicates
1040
     * the reason the authorization failed.
1041
     */
1042
    @SerializedName("network_decline_code")
1043
    String networkDeclineCode;
1044

1045
    /**
1046
     * Possible values are {@code approved_by_network}, {@code declined_by_network}, {@code
1047
     * not_sent_to_network}, and {@code reversed_after_approval}. The value {@code
1048
     * reversed_after_approval} indicates the payment was <a
1049
     * href="https://stripe.com/docs/declines#blocked-payments">blocked by Stripe</a> after bank
1050
     * authorization, and may temporarily appear as &quot;pending&quot; on a cardholder's statement.
1051
     */
1052
    @SerializedName("network_status")
1053
    String networkStatus;
1054

1055
    /**
1056
     * An enumerated value providing a more detailed explanation of the outcome's {@code type}.
1057
     * Charges blocked by Radar's default block rule have the value {@code highest_risk_level}.
1058
     * Charges placed in review by Radar's default review rule have the value {@code
1059
     * elevated_risk_level}. Charges authorized, blocked, or placed in review by custom rules have
1060
     * the value {@code rule}. See <a href="https://stripe.com/docs/declines">understanding
1061
     * declines</a> for more details.
1062
     */
1063
    @SerializedName("reason")
1064
    String reason;
1065

1066
    /**
1067
     * Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated
1068
     * payments are {@code normal}, {@code elevated}, {@code highest}. For non-card payments, and
1069
     * card-based payments predating the public assignment of risk levels, this field will have the
1070
     * value {@code not_assessed}. In the event of an error in the evaluation, this field will have
1071
     * the value {@code unknown}. This field is only available with Radar.
1072
     */
1073
    @SerializedName("risk_level")
1074
    String riskLevel;
1075

1076
    /**
1077
     * Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated
1078
     * payments are between 0 and 100. For non-card payments, card-based payments predating the
1079
     * public assignment of risk scores, or in the event of an error during evaluation, this field
1080
     * will not be present. This field is only available with Radar for Fraud Teams.
1081
     */
1082
    @SerializedName("risk_score")
1083
    Long riskScore;
1084

1085
    /** The ID of the Radar rule that matched the payment, if applicable. */
1086
    @SerializedName("rule")
1087
    @Getter(lombok.AccessLevel.NONE)
1088
    @Setter(lombok.AccessLevel.NONE)
1089
    ExpandableField<Rule> rule;
1090

1091
    /**
1092
     * A human-readable description of the outcome type and reason, designed for you (the recipient
1093
     * of the payment), not your customer.
1094
     */
1095
    @SerializedName("seller_message")
1096
    String sellerMessage;
1097

1098
    /**
1099
     * Possible values are {@code authorized}, {@code manual_review}, {@code issuer_declined},
1100
     * {@code blocked}, and {@code invalid}. See <a
1101
     * href="https://stripe.com/docs/declines">understanding declines</a> and <a
1102
     * href="https://stripe.com/docs/radar/reviews">Radar reviews</a> for details.
1103
     */
1104
    @SerializedName("type")
1105
    String type;
1106

1107
    /** Get ID of expandable {@code rule} object. */
1108
    public String getRule() {
1109
      return (this.rule != null) ? this.rule.getId() : null;
×
1110
    }
1111

1112
    public void setRule(String id) {
1113
      this.rule = ApiResource.setExpandableFieldId(id, this.rule);
×
1114
    }
×
1115

1116
    /** Get expanded {@code rule}. */
1117
    public Rule getRuleObject() {
1118
      return (this.rule != null) ? this.rule.getExpanded() : null;
×
1119
    }
1120

1121
    public void setRuleObject(Rule expandableObject) {
1122
      this.rule = new ExpandableField<Rule>(expandableObject.getId(), expandableObject);
×
1123
    }
×
1124

1125
    /**
1126
     * For more details about Rule, please refer to the <a href="https://docs.stripe.com/api">API
1127
     * Reference.</a>
1128
     */
1129
    @Getter
1130
    @Setter
1131
    @EqualsAndHashCode(callSuper = false)
1132
    public static class Rule extends StripeObject implements HasId {
×
1133
      /** The action taken on the payment. */
1134
      @SerializedName("action")
1135
      String action;
1136

1137
      /** Unique identifier for the object. */
1138
      @Getter(onMethod_ = {@Override})
1139
      @SerializedName("id")
1140
      String id;
1141

1142
      /** The predicate to evaluate the payment against. */
1143
      @SerializedName("predicate")
1144
      String predicate;
1145
    }
1146
  }
1147

1148
  /**
1149
   * For more details about PaymentMethodDetails, please refer to the <a
1150
   * href="https://docs.stripe.com/api">API Reference.</a>
1151
   */
1152
  @Getter
1153
  @Setter
1154
  @EqualsAndHashCode(callSuper = false)
1155
  public static class PaymentMethodDetails extends StripeObject {
1✔
1156
    @SerializedName("ach_credit_transfer")
1157
    AchCreditTransfer achCreditTransfer;
1158

1159
    @SerializedName("ach_debit")
1160
    AchDebit achDebit;
1161

1162
    @SerializedName("acss_debit")
1163
    AcssDebit acssDebit;
1164

1165
    @SerializedName("affirm")
1166
    Affirm affirm;
1167

1168
    @SerializedName("afterpay_clearpay")
1169
    AfterpayClearpay afterpayClearpay;
1170

1171
    @SerializedName("alipay")
1172
    Alipay alipay;
1173

1174
    @SerializedName("alma")
1175
    Alma alma;
1176

1177
    @SerializedName("amazon_pay")
1178
    AmazonPay amazonPay;
1179

1180
    @SerializedName("au_becs_debit")
1181
    AuBecsDebit auBecsDebit;
1182

1183
    @SerializedName("bacs_debit")
1184
    BacsDebit bacsDebit;
1185

1186
    @SerializedName("bancontact")
1187
    Bancontact bancontact;
1188

1189
    @SerializedName("blik")
1190
    Blik blik;
1191

1192
    @SerializedName("boleto")
1193
    Boleto boleto;
1194

1195
    @SerializedName("card")
1196
    Card card;
1197

1198
    @SerializedName("card_present")
1199
    CardPresent cardPresent;
1200

1201
    @SerializedName("cashapp")
1202
    Cashapp cashapp;
1203

1204
    @SerializedName("customer_balance")
1205
    CustomerBalance customerBalance;
1206

1207
    @SerializedName("eps")
1208
    Eps eps;
1209

1210
    @SerializedName("fpx")
1211
    Fpx fpx;
1212

1213
    @SerializedName("giropay")
1214
    Giropay giropay;
1215

1216
    @SerializedName("gopay")
1217
    Gopay gopay;
1218

1219
    @SerializedName("grabpay")
1220
    Grabpay grabpay;
1221

1222
    @SerializedName("id_bank_transfer")
1223
    IdBankTransfer idBankTransfer;
1224

1225
    @SerializedName("ideal")
1226
    Ideal ideal;
1227

1228
    @SerializedName("interac_present")
1229
    InteracPresent interacPresent;
1230

1231
    @SerializedName("kakao_pay")
1232
    KakaoPay kakaoPay;
1233

1234
    @SerializedName("klarna")
1235
    Klarna klarna;
1236

1237
    @SerializedName("konbini")
1238
    Konbini konbini;
1239

1240
    @SerializedName("kr_card")
1241
    KrCard krCard;
1242

1243
    @SerializedName("link")
1244
    Link link;
1245

1246
    @SerializedName("mb_way")
1247
    MbWay mbWay;
1248

1249
    @SerializedName("mobilepay")
1250
    Mobilepay mobilepay;
1251

1252
    @SerializedName("multibanco")
1253
    Multibanco multibanco;
1254

1255
    @SerializedName("naver_pay")
1256
    NaverPay naverPay;
1257

1258
    @SerializedName("oxxo")
1259
    Oxxo oxxo;
1260

1261
    @SerializedName("p24")
1262
    P24 p24;
1263

1264
    @SerializedName("payco")
1265
    Payco payco;
1266

1267
    @SerializedName("paynow")
1268
    Paynow paynow;
1269

1270
    @SerializedName("paypal")
1271
    Paypal paypal;
1272

1273
    @SerializedName("payto")
1274
    Payto payto;
1275

1276
    @SerializedName("pix")
1277
    Pix pix;
1278

1279
    @SerializedName("promptpay")
1280
    Promptpay promptpay;
1281

1282
    @SerializedName("qris")
1283
    Qris qris;
1284

1285
    @SerializedName("rechnung")
1286
    Rechnung rechnung;
1287

1288
    @SerializedName("revolut_pay")
1289
    RevolutPay revolutPay;
1290

1291
    @SerializedName("samsung_pay")
1292
    SamsungPay samsungPay;
1293

1294
    @SerializedName("sepa_credit_transfer")
1295
    SepaCreditTransfer sepaCreditTransfer;
1296

1297
    @SerializedName("sepa_debit")
1298
    SepaDebit sepaDebit;
1299

1300
    @SerializedName("shopeepay")
1301
    Shopeepay shopeepay;
1302

1303
    @SerializedName("sofort")
1304
    Sofort sofort;
1305

1306
    @SerializedName("stripe_account")
1307
    StripeAccount stripeAccount;
1308

1309
    @SerializedName("swish")
1310
    Swish swish;
1311

1312
    @SerializedName("twint")
1313
    Twint twint;
1314

1315
    /**
1316
     * The type of transaction-specific details of the payment method used in the payment, one of
1317
     * {@code ach_credit_transfer}, {@code ach_debit}, {@code acss_debit}, {@code alipay}, {@code
1318
     * au_becs_debit}, {@code bancontact}, {@code card}, {@code card_present}, {@code eps}, {@code
1319
     * giropay}, {@code ideal}, {@code klarna}, {@code multibanco}, {@code p24}, {@code sepa_debit},
1320
     * {@code sofort}, {@code stripe_account}, or {@code wechat}. An additional hash is included on
1321
     * {@code payment_method_details} with a name matching this value. It contains information
1322
     * specific to the payment method.
1323
     */
1324
    @SerializedName("type")
1325
    String type;
1326

1327
    @SerializedName("us_bank_account")
1328
    UsBankAccount usBankAccount;
1329

1330
    @SerializedName("wechat")
1331
    Wechat wechat;
1332

1333
    @SerializedName("wechat_pay")
1334
    WechatPay wechatPay;
1335

1336
    @SerializedName("zip")
1337
    Zip zip;
1338

1339
    /**
1340
     * For more details about AchCreditTransfer, please refer to the <a
1341
     * href="https://docs.stripe.com/api">API Reference.</a>
1342
     */
1343
    @Getter
1344
    @Setter
1345
    @EqualsAndHashCode(callSuper = false)
1346
    public static class AchCreditTransfer extends StripeObject {
×
1347
      /** Account number to transfer funds to. */
1348
      @SerializedName("account_number")
1349
      String accountNumber;
1350

1351
      /** Name of the bank associated with the routing number. */
1352
      @SerializedName("bank_name")
1353
      String bankName;
1354

1355
      /** Routing transit number for the bank account to transfer funds to. */
1356
      @SerializedName("routing_number")
1357
      String routingNumber;
1358

1359
      /** SWIFT code of the bank associated with the routing number. */
1360
      @SerializedName("swift_code")
1361
      String swiftCode;
1362
    }
1363

1364
    /**
1365
     * For more details about AchDebit, please refer to the <a
1366
     * href="https://docs.stripe.com/api">API Reference.</a>
1367
     */
1368
    @Getter
1369
    @Setter
1370
    @EqualsAndHashCode(callSuper = false)
1371
    public static class AchDebit extends StripeObject {
×
1372
      /**
1373
       * Type of entity that holds the account. This can be either {@code individual} or {@code
1374
       * company}.
1375
       *
1376
       * <p>One of {@code company}, or {@code individual}.
1377
       */
1378
      @SerializedName("account_holder_type")
1379
      String accountHolderType;
1380

1381
      /** Name of the bank associated with the bank account. */
1382
      @SerializedName("bank_name")
1383
      String bankName;
1384

1385
      /** Two-letter ISO code representing the country the bank account is located in. */
1386
      @SerializedName("country")
1387
      String country;
1388

1389
      /**
1390
       * Uniquely identifies this particular bank account. You can use this attribute to check
1391
       * whether two bank accounts are the same.
1392
       */
1393
      @SerializedName("fingerprint")
1394
      String fingerprint;
1395

1396
      /** Last four digits of the bank account number. */
1397
      @SerializedName("last4")
1398
      String last4;
1399

1400
      /** Routing transit number of the bank account. */
1401
      @SerializedName("routing_number")
1402
      String routingNumber;
1403
    }
1404

1405
    /**
1406
     * For more details about AcssDebit, please refer to the <a
1407
     * href="https://docs.stripe.com/api">API Reference.</a>
1408
     */
1409
    @Getter
1410
    @Setter
1411
    @EqualsAndHashCode(callSuper = false)
1412
    public static class AcssDebit extends StripeObject {
×
1413
      /** Name of the bank associated with the bank account. */
1414
      @SerializedName("bank_name")
1415
      String bankName;
1416

1417
      /**
1418
       * Uniquely identifies this particular bank account. You can use this attribute to check
1419
       * whether two bank accounts are the same.
1420
       */
1421
      @SerializedName("fingerprint")
1422
      String fingerprint;
1423

1424
      /** Institution number of the bank account. */
1425
      @SerializedName("institution_number")
1426
      String institutionNumber;
1427

1428
      /** Last four digits of the bank account number. */
1429
      @SerializedName("last4")
1430
      String last4;
1431

1432
      /** ID of the mandate used to make this payment. */
1433
      @SerializedName("mandate")
1434
      String mandate;
1435

1436
      /** Transit number of the bank account. */
1437
      @SerializedName("transit_number")
1438
      String transitNumber;
1439
    }
1440

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

1454
    /**
1455
     * For more details about AfterpayClearpay, please refer to the <a
1456
     * href="https://docs.stripe.com/api">API Reference.</a>
1457
     */
1458
    @Getter
1459
    @Setter
1460
    @EqualsAndHashCode(callSuper = false)
1461
    public static class AfterpayClearpay extends StripeObject {
×
1462
      /** The Afterpay order ID associated with this payment intent. */
1463
      @SerializedName("order_id")
1464
      String orderId;
1465

1466
      /** Order identifier shown to the merchant in Afterpay’s online portal. */
1467
      @SerializedName("reference")
1468
      String reference;
1469
    }
1470

1471
    /**
1472
     * For more details about Alipay, please refer to the <a href="https://docs.stripe.com/api">API
1473
     * Reference.</a>
1474
     */
1475
    @Getter
1476
    @Setter
1477
    @EqualsAndHashCode(callSuper = false)
1478
    public static class Alipay extends StripeObject {
×
1479
      /**
1480
       * Uniquely identifies this particular Alipay account. You can use this attribute to check
1481
       * whether two Alipay accounts are the same.
1482
       */
1483
      @SerializedName("buyer_id")
1484
      String buyerId;
1485

1486
      /**
1487
       * Uniquely identifies this particular Alipay account. You can use this attribute to check
1488
       * whether two Alipay accounts are the same.
1489
       */
1490
      @SerializedName("fingerprint")
1491
      String fingerprint;
1492

1493
      /** Transaction ID of this particular Alipay transaction. */
1494
      @SerializedName("transaction_id")
1495
      String transactionId;
1496
    }
1497

1498
    /**
1499
     * For more details about Alma, please refer to the <a href="https://docs.stripe.com/api">API
1500
     * Reference.</a>
1501
     */
1502
    @Getter
1503
    @Setter
1504
    @EqualsAndHashCode(callSuper = false)
1505
    public static class Alma extends StripeObject {}
×
1506

1507
    /**
1508
     * For more details about AmazonPay, please refer to the <a
1509
     * href="https://docs.stripe.com/api">API Reference.</a>
1510
     */
1511
    @Getter
1512
    @Setter
1513
    @EqualsAndHashCode(callSuper = false)
NEW
1514
    public static class AmazonPay extends StripeObject {
×
1515
      @SerializedName("funding")
1516
      Funding funding;
1517

1518
      /**
1519
       * For more details about Funding, please refer to the <a
1520
       * href="https://docs.stripe.com/api">API Reference.</a>
1521
       */
1522
      @Getter
1523
      @Setter
1524
      @EqualsAndHashCode(callSuper = false)
NEW
1525
      public static class Funding extends StripeObject {
×
1526
        @SerializedName("card")
1527
        Card card;
1528

1529
        /**
1530
         * funding type of the underlying payment method.
1531
         *
1532
         * <p>Equal to {@code card}.
1533
         */
1534
        @SerializedName("type")
1535
        String type;
1536

1537
        /**
1538
         * For more details about Card, please refer to the <a
1539
         * href="https://docs.stripe.com/api">API Reference.</a>
1540
         */
1541
        @Getter
1542
        @Setter
1543
        @EqualsAndHashCode(callSuper = false)
NEW
1544
        public static class Card extends StripeObject {
×
1545
          /**
1546
           * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
1547
           * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or
1548
           * {@code unknown}.
1549
           */
1550
          @SerializedName("brand")
1551
          String brand;
1552

1553
          /**
1554
           * Two-letter ISO code representing the country of the card. You could use this attribute
1555
           * to get a sense of the international breakdown of cards you've collected.
1556
           */
1557
          @SerializedName("country")
1558
          String country;
1559

1560
          /** Two-digit number representing the card's expiration month. */
1561
          @SerializedName("exp_month")
1562
          Long expMonth;
1563

1564
          /** Four-digit number representing the card's expiration year. */
1565
          @SerializedName("exp_year")
1566
          Long expYear;
1567

1568
          /**
1569
           * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
1570
           * unknown}.
1571
           */
1572
          @SerializedName("funding")
1573
          String funding;
1574

1575
          /** The last four digits of the card. */
1576
          @SerializedName("last4")
1577
          String last4;
1578
        }
1579
      }
1580
    }
1581

1582
    /**
1583
     * For more details about AuBecsDebit, please refer to the <a
1584
     * href="https://docs.stripe.com/api">API Reference.</a>
1585
     */
1586
    @Getter
1587
    @Setter
1588
    @EqualsAndHashCode(callSuper = false)
1589
    public static class AuBecsDebit extends StripeObject {
×
1590
      /** Bank-State-Branch number of the bank account. */
1591
      @SerializedName("bsb_number")
1592
      String bsbNumber;
1593

1594
      /**
1595
       * Uniquely identifies this particular bank account. You can use this attribute to check
1596
       * whether two bank accounts are the same.
1597
       */
1598
      @SerializedName("fingerprint")
1599
      String fingerprint;
1600

1601
      /** Last four digits of the bank account number. */
1602
      @SerializedName("last4")
1603
      String last4;
1604

1605
      /** ID of the mandate used to make this payment. */
1606
      @SerializedName("mandate")
1607
      String mandate;
1608
    }
1609

1610
    /**
1611
     * For more details about BacsDebit, please refer to the <a
1612
     * href="https://docs.stripe.com/api">API Reference.</a>
1613
     */
1614
    @Getter
1615
    @Setter
1616
    @EqualsAndHashCode(callSuper = false)
1617
    public static class BacsDebit extends StripeObject {
×
1618
      /**
1619
       * Uniquely identifies this particular bank account. You can use this attribute to check
1620
       * whether two bank accounts are the same.
1621
       */
1622
      @SerializedName("fingerprint")
1623
      String fingerprint;
1624

1625
      /** Last four digits of the bank account number. */
1626
      @SerializedName("last4")
1627
      String last4;
1628

1629
      /** ID of the mandate used to make this payment. */
1630
      @SerializedName("mandate")
1631
      String mandate;
1632

1633
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1634
      @SerializedName("sort_code")
1635
      String sortCode;
1636
    }
1637

1638
    /**
1639
     * For more details about Bancontact, please refer to the <a
1640
     * href="https://docs.stripe.com/api">API Reference.</a>
1641
     */
1642
    @Getter
1643
    @Setter
1644
    @EqualsAndHashCode(callSuper = false)
1645
    public static class Bancontact extends StripeObject {
×
1646
      /** Bank code of bank associated with the bank account. */
1647
      @SerializedName("bank_code")
1648
      String bankCode;
1649

1650
      /** Name of the bank associated with the bank account. */
1651
      @SerializedName("bank_name")
1652
      String bankName;
1653

1654
      /** Bank Identifier Code of the bank associated with the bank account. */
1655
      @SerializedName("bic")
1656
      String bic;
1657

1658
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
1659
      @SerializedName("generated_sepa_debit")
1660
      @Getter(lombok.AccessLevel.NONE)
1661
      @Setter(lombok.AccessLevel.NONE)
1662
      ExpandableField<PaymentMethod> generatedSepaDebit;
1663

1664
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
1665
      @SerializedName("generated_sepa_debit_mandate")
1666
      @Getter(lombok.AccessLevel.NONE)
1667
      @Setter(lombok.AccessLevel.NONE)
1668
      ExpandableField<Mandate> generatedSepaDebitMandate;
1669

1670
      /** Last four characters of the IBAN. */
1671
      @SerializedName("iban_last4")
1672
      String ibanLast4;
1673

1674
      /**
1675
       * Preferred language of the Bancontact authorization page that the customer is redirected to.
1676
       * Can be one of {@code en}, {@code de}, {@code fr}, or {@code nl}
1677
       */
1678
      @SerializedName("preferred_language")
1679
      String preferredLanguage;
1680

1681
      /**
1682
       * Owner's verified full name. Values are verified or provided by Bancontact directly (if
1683
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
1684
       */
1685
      @SerializedName("verified_name")
1686
      String verifiedName;
1687

1688
      /** Get ID of expandable {@code generatedSepaDebit} object. */
1689
      public String getGeneratedSepaDebit() {
1690
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
1691
      }
1692

1693
      public void setGeneratedSepaDebit(String id) {
1694
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
1695
      }
×
1696

1697
      /** Get expanded {@code generatedSepaDebit}. */
1698
      public PaymentMethod getGeneratedSepaDebitObject() {
1699
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
1700
      }
1701

1702
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
1703
        this.generatedSepaDebit =
×
1704
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
1705
      }
×
1706

1707
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
1708
      public String getGeneratedSepaDebitMandate() {
1709
        return (this.generatedSepaDebitMandate != null)
×
1710
            ? this.generatedSepaDebitMandate.getId()
×
1711
            : null;
×
1712
      }
1713

1714
      public void setGeneratedSepaDebitMandate(String id) {
1715
        this.generatedSepaDebitMandate =
×
1716
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
1717
      }
×
1718

1719
      /** Get expanded {@code generatedSepaDebitMandate}. */
1720
      public Mandate getGeneratedSepaDebitMandateObject() {
1721
        return (this.generatedSepaDebitMandate != null)
×
1722
            ? this.generatedSepaDebitMandate.getExpanded()
×
1723
            : null;
×
1724
      }
1725

1726
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
1727
        this.generatedSepaDebitMandate =
×
1728
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
1729
      }
×
1730
    }
1731

1732
    /**
1733
     * For more details about Blik, please refer to the <a href="https://docs.stripe.com/api">API
1734
     * Reference.</a>
1735
     */
1736
    @Getter
1737
    @Setter
1738
    @EqualsAndHashCode(callSuper = false)
1739
    public static class Blik extends StripeObject {
×
1740
      /** A unique and immutable identifier assigned by BLIK to every buyer. */
1741
      @SerializedName("buyer_id")
1742
      String buyerId;
1743
    }
1744

1745
    /**
1746
     * For more details about Boleto, please refer to the <a href="https://docs.stripe.com/api">API
1747
     * Reference.</a>
1748
     */
1749
    @Getter
1750
    @Setter
1751
    @EqualsAndHashCode(callSuper = false)
1752
    public static class Boleto extends StripeObject {
×
1753
      /**
1754
       * The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses
1755
       * consumers).
1756
       */
1757
      @SerializedName("tax_id")
1758
      String taxId;
1759
    }
1760

1761
    /**
1762
     * For more details about Card, please refer to the <a href="https://docs.stripe.com/api">API
1763
     * Reference.</a>
1764
     */
1765
    @Getter
1766
    @Setter
1767
    @EqualsAndHashCode(callSuper = false)
1768
    public static class Card extends StripeObject {
1✔
1769
      /** The authorized amount. */
1770
      @SerializedName("amount_authorized")
1771
      Long amountAuthorized;
1772

1773
      /** The latest amount intended to be authorized by this charge. */
1774
      @SerializedName("amount_requested")
1775
      Long amountRequested;
1776

1777
      /** Authorization code on the charge. */
1778
      @SerializedName("authorization_code")
1779
      String authorizationCode;
1780

1781
      /**
1782
       * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
1783
       * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
1784
       * unknown}.
1785
       */
1786
      @SerializedName("brand")
1787
      String brand;
1788

1789
      /**
1790
       * When using manual capture, a future timestamp at which the charge will be automatically
1791
       * refunded if uncaptured.
1792
       */
1793
      @SerializedName("capture_before")
1794
      Long captureBefore;
1795

1796
      /** Check results by Card networks on Card address and CVC at time of payment. */
1797
      @SerializedName("checks")
1798
      Checks checks;
1799

1800
      /**
1801
       * Two-letter ISO code representing the country of the card. You could use this attribute to
1802
       * get a sense of the international breakdown of cards you've collected.
1803
       */
1804
      @SerializedName("country")
1805
      String country;
1806

1807
      @SerializedName("decremental_authorization")
1808
      DecrementalAuthorization decrementalAuthorization;
1809

1810
      /**
1811
       * A high-level description of the type of cards issued in this range. (For internal use only
1812
       * and not typically available in standard API requests.)
1813
       */
1814
      @SerializedName("description")
1815
      String description;
1816

1817
      /** Two-digit number representing the card's expiration month. */
1818
      @SerializedName("exp_month")
1819
      Long expMonth;
1820

1821
      /** Four-digit number representing the card's expiration year. */
1822
      @SerializedName("exp_year")
1823
      Long expYear;
1824

1825
      @SerializedName("extended_authorization")
1826
      ExtendedAuthorization extendedAuthorization;
1827

1828
      /**
1829
       * Uniquely identifies this particular card number. You can use this attribute to check
1830
       * whether two customers who’ve signed up with you are using the same card number, for
1831
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
1832
       * tokenized number might be provided instead of the underlying card number.
1833
       *
1834
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
1835
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
1836
       */
1837
      @SerializedName("fingerprint")
1838
      String fingerprint;
1839

1840
      /**
1841
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
1842
       * unknown}.
1843
       */
1844
      @SerializedName("funding")
1845
      String funding;
1846

1847
      /**
1848
       * Issuer identification number of the card. (For internal use only and not typically
1849
       * available in standard API requests.)
1850
       */
1851
      @SerializedName("iin")
1852
      String iin;
1853

1854
      @SerializedName("incremental_authorization")
1855
      IncrementalAuthorization incrementalAuthorization;
1856

1857
      /**
1858
       * Installment details for this payment (Mexico only).
1859
       *
1860
       * <p>For more information, see the <a
1861
       * href="https://stripe.com/docs/payments/installments">installments integration guide</a>.
1862
       */
1863
      @SerializedName("installments")
1864
      Installments installments;
1865

1866
      /**
1867
       * The name of the card's issuing bank. (For internal use only and not typically available in
1868
       * standard API requests.)
1869
       */
1870
      @SerializedName("issuer")
1871
      String issuer;
1872

1873
      /** The last four digits of the card. */
1874
      @SerializedName("last4")
1875
      String last4;
1876

1877
      /** ID of the mandate used to make this payment or created by it. */
1878
      @SerializedName("mandate")
1879
      String mandate;
1880

1881
      /** True if this payment was marked as MOTO and out of scope for SCA. */
1882
      @SerializedName("moto")
1883
      Boolean moto;
1884

1885
      @SerializedName("multicapture")
1886
      Multicapture multicapture;
1887

1888
      /**
1889
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
1890
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
1891
       * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
1892
       * unknown}.
1893
       */
1894
      @SerializedName("network")
1895
      String network;
1896

1897
      /**
1898
       * If this card has network token credentials, this contains the details of the network token
1899
       * credentials.
1900
       */
1901
      @SerializedName("network_token")
1902
      NetworkToken networkToken;
1903

1904
      @SerializedName("overcapture")
1905
      Overcapture overcapture;
1906

1907
      @SerializedName("partial_authorization")
1908
      PartialAuthorization partialAuthorization;
1909

1910
      /** Populated if this transaction used 3D Secure authentication. */
1911
      @SerializedName("three_d_secure")
1912
      ThreeDSecure threeDSecure;
1913

1914
      /** If this Card is part of a card wallet, this contains the details of the card wallet. */
1915
      @SerializedName("wallet")
1916
      Wallet wallet;
1917

1918
      /**
1919
       * For more details about Checks, please refer to the <a
1920
       * href="https://docs.stripe.com/api">API Reference.</a>
1921
       */
1922
      @Getter
1923
      @Setter
1924
      @EqualsAndHashCode(callSuper = false)
1925
      public static class Checks extends StripeObject {
1✔
1926
        /**
1927
         * If a address line1 was provided, results of the check, one of {@code pass}, {@code fail},
1928
         * {@code unavailable}, or {@code unchecked}.
1929
         */
1930
        @SerializedName("address_line1_check")
1931
        String addressLine1Check;
1932

1933
        /**
1934
         * If a address postal code was provided, results of the check, one of {@code pass}, {@code
1935
         * fail}, {@code unavailable}, or {@code unchecked}.
1936
         */
1937
        @SerializedName("address_postal_code_check")
1938
        String addressPostalCodeCheck;
1939

1940
        /**
1941
         * If a CVC was provided, results of the check, one of {@code pass}, {@code fail}, {@code
1942
         * unavailable}, or {@code unchecked}.
1943
         */
1944
        @SerializedName("cvc_check")
1945
        String cvcCheck;
1946
      }
1947

1948
      /**
1949
       * For more details about DecrementalAuthorization, please refer to the <a
1950
       * href="https://docs.stripe.com/api">API Reference.</a>
1951
       */
1952
      @Getter
1953
      @Setter
1954
      @EqualsAndHashCode(callSuper = false)
1955
      public static class DecrementalAuthorization extends StripeObject {
×
1956
        /**
1957
         * Indicates whether or not the decremental authorization feature is supported.
1958
         *
1959
         * <p>One of {@code available}, or {@code unavailable}.
1960
         */
1961
        @SerializedName("status")
1962
        String status;
1963
      }
1964

1965
      /**
1966
       * For more details about ExtendedAuthorization, please refer to the <a
1967
       * href="https://docs.stripe.com/api">API Reference.</a>
1968
       */
1969
      @Getter
1970
      @Setter
1971
      @EqualsAndHashCode(callSuper = false)
1972
      public static class ExtendedAuthorization extends StripeObject {
1✔
1973
        /**
1974
         * Indicates whether or not the capture window is extended beyond the standard
1975
         * authorization.
1976
         *
1977
         * <p>One of {@code disabled}, or {@code enabled}.
1978
         */
1979
        @SerializedName("status")
1980
        String status;
1981
      }
1982

1983
      /**
1984
       * For more details about IncrementalAuthorization, please refer to the <a
1985
       * href="https://docs.stripe.com/api">API Reference.</a>
1986
       */
1987
      @Getter
1988
      @Setter
1989
      @EqualsAndHashCode(callSuper = false)
1990
      public static class IncrementalAuthorization extends StripeObject {
1✔
1991
        /**
1992
         * Indicates whether or not the incremental authorization feature is supported.
1993
         *
1994
         * <p>One of {@code available}, or {@code unavailable}.
1995
         */
1996
        @SerializedName("status")
1997
        String status;
1998
      }
1999

2000
      /**
2001
       * For more details about Installments, please refer to the <a
2002
       * href="https://docs.stripe.com/api">API Reference.</a>
2003
       */
2004
      @Getter
2005
      @Setter
2006
      @EqualsAndHashCode(callSuper = false)
2007
      public static class Installments extends StripeObject {
×
2008
        /** Installment plan selected for the payment. */
2009
        @SerializedName("plan")
2010
        Plan plan;
2011

2012
        /**
2013
         * For more details about Plan, please refer to the <a
2014
         * href="https://docs.stripe.com/api">API Reference.</a>
2015
         */
2016
        @Getter
2017
        @Setter
2018
        @EqualsAndHashCode(callSuper = false)
2019
        public static class Plan extends StripeObject {
×
2020
          /**
2021
           * For {@code fixed_count} installment plans, this is the number of installment payments
2022
           * your customer will make to their credit card.
2023
           */
2024
          @SerializedName("count")
2025
          Long count;
2026

2027
          /**
2028
           * For {@code fixed_count} installment plans, this is the interval between installment
2029
           * payments your customer will make to their credit card. One of {@code month}.
2030
           */
2031
          @SerializedName("interval")
2032
          String interval;
2033

2034
          /** Type of installment plan, one of {@code fixed_count}. */
2035
          @SerializedName("type")
2036
          String type;
2037
        }
2038
      }
2039

2040
      /**
2041
       * For more details about Multicapture, please refer to the <a
2042
       * href="https://docs.stripe.com/api">API Reference.</a>
2043
       */
2044
      @Getter
2045
      @Setter
2046
      @EqualsAndHashCode(callSuper = false)
2047
      public static class Multicapture extends StripeObject {
1✔
2048
        /**
2049
         * Indicates whether or not multiple captures are supported.
2050
         *
2051
         * <p>One of {@code available}, or {@code unavailable}.
2052
         */
2053
        @SerializedName("status")
2054
        String status;
2055
      }
2056

2057
      /**
2058
       * For more details about NetworkToken, please refer to the <a
2059
       * href="https://docs.stripe.com/api">API Reference.</a>
2060
       */
2061
      @Getter
2062
      @Setter
2063
      @EqualsAndHashCode(callSuper = false)
2064
      public static class NetworkToken extends StripeObject {
1✔
2065
        /**
2066
         * Indicates if Stripe used a network token, either user provided or Stripe managed when
2067
         * processing the transaction.
2068
         */
2069
        @SerializedName("used")
2070
        Boolean used;
2071
      }
2072

2073
      /**
2074
       * For more details about Overcapture, please refer to the <a
2075
       * href="https://docs.stripe.com/api">API Reference.</a>
2076
       */
2077
      @Getter
2078
      @Setter
2079
      @EqualsAndHashCode(callSuper = false)
2080
      public static class Overcapture extends StripeObject {
1✔
2081
        /** The maximum amount that can be captured. */
2082
        @SerializedName("maximum_amount_capturable")
2083
        Long maximumAmountCapturable;
2084

2085
        /**
2086
         * Indicates whether or not the authorized amount can be over-captured.
2087
         *
2088
         * <p>One of {@code available}, or {@code unavailable}.
2089
         */
2090
        @SerializedName("status")
2091
        String status;
2092
      }
2093

2094
      /**
2095
       * For more details about PartialAuthorization, please refer to the <a
2096
       * href="https://docs.stripe.com/api">API Reference.</a>
2097
       */
2098
      @Getter
2099
      @Setter
2100
      @EqualsAndHashCode(callSuper = false)
NEW
2101
      public static class PartialAuthorization extends StripeObject {
×
2102
        /**
2103
         * Indicates whether the transaction requested for partial authorization feature and the
2104
         * authorization outcome.
2105
         *
2106
         * <p>One of {@code declined}, {@code fully_authorized}, {@code not_requested}, or {@code
2107
         * partially_authorized}.
2108
         */
2109
        @SerializedName("status")
2110
        String status;
2111
      }
2112

2113
      /**
2114
       * For more details about ThreeDSecure, please refer to the <a
2115
       * href="https://docs.stripe.com/api">API Reference.</a>
2116
       */
2117
      @Getter
2118
      @Setter
2119
      @EqualsAndHashCode(callSuper = false)
2120
      public static class ThreeDSecure extends StripeObject {
×
2121
        /**
2122
         * For authenticated transactions: how the customer was authenticated by the issuing bank.
2123
         *
2124
         * <p>One of {@code challenge}, or {@code frictionless}.
2125
         */
2126
        @SerializedName("authentication_flow")
2127
        String authenticationFlow;
2128

2129
        /**
2130
         * The Electronic Commerce Indicator (ECI). A protocol-level field indicating what degree of
2131
         * authentication was performed.
2132
         *
2133
         * <p>One of {@code 01}, {@code 02}, {@code 05}, {@code 06}, or {@code 07}.
2134
         */
2135
        @SerializedName("electronic_commerce_indicator")
2136
        String electronicCommerceIndicator;
2137

2138
        /**
2139
         * The exemption requested via 3DS and accepted by the issuer at authentication time.
2140
         *
2141
         * <p>One of {@code low_risk}, or {@code none}.
2142
         */
2143
        @SerializedName("exemption_indicator")
2144
        String exemptionIndicator;
2145

2146
        /**
2147
         * Whether Stripe requested the value of {@code exemption_indicator} in the transaction.
2148
         * This will depend on the outcome of Stripe's internal risk assessment.
2149
         */
2150
        @SerializedName("exemption_indicator_applied")
2151
        Boolean exemptionIndicatorApplied;
2152

2153
        /**
2154
         * Indicates the outcome of 3D Secure authentication.
2155
         *
2156
         * <p>One of {@code attempt_acknowledged}, {@code authenticated}, {@code exempted}, {@code
2157
         * failed}, {@code not_supported}, or {@code processing_error}.
2158
         */
2159
        @SerializedName("result")
2160
        String result;
2161

2162
        /**
2163
         * Additional information about why 3D Secure succeeded or failed based on the {@code
2164
         * result}.
2165
         *
2166
         * <p>One of {@code abandoned}, {@code bypassed}, {@code canceled}, {@code
2167
         * card_not_enrolled}, {@code network_not_supported}, {@code protocol_error}, or {@code
2168
         * rejected}.
2169
         */
2170
        @SerializedName("result_reason")
2171
        String resultReason;
2172

2173
        /**
2174
         * The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID (dsTransId) for this
2175
         * payment.
2176
         */
2177
        @SerializedName("transaction_id")
2178
        String transactionId;
2179

2180
        /**
2181
         * The version of 3D Secure that was used.
2182
         *
2183
         * <p>One of {@code 1.0.2}, {@code 2.1.0}, or {@code 2.2.0}.
2184
         */
2185
        @SerializedName("version")
2186
        String version;
2187
      }
2188

2189
      /**
2190
       * For more details about Wallet, please refer to the <a
2191
       * href="https://docs.stripe.com/api">API Reference.</a>
2192
       */
2193
      @Getter
2194
      @Setter
2195
      @EqualsAndHashCode(callSuper = false)
2196
      public static class Wallet extends StripeObject {
×
2197
        @SerializedName("amex_express_checkout")
2198
        AmexExpressCheckout amexExpressCheckout;
2199

2200
        @SerializedName("apple_pay")
2201
        ApplePay applePay;
2202

2203
        /** (For tokenized numbers only.) The last four digits of the device account number. */
2204
        @SerializedName("dynamic_last4")
2205
        String dynamicLast4;
2206

2207
        @SerializedName("google_pay")
2208
        GooglePay googlePay;
2209

2210
        @SerializedName("link")
2211
        Link link;
2212

2213
        @SerializedName("masterpass")
2214
        Masterpass masterpass;
2215

2216
        @SerializedName("samsung_pay")
2217
        SamsungPay samsungPay;
2218

2219
        /**
2220
         * The type of the card wallet, one of {@code amex_express_checkout}, {@code apple_pay},
2221
         * {@code google_pay}, {@code masterpass}, {@code samsung_pay}, {@code visa_checkout}, or
2222
         * {@code link}. An additional hash is included on the Wallet subhash with a name matching
2223
         * this value. It contains additional information specific to the card wallet type.
2224
         */
2225
        @SerializedName("type")
2226
        String type;
2227

2228
        @SerializedName("visa_checkout")
2229
        VisaCheckout visaCheckout;
2230

2231
        /**
2232
         * For more details about AmexExpressCheckout, please refer to the <a
2233
         * href="https://docs.stripe.com/api">API Reference.</a>
2234
         */
2235
        @Getter
2236
        @Setter
2237
        @EqualsAndHashCode(callSuper = false)
2238
        public static class AmexExpressCheckout extends StripeObject {}
×
2239

2240
        /**
2241
         * For more details about ApplePay, please refer to the <a
2242
         * href="https://docs.stripe.com/api">API Reference.</a>
2243
         */
2244
        @Getter
2245
        @Setter
2246
        @EqualsAndHashCode(callSuper = false)
2247
        public static class ApplePay extends StripeObject {}
×
2248

2249
        /**
2250
         * For more details about GooglePay, please refer to the <a
2251
         * href="https://docs.stripe.com/api">API Reference.</a>
2252
         */
2253
        @Getter
2254
        @Setter
2255
        @EqualsAndHashCode(callSuper = false)
2256
        public static class GooglePay extends StripeObject {}
×
2257

2258
        /**
2259
         * For more details about Link, please refer to the <a
2260
         * href="https://docs.stripe.com/api">API Reference.</a>
2261
         */
2262
        @Getter
2263
        @Setter
2264
        @EqualsAndHashCode(callSuper = false)
2265
        public static class Link extends StripeObject {}
×
2266

2267
        /**
2268
         * For more details about Masterpass, please refer to the <a
2269
         * href="https://docs.stripe.com/api">API Reference.</a>
2270
         */
2271
        @Getter
2272
        @Setter
2273
        @EqualsAndHashCode(callSuper = false)
2274
        public static class Masterpass extends StripeObject {
×
2275
          /**
2276
           * Owner's verified billing address. Values are verified or provided by the wallet
2277
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2278
           * or mutated.
2279
           */
2280
          @SerializedName("billing_address")
2281
          com.stripe.model.Address billingAddress;
2282

2283
          /**
2284
           * Owner's verified email. Values are verified or provided by the wallet directly (if
2285
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2286
           */
2287
          @SerializedName("email")
2288
          String email;
2289

2290
          /**
2291
           * Owner's verified full name. Values are verified or provided by the wallet directly (if
2292
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2293
           */
2294
          @SerializedName("name")
2295
          String name;
2296

2297
          /**
2298
           * Owner's verified shipping address. Values are verified or provided by the wallet
2299
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2300
           * or mutated.
2301
           */
2302
          @SerializedName("shipping_address")
2303
          com.stripe.model.Address shippingAddress;
2304
        }
2305

2306
        /**
2307
         * For more details about SamsungPay, please refer to the <a
2308
         * href="https://docs.stripe.com/api">API Reference.</a>
2309
         */
2310
        @Getter
2311
        @Setter
2312
        @EqualsAndHashCode(callSuper = false)
2313
        public static class SamsungPay extends StripeObject {}
×
2314

2315
        /**
2316
         * For more details about VisaCheckout, please refer to the <a
2317
         * href="https://docs.stripe.com/api">API Reference.</a>
2318
         */
2319
        @Getter
2320
        @Setter
2321
        @EqualsAndHashCode(callSuper = false)
2322
        public static class VisaCheckout extends StripeObject {
×
2323
          /**
2324
           * Owner's verified billing address. Values are verified or provided by the wallet
2325
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2326
           * or mutated.
2327
           */
2328
          @SerializedName("billing_address")
2329
          com.stripe.model.Address billingAddress;
2330

2331
          /**
2332
           * Owner's verified email. Values are verified or provided by the wallet directly (if
2333
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2334
           */
2335
          @SerializedName("email")
2336
          String email;
2337

2338
          /**
2339
           * Owner's verified full name. Values are verified or provided by the wallet directly (if
2340
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2341
           */
2342
          @SerializedName("name")
2343
          String name;
2344

2345
          /**
2346
           * Owner's verified shipping address. Values are verified or provided by the wallet
2347
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2348
           * or mutated.
2349
           */
2350
          @SerializedName("shipping_address")
2351
          com.stripe.model.Address shippingAddress;
2352
        }
2353
      }
2354
    }
2355

2356
    /**
2357
     * For more details about CardPresent, please refer to the <a
2358
     * href="https://docs.stripe.com/api">API Reference.</a>
2359
     */
2360
    @Getter
2361
    @Setter
2362
    @EqualsAndHashCode(callSuper = false)
2363
    public static class CardPresent extends StripeObject {
×
2364
      /** The authorized amount. */
2365
      @SerializedName("amount_authorized")
2366
      Long amountAuthorized;
2367

2368
      /**
2369
       * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
2370
       * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
2371
       * unknown}.
2372
       */
2373
      @SerializedName("brand")
2374
      String brand;
2375

2376
      /**
2377
       * The <a href="https://stripe.com/docs/card-product-codes">product code</a> that identifies
2378
       * the specific program or product associated with a card.
2379
       */
2380
      @SerializedName("brand_product")
2381
      String brandProduct;
2382

2383
      /**
2384
       * When using manual capture, a future timestamp after which the charge will be automatically
2385
       * refunded if uncaptured.
2386
       */
2387
      @SerializedName("capture_before")
2388
      Long captureBefore;
2389

2390
      /**
2391
       * The cardholder name as read from the card, in <a
2392
       * href="https://en.wikipedia.org/wiki/ISO/IEC_7813">ISO 7813</a> format. May include
2393
       * alphanumeric characters, special characters and first/last name separator ({@code /}). In
2394
       * some cases, the cardholder name may not be available depending on how the issuer has
2395
       * configured the card. Cardholder name is typically not available on swipe or contactless
2396
       * payments, such as those made with Apple Pay and Google Pay.
2397
       */
2398
      @SerializedName("cardholder_name")
2399
      String cardholderName;
2400

2401
      /**
2402
       * Two-letter ISO code representing the country of the card. You could use this attribute to
2403
       * get a sense of the international breakdown of cards you've collected.
2404
       */
2405
      @SerializedName("country")
2406
      String country;
2407

2408
      /**
2409
       * A high-level description of the type of cards issued in this range. (For internal use only
2410
       * and not typically available in standard API requests.)
2411
       */
2412
      @SerializedName("description")
2413
      String description;
2414

2415
      /** Authorization response cryptogram. */
2416
      @SerializedName("emv_auth_data")
2417
      String emvAuthData;
2418

2419
      /** Two-digit number representing the card's expiration month. */
2420
      @SerializedName("exp_month")
2421
      Long expMonth;
2422

2423
      /** Four-digit number representing the card's expiration year. */
2424
      @SerializedName("exp_year")
2425
      Long expYear;
2426

2427
      /**
2428
       * Uniquely identifies this particular card number. You can use this attribute to check
2429
       * whether two customers who’ve signed up with you are using the same card number, for
2430
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
2431
       * tokenized number might be provided instead of the underlying card number.
2432
       *
2433
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
2434
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
2435
       */
2436
      @SerializedName("fingerprint")
2437
      String fingerprint;
2438

2439
      /**
2440
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
2441
       * unknown}.
2442
       */
2443
      @SerializedName("funding")
2444
      String funding;
2445

2446
      /**
2447
       * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
2448
       * attached to a Customer for future transactions. Only present if it was possible to generate
2449
       * a card PaymentMethod.
2450
       */
2451
      @SerializedName("generated_card")
2452
      String generatedCard;
2453

2454
      /**
2455
       * Issuer identification number of the card. (For internal use only and not typically
2456
       * available in standard API requests.)
2457
       */
2458
      @SerializedName("iin")
2459
      String iin;
2460

2461
      /**
2462
       * Whether this <a href="https://stripe.com/docs/api/payment_intents">PaymentIntent</a> is
2463
       * eligible for incremental authorizations. Request support using <a
2464
       * 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>.
2465
       */
2466
      @SerializedName("incremental_authorization_supported")
2467
      Boolean incrementalAuthorizationSupported;
2468

2469
      /**
2470
       * The name of the card's issuing bank. (For internal use only and not typically available in
2471
       * standard API requests.)
2472
       */
2473
      @SerializedName("issuer")
2474
      String issuer;
2475

2476
      /** The last four digits of the card. */
2477
      @SerializedName("last4")
2478
      String last4;
2479

2480
      /**
2481
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
2482
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
2483
       * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
2484
       * unknown}.
2485
       */
2486
      @SerializedName("network")
2487
      String network;
2488

2489
      /**
2490
       * This is used by the financial networks to identify a transaction. Visa calls this the
2491
       * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
2492
       * Acquirer Reference Data. The first three digits of the Trace ID is the Financial Network
2493
       * Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent
2494
       * the date (MM/DD). This field will be available for successful Visa, Mastercard, or American
2495
       * Express transactions and always null for other card brands.
2496
       */
2497
      @SerializedName("network_transaction_id")
2498
      String networkTransactionId;
2499

2500
      /** Details about payments collected offline. */
2501
      @SerializedName("offline")
2502
      Offline offline;
2503

2504
      /** Defines whether the authorized amount can be over-captured or not. */
2505
      @SerializedName("overcapture_supported")
2506
      Boolean overcaptureSupported;
2507

2508
      /** EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. */
2509
      @SerializedName("preferred_locales")
2510
      List<String> preferredLocales;
2511

2512
      /**
2513
       * How card details were read in this transaction.
2514
       *
2515
       * <p>One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
2516
       * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
2517
       */
2518
      @SerializedName("read_method")
2519
      String readMethod;
2520

2521
      /**
2522
       * A collection of fields required to be displayed on receipts. Only required for EMV
2523
       * transactions.
2524
       */
2525
      @SerializedName("receipt")
2526
      Receipt receipt;
2527

2528
      @SerializedName("wallet")
2529
      Wallet wallet;
2530

2531
      /**
2532
       * For more details about Offline, 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 Offline extends StripeObject {
×
2539
        /** Time at which the payment was collected while offline. */
2540
        @SerializedName("stored_at")
2541
        Long storedAt;
2542

2543
        /**
2544
         * The method used to process this payment method offline. Only deferred is allowed.
2545
         *
2546
         * <p>Equal to {@code deferred}.
2547
         */
2548
        @SerializedName("type")
2549
        String type;
2550
      }
2551

2552
      /**
2553
       * For more details about Receipt, please refer to the <a
2554
       * href="https://docs.stripe.com/api">API Reference.</a>
2555
       */
2556
      @Getter
2557
      @Setter
2558
      @EqualsAndHashCode(callSuper = false)
2559
      public static class Receipt extends StripeObject {
×
2560
        /**
2561
         * The type of account being debited or credited
2562
         *
2563
         * <p>One of {@code checking}, {@code credit}, {@code prepaid}, or {@code unknown}.
2564
         */
2565
        @SerializedName("account_type")
2566
        String accountType;
2567

2568
        /** EMV tag 9F26, cryptogram generated by the integrated circuit chip. */
2569
        @SerializedName("application_cryptogram")
2570
        String applicationCryptogram;
2571

2572
        /** Mnenomic of the Application Identifier. */
2573
        @SerializedName("application_preferred_name")
2574
        String applicationPreferredName;
2575

2576
        /** Identifier for this transaction. */
2577
        @SerializedName("authorization_code")
2578
        String authorizationCode;
2579

2580
        /** EMV tag 8A. A code returned by the card issuer. */
2581
        @SerializedName("authorization_response_code")
2582
        String authorizationResponseCode;
2583

2584
        /**
2585
         * Describes the method used by the cardholder to verify ownership of the card. One of the
2586
         * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
2587
         * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
2588
         */
2589
        @SerializedName("cardholder_verification_method")
2590
        String cardholderVerificationMethod;
2591

2592
        /**
2593
         * EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
2594
         */
2595
        @SerializedName("dedicated_file_name")
2596
        String dedicatedFileName;
2597

2598
        /** The outcome of a series of EMV functions performed by the card reader. */
2599
        @SerializedName("terminal_verification_results")
2600
        String terminalVerificationResults;
2601

2602
        /** An indication of various EMV functions performed during the transaction. */
2603
        @SerializedName("transaction_status_information")
2604
        String transactionStatusInformation;
2605
      }
2606

2607
      /**
2608
       * For more details about Wallet, please refer to the <a
2609
       * href="https://docs.stripe.com/api">API Reference.</a>
2610
       */
2611
      @Getter
2612
      @Setter
2613
      @EqualsAndHashCode(callSuper = false)
2614
      public static class Wallet extends StripeObject {
×
2615
        /**
2616
         * The type of mobile wallet, one of {@code apple_pay}, {@code google_pay}, {@code
2617
         * samsung_pay}, or {@code unknown}.
2618
         */
2619
        @SerializedName("type")
2620
        String type;
2621
      }
2622
    }
2623

2624
    /**
2625
     * For more details about Cashapp, please refer to the <a href="https://docs.stripe.com/api">API
2626
     * Reference.</a>
2627
     */
2628
    @Getter
2629
    @Setter
2630
    @EqualsAndHashCode(callSuper = false)
2631
    public static class Cashapp extends StripeObject {
×
2632
      /** A unique and immutable identifier assigned by Cash App to every buyer. */
2633
      @SerializedName("buyer_id")
2634
      String buyerId;
2635

2636
      /** A public identifier for buyers using Cash App. */
2637
      @SerializedName("cashtag")
2638
      String cashtag;
2639
    }
2640

2641
    /**
2642
     * For more details about CustomerBalance, please refer to the <a
2643
     * href="https://docs.stripe.com/api">API Reference.</a>
2644
     */
2645
    @Getter
2646
    @Setter
2647
    @EqualsAndHashCode(callSuper = false)
2648
    public static class CustomerBalance extends StripeObject {}
×
2649

2650
    /**
2651
     * For more details about Eps, please refer to the <a href="https://docs.stripe.com/api">API
2652
     * Reference.</a>
2653
     */
2654
    @Getter
2655
    @Setter
2656
    @EqualsAndHashCode(callSuper = false)
2657
    public static class Eps extends StripeObject {
×
2658
      /**
2659
       * The customer's bank. Should be one of {@code arzte_und_apotheker_bank}, {@code
2660
       * austrian_anadi_bank_ag}, {@code bank_austria}, {@code bankhaus_carl_spangler}, {@code
2661
       * bankhaus_schelhammer_und_schattera_ag}, {@code bawag_psk_ag}, {@code bks_bank_ag}, {@code
2662
       * brull_kallmus_bank_ag}, {@code btv_vier_lander_bank}, {@code capital_bank_grawe_gruppe_ag},
2663
       * {@code deutsche_bank_ag}, {@code dolomitenbank}, {@code easybank_ag}, {@code
2664
       * erste_bank_und_sparkassen}, {@code hypo_alpeadriabank_international_ag}, {@code
2665
       * hypo_noe_lb_fur_niederosterreich_u_wien}, {@code hypo_oberosterreich_salzburg_steiermark},
2666
       * {@code hypo_tirol_bank_ag}, {@code hypo_vorarlberg_bank_ag}, {@code
2667
       * hypo_bank_burgenland_aktiengesellschaft}, {@code marchfelder_bank}, {@code oberbank_ag},
2668
       * {@code raiffeisen_bankengruppe_osterreich}, {@code schoellerbank_ag}, {@code
2669
       * sparda_bank_wien}, {@code volksbank_gruppe}, {@code volkskreditbank_ag}, or {@code
2670
       * vr_bank_braunau}.
2671
       */
2672
      @SerializedName("bank")
2673
      String bank;
2674

2675
      /**
2676
       * Owner's verified full name. Values are verified or provided by EPS directly (if supported)
2677
       * at the time of authorization or settlement. They cannot be set or mutated. EPS rarely
2678
       * provides this information so the attribute is usually empty.
2679
       */
2680
      @SerializedName("verified_name")
2681
      String verifiedName;
2682
    }
2683

2684
    /**
2685
     * For more details about Fpx, please refer to the <a href="https://docs.stripe.com/api">API
2686
     * Reference.</a>
2687
     */
2688
    @Getter
2689
    @Setter
2690
    @EqualsAndHashCode(callSuper = false)
2691
    public static class Fpx extends StripeObject {
×
2692
      /** Account holder type, if provided. Can be one of {@code individual} or {@code company}. */
2693
      @SerializedName("account_holder_type")
2694
      String accountHolderType;
2695

2696
      /**
2697
       * The customer's bank. Can be one of {@code affin_bank}, {@code agrobank}, {@code
2698
       * alliance_bank}, {@code ambank}, {@code bank_islam}, {@code bank_muamalat}, {@code
2699
       * bank_rakyat}, {@code bsn}, {@code cimb}, {@code hong_leong_bank}, {@code hsbc}, {@code
2700
       * kfh}, {@code maybank2u}, {@code ocbc}, {@code public_bank}, {@code rhb}, {@code
2701
       * standard_chartered}, {@code uob}, {@code deutsche_bank}, {@code maybank2e}, {@code
2702
       * pb_enterprise}, or {@code bank_of_china}.
2703
       */
2704
      @SerializedName("bank")
2705
      String bank;
2706

2707
      /** Unique transaction id generated by FPX for every request from the merchant. */
2708
      @SerializedName("transaction_id")
2709
      String transactionId;
2710
    }
2711

2712
    /**
2713
     * For more details about Giropay, please refer to the <a href="https://docs.stripe.com/api">API
2714
     * Reference.</a>
2715
     */
2716
    @Getter
2717
    @Setter
2718
    @EqualsAndHashCode(callSuper = false)
2719
    public static class Giropay extends StripeObject {
×
2720
      /** Bank code of bank associated with the bank account. */
2721
      @SerializedName("bank_code")
2722
      String bankCode;
2723

2724
      /** Name of the bank associated with the bank account. */
2725
      @SerializedName("bank_name")
2726
      String bankName;
2727

2728
      /** Bank Identifier Code of the bank associated with the bank account. */
2729
      @SerializedName("bic")
2730
      String bic;
2731

2732
      /**
2733
       * Owner's verified full name. Values are verified or provided by Giropay directly (if
2734
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2735
       * Giropay rarely provides this information so the attribute is usually empty.
2736
       */
2737
      @SerializedName("verified_name")
2738
      String verifiedName;
2739
    }
2740

2741
    /**
2742
     * For more details about Gopay, please refer to the <a href="https://docs.stripe.com/api">API
2743
     * Reference.</a>
2744
     */
2745
    @Getter
2746
    @Setter
2747
    @EqualsAndHashCode(callSuper = false)
2748
    public static class Gopay extends StripeObject {}
×
2749

2750
    /**
2751
     * For more details about Grabpay, please refer to the <a href="https://docs.stripe.com/api">API
2752
     * Reference.</a>
2753
     */
2754
    @Getter
2755
    @Setter
2756
    @EqualsAndHashCode(callSuper = false)
2757
    public static class Grabpay extends StripeObject {
×
2758
      /** Unique transaction id generated by GrabPay. */
2759
      @SerializedName("transaction_id")
2760
      String transactionId;
2761
    }
2762

2763
    /**
2764
     * For more details about IdBankTransfer, please refer to the <a
2765
     * href="https://docs.stripe.com/api">API Reference.</a>
2766
     */
2767
    @Getter
2768
    @Setter
2769
    @EqualsAndHashCode(callSuper = false)
2770
    public static class IdBankTransfer extends StripeObject {
×
2771
      /** Account number of the bank account to transfer funds to. */
2772
      @SerializedName("account_number")
2773
      String accountNumber;
2774

2775
      /**
2776
       * Bank where the account is located.
2777
       *
2778
       * <p>One of {@code bca}, {@code bni}, {@code bri}, {@code cimb}, or {@code permata}.
2779
       */
2780
      @SerializedName("bank")
2781
      String bank;
2782

2783
      /** Local bank code of the bank. */
2784
      @SerializedName("bank_code")
2785
      String bankCode;
2786

2787
      /** Name of the bank associated with the bank account. */
2788
      @SerializedName("bank_name")
2789
      String bankName;
2790

2791
      /**
2792
       * Merchant name and billing details name, for the customer to check for the correct merchant
2793
       * when performing the bank transfer.
2794
       */
2795
      @SerializedName("display_name")
2796
      String displayName;
2797
    }
2798

2799
    /**
2800
     * For more details about Ideal, please refer to the <a href="https://docs.stripe.com/api">API
2801
     * Reference.</a>
2802
     */
2803
    @Getter
2804
    @Setter
2805
    @EqualsAndHashCode(callSuper = false)
2806
    public static class Ideal extends StripeObject {
×
2807
      /**
2808
       * The customer's bank. Can be one of {@code abn_amro}, {@code asn_bank}, {@code bunq}, {@code
2809
       * handelsbanken}, {@code ing}, {@code knab}, {@code moneyou}, {@code n26}, {@code nn}, {@code
2810
       * rabobank}, {@code regiobank}, {@code revolut}, {@code sns_bank}, {@code triodos_bank},
2811
       * {@code van_lanschot}, or {@code yoursafe}.
2812
       */
2813
      @SerializedName("bank")
2814
      String bank;
2815

2816
      /**
2817
       * The Bank Identifier Code of the customer's bank.
2818
       *
2819
       * <p>One of {@code ABNANL2A}, {@code ASNBNL21}, {@code BITSNL2A}, {@code BUNQNL2A}, {@code
2820
       * FVLBNL22}, {@code HANDNL2A}, {@code INGBNL2A}, {@code KNABNL2H}, {@code MOYONL21}, {@code
2821
       * NNBANL2G}, {@code NTSBDEB1}, {@code RABONL2U}, {@code RBRBNL21}, {@code REVOIE23}, {@code
2822
       * REVOLT21}, {@code SNSBNL2A}, or {@code TRIONL2U}.
2823
       */
2824
      @SerializedName("bic")
2825
      String bic;
2826

2827
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
2828
      @SerializedName("generated_sepa_debit")
2829
      @Getter(lombok.AccessLevel.NONE)
2830
      @Setter(lombok.AccessLevel.NONE)
2831
      ExpandableField<PaymentMethod> generatedSepaDebit;
2832

2833
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
2834
      @SerializedName("generated_sepa_debit_mandate")
2835
      @Getter(lombok.AccessLevel.NONE)
2836
      @Setter(lombok.AccessLevel.NONE)
2837
      ExpandableField<Mandate> generatedSepaDebitMandate;
2838

2839
      /** Last four characters of the IBAN. */
2840
      @SerializedName("iban_last4")
2841
      String ibanLast4;
2842

2843
      /**
2844
       * Owner's verified full name. Values are verified or provided by iDEAL directly (if
2845
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2846
       */
2847
      @SerializedName("verified_name")
2848
      String verifiedName;
2849

2850
      /** Get ID of expandable {@code generatedSepaDebit} object. */
2851
      public String getGeneratedSepaDebit() {
2852
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
2853
      }
2854

2855
      public void setGeneratedSepaDebit(String id) {
2856
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
2857
      }
×
2858

2859
      /** Get expanded {@code generatedSepaDebit}. */
2860
      public PaymentMethod getGeneratedSepaDebitObject() {
2861
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
2862
      }
2863

2864
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
2865
        this.generatedSepaDebit =
×
2866
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
2867
      }
×
2868

2869
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
2870
      public String getGeneratedSepaDebitMandate() {
2871
        return (this.generatedSepaDebitMandate != null)
×
2872
            ? this.generatedSepaDebitMandate.getId()
×
2873
            : null;
×
2874
      }
2875

2876
      public void setGeneratedSepaDebitMandate(String id) {
2877
        this.generatedSepaDebitMandate =
×
2878
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
2879
      }
×
2880

2881
      /** Get expanded {@code generatedSepaDebitMandate}. */
2882
      public Mandate getGeneratedSepaDebitMandateObject() {
2883
        return (this.generatedSepaDebitMandate != null)
×
2884
            ? this.generatedSepaDebitMandate.getExpanded()
×
2885
            : null;
×
2886
      }
2887

2888
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
2889
        this.generatedSepaDebitMandate =
×
2890
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
2891
      }
×
2892
    }
2893

2894
    /**
2895
     * For more details about InteracPresent, please refer to the <a
2896
     * href="https://docs.stripe.com/api">API Reference.</a>
2897
     */
2898
    @Getter
2899
    @Setter
2900
    @EqualsAndHashCode(callSuper = false)
2901
    public static class InteracPresent extends StripeObject {
×
2902
      /** Card brand. Can be {@code interac}, {@code mastercard} or {@code visa}. */
2903
      @SerializedName("brand")
2904
      String brand;
2905

2906
      /**
2907
       * The cardholder name as read from the card, in <a
2908
       * href="https://en.wikipedia.org/wiki/ISO/IEC_7813">ISO 7813</a> format. May include
2909
       * alphanumeric characters, special characters and first/last name separator ({@code /}). In
2910
       * some cases, the cardholder name may not be available depending on how the issuer has
2911
       * configured the card. Cardholder name is typically not available on swipe or contactless
2912
       * payments, such as those made with Apple Pay and Google Pay.
2913
       */
2914
      @SerializedName("cardholder_name")
2915
      String cardholderName;
2916

2917
      /**
2918
       * Two-letter ISO code representing the country of the card. You could use this attribute to
2919
       * get a sense of the international breakdown of cards you've collected.
2920
       */
2921
      @SerializedName("country")
2922
      String country;
2923

2924
      /**
2925
       * A high-level description of the type of cards issued in this range. (For internal use only
2926
       * and not typically available in standard API requests.)
2927
       */
2928
      @SerializedName("description")
2929
      String description;
2930

2931
      /** Authorization response cryptogram. */
2932
      @SerializedName("emv_auth_data")
2933
      String emvAuthData;
2934

2935
      /** Two-digit number representing the card's expiration month. */
2936
      @SerializedName("exp_month")
2937
      Long expMonth;
2938

2939
      /** Four-digit number representing the card's expiration year. */
2940
      @SerializedName("exp_year")
2941
      Long expYear;
2942

2943
      /**
2944
       * Uniquely identifies this particular card number. You can use this attribute to check
2945
       * whether two customers who’ve signed up with you are using the same card number, for
2946
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
2947
       * tokenized number might be provided instead of the underlying card number.
2948
       *
2949
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
2950
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
2951
       */
2952
      @SerializedName("fingerprint")
2953
      String fingerprint;
2954

2955
      /**
2956
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
2957
       * unknown}.
2958
       */
2959
      @SerializedName("funding")
2960
      String funding;
2961

2962
      /**
2963
       * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
2964
       * attached to a Customer for future transactions. Only present if it was possible to generate
2965
       * a card PaymentMethod.
2966
       */
2967
      @SerializedName("generated_card")
2968
      String generatedCard;
2969

2970
      /**
2971
       * Issuer identification number of the card. (For internal use only and not typically
2972
       * available in standard API requests.)
2973
       */
2974
      @SerializedName("iin")
2975
      String iin;
2976

2977
      /**
2978
       * The name of the card's issuing bank. (For internal use only and not typically available in
2979
       * standard API requests.)
2980
       */
2981
      @SerializedName("issuer")
2982
      String issuer;
2983

2984
      /** The last four digits of the card. */
2985
      @SerializedName("last4")
2986
      String last4;
2987

2988
      /**
2989
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
2990
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
2991
       * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
2992
       * unknown}.
2993
       */
2994
      @SerializedName("network")
2995
      String network;
2996

2997
      /**
2998
       * This is used by the financial networks to identify a transaction. Visa calls this the
2999
       * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
3000
       * Acquirer Reference Data. The first three digits of the Trace ID is the Financial Network
3001
       * Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent
3002
       * the date (MM/DD). This field will be available for successful Visa, Mastercard, or American
3003
       * Express transactions and always null for other card brands.
3004
       */
3005
      @SerializedName("network_transaction_id")
3006
      String networkTransactionId;
3007

3008
      /** EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. */
3009
      @SerializedName("preferred_locales")
3010
      List<String> preferredLocales;
3011

3012
      /**
3013
       * How card details were read in this transaction.
3014
       *
3015
       * <p>One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
3016
       * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
3017
       */
3018
      @SerializedName("read_method")
3019
      String readMethod;
3020

3021
      /**
3022
       * A collection of fields required to be displayed on receipts. Only required for EMV
3023
       * transactions.
3024
       */
3025
      @SerializedName("receipt")
3026
      Receipt receipt;
3027

3028
      /**
3029
       * For more details about Receipt, please refer to the <a
3030
       * href="https://docs.stripe.com/api">API Reference.</a>
3031
       */
3032
      @Getter
3033
      @Setter
3034
      @EqualsAndHashCode(callSuper = false)
3035
      public static class Receipt extends StripeObject {
×
3036
        /**
3037
         * The type of account being debited or credited
3038
         *
3039
         * <p>One of {@code checking}, {@code savings}, or {@code unknown}.
3040
         */
3041
        @SerializedName("account_type")
3042
        String accountType;
3043

3044
        /** EMV tag 9F26, cryptogram generated by the integrated circuit chip. */
3045
        @SerializedName("application_cryptogram")
3046
        String applicationCryptogram;
3047

3048
        /** Mnenomic of the Application Identifier. */
3049
        @SerializedName("application_preferred_name")
3050
        String applicationPreferredName;
3051

3052
        /** Identifier for this transaction. */
3053
        @SerializedName("authorization_code")
3054
        String authorizationCode;
3055

3056
        /** EMV tag 8A. A code returned by the card issuer. */
3057
        @SerializedName("authorization_response_code")
3058
        String authorizationResponseCode;
3059

3060
        /**
3061
         * Describes the method used by the cardholder to verify ownership of the card. One of the
3062
         * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
3063
         * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
3064
         */
3065
        @SerializedName("cardholder_verification_method")
3066
        String cardholderVerificationMethod;
3067

3068
        /**
3069
         * EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
3070
         */
3071
        @SerializedName("dedicated_file_name")
3072
        String dedicatedFileName;
3073

3074
        /** The outcome of a series of EMV functions performed by the card reader. */
3075
        @SerializedName("terminal_verification_results")
3076
        String terminalVerificationResults;
3077

3078
        /** An indication of various EMV functions performed during the transaction. */
3079
        @SerializedName("transaction_status_information")
3080
        String transactionStatusInformation;
3081
      }
3082
    }
3083

3084
    /**
3085
     * For more details about KakaoPay, please refer to the <a
3086
     * href="https://docs.stripe.com/api">API Reference.</a>
3087
     */
3088
    @Getter
3089
    @Setter
3090
    @EqualsAndHashCode(callSuper = false)
3091
    public static class KakaoPay extends StripeObject {
×
3092
      /** A unique identifier for the buyer as determined by the local payment processor. */
3093
      @SerializedName("buyer_id")
3094
      String buyerId;
3095
    }
3096

3097
    /**
3098
     * For more details about Klarna, please refer to the <a href="https://docs.stripe.com/api">API
3099
     * Reference.</a>
3100
     */
3101
    @Getter
3102
    @Setter
3103
    @EqualsAndHashCode(callSuper = false)
3104
    public static class Klarna extends StripeObject {
×
3105
      /** The payer details for this transaction. */
3106
      @SerializedName("payer_details")
3107
      PayerDetails payerDetails;
3108

3109
      /**
3110
       * The Klarna payment method used for this transaction. Can be one of {@code pay_later},
3111
       * {@code pay_now}, {@code pay_with_financing}, or {@code pay_in_installments}
3112
       */
3113
      @SerializedName("payment_method_category")
3114
      String paymentMethodCategory;
3115

3116
      /**
3117
       * Preferred language of the Klarna authorization page that the customer is redirected to. Can
3118
       * be one of {@code de-AT}, {@code en-AT}, {@code nl-BE}, {@code fr-BE}, {@code en-BE}, {@code
3119
       * de-DE}, {@code en-DE}, {@code da-DK}, {@code en-DK}, {@code es-ES}, {@code en-ES}, {@code
3120
       * fi-FI}, {@code sv-FI}, {@code en-FI}, {@code en-GB}, {@code en-IE}, {@code it-IT}, {@code
3121
       * en-IT}, {@code nl-NL}, {@code en-NL}, {@code nb-NO}, {@code en-NO}, {@code sv-SE}, {@code
3122
       * en-SE}, {@code en-US}, {@code es-US}, {@code fr-FR}, {@code en-FR}, {@code cs-CZ}, {@code
3123
       * en-CZ}, {@code ro-RO}, {@code en-RO}, {@code el-GR}, {@code en-GR}, {@code en-AU}, {@code
3124
       * en-NZ}, {@code en-CA}, {@code fr-CA}, {@code pl-PL}, {@code en-PL}, {@code pt-PT}, {@code
3125
       * en-PT}, {@code de-CH}, {@code fr-CH}, {@code it-CH}, or {@code en-CH}
3126
       */
3127
      @SerializedName("preferred_locale")
3128
      String preferredLocale;
3129

3130
      /**
3131
       * For more details about PayerDetails, please refer to the <a
3132
       * href="https://docs.stripe.com/api">API Reference.</a>
3133
       */
3134
      @Getter
3135
      @Setter
3136
      @EqualsAndHashCode(callSuper = false)
3137
      public static class PayerDetails extends StripeObject {
×
3138
        /** The payer's address. */
3139
        @SerializedName("address")
3140
        com.stripe.model.Charge.PaymentMethodDetails.Klarna.PayerDetails.Address address;
3141

3142
        /**
3143
         * For more details about Address, please refer to the <a
3144
         * href="https://docs.stripe.com/api">API Reference.</a>
3145
         */
3146
        @Getter
3147
        @Setter
3148
        @EqualsAndHashCode(callSuper = false)
3149
        public static class Address extends StripeObject {
×
3150
          /** The payer address country. */
3151
          @SerializedName("country")
3152
          String country;
3153
        }
3154
      }
3155
    }
3156

3157
    /**
3158
     * For more details about Konbini, please refer to the <a href="https://docs.stripe.com/api">API
3159
     * Reference.</a>
3160
     */
3161
    @Getter
3162
    @Setter
3163
    @EqualsAndHashCode(callSuper = false)
3164
    public static class Konbini extends StripeObject {
×
3165
      /**
3166
       * If the payment succeeded, this contains the details of the convenience store where the
3167
       * payment was completed.
3168
       */
3169
      @SerializedName("store")
3170
      Store store;
3171

3172
      /**
3173
       * For more details about Store, please refer to the <a href="https://docs.stripe.com/api">API
3174
       * Reference.</a>
3175
       */
3176
      @Getter
3177
      @Setter
3178
      @EqualsAndHashCode(callSuper = false)
3179
      public static class Store extends StripeObject {
×
3180
        /**
3181
         * The name of the convenience store chain where the payment was completed.
3182
         *
3183
         * <p>One of {@code familymart}, {@code lawson}, {@code ministop}, or {@code seicomart}.
3184
         */
3185
        @SerializedName("chain")
3186
        String chain;
3187
      }
3188
    }
3189

3190
    /**
3191
     * For more details about KrCard, please refer to the <a href="https://docs.stripe.com/api">API
3192
     * Reference.</a>
3193
     */
3194
    @Getter
3195
    @Setter
3196
    @EqualsAndHashCode(callSuper = false)
3197
    public static class KrCard extends StripeObject {
×
3198
      /**
3199
       * The local credit or debit card brand.
3200
       *
3201
       * <p>One of {@code bc}, {@code citi}, {@code hana}, {@code hyundai}, {@code jeju}, {@code
3202
       * jeonbuk}, {@code kakaobank}, {@code kbank}, {@code kdbbank}, {@code kookmin}, {@code
3203
       * kwangju}, {@code lotte}, {@code mg}, {@code nh}, {@code post}, {@code samsung}, {@code
3204
       * savingsbank}, {@code shinhan}, {@code shinhyup}, {@code suhyup}, {@code tossbank}, or
3205
       * {@code woori}.
3206
       */
3207
      @SerializedName("brand")
3208
      String brand;
3209

3210
      /** A unique identifier for the buyer as determined by the local payment processor. */
3211
      @SerializedName("buyer_id")
3212
      String buyerId;
3213

3214
      /** The last four digits of the card. This may not be present for American Express cards. */
3215
      @SerializedName("last4")
3216
      String last4;
3217
    }
3218

3219
    /**
3220
     * For more details about Link, please refer to the <a href="https://docs.stripe.com/api">API
3221
     * Reference.</a>
3222
     */
3223
    @Getter
3224
    @Setter
3225
    @EqualsAndHashCode(callSuper = false)
3226
    public static class Link extends StripeObject {
×
3227
      /**
3228
       * Two-letter ISO code representing the funding source country beneath the Link payment. You
3229
       * could use this attribute to get a sense of international fees.
3230
       */
3231
      @SerializedName("country")
3232
      String country;
3233
    }
3234

3235
    /**
3236
     * For more details about MbWay, please refer to the <a href="https://docs.stripe.com/api">API
3237
     * Reference.</a>
3238
     */
3239
    @Getter
3240
    @Setter
3241
    @EqualsAndHashCode(callSuper = false)
3242
    public static class MbWay extends StripeObject {}
×
3243

3244
    /**
3245
     * For more details about Mobilepay, please refer to the <a
3246
     * href="https://docs.stripe.com/api">API Reference.</a>
3247
     */
3248
    @Getter
3249
    @Setter
3250
    @EqualsAndHashCode(callSuper = false)
3251
    public static class Mobilepay extends StripeObject {
×
3252
      /** Internal card details. */
3253
      @SerializedName("card")
3254
      Card card;
3255

3256
      /**
3257
       * For more details about Card, please refer to the <a href="https://docs.stripe.com/api">API
3258
       * Reference.</a>
3259
       */
3260
      @Getter
3261
      @Setter
3262
      @EqualsAndHashCode(callSuper = false)
3263
      public static class Card extends StripeObject {
×
3264
        /** Brand of the card used in the transaction. */
3265
        @SerializedName("brand")
3266
        String brand;
3267

3268
        /** Two-letter ISO code representing the country of the card. */
3269
        @SerializedName("country")
3270
        String country;
3271

3272
        /** Two digit number representing the card's expiration month. */
3273
        @SerializedName("exp_month")
3274
        Long expMonth;
3275

3276
        /** Two digit number representing the card's expiration year. */
3277
        @SerializedName("exp_year")
3278
        Long expYear;
3279

3280
        /** The last 4 digits of the card. */
3281
        @SerializedName("last4")
3282
        String last4;
3283
      }
3284
    }
3285

3286
    /**
3287
     * For more details about Multibanco, please refer to the <a
3288
     * href="https://docs.stripe.com/api">API Reference.</a>
3289
     */
3290
    @Getter
3291
    @Setter
3292
    @EqualsAndHashCode(callSuper = false)
3293
    public static class Multibanco extends StripeObject {
×
3294
      /** Entity number associated with this Multibanco payment. */
3295
      @SerializedName("entity")
3296
      String entity;
3297

3298
      /** Reference number associated with this Multibanco payment. */
3299
      @SerializedName("reference")
3300
      String reference;
3301
    }
3302

3303
    /**
3304
     * For more details about NaverPay, please refer to the <a
3305
     * href="https://docs.stripe.com/api">API Reference.</a>
3306
     */
3307
    @Getter
3308
    @Setter
3309
    @EqualsAndHashCode(callSuper = false)
3310
    public static class NaverPay extends StripeObject {
×
3311
      /** A unique identifier for the buyer as determined by the local payment processor. */
3312
      @SerializedName("buyer_id")
3313
      String buyerId;
3314
    }
3315

3316
    /**
3317
     * For more details about Oxxo, please refer to the <a href="https://docs.stripe.com/api">API
3318
     * Reference.</a>
3319
     */
3320
    @Getter
3321
    @Setter
3322
    @EqualsAndHashCode(callSuper = false)
3323
    public static class Oxxo extends StripeObject {
×
3324
      /** OXXO reference number. */
3325
      @SerializedName("number")
3326
      String number;
3327
    }
3328

3329
    /**
3330
     * For more details about P24, please refer to the <a href="https://docs.stripe.com/api">API
3331
     * Reference.</a>
3332
     */
3333
    @Getter
3334
    @Setter
3335
    @EqualsAndHashCode(callSuper = false)
3336
    public static class P24 extends StripeObject {
×
3337
      /**
3338
       * The customer's bank. Can be one of {@code ing}, {@code citi_handlowy}, {@code
3339
       * tmobile_usbugi_bankowe}, {@code plus_bank}, {@code etransfer_pocztowy24}, {@code
3340
       * banki_spbdzielcze}, {@code bank_nowy_bfg_sa}, {@code getin_bank}, {@code velobank}, {@code
3341
       * blik}, {@code noble_pay}, {@code ideabank}, {@code envelobank}, {@code
3342
       * santander_przelew24}, {@code nest_przelew}, {@code mbank_mtransfer}, {@code inteligo},
3343
       * {@code pbac_z_ipko}, {@code bnp_paribas}, {@code credit_agricole}, {@code toyota_bank},
3344
       * {@code bank_pekao_sa}, {@code volkswagen_bank}, {@code bank_millennium}, {@code
3345
       * alior_bank}, or {@code boz}.
3346
       */
3347
      @SerializedName("bank")
3348
      String bank;
3349

3350
      /** Unique reference for this Przelewy24 payment. */
3351
      @SerializedName("reference")
3352
      String reference;
3353

3354
      /**
3355
       * Owner's verified full name. Values are verified or provided by Przelewy24 directly (if
3356
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
3357
       * Przelewy24 rarely provides this information so the attribute is usually empty.
3358
       */
3359
      @SerializedName("verified_name")
3360
      String verifiedName;
3361
    }
3362

3363
    /**
3364
     * For more details about Payco, please refer to the <a href="https://docs.stripe.com/api">API
3365
     * Reference.</a>
3366
     */
3367
    @Getter
3368
    @Setter
3369
    @EqualsAndHashCode(callSuper = false)
3370
    public static class Payco extends StripeObject {
×
3371
      /** A unique identifier for the buyer as determined by the local payment processor. */
3372
      @SerializedName("buyer_id")
3373
      String buyerId;
3374
    }
3375

3376
    /**
3377
     * For more details about Paynow, please refer to the <a href="https://docs.stripe.com/api">API
3378
     * Reference.</a>
3379
     */
3380
    @Getter
3381
    @Setter
3382
    @EqualsAndHashCode(callSuper = false)
3383
    public static class Paynow extends StripeObject {
×
3384
      /** Reference number associated with this PayNow payment. */
3385
      @SerializedName("reference")
3386
      String reference;
3387
    }
3388

3389
    /**
3390
     * For more details about Paypal, please refer to the <a href="https://docs.stripe.com/api">API
3391
     * Reference.</a>
3392
     */
3393
    @Getter
3394
    @Setter
3395
    @EqualsAndHashCode(callSuper = false)
3396
    public static class Paypal extends StripeObject {
×
3397
      /**
3398
       * Owner's email. Values are provided by PayPal directly (if supported) at the time of
3399
       * authorization or settlement. They cannot be set or mutated.
3400
       */
3401
      @SerializedName("payer_email")
3402
      String payerEmail;
3403

3404
      /** PayPal account PayerID. This identifier uniquely identifies the PayPal customer. */
3405
      @SerializedName("payer_id")
3406
      String payerId;
3407

3408
      /**
3409
       * Owner's full name. Values provided by PayPal directly (if supported) at the time of
3410
       * authorization or settlement. They cannot be set or mutated.
3411
       */
3412
      @SerializedName("payer_name")
3413
      String payerName;
3414

3415
      /**
3416
       * The level of protection offered as defined by PayPal Seller Protection for Merchants, for
3417
       * this transaction.
3418
       */
3419
      @SerializedName("seller_protection")
3420
      SellerProtection sellerProtection;
3421

3422
      /**
3423
       * The shipping address for the customer, as supplied by the merchant at the point of payment
3424
       * execution. This shipping address will not be updated if the merchant updates the shipping
3425
       * address on the PaymentIntent after the PaymentIntent was successfully confirmed.
3426
       */
3427
      @SerializedName("shipping")
3428
      com.stripe.model.Address shipping;
3429

3430
      /** A unique ID generated by PayPal for this transaction. */
3431
      @SerializedName("transaction_id")
3432
      String transactionId;
3433

3434
      /**
3435
       * The shipping address for the customer, as supplied by the merchant at the point of payment
3436
       * execution. This shipping address will not be updated if the merchant updates the shipping
3437
       * address on the PaymentIntent after the PaymentIntent was successfully confirmed.
3438
       */
3439
      @SerializedName("verified_address")
3440
      com.stripe.model.Address verifiedAddress;
3441

3442
      /**
3443
       * Owner's verified email. Values are verified or provided by PayPal directly (if supported)
3444
       * at the time of authorization or settlement. They cannot be set or mutated.
3445
       */
3446
      @SerializedName("verified_email")
3447
      String verifiedEmail;
3448

3449
      /**
3450
       * Owner's verified full name. Values are verified or provided by PayPal directly (if
3451
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
3452
       */
3453
      @SerializedName("verified_name")
3454
      String verifiedName;
3455

3456
      /**
3457
       * For more details about SellerProtection, please refer to the <a
3458
       * href="https://docs.stripe.com/api">API Reference.</a>
3459
       */
3460
      @Getter
3461
      @Setter
3462
      @EqualsAndHashCode(callSuper = false)
3463
      public static class SellerProtection extends StripeObject {
×
3464
        /** An array of conditions that are covered for the transaction, if applicable. */
3465
        @SerializedName("dispute_categories")
3466
        List<String> disputeCategories;
3467

3468
        /**
3469
         * Indicates whether the transaction is eligible for PayPal's seller protection.
3470
         *
3471
         * <p>One of {@code eligible}, {@code not_eligible}, or {@code partially_eligible}.
3472
         */
3473
        @SerializedName("status")
3474
        String status;
3475
      }
3476
    }
3477

3478
    /**
3479
     * For more details about Payto, please refer to the <a href="https://docs.stripe.com/api">API
3480
     * Reference.</a>
3481
     */
3482
    @Getter
3483
    @Setter
3484
    @EqualsAndHashCode(callSuper = false)
3485
    public static class Payto extends StripeObject {
×
3486
      /** Bank-State-Branch number of the bank account. */
3487
      @SerializedName("bsb_number")
3488
      String bsbNumber;
3489

3490
      /** Last four digits of the bank account number. */
3491
      @SerializedName("last4")
3492
      String last4;
3493

3494
      /** ID of the mandate used to make this payment. */
3495
      @SerializedName("mandate")
3496
      String mandate;
3497

3498
      /** The PayID alias for the bank account. */
3499
      @SerializedName("pay_id")
3500
      String payId;
3501
    }
3502

3503
    /**
3504
     * For more details about Pix, please refer to the <a href="https://docs.stripe.com/api">API
3505
     * Reference.</a>
3506
     */
3507
    @Getter
3508
    @Setter
3509
    @EqualsAndHashCode(callSuper = false)
3510
    public static class Pix extends StripeObject {
×
3511
      /** Unique transaction id generated by BCB. */
3512
      @SerializedName("bank_transaction_id")
3513
      String bankTransactionId;
3514
    }
3515

3516
    /**
3517
     * For more details about Promptpay, please refer to the <a
3518
     * href="https://docs.stripe.com/api">API Reference.</a>
3519
     */
3520
    @Getter
3521
    @Setter
3522
    @EqualsAndHashCode(callSuper = false)
3523
    public static class Promptpay extends StripeObject {
×
3524
      /** Bill reference generated by PromptPay. */
3525
      @SerializedName("reference")
3526
      String reference;
3527
    }
3528

3529
    /**
3530
     * For more details about Qris, 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 Qris extends StripeObject {}
×
3537

3538
    /**
3539
     * For more details about Rechnung, please refer to the <a
3540
     * href="https://docs.stripe.com/api">API Reference.</a>
3541
     */
3542
    @Getter
3543
    @Setter
3544
    @EqualsAndHashCode(callSuper = false)
3545
    public static class Rechnung extends StripeObject {}
×
3546

3547
    /**
3548
     * For more details about RevolutPay, please refer to the <a
3549
     * href="https://docs.stripe.com/api">API Reference.</a>
3550
     */
3551
    @Getter
3552
    @Setter
3553
    @EqualsAndHashCode(callSuper = false)
NEW
3554
    public static class RevolutPay extends StripeObject {
×
3555
      @SerializedName("funding")
3556
      Funding funding;
3557

3558
      /**
3559
       * For more details about Funding, please refer to the <a
3560
       * href="https://docs.stripe.com/api">API Reference.</a>
3561
       */
3562
      @Getter
3563
      @Setter
3564
      @EqualsAndHashCode(callSuper = false)
NEW
3565
      public static class Funding extends StripeObject {
×
3566
        @SerializedName("card")
3567
        Card card;
3568

3569
        /**
3570
         * funding type of the underlying payment method.
3571
         *
3572
         * <p>Equal to {@code card}.
3573
         */
3574
        @SerializedName("type")
3575
        String type;
3576

3577
        /**
3578
         * For more details about Card, please refer to the <a
3579
         * href="https://docs.stripe.com/api">API Reference.</a>
3580
         */
3581
        @Getter
3582
        @Setter
3583
        @EqualsAndHashCode(callSuper = false)
NEW
3584
        public static class Card extends StripeObject {
×
3585
          /**
3586
           * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
3587
           * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or
3588
           * {@code unknown}.
3589
           */
3590
          @SerializedName("brand")
3591
          String brand;
3592

3593
          /**
3594
           * Two-letter ISO code representing the country of the card. You could use this attribute
3595
           * to get a sense of the international breakdown of cards you've collected.
3596
           */
3597
          @SerializedName("country")
3598
          String country;
3599

3600
          /** Two-digit number representing the card's expiration month. */
3601
          @SerializedName("exp_month")
3602
          Long expMonth;
3603

3604
          /** Four-digit number representing the card's expiration year. */
3605
          @SerializedName("exp_year")
3606
          Long expYear;
3607

3608
          /**
3609
           * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
3610
           * unknown}.
3611
           */
3612
          @SerializedName("funding")
3613
          String funding;
3614

3615
          /** The last four digits of the card. */
3616
          @SerializedName("last4")
3617
          String last4;
3618
        }
3619
      }
3620
    }
3621

3622
    /**
3623
     * For more details about SamsungPay, please refer to the <a
3624
     * href="https://docs.stripe.com/api">API Reference.</a>
3625
     */
3626
    @Getter
3627
    @Setter
3628
    @EqualsAndHashCode(callSuper = false)
3629
    public static class SamsungPay extends StripeObject {
×
3630
      /** A unique identifier for the buyer as determined by the local payment processor. */
3631
      @SerializedName("buyer_id")
3632
      String buyerId;
3633
    }
3634

3635
    /**
3636
     * For more details about SepaCreditTransfer, please refer to the <a
3637
     * href="https://docs.stripe.com/api">API Reference.</a>
3638
     */
3639
    @Getter
3640
    @Setter
3641
    @EqualsAndHashCode(callSuper = false)
3642
    public static class SepaCreditTransfer extends StripeObject {
×
3643
      /** Name of the bank associated with the bank account. */
3644
      @SerializedName("bank_name")
3645
      String bankName;
3646

3647
      /** Bank Identifier Code of the bank associated with the bank account. */
3648
      @SerializedName("bic")
3649
      String bic;
3650

3651
      /** IBAN of the bank account to transfer funds to. */
3652
      @SerializedName("iban")
3653
      String iban;
3654
    }
3655

3656
    /**
3657
     * For more details about SepaDebit, please refer to the <a
3658
     * href="https://docs.stripe.com/api">API Reference.</a>
3659
     */
3660
    @Getter
3661
    @Setter
3662
    @EqualsAndHashCode(callSuper = false)
3663
    public static class SepaDebit extends StripeObject {
×
3664
      /** Bank code of bank associated with the bank account. */
3665
      @SerializedName("bank_code")
3666
      String bankCode;
3667

3668
      /** Branch code of bank associated with the bank account. */
3669
      @SerializedName("branch_code")
3670
      String branchCode;
3671

3672
      /** Two-letter ISO code representing the country the bank account is located in. */
3673
      @SerializedName("country")
3674
      String country;
3675

3676
      /**
3677
       * Uniquely identifies this particular bank account. You can use this attribute to check
3678
       * whether two bank accounts are the same.
3679
       */
3680
      @SerializedName("fingerprint")
3681
      String fingerprint;
3682

3683
      /** Last four characters of the IBAN. */
3684
      @SerializedName("last4")
3685
      String last4;
3686

3687
      /**
3688
       * Find the ID of the mandate used for this payment under the <a
3689
       * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate">payment_method_details.sepa_debit.mandate</a>
3690
       * property on the Charge. Use this mandate ID to <a
3691
       * href="https://stripe.com/docs/api/mandates/retrieve">retrieve the Mandate</a>.
3692
       */
3693
      @SerializedName("mandate")
3694
      String mandate;
3695
    }
3696

3697
    /**
3698
     * For more details about Shopeepay, please refer to the <a
3699
     * href="https://docs.stripe.com/api">API Reference.</a>
3700
     */
3701
    @Getter
3702
    @Setter
3703
    @EqualsAndHashCode(callSuper = false)
3704
    public static class Shopeepay extends StripeObject {}
×
3705

3706
    /**
3707
     * For more details about Sofort, please refer to the <a href="https://docs.stripe.com/api">API
3708
     * Reference.</a>
3709
     */
3710
    @Getter
3711
    @Setter
3712
    @EqualsAndHashCode(callSuper = false)
3713
    public static class Sofort extends StripeObject {
×
3714
      /** Bank code of bank associated with the bank account. */
3715
      @SerializedName("bank_code")
3716
      String bankCode;
3717

3718
      /** Name of the bank associated with the bank account. */
3719
      @SerializedName("bank_name")
3720
      String bankName;
3721

3722
      /** Bank Identifier Code of the bank associated with the bank account. */
3723
      @SerializedName("bic")
3724
      String bic;
3725

3726
      /** Two-letter ISO code representing the country the bank account is located in. */
3727
      @SerializedName("country")
3728
      String country;
3729

3730
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
3731
      @SerializedName("generated_sepa_debit")
3732
      @Getter(lombok.AccessLevel.NONE)
3733
      @Setter(lombok.AccessLevel.NONE)
3734
      ExpandableField<PaymentMethod> generatedSepaDebit;
3735

3736
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
3737
      @SerializedName("generated_sepa_debit_mandate")
3738
      @Getter(lombok.AccessLevel.NONE)
3739
      @Setter(lombok.AccessLevel.NONE)
3740
      ExpandableField<Mandate> generatedSepaDebitMandate;
3741

3742
      /** Last four characters of the IBAN. */
3743
      @SerializedName("iban_last4")
3744
      String ibanLast4;
3745

3746
      /**
3747
       * Preferred language of the SOFORT authorization page that the customer is redirected to. Can
3748
       * be one of {@code de}, {@code en}, {@code es}, {@code fr}, {@code it}, {@code nl}, or {@code
3749
       * pl}
3750
       */
3751
      @SerializedName("preferred_language")
3752
      String preferredLanguage;
3753

3754
      /**
3755
       * Owner's verified full name. Values are verified or provided by SOFORT directly (if
3756
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
3757
       */
3758
      @SerializedName("verified_name")
3759
      String verifiedName;
3760

3761
      /** Get ID of expandable {@code generatedSepaDebit} object. */
3762
      public String getGeneratedSepaDebit() {
3763
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
3764
      }
3765

3766
      public void setGeneratedSepaDebit(String id) {
3767
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
3768
      }
×
3769

3770
      /** Get expanded {@code generatedSepaDebit}. */
3771
      public PaymentMethod getGeneratedSepaDebitObject() {
3772
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
3773
      }
3774

3775
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
3776
        this.generatedSepaDebit =
×
3777
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
3778
      }
×
3779

3780
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
3781
      public String getGeneratedSepaDebitMandate() {
3782
        return (this.generatedSepaDebitMandate != null)
×
3783
            ? this.generatedSepaDebitMandate.getId()
×
3784
            : null;
×
3785
      }
3786

3787
      public void setGeneratedSepaDebitMandate(String id) {
3788
        this.generatedSepaDebitMandate =
×
3789
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
3790
      }
×
3791

3792
      /** Get expanded {@code generatedSepaDebitMandate}. */
3793
      public Mandate getGeneratedSepaDebitMandateObject() {
3794
        return (this.generatedSepaDebitMandate != null)
×
3795
            ? this.generatedSepaDebitMandate.getExpanded()
×
3796
            : null;
×
3797
      }
3798

3799
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
3800
        this.generatedSepaDebitMandate =
×
3801
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
3802
      }
×
3803
    }
3804

3805
    /**
3806
     * For more details about StripeAccount, please refer to the <a
3807
     * href="https://docs.stripe.com/api">API Reference.</a>
3808
     */
3809
    @Getter
3810
    @Setter
3811
    @EqualsAndHashCode(callSuper = false)
3812
    public static class StripeAccount extends StripeObject {}
×
3813

3814
    /**
3815
     * For more details about Swish, please refer to the <a href="https://docs.stripe.com/api">API
3816
     * Reference.</a>
3817
     */
3818
    @Getter
3819
    @Setter
3820
    @EqualsAndHashCode(callSuper = false)
3821
    public static class Swish extends StripeObject {
×
3822
      /**
3823
       * Uniquely identifies the payer's Swish account. You can use this attribute to check whether
3824
       * two Swish transactions were paid for by the same payer
3825
       */
3826
      @SerializedName("fingerprint")
3827
      String fingerprint;
3828

3829
      /** Payer bank reference number for the payment. */
3830
      @SerializedName("payment_reference")
3831
      String paymentReference;
3832

3833
      /** The last four digits of the Swish account phone number. */
3834
      @SerializedName("verified_phone_last4")
3835
      String verifiedPhoneLast4;
3836
    }
3837

3838
    /**
3839
     * For more details about Twint, please refer to the <a href="https://docs.stripe.com/api">API
3840
     * Reference.</a>
3841
     */
3842
    @Getter
3843
    @Setter
3844
    @EqualsAndHashCode(callSuper = false)
3845
    public static class Twint extends StripeObject {}
×
3846

3847
    /**
3848
     * For more details about UsBankAccount, please refer to the <a
3849
     * href="https://docs.stripe.com/api">API Reference.</a>
3850
     */
3851
    @Getter
3852
    @Setter
3853
    @EqualsAndHashCode(callSuper = false)
3854
    public static class UsBankAccount extends StripeObject {
×
3855
      /**
3856
       * Account holder type: individual or company.
3857
       *
3858
       * <p>One of {@code company}, or {@code individual}.
3859
       */
3860
      @SerializedName("account_holder_type")
3861
      String accountHolderType;
3862

3863
      /**
3864
       * Account type: checkings or savings. Defaults to checking if omitted.
3865
       *
3866
       * <p>One of {@code checking}, or {@code savings}.
3867
       */
3868
      @SerializedName("account_type")
3869
      String accountType;
3870

3871
      /** Name of the bank associated with the bank account. */
3872
      @SerializedName("bank_name")
3873
      String bankName;
3874

3875
      /**
3876
       * Uniquely identifies this particular bank account. You can use this attribute to check
3877
       * whether two bank accounts are the same.
3878
       */
3879
      @SerializedName("fingerprint")
3880
      String fingerprint;
3881

3882
      /** Last four digits of the bank account number. */
3883
      @SerializedName("last4")
3884
      String last4;
3885

3886
      /** ID of the mandate used to make this payment. */
3887
      @SerializedName("mandate")
3888
      @Getter(lombok.AccessLevel.NONE)
3889
      @Setter(lombok.AccessLevel.NONE)
3890
      ExpandableField<Mandate> mandate;
3891

3892
      /** Reference number to locate ACH payments with customer's bank. */
3893
      @SerializedName("payment_reference")
3894
      String paymentReference;
3895

3896
      /** Routing number of the bank account. */
3897
      @SerializedName("routing_number")
3898
      String routingNumber;
3899

3900
      /** Get ID of expandable {@code mandate} object. */
3901
      public String getMandate() {
3902
        return (this.mandate != null) ? this.mandate.getId() : null;
×
3903
      }
3904

3905
      public void setMandate(String id) {
3906
        this.mandate = ApiResource.setExpandableFieldId(id, this.mandate);
×
3907
      }
×
3908

3909
      /** Get expanded {@code mandate}. */
3910
      public Mandate getMandateObject() {
3911
        return (this.mandate != null) ? this.mandate.getExpanded() : null;
×
3912
      }
3913

3914
      public void setMandateObject(Mandate expandableObject) {
3915
        this.mandate = new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
3916
      }
×
3917
    }
3918

3919
    /**
3920
     * For more details about Wechat, please refer to the <a href="https://docs.stripe.com/api">API
3921
     * Reference.</a>
3922
     */
3923
    @Getter
3924
    @Setter
3925
    @EqualsAndHashCode(callSuper = false)
3926
    public static class Wechat extends StripeObject {}
×
3927

3928
    /**
3929
     * For more details about WechatPay, please refer to the <a
3930
     * href="https://docs.stripe.com/api">API Reference.</a>
3931
     */
3932
    @Getter
3933
    @Setter
3934
    @EqualsAndHashCode(callSuper = false)
3935
    public static class WechatPay extends StripeObject {
×
3936
      /**
3937
       * Uniquely identifies this particular WeChat Pay account. You can use this attribute to check
3938
       * whether two WeChat accounts are the same.
3939
       */
3940
      @SerializedName("fingerprint")
3941
      String fingerprint;
3942

3943
      /** Transaction ID of this particular WeChat Pay transaction. */
3944
      @SerializedName("transaction_id")
3945
      String transactionId;
3946
    }
3947

3948
    /**
3949
     * For more details about Zip, please refer to the <a href="https://docs.stripe.com/api">API
3950
     * Reference.</a>
3951
     */
3952
    @Getter
3953
    @Setter
3954
    @EqualsAndHashCode(callSuper = false)
3955
    public static class Zip extends StripeObject {}
×
3956
  }
3957

3958
  /**
3959
   * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
3960
   * Session</a> for more information.
3961
   */
3962
  @Getter
3963
  @Setter
3964
  @EqualsAndHashCode(callSuper = false)
3965
  public static class RadarOptions extends StripeObject {
×
3966
    /**
3967
     * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
3968
     * the browser metadata and device details that help Radar make more accurate predictions on
3969
     * your payments.
3970
     */
3971
    @SerializedName("session")
3972
    String session;
3973
  }
3974

3975
  /**
3976
   * For more details about TransferData, please refer to the <a
3977
   * href="https://docs.stripe.com/api">API Reference.</a>
3978
   */
3979
  @Getter
3980
  @Setter
3981
  @EqualsAndHashCode(callSuper = false)
3982
  public static class TransferData extends StripeObject {
1✔
3983
    /**
3984
     * The amount transferred to the destination account, if specified. By default, the entire
3985
     * charge amount is transferred to the destination account.
3986
     */
3987
    @SerializedName("amount")
3988
    Long amount;
3989

3990
    /**
3991
     * ID of an existing, connected Stripe account to transfer funds to if {@code transfer_data} was
3992
     * specified in the charge request.
3993
     */
3994
    @SerializedName("destination")
3995
    @Getter(lombok.AccessLevel.NONE)
3996
    @Setter(lombok.AccessLevel.NONE)
3997
    ExpandableField<Account> destination;
3998

3999
    /** Get ID of expandable {@code destination} object. */
4000
    public String getDestination() {
4001
      return (this.destination != null) ? this.destination.getId() : null;
1✔
4002
    }
4003

4004
    public void setDestination(String id) {
4005
      this.destination = ApiResource.setExpandableFieldId(id, this.destination);
×
4006
    }
×
4007

4008
    /** Get expanded {@code destination}. */
4009
    public Account getDestinationObject() {
4010
      return (this.destination != null) ? this.destination.getExpanded() : null;
1✔
4011
    }
4012

4013
    public void setDestinationObject(Account expandableObject) {
4014
      this.destination = new ExpandableField<Account>(expandableObject.getId(), expandableObject);
×
4015
    }
×
4016
  }
4017

4018
  @Override
4019
  public void setResponseGetter(StripeResponseGetter responseGetter) {
4020
    super.setResponseGetter(responseGetter);
1✔
4021
    trySetResponseGetter(application, responseGetter);
1✔
4022
    trySetResponseGetter(applicationFee, responseGetter);
1✔
4023
    trySetResponseGetter(balanceTransaction, responseGetter);
1✔
4024
    trySetResponseGetter(billingDetails, responseGetter);
1✔
4025
    trySetResponseGetter(customer, responseGetter);
1✔
4026
    trySetResponseGetter(failureBalanceTransaction, responseGetter);
1✔
4027
    trySetResponseGetter(fraudDetails, responseGetter);
1✔
4028
    trySetResponseGetter(invoice, responseGetter);
1✔
4029
    trySetResponseGetter(level3, responseGetter);
1✔
4030
    trySetResponseGetter(onBehalfOf, responseGetter);
1✔
4031
    trySetResponseGetter(outcome, responseGetter);
1✔
4032
    trySetResponseGetter(paymentIntent, responseGetter);
1✔
4033
    trySetResponseGetter(paymentMethodDetails, responseGetter);
1✔
4034
    trySetResponseGetter(radarOptions, responseGetter);
1✔
4035
    trySetResponseGetter(refunds, responseGetter);
1✔
4036
    trySetResponseGetter(review, responseGetter);
1✔
4037
    trySetResponseGetter(shipping, responseGetter);
1✔
4038
    trySetResponseGetter(source, responseGetter);
1✔
4039
    trySetResponseGetter(sourceTransfer, responseGetter);
1✔
4040
    trySetResponseGetter(transfer, responseGetter);
1✔
4041
    trySetResponseGetter(transferData, responseGetter);
1✔
4042
  }
1✔
4043
}
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

© 2025 Coveralls, Inc