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

stripe / stripe-java / #16517

08 Oct 2024 06:27PM UTC coverage: 12.74% (-0.2%) from 12.899%
#16517

push

github

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

Update generated code for beta

53 of 2404 new or added lines in 50 files covered. (2.2%)

91 existing lines in 27 files now uncovered.

18753 of 147196 relevant lines covered (12.74%)

0.13 hits per line

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

31.99
/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
  @Getter
925
  @Setter
926
  @EqualsAndHashCode(callSuper = false)
927
  public static class BillingDetails extends StripeObject {
1✔
928
    /** Billing address. */
929
    @SerializedName("address")
930
    com.stripe.model.Address address;
931

932
    /** Email address. */
933
    @SerializedName("email")
934
    String email;
935

936
    /** Full name. */
937
    @SerializedName("name")
938
    String name;
939

940
    /** Billing phone number (including extension). */
941
    @SerializedName("phone")
942
    String phone;
943
  }
944

945
  @Getter
946
  @Setter
947
  @EqualsAndHashCode(callSuper = false)
948
  public static class FraudDetails extends StripeObject {
1✔
949
    /** Assessments from Stripe. If set, the value is {@code fraudulent}. */
950
    @SerializedName("stripe_report")
951
    String stripeReport;
952

953
    /**
954
     * Assessments reported by you. If set, possible values of are {@code safe} and {@code
955
     * fraudulent}.
956
     */
957
    @SerializedName("user_report")
958
    String userReport;
959
  }
960

961
  @Getter
962
  @Setter
963
  @EqualsAndHashCode(callSuper = false)
964
  public static class Level3 extends StripeObject {
1✔
965
    @SerializedName("customer_reference")
966
    String customerReference;
967

968
    @SerializedName("line_items")
969
    List<Charge.Level3.LineItem> lineItems;
970

971
    @SerializedName("merchant_reference")
972
    String merchantReference;
973

974
    @SerializedName("shipping_address_zip")
975
    String shippingAddressZip;
976

977
    @SerializedName("shipping_amount")
978
    Long shippingAmount;
979

980
    @SerializedName("shipping_from_zip")
981
    String shippingFromZip;
982

983
    @Getter
984
    @Setter
985
    @EqualsAndHashCode(callSuper = false)
986
    public static class LineItem extends StripeObject {
1✔
987
      @SerializedName("discount_amount")
988
      Long discountAmount;
989

990
      @SerializedName("product_code")
991
      String productCode;
992

993
      @SerializedName("product_description")
994
      String productDescription;
995

996
      @SerializedName("quantity")
997
      Long quantity;
998

999
      @SerializedName("tax_amount")
1000
      Long taxAmount;
1001

1002
      @SerializedName("unit_cost")
1003
      Long unitCost;
1004
    }
1005
  }
1006

1007
  @Getter
1008
  @Setter
1009
  @EqualsAndHashCode(callSuper = false)
1010
  public static class Outcome extends StripeObject {
1✔
1011
    /**
1012
     * Possible values are {@code approved_by_network}, {@code declined_by_network}, {@code
1013
     * not_sent_to_network}, and {@code reversed_after_approval}. The value {@code
1014
     * reversed_after_approval} indicates the payment was <a
1015
     * href="https://stripe.com/docs/declines#blocked-payments">blocked by Stripe</a> after bank
1016
     * authorization, and may temporarily appear as &quot;pending&quot; on a cardholder's statement.
1017
     */
1018
    @SerializedName("network_status")
1019
    String networkStatus;
1020

1021
    /**
1022
     * An enumerated value providing a more detailed explanation of the outcome's {@code type}.
1023
     * Charges blocked by Radar's default block rule have the value {@code highest_risk_level}.
1024
     * Charges placed in review by Radar's default review rule have the value {@code
1025
     * elevated_risk_level}. Charges authorized, blocked, or placed in review by custom rules have
1026
     * the value {@code rule}. See <a href="https://stripe.com/docs/declines">understanding
1027
     * declines</a> for more details.
1028
     */
1029
    @SerializedName("reason")
1030
    String reason;
1031

1032
    /**
1033
     * Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated
1034
     * payments are {@code normal}, {@code elevated}, {@code highest}. For non-card payments, and
1035
     * card-based payments predating the public assignment of risk levels, this field will have the
1036
     * value {@code not_assessed}. In the event of an error in the evaluation, this field will have
1037
     * the value {@code unknown}. This field is only available with Radar.
1038
     */
1039
    @SerializedName("risk_level")
1040
    String riskLevel;
1041

1042
    /**
1043
     * Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated
1044
     * payments are between 0 and 100. For non-card payments, card-based payments predating the
1045
     * public assignment of risk scores, or in the event of an error during evaluation, this field
1046
     * will not be present. This field is only available with Radar for Fraud Teams.
1047
     */
1048
    @SerializedName("risk_score")
1049
    Long riskScore;
1050

1051
    /** The ID of the Radar rule that matched the payment, if applicable. */
1052
    @SerializedName("rule")
1053
    @Getter(lombok.AccessLevel.NONE)
1054
    @Setter(lombok.AccessLevel.NONE)
1055
    ExpandableField<Rule> rule;
1056

1057
    /**
1058
     * A human-readable description of the outcome type and reason, designed for you (the recipient
1059
     * of the payment), not your customer.
1060
     */
1061
    @SerializedName("seller_message")
1062
    String sellerMessage;
1063

1064
    /**
1065
     * Possible values are {@code authorized}, {@code manual_review}, {@code issuer_declined},
1066
     * {@code blocked}, and {@code invalid}. See <a
1067
     * href="https://stripe.com/docs/declines">understanding declines</a> and <a
1068
     * href="https://stripe.com/docs/radar/reviews">Radar reviews</a> for details.
1069
     */
1070
    @SerializedName("type")
1071
    String type;
1072

1073
    /** Get ID of expandable {@code rule} object. */
1074
    public String getRule() {
1075
      return (this.rule != null) ? this.rule.getId() : null;
×
1076
    }
1077

1078
    public void setRule(String id) {
1079
      this.rule = ApiResource.setExpandableFieldId(id, this.rule);
×
1080
    }
×
1081

1082
    /** Get expanded {@code rule}. */
1083
    public Rule getRuleObject() {
1084
      return (this.rule != null) ? this.rule.getExpanded() : null;
×
1085
    }
1086

1087
    public void setRuleObject(Rule expandableObject) {
1088
      this.rule = new ExpandableField<Rule>(expandableObject.getId(), expandableObject);
×
1089
    }
×
1090

1091
    @Getter
1092
    @Setter
1093
    @EqualsAndHashCode(callSuper = false)
1094
    public static class Rule extends StripeObject implements HasId {
×
1095
      /** The action taken on the payment. */
1096
      @SerializedName("action")
1097
      String action;
1098

1099
      /** Unique identifier for the object. */
1100
      @Getter(onMethod_ = {@Override})
1101
      @SerializedName("id")
1102
      String id;
1103

1104
      /** The predicate to evaluate the payment against. */
1105
      @SerializedName("predicate")
1106
      String predicate;
1107
    }
1108
  }
1109

1110
  @Getter
1111
  @Setter
1112
  @EqualsAndHashCode(callSuper = false)
1113
  public static class PaymentMethodDetails extends StripeObject {
1✔
1114
    @SerializedName("ach_credit_transfer")
1115
    AchCreditTransfer achCreditTransfer;
1116

1117
    @SerializedName("ach_debit")
1118
    AchDebit achDebit;
1119

1120
    @SerializedName("acss_debit")
1121
    AcssDebit acssDebit;
1122

1123
    @SerializedName("affirm")
1124
    Affirm affirm;
1125

1126
    @SerializedName("afterpay_clearpay")
1127
    AfterpayClearpay afterpayClearpay;
1128

1129
    @SerializedName("alipay")
1130
    Alipay alipay;
1131

1132
    @SerializedName("amazon_pay")
1133
    AmazonPay amazonPay;
1134

1135
    @SerializedName("au_becs_debit")
1136
    AuBecsDebit auBecsDebit;
1137

1138
    @SerializedName("bacs_debit")
1139
    BacsDebit bacsDebit;
1140

1141
    @SerializedName("bancontact")
1142
    Bancontact bancontact;
1143

1144
    @SerializedName("blik")
1145
    Blik blik;
1146

1147
    @SerializedName("boleto")
1148
    Boleto boleto;
1149

1150
    @SerializedName("card")
1151
    Card card;
1152

1153
    @SerializedName("card_present")
1154
    CardPresent cardPresent;
1155

1156
    @SerializedName("cashapp")
1157
    Cashapp cashapp;
1158

1159
    @SerializedName("customer_balance")
1160
    CustomerBalance customerBalance;
1161

1162
    @SerializedName("eps")
1163
    Eps eps;
1164

1165
    @SerializedName("fpx")
1166
    Fpx fpx;
1167

1168
    @SerializedName("giropay")
1169
    Giropay giropay;
1170

1171
    @SerializedName("grabpay")
1172
    Grabpay grabpay;
1173

1174
    @SerializedName("ideal")
1175
    Ideal ideal;
1176

1177
    @SerializedName("interac_present")
1178
    InteracPresent interacPresent;
1179

1180
    @SerializedName("kakao_pay")
1181
    KakaoPay kakaoPay;
1182

1183
    @SerializedName("klarna")
1184
    Klarna klarna;
1185

1186
    @SerializedName("konbini")
1187
    Konbini konbini;
1188

1189
    @SerializedName("kr_card")
1190
    KrCard krCard;
1191

1192
    @SerializedName("link")
1193
    Link link;
1194

1195
    @SerializedName("mb_way")
1196
    MbWay mbWay;
1197

1198
    @SerializedName("mobilepay")
1199
    Mobilepay mobilepay;
1200

1201
    @SerializedName("multibanco")
1202
    Multibanco multibanco;
1203

1204
    @SerializedName("naver_pay")
1205
    NaverPay naverPay;
1206

1207
    @SerializedName("oxxo")
1208
    Oxxo oxxo;
1209

1210
    @SerializedName("p24")
1211
    P24 p24;
1212

1213
    @SerializedName("payco")
1214
    Payco payco;
1215

1216
    @SerializedName("paynow")
1217
    Paynow paynow;
1218

1219
    @SerializedName("paypal")
1220
    Paypal paypal;
1221

1222
    @SerializedName("payto")
1223
    Payto payto;
1224

1225
    @SerializedName("pix")
1226
    Pix pix;
1227

1228
    @SerializedName("promptpay")
1229
    Promptpay promptpay;
1230

1231
    @SerializedName("rechnung")
1232
    Rechnung rechnung;
1233

1234
    @SerializedName("revolut_pay")
1235
    RevolutPay revolutPay;
1236

1237
    @SerializedName("samsung_pay")
1238
    SamsungPay samsungPay;
1239

1240
    @SerializedName("sepa_credit_transfer")
1241
    SepaCreditTransfer sepaCreditTransfer;
1242

1243
    @SerializedName("sepa_debit")
1244
    SepaDebit sepaDebit;
1245

1246
    @SerializedName("sofort")
1247
    Sofort sofort;
1248

1249
    @SerializedName("stripe_account")
1250
    StripeAccount stripeAccount;
1251

1252
    @SerializedName("swish")
1253
    Swish swish;
1254

1255
    @SerializedName("twint")
1256
    Twint twint;
1257

1258
    /**
1259
     * The type of transaction-specific details of the payment method used in the payment, one of
1260
     * {@code ach_credit_transfer}, {@code ach_debit}, {@code acss_debit}, {@code alipay}, {@code
1261
     * au_becs_debit}, {@code bancontact}, {@code card}, {@code card_present}, {@code eps}, {@code
1262
     * giropay}, {@code ideal}, {@code klarna}, {@code multibanco}, {@code p24}, {@code sepa_debit},
1263
     * {@code sofort}, {@code stripe_account}, or {@code wechat}. An additional hash is included on
1264
     * {@code payment_method_details} with a name matching this value. It contains information
1265
     * specific to the payment method.
1266
     */
1267
    @SerializedName("type")
1268
    String type;
1269

1270
    @SerializedName("us_bank_account")
1271
    UsBankAccount usBankAccount;
1272

1273
    @SerializedName("wechat")
1274
    Wechat wechat;
1275

1276
    @SerializedName("wechat_pay")
1277
    WechatPay wechatPay;
1278

1279
    @SerializedName("zip")
1280
    Zip zip;
1281

1282
    @Getter
1283
    @Setter
1284
    @EqualsAndHashCode(callSuper = false)
1285
    public static class AchCreditTransfer extends StripeObject {
×
1286
      /** Account number to transfer funds to. */
1287
      @SerializedName("account_number")
1288
      String accountNumber;
1289

1290
      /** Name of the bank associated with the routing number. */
1291
      @SerializedName("bank_name")
1292
      String bankName;
1293

1294
      /** Routing transit number for the bank account to transfer funds to. */
1295
      @SerializedName("routing_number")
1296
      String routingNumber;
1297

1298
      /** SWIFT code of the bank associated with the routing number. */
1299
      @SerializedName("swift_code")
1300
      String swiftCode;
1301
    }
1302

1303
    @Getter
1304
    @Setter
1305
    @EqualsAndHashCode(callSuper = false)
1306
    public static class AchDebit extends StripeObject {
×
1307
      /**
1308
       * Type of entity that holds the account. This can be either {@code individual} or {@code
1309
       * company}.
1310
       *
1311
       * <p>One of {@code company}, or {@code individual}.
1312
       */
1313
      @SerializedName("account_holder_type")
1314
      String accountHolderType;
1315

1316
      /** Name of the bank associated with the bank account. */
1317
      @SerializedName("bank_name")
1318
      String bankName;
1319

1320
      /** Two-letter ISO code representing the country the bank account is located in. */
1321
      @SerializedName("country")
1322
      String country;
1323

1324
      /**
1325
       * Uniquely identifies this particular bank account. You can use this attribute to check
1326
       * whether two bank accounts are the same.
1327
       */
1328
      @SerializedName("fingerprint")
1329
      String fingerprint;
1330

1331
      /** Last four digits of the bank account number. */
1332
      @SerializedName("last4")
1333
      String last4;
1334

1335
      /** Routing transit number of the bank account. */
1336
      @SerializedName("routing_number")
1337
      String routingNumber;
1338
    }
1339

1340
    @Getter
1341
    @Setter
1342
    @EqualsAndHashCode(callSuper = false)
1343
    public static class AcssDebit extends StripeObject {
×
1344
      /** Name of the bank associated with the bank account. */
1345
      @SerializedName("bank_name")
1346
      String bankName;
1347

1348
      /**
1349
       * Uniquely identifies this particular bank account. You can use this attribute to check
1350
       * whether two bank accounts are the same.
1351
       */
1352
      @SerializedName("fingerprint")
1353
      String fingerprint;
1354

1355
      /** Institution number of the bank account. */
1356
      @SerializedName("institution_number")
1357
      String institutionNumber;
1358

1359
      /** Last four digits of the bank account number. */
1360
      @SerializedName("last4")
1361
      String last4;
1362

1363
      /** ID of the mandate used to make this payment. */
1364
      @SerializedName("mandate")
1365
      String mandate;
1366

1367
      /** Transit number of the bank account. */
1368
      @SerializedName("transit_number")
1369
      String transitNumber;
1370
    }
1371

1372
    @Getter
1373
    @Setter
1374
    @EqualsAndHashCode(callSuper = false)
1375
    public static class Affirm extends StripeObject {
×
1376
      /** The Affirm transaction ID associated with this payment. */
1377
      @SerializedName("transaction_id")
1378
      String transactionId;
1379
    }
1380

1381
    @Getter
1382
    @Setter
1383
    @EqualsAndHashCode(callSuper = false)
1384
    public static class AfterpayClearpay extends StripeObject {
×
1385
      /** The Afterpay order ID associated with this payment intent. */
1386
      @SerializedName("order_id")
1387
      String orderId;
1388

1389
      /** Order identifier shown to the merchant in Afterpay’s online portal. */
1390
      @SerializedName("reference")
1391
      String reference;
1392
    }
1393

1394
    @Getter
1395
    @Setter
1396
    @EqualsAndHashCode(callSuper = false)
1397
    public static class Alipay extends StripeObject {
×
1398
      /**
1399
       * Uniquely identifies this particular Alipay account. You can use this attribute to check
1400
       * whether two Alipay accounts are the same.
1401
       */
1402
      @SerializedName("buyer_id")
1403
      String buyerId;
1404

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

1412
      /** Transaction ID of this particular Alipay transaction. */
1413
      @SerializedName("transaction_id")
1414
      String transactionId;
1415
    }
1416

1417
    @Getter
1418
    @Setter
1419
    @EqualsAndHashCode(callSuper = false)
1420
    public static class AmazonPay extends StripeObject {}
×
1421

1422
    @Getter
1423
    @Setter
1424
    @EqualsAndHashCode(callSuper = false)
1425
    public static class AuBecsDebit extends StripeObject {
×
1426
      /** Bank-State-Branch number of the bank account. */
1427
      @SerializedName("bsb_number")
1428
      String bsbNumber;
1429

1430
      /**
1431
       * Uniquely identifies this particular bank account. You can use this attribute to check
1432
       * whether two bank accounts are the same.
1433
       */
1434
      @SerializedName("fingerprint")
1435
      String fingerprint;
1436

1437
      /** Last four digits of the bank account number. */
1438
      @SerializedName("last4")
1439
      String last4;
1440

1441
      /** ID of the mandate used to make this payment. */
1442
      @SerializedName("mandate")
1443
      String mandate;
1444
    }
1445

1446
    @Getter
1447
    @Setter
1448
    @EqualsAndHashCode(callSuper = false)
1449
    public static class BacsDebit extends StripeObject {
×
1450
      /**
1451
       * Uniquely identifies this particular bank account. You can use this attribute to check
1452
       * whether two bank accounts are the same.
1453
       */
1454
      @SerializedName("fingerprint")
1455
      String fingerprint;
1456

1457
      /** Last four digits of the bank account number. */
1458
      @SerializedName("last4")
1459
      String last4;
1460

1461
      /** ID of the mandate used to make this payment. */
1462
      @SerializedName("mandate")
1463
      String mandate;
1464

1465
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1466
      @SerializedName("sort_code")
1467
      String sortCode;
1468
    }
1469

1470
    @Getter
1471
    @Setter
1472
    @EqualsAndHashCode(callSuper = false)
1473
    public static class Bancontact extends StripeObject {
×
1474
      /** Bank code of bank associated with the bank account. */
1475
      @SerializedName("bank_code")
1476
      String bankCode;
1477

1478
      /** Name of the bank associated with the bank account. */
1479
      @SerializedName("bank_name")
1480
      String bankName;
1481

1482
      /** Bank Identifier Code of the bank associated with the bank account. */
1483
      @SerializedName("bic")
1484
      String bic;
1485

1486
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
1487
      @SerializedName("generated_sepa_debit")
1488
      @Getter(lombok.AccessLevel.NONE)
1489
      @Setter(lombok.AccessLevel.NONE)
1490
      ExpandableField<PaymentMethod> generatedSepaDebit;
1491

1492
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
1493
      @SerializedName("generated_sepa_debit_mandate")
1494
      @Getter(lombok.AccessLevel.NONE)
1495
      @Setter(lombok.AccessLevel.NONE)
1496
      ExpandableField<Mandate> generatedSepaDebitMandate;
1497

1498
      /** Last four characters of the IBAN. */
1499
      @SerializedName("iban_last4")
1500
      String ibanLast4;
1501

1502
      /**
1503
       * Preferred language of the Bancontact authorization page that the customer is redirected to.
1504
       * Can be one of {@code en}, {@code de}, {@code fr}, or {@code nl}
1505
       */
1506
      @SerializedName("preferred_language")
1507
      String preferredLanguage;
1508

1509
      /**
1510
       * Owner's verified full name. Values are verified or provided by Bancontact directly (if
1511
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
1512
       */
1513
      @SerializedName("verified_name")
1514
      String verifiedName;
1515

1516
      /** Get ID of expandable {@code generatedSepaDebit} object. */
1517
      public String getGeneratedSepaDebit() {
1518
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
1519
      }
1520

1521
      public void setGeneratedSepaDebit(String id) {
1522
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
1523
      }
×
1524

1525
      /** Get expanded {@code generatedSepaDebit}. */
1526
      public PaymentMethod getGeneratedSepaDebitObject() {
1527
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
1528
      }
1529

1530
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
1531
        this.generatedSepaDebit =
×
1532
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
1533
      }
×
1534

1535
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
1536
      public String getGeneratedSepaDebitMandate() {
1537
        return (this.generatedSepaDebitMandate != null)
×
1538
            ? this.generatedSepaDebitMandate.getId()
×
1539
            : null;
×
1540
      }
1541

1542
      public void setGeneratedSepaDebitMandate(String id) {
1543
        this.generatedSepaDebitMandate =
×
1544
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
1545
      }
×
1546

1547
      /** Get expanded {@code generatedSepaDebitMandate}. */
1548
      public Mandate getGeneratedSepaDebitMandateObject() {
1549
        return (this.generatedSepaDebitMandate != null)
×
1550
            ? this.generatedSepaDebitMandate.getExpanded()
×
1551
            : null;
×
1552
      }
1553

1554
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
1555
        this.generatedSepaDebitMandate =
×
1556
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
1557
      }
×
1558
    }
1559

1560
    @Getter
1561
    @Setter
1562
    @EqualsAndHashCode(callSuper = false)
1563
    public static class Blik extends StripeObject {
×
1564
      /** A unique and immutable identifier assigned by BLIK to every buyer. */
1565
      @SerializedName("buyer_id")
1566
      String buyerId;
1567
    }
1568

1569
    @Getter
1570
    @Setter
1571
    @EqualsAndHashCode(callSuper = false)
1572
    public static class Boleto extends StripeObject {
×
1573
      /**
1574
       * The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses
1575
       * consumers).
1576
       */
1577
      @SerializedName("tax_id")
1578
      String taxId;
1579
    }
1580

1581
    @Getter
1582
    @Setter
1583
    @EqualsAndHashCode(callSuper = false)
1584
    public static class Card extends StripeObject {
1✔
1585
      /** The authorized amount. */
1586
      @SerializedName("amount_authorized")
1587
      Long amountAuthorized;
1588

1589
      /** Authorization code on the charge. */
1590
      @SerializedName("authorization_code")
1591
      String authorizationCode;
1592

1593
      /**
1594
       * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
1595
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
1596
       */
1597
      @SerializedName("brand")
1598
      String brand;
1599

1600
      /**
1601
       * When using manual capture, a future timestamp at which the charge will be automatically
1602
       * refunded if uncaptured.
1603
       */
1604
      @SerializedName("capture_before")
1605
      Long captureBefore;
1606

1607
      /** Check results by Card networks on Card address and CVC at time of payment. */
1608
      @SerializedName("checks")
1609
      Checks checks;
1610

1611
      /**
1612
       * Two-letter ISO code representing the country of the card. You could use this attribute to
1613
       * get a sense of the international breakdown of cards you've collected.
1614
       */
1615
      @SerializedName("country")
1616
      String country;
1617

1618
      @SerializedName("decremental_authorization")
1619
      DecrementalAuthorization decrementalAuthorization;
1620

1621
      /**
1622
       * A high-level description of the type of cards issued in this range. (For internal use only
1623
       * and not typically available in standard API requests.)
1624
       */
1625
      @SerializedName("description")
1626
      String description;
1627

1628
      /** Two-digit number representing the card's expiration month. */
1629
      @SerializedName("exp_month")
1630
      Long expMonth;
1631

1632
      /** Four-digit number representing the card's expiration year. */
1633
      @SerializedName("exp_year")
1634
      Long expYear;
1635

1636
      @SerializedName("extended_authorization")
1637
      ExtendedAuthorization extendedAuthorization;
1638

1639
      /**
1640
       * Uniquely identifies this particular card number. You can use this attribute to check
1641
       * whether two customers who’ve signed up with you are using the same card number, for
1642
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
1643
       * tokenized number might be provided instead of the underlying card number.
1644
       *
1645
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
1646
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
1647
       */
1648
      @SerializedName("fingerprint")
1649
      String fingerprint;
1650

1651
      /**
1652
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
1653
       * unknown}.
1654
       */
1655
      @SerializedName("funding")
1656
      String funding;
1657

1658
      /**
1659
       * Issuer identification number of the card. (For internal use only and not typically
1660
       * available in standard API requests.)
1661
       */
1662
      @SerializedName("iin")
1663
      String iin;
1664

1665
      @SerializedName("incremental_authorization")
1666
      IncrementalAuthorization incrementalAuthorization;
1667

1668
      /**
1669
       * Installment details for this payment (Mexico only).
1670
       *
1671
       * <p>For more information, see the <a
1672
       * href="https://stripe.com/docs/payments/installments">installments integration guide</a>.
1673
       */
1674
      @SerializedName("installments")
1675
      Installments installments;
1676

1677
      /**
1678
       * The name of the card's issuing bank. (For internal use only and not typically available in
1679
       * standard API requests.)
1680
       */
1681
      @SerializedName("issuer")
1682
      String issuer;
1683

1684
      /** The last four digits of the card. */
1685
      @SerializedName("last4")
1686
      String last4;
1687

1688
      /** ID of the mandate used to make this payment or created by it. */
1689
      @SerializedName("mandate")
1690
      String mandate;
1691

1692
      /** True if this payment was marked as MOTO and out of scope for SCA. */
1693
      @SerializedName("moto")
1694
      Boolean moto;
1695

1696
      @SerializedName("multicapture")
1697
      Multicapture multicapture;
1698

1699
      /**
1700
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
1701
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
1702
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
1703
       */
1704
      @SerializedName("network")
1705
      String network;
1706

1707
      /**
1708
       * If this card has network token credentials, this contains the details of the network token
1709
       * credentials.
1710
       */
1711
      @SerializedName("network_token")
1712
      NetworkToken networkToken;
1713

1714
      @SerializedName("overcapture")
1715
      Overcapture overcapture;
1716

1717
      /** Populated if this transaction used 3D Secure authentication. */
1718
      @SerializedName("three_d_secure")
1719
      ThreeDSecure threeDSecure;
1720

1721
      /** If this Card is part of a card wallet, this contains the details of the card wallet. */
1722
      @SerializedName("wallet")
1723
      Wallet wallet;
1724

1725
      @Getter
1726
      @Setter
1727
      @EqualsAndHashCode(callSuper = false)
1728
      public static class Checks extends StripeObject {
1✔
1729
        /**
1730
         * If a address line1 was provided, results of the check, one of {@code pass}, {@code fail},
1731
         * {@code unavailable}, or {@code unchecked}.
1732
         */
1733
        @SerializedName("address_line1_check")
1734
        String addressLine1Check;
1735

1736
        /**
1737
         * If a address postal code was provided, results of the check, one of {@code pass}, {@code
1738
         * fail}, {@code unavailable}, or {@code unchecked}.
1739
         */
1740
        @SerializedName("address_postal_code_check")
1741
        String addressPostalCodeCheck;
1742

1743
        /**
1744
         * If a CVC was provided, results of the check, one of {@code pass}, {@code fail}, {@code
1745
         * unavailable}, or {@code unchecked}.
1746
         */
1747
        @SerializedName("cvc_check")
1748
        String cvcCheck;
1749
      }
1750

1751
      @Getter
1752
      @Setter
1753
      @EqualsAndHashCode(callSuper = false)
1754
      public static class DecrementalAuthorization extends StripeObject {
×
1755
        /**
1756
         * Indicates whether or not the decremental authorization feature is supported.
1757
         *
1758
         * <p>One of {@code available}, or {@code unavailable}.
1759
         */
1760
        @SerializedName("status")
1761
        String status;
1762
      }
1763

1764
      @Getter
1765
      @Setter
1766
      @EqualsAndHashCode(callSuper = false)
1767
      public static class ExtendedAuthorization extends StripeObject {
1✔
1768
        /**
1769
         * Indicates whether or not the capture window is extended beyond the standard
1770
         * authorization.
1771
         *
1772
         * <p>One of {@code disabled}, or {@code enabled}.
1773
         */
1774
        @SerializedName("status")
1775
        String status;
1776
      }
1777

1778
      @Getter
1779
      @Setter
1780
      @EqualsAndHashCode(callSuper = false)
1781
      public static class IncrementalAuthorization extends StripeObject {
1✔
1782
        /**
1783
         * Indicates whether or not the incremental authorization feature is supported.
1784
         *
1785
         * <p>One of {@code available}, or {@code unavailable}.
1786
         */
1787
        @SerializedName("status")
1788
        String status;
1789
      }
1790

1791
      @Getter
1792
      @Setter
1793
      @EqualsAndHashCode(callSuper = false)
1794
      public static class Installments extends StripeObject {
×
1795
        /** Installment plan selected for the payment. */
1796
        @SerializedName("plan")
1797
        Plan plan;
1798

1799
        @Getter
1800
        @Setter
1801
        @EqualsAndHashCode(callSuper = false)
1802
        public static class Plan extends StripeObject {
×
1803
          /**
1804
           * For {@code fixed_count} installment plans, this is the number of installment payments
1805
           * your customer will make to their credit card.
1806
           */
1807
          @SerializedName("count")
1808
          Long count;
1809

1810
          /**
1811
           * For {@code fixed_count} installment plans, this is the interval between installment
1812
           * payments your customer will make to their credit card. One of {@code month}.
1813
           */
1814
          @SerializedName("interval")
1815
          String interval;
1816

1817
          /** Type of installment plan, one of {@code fixed_count}. */
1818
          @SerializedName("type")
1819
          String type;
1820
        }
1821
      }
1822

1823
      @Getter
1824
      @Setter
1825
      @EqualsAndHashCode(callSuper = false)
1826
      public static class Multicapture extends StripeObject {
1✔
1827
        /**
1828
         * Indicates whether or not multiple captures are supported.
1829
         *
1830
         * <p>One of {@code available}, or {@code unavailable}.
1831
         */
1832
        @SerializedName("status")
1833
        String status;
1834
      }
1835

1836
      @Getter
1837
      @Setter
1838
      @EqualsAndHashCode(callSuper = false)
1839
      public static class NetworkToken extends StripeObject {
1✔
1840
        /**
1841
         * Indicates if Stripe used a network token, either user provided or Stripe managed when
1842
         * processing the transaction.
1843
         */
1844
        @SerializedName("used")
1845
        Boolean used;
1846
      }
1847

1848
      @Getter
1849
      @Setter
1850
      @EqualsAndHashCode(callSuper = false)
1851
      public static class Overcapture extends StripeObject {
1✔
1852
        /** The maximum amount that can be captured. */
1853
        @SerializedName("maximum_amount_capturable")
1854
        Long maximumAmountCapturable;
1855

1856
        /**
1857
         * Indicates whether or not the authorized amount can be over-captured.
1858
         *
1859
         * <p>One of {@code available}, or {@code unavailable}.
1860
         */
1861
        @SerializedName("status")
1862
        String status;
1863
      }
1864

1865
      @Getter
1866
      @Setter
1867
      @EqualsAndHashCode(callSuper = false)
1868
      public static class ThreeDSecure extends StripeObject {
×
1869
        /**
1870
         * For authenticated transactions: how the customer was authenticated by the issuing bank.
1871
         *
1872
         * <p>One of {@code challenge}, or {@code frictionless}.
1873
         */
1874
        @SerializedName("authentication_flow")
1875
        String authenticationFlow;
1876

1877
        /**
1878
         * The Electronic Commerce Indicator (ECI). A protocol-level field indicating what degree of
1879
         * authentication was performed.
1880
         *
1881
         * <p>One of {@code 01}, {@code 02}, {@code 05}, {@code 06}, or {@code 07}.
1882
         */
1883
        @SerializedName("electronic_commerce_indicator")
1884
        String electronicCommerceIndicator;
1885

1886
        /**
1887
         * The exemption requested via 3DS and accepted by the issuer at authentication time.
1888
         *
1889
         * <p>One of {@code low_risk}, or {@code none}.
1890
         */
1891
        @SerializedName("exemption_indicator")
1892
        String exemptionIndicator;
1893

1894
        /**
1895
         * Whether Stripe requested the value of {@code exemption_indicator} in the transaction.
1896
         * This will depend on the outcome of Stripe's internal risk assessment.
1897
         */
1898
        @SerializedName("exemption_indicator_applied")
1899
        Boolean exemptionIndicatorApplied;
1900

1901
        /**
1902
         * Indicates the outcome of 3D Secure authentication.
1903
         *
1904
         * <p>One of {@code attempt_acknowledged}, {@code authenticated}, {@code exempted}, {@code
1905
         * failed}, {@code not_supported}, or {@code processing_error}.
1906
         */
1907
        @SerializedName("result")
1908
        String result;
1909

1910
        /**
1911
         * Additional information about why 3D Secure succeeded or failed based on the {@code
1912
         * result}.
1913
         *
1914
         * <p>One of {@code abandoned}, {@code bypassed}, {@code canceled}, {@code
1915
         * card_not_enrolled}, {@code network_not_supported}, {@code protocol_error}, or {@code
1916
         * rejected}.
1917
         */
1918
        @SerializedName("result_reason")
1919
        String resultReason;
1920

1921
        /**
1922
         * The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID (dsTransId) for this
1923
         * payment.
1924
         */
1925
        @SerializedName("transaction_id")
1926
        String transactionId;
1927

1928
        /**
1929
         * The version of 3D Secure that was used.
1930
         *
1931
         * <p>One of {@code 1.0.2}, {@code 2.1.0}, or {@code 2.2.0}.
1932
         */
1933
        @SerializedName("version")
1934
        String version;
1935
      }
1936

1937
      @Getter
1938
      @Setter
1939
      @EqualsAndHashCode(callSuper = false)
1940
      public static class Wallet extends StripeObject {
×
1941
        @SerializedName("amex_express_checkout")
1942
        AmexExpressCheckout amexExpressCheckout;
1943

1944
        @SerializedName("apple_pay")
1945
        ApplePay applePay;
1946

1947
        /** (For tokenized numbers only.) The last four digits of the device account number. */
1948
        @SerializedName("dynamic_last4")
1949
        String dynamicLast4;
1950

1951
        @SerializedName("google_pay")
1952
        GooglePay googlePay;
1953

1954
        @SerializedName("link")
1955
        Link link;
1956

1957
        @SerializedName("masterpass")
1958
        Masterpass masterpass;
1959

1960
        @SerializedName("samsung_pay")
1961
        SamsungPay samsungPay;
1962

1963
        /**
1964
         * The type of the card wallet, one of {@code amex_express_checkout}, {@code apple_pay},
1965
         * {@code google_pay}, {@code masterpass}, {@code samsung_pay}, {@code visa_checkout}, or
1966
         * {@code link}. An additional hash is included on the Wallet subhash with a name matching
1967
         * this value. It contains additional information specific to the card wallet type.
1968
         */
1969
        @SerializedName("type")
1970
        String type;
1971

1972
        @SerializedName("visa_checkout")
1973
        VisaCheckout visaCheckout;
1974

1975
        @Getter
1976
        @Setter
1977
        @EqualsAndHashCode(callSuper = false)
1978
        public static class AmexExpressCheckout extends StripeObject {}
×
1979

1980
        @Getter
1981
        @Setter
1982
        @EqualsAndHashCode(callSuper = false)
1983
        public static class ApplePay extends StripeObject {}
×
1984

1985
        @Getter
1986
        @Setter
1987
        @EqualsAndHashCode(callSuper = false)
1988
        public static class GooglePay extends StripeObject {}
×
1989

1990
        @Getter
1991
        @Setter
1992
        @EqualsAndHashCode(callSuper = false)
1993
        public static class Link extends StripeObject {}
×
1994

1995
        @Getter
1996
        @Setter
1997
        @EqualsAndHashCode(callSuper = false)
1998
        public static class Masterpass extends StripeObject {
×
1999
          /**
2000
           * Owner's verified billing address. Values are verified or provided by the wallet
2001
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2002
           * or mutated.
2003
           */
2004
          @SerializedName("billing_address")
2005
          com.stripe.model.Address billingAddress;
2006

2007
          /**
2008
           * Owner's verified email. Values are verified or provided by the wallet directly (if
2009
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2010
           */
2011
          @SerializedName("email")
2012
          String email;
2013

2014
          /**
2015
           * Owner's verified full name. Values are verified or provided by the wallet directly (if
2016
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2017
           */
2018
          @SerializedName("name")
2019
          String name;
2020

2021
          /**
2022
           * Owner's verified shipping address. Values are verified or provided by the wallet
2023
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2024
           * or mutated.
2025
           */
2026
          @SerializedName("shipping_address")
2027
          com.stripe.model.Address shippingAddress;
2028
        }
2029

2030
        @Getter
2031
        @Setter
2032
        @EqualsAndHashCode(callSuper = false)
2033
        public static class SamsungPay extends StripeObject {}
×
2034

2035
        @Getter
2036
        @Setter
2037
        @EqualsAndHashCode(callSuper = false)
2038
        public static class VisaCheckout extends StripeObject {
×
2039
          /**
2040
           * Owner's verified billing address. Values are verified or provided by the wallet
2041
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2042
           * or mutated.
2043
           */
2044
          @SerializedName("billing_address")
2045
          com.stripe.model.Address billingAddress;
2046

2047
          /**
2048
           * Owner's verified email. Values are verified or provided by the wallet directly (if
2049
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2050
           */
2051
          @SerializedName("email")
2052
          String email;
2053

2054
          /**
2055
           * Owner's verified full name. Values are verified or provided by the wallet directly (if
2056
           * supported) at the time of authorization or settlement. They cannot be set or mutated.
2057
           */
2058
          @SerializedName("name")
2059
          String name;
2060

2061
          /**
2062
           * Owner's verified shipping address. Values are verified or provided by the wallet
2063
           * directly (if supported) at the time of authorization or settlement. They cannot be set
2064
           * or mutated.
2065
           */
2066
          @SerializedName("shipping_address")
2067
          com.stripe.model.Address shippingAddress;
2068
        }
2069
      }
2070
    }
2071

2072
    @Getter
2073
    @Setter
2074
    @EqualsAndHashCode(callSuper = false)
2075
    public static class CardPresent extends StripeObject {
×
2076
      /** The authorized amount. */
2077
      @SerializedName("amount_authorized")
2078
      Long amountAuthorized;
2079

2080
      /**
2081
       * Card brand. Can be {@code amex}, {@code diners}, {@code discover}, {@code eftpos_au},
2082
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
2083
       */
2084
      @SerializedName("brand")
2085
      String brand;
2086

2087
      /**
2088
       * The <a href="https://stripe.com/docs/card-product-codes">product code</a> that identifies
2089
       * the specific program or product associated with a card.
2090
       */
2091
      @SerializedName("brand_product")
2092
      String brandProduct;
2093

2094
      /**
2095
       * When using manual capture, a future timestamp after which the charge will be automatically
2096
       * refunded if uncaptured.
2097
       */
2098
      @SerializedName("capture_before")
2099
      Long captureBefore;
2100

2101
      /**
2102
       * The cardholder name as read from the card, in <a
2103
       * href="https://en.wikipedia.org/wiki/ISO/IEC_7813">ISO 7813</a> format. May include
2104
       * alphanumeric characters, special characters and first/last name separator ({@code /}). In
2105
       * some cases, the cardholder name may not be available depending on how the issuer has
2106
       * configured the card. Cardholder name is typically not available on swipe or contactless
2107
       * payments, such as those made with Apple Pay and Google Pay.
2108
       */
2109
      @SerializedName("cardholder_name")
2110
      String cardholderName;
2111

2112
      /**
2113
       * Two-letter ISO code representing the country of the card. You could use this attribute to
2114
       * get a sense of the international breakdown of cards you've collected.
2115
       */
2116
      @SerializedName("country")
2117
      String country;
2118

2119
      /**
2120
       * A high-level description of the type of cards issued in this range. (For internal use only
2121
       * and not typically available in standard API requests.)
2122
       */
2123
      @SerializedName("description")
2124
      String description;
2125

2126
      /** Authorization response cryptogram. */
2127
      @SerializedName("emv_auth_data")
2128
      String emvAuthData;
2129

2130
      /** Two-digit number representing the card's expiration month. */
2131
      @SerializedName("exp_month")
2132
      Long expMonth;
2133

2134
      /** Four-digit number representing the card's expiration year. */
2135
      @SerializedName("exp_year")
2136
      Long expYear;
2137

2138
      /**
2139
       * Uniquely identifies this particular card number. You can use this attribute to check
2140
       * whether two customers who’ve signed up with you are using the same card number, for
2141
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
2142
       * tokenized number might be provided instead of the underlying card number.
2143
       *
2144
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
2145
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
2146
       */
2147
      @SerializedName("fingerprint")
2148
      String fingerprint;
2149

2150
      /**
2151
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
2152
       * unknown}.
2153
       */
2154
      @SerializedName("funding")
2155
      String funding;
2156

2157
      /**
2158
       * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
2159
       * attached to a Customer for future transactions. Only present if it was possible to generate
2160
       * a card PaymentMethod.
2161
       */
2162
      @SerializedName("generated_card")
2163
      String generatedCard;
2164

2165
      /**
2166
       * Issuer identification number of the card. (For internal use only and not typically
2167
       * available in standard API requests.)
2168
       */
2169
      @SerializedName("iin")
2170
      String iin;
2171

2172
      /**
2173
       * Whether this <a href="https://stripe.com/docs/api/payment_intents">PaymentIntent</a> is
2174
       * eligible for incremental authorizations. Request support using <a
2175
       * 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>.
2176
       */
2177
      @SerializedName("incremental_authorization_supported")
2178
      Boolean incrementalAuthorizationSupported;
2179

2180
      /**
2181
       * The name of the card's issuing bank. (For internal use only and not typically available in
2182
       * standard API requests.)
2183
       */
2184
      @SerializedName("issuer")
2185
      String issuer;
2186

2187
      /** The last four digits of the card. */
2188
      @SerializedName("last4")
2189
      String last4;
2190

2191
      /**
2192
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
2193
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
2194
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
2195
       */
2196
      @SerializedName("network")
2197
      String network;
2198

2199
      /**
2200
       * This is used by the financial networks to identify a transaction. Visa calls this the
2201
       * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
2202
       * Acquirer Reference Data. The first three digits of the Trace ID is the Financial Network
2203
       * Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent
2204
       * the date (MM/DD). This field will be available for successful Visa, Mastercard, or American
2205
       * Express transactions and always null for other card brands.
2206
       */
2207
      @SerializedName("network_transaction_id")
2208
      String networkTransactionId;
2209

2210
      /** Details about payments collected offline. */
2211
      @SerializedName("offline")
2212
      Offline offline;
2213

2214
      /** Defines whether the authorized amount can be over-captured or not. */
2215
      @SerializedName("overcapture_supported")
2216
      Boolean overcaptureSupported;
2217

2218
      /** EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. */
2219
      @SerializedName("preferred_locales")
2220
      List<String> preferredLocales;
2221

2222
      /**
2223
       * How card details were read in this transaction.
2224
       *
2225
       * <p>One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
2226
       * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
2227
       */
2228
      @SerializedName("read_method")
2229
      String readMethod;
2230

2231
      /**
2232
       * A collection of fields required to be displayed on receipts. Only required for EMV
2233
       * transactions.
2234
       */
2235
      @SerializedName("receipt")
2236
      Receipt receipt;
2237

2238
      @SerializedName("wallet")
2239
      Wallet wallet;
2240

2241
      @Getter
2242
      @Setter
2243
      @EqualsAndHashCode(callSuper = false)
2244
      public static class Offline extends StripeObject {
×
2245
        /** Time at which the payment was collected while offline. */
2246
        @SerializedName("stored_at")
2247
        Long storedAt;
2248

2249
        /**
2250
         * The method used to process this payment method offline. Only deferred is allowed.
2251
         *
2252
         * <p>Equal to {@code deferred}.
2253
         */
2254
        @SerializedName("type")
2255
        String type;
2256
      }
2257

2258
      @Getter
2259
      @Setter
2260
      @EqualsAndHashCode(callSuper = false)
2261
      public static class Receipt extends StripeObject {
×
2262
        /**
2263
         * The type of account being debited or credited
2264
         *
2265
         * <p>One of {@code checking}, {@code credit}, {@code prepaid}, or {@code unknown}.
2266
         */
2267
        @SerializedName("account_type")
2268
        String accountType;
2269

2270
        /** EMV tag 9F26, cryptogram generated by the integrated circuit chip. */
2271
        @SerializedName("application_cryptogram")
2272
        String applicationCryptogram;
2273

2274
        /** Mnenomic of the Application Identifier. */
2275
        @SerializedName("application_preferred_name")
2276
        String applicationPreferredName;
2277

2278
        /** Identifier for this transaction. */
2279
        @SerializedName("authorization_code")
2280
        String authorizationCode;
2281

2282
        /** EMV tag 8A. A code returned by the card issuer. */
2283
        @SerializedName("authorization_response_code")
2284
        String authorizationResponseCode;
2285

2286
        /**
2287
         * Describes the method used by the cardholder to verify ownership of the card. One of the
2288
         * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
2289
         * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
2290
         */
2291
        @SerializedName("cardholder_verification_method")
2292
        String cardholderVerificationMethod;
2293

2294
        /**
2295
         * EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
2296
         */
2297
        @SerializedName("dedicated_file_name")
2298
        String dedicatedFileName;
2299

2300
        /** The outcome of a series of EMV functions performed by the card reader. */
2301
        @SerializedName("terminal_verification_results")
2302
        String terminalVerificationResults;
2303

2304
        /** An indication of various EMV functions performed during the transaction. */
2305
        @SerializedName("transaction_status_information")
2306
        String transactionStatusInformation;
2307
      }
2308

2309
      @Getter
2310
      @Setter
2311
      @EqualsAndHashCode(callSuper = false)
2312
      public static class Wallet extends StripeObject {
×
2313
        /**
2314
         * The type of mobile wallet, one of {@code apple_pay}, {@code google_pay}, {@code
2315
         * samsung_pay}, or {@code unknown}.
2316
         */
2317
        @SerializedName("type")
2318
        String type;
2319
      }
2320
    }
2321

2322
    @Getter
2323
    @Setter
2324
    @EqualsAndHashCode(callSuper = false)
2325
    public static class Cashapp extends StripeObject {
×
2326
      /** A unique and immutable identifier assigned by Cash App to every buyer. */
2327
      @SerializedName("buyer_id")
2328
      String buyerId;
2329

2330
      /** A public identifier for buyers using Cash App. */
2331
      @SerializedName("cashtag")
2332
      String cashtag;
2333
    }
2334

2335
    @Getter
2336
    @Setter
2337
    @EqualsAndHashCode(callSuper = false)
2338
    public static class CustomerBalance extends StripeObject {}
×
2339

2340
    @Getter
2341
    @Setter
2342
    @EqualsAndHashCode(callSuper = false)
2343
    public static class Eps extends StripeObject {
×
2344
      /**
2345
       * The customer's bank. Should be one of {@code arzte_und_apotheker_bank}, {@code
2346
       * austrian_anadi_bank_ag}, {@code bank_austria}, {@code bankhaus_carl_spangler}, {@code
2347
       * bankhaus_schelhammer_und_schattera_ag}, {@code bawag_psk_ag}, {@code bks_bank_ag}, {@code
2348
       * brull_kallmus_bank_ag}, {@code btv_vier_lander_bank}, {@code capital_bank_grawe_gruppe_ag},
2349
       * {@code deutsche_bank_ag}, {@code dolomitenbank}, {@code easybank_ag}, {@code
2350
       * erste_bank_und_sparkassen}, {@code hypo_alpeadriabank_international_ag}, {@code
2351
       * hypo_noe_lb_fur_niederosterreich_u_wien}, {@code hypo_oberosterreich_salzburg_steiermark},
2352
       * {@code hypo_tirol_bank_ag}, {@code hypo_vorarlberg_bank_ag}, {@code
2353
       * hypo_bank_burgenland_aktiengesellschaft}, {@code marchfelder_bank}, {@code oberbank_ag},
2354
       * {@code raiffeisen_bankengruppe_osterreich}, {@code schoellerbank_ag}, {@code
2355
       * sparda_bank_wien}, {@code volksbank_gruppe}, {@code volkskreditbank_ag}, or {@code
2356
       * vr_bank_braunau}.
2357
       */
2358
      @SerializedName("bank")
2359
      String bank;
2360

2361
      /**
2362
       * Owner's verified full name. Values are verified or provided by EPS directly (if supported)
2363
       * at the time of authorization or settlement. They cannot be set or mutated. EPS rarely
2364
       * provides this information so the attribute is usually empty.
2365
       */
2366
      @SerializedName("verified_name")
2367
      String verifiedName;
2368
    }
2369

2370
    @Getter
2371
    @Setter
2372
    @EqualsAndHashCode(callSuper = false)
2373
    public static class Fpx extends StripeObject {
×
2374
      /** Account holder type, if provided. Can be one of {@code individual} or {@code company}. */
2375
      @SerializedName("account_holder_type")
2376
      String accountHolderType;
2377

2378
      /**
2379
       * The customer's bank. Can be one of {@code affin_bank}, {@code agrobank}, {@code
2380
       * alliance_bank}, {@code ambank}, {@code bank_islam}, {@code bank_muamalat}, {@code
2381
       * bank_rakyat}, {@code bsn}, {@code cimb}, {@code hong_leong_bank}, {@code hsbc}, {@code
2382
       * kfh}, {@code maybank2u}, {@code ocbc}, {@code public_bank}, {@code rhb}, {@code
2383
       * standard_chartered}, {@code uob}, {@code deutsche_bank}, {@code maybank2e}, {@code
2384
       * pb_enterprise}, or {@code bank_of_china}.
2385
       */
2386
      @SerializedName("bank")
2387
      String bank;
2388

2389
      /** Unique transaction id generated by FPX for every request from the merchant. */
2390
      @SerializedName("transaction_id")
2391
      String transactionId;
2392
    }
2393

2394
    @Getter
2395
    @Setter
2396
    @EqualsAndHashCode(callSuper = false)
2397
    public static class Giropay extends StripeObject {
×
2398
      /** Bank code of bank associated with the bank account. */
2399
      @SerializedName("bank_code")
2400
      String bankCode;
2401

2402
      /** Name of the bank associated with the bank account. */
2403
      @SerializedName("bank_name")
2404
      String bankName;
2405

2406
      /** Bank Identifier Code of the bank associated with the bank account. */
2407
      @SerializedName("bic")
2408
      String bic;
2409

2410
      /**
2411
       * Owner's verified full name. Values are verified or provided by Giropay directly (if
2412
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2413
       * Giropay rarely provides this information so the attribute is usually empty.
2414
       */
2415
      @SerializedName("verified_name")
2416
      String verifiedName;
2417
    }
2418

2419
    @Getter
2420
    @Setter
2421
    @EqualsAndHashCode(callSuper = false)
2422
    public static class Grabpay extends StripeObject {
×
2423
      /** Unique transaction id generated by GrabPay. */
2424
      @SerializedName("transaction_id")
2425
      String transactionId;
2426
    }
2427

2428
    @Getter
2429
    @Setter
2430
    @EqualsAndHashCode(callSuper = false)
2431
    public static class Ideal extends StripeObject {
×
2432
      /**
2433
       * The customer's bank. Can be one of {@code abn_amro}, {@code asn_bank}, {@code bunq}, {@code
2434
       * handelsbanken}, {@code ing}, {@code knab}, {@code moneyou}, {@code n26}, {@code nn}, {@code
2435
       * rabobank}, {@code regiobank}, {@code revolut}, {@code sns_bank}, {@code triodos_bank},
2436
       * {@code van_lanschot}, or {@code yoursafe}.
2437
       */
2438
      @SerializedName("bank")
2439
      String bank;
2440

2441
      /**
2442
       * The Bank Identifier Code of the customer's bank.
2443
       *
2444
       * <p>One of {@code ABNANL2A}, {@code ASNBNL21}, {@code BITSNL2A}, {@code BUNQNL2A}, {@code
2445
       * FVLBNL22}, {@code HANDNL2A}, {@code INGBNL2A}, {@code KNABNL2H}, {@code MOYONL21}, {@code
2446
       * NNBANL2G}, {@code NTSBDEB1}, {@code RABONL2U}, {@code RBRBNL21}, {@code REVOIE23}, {@code
2447
       * REVOLT21}, {@code SNSBNL2A}, or {@code TRIONL2U}.
2448
       */
2449
      @SerializedName("bic")
2450
      String bic;
2451

2452
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
2453
      @SerializedName("generated_sepa_debit")
2454
      @Getter(lombok.AccessLevel.NONE)
2455
      @Setter(lombok.AccessLevel.NONE)
2456
      ExpandableField<PaymentMethod> generatedSepaDebit;
2457

2458
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
2459
      @SerializedName("generated_sepa_debit_mandate")
2460
      @Getter(lombok.AccessLevel.NONE)
2461
      @Setter(lombok.AccessLevel.NONE)
2462
      ExpandableField<Mandate> generatedSepaDebitMandate;
2463

2464
      /** Last four characters of the IBAN. */
2465
      @SerializedName("iban_last4")
2466
      String ibanLast4;
2467

2468
      /**
2469
       * Owner's verified full name. Values are verified or provided by iDEAL directly (if
2470
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2471
       */
2472
      @SerializedName("verified_name")
2473
      String verifiedName;
2474

2475
      /** Get ID of expandable {@code generatedSepaDebit} object. */
2476
      public String getGeneratedSepaDebit() {
2477
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
2478
      }
2479

2480
      public void setGeneratedSepaDebit(String id) {
2481
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
2482
      }
×
2483

2484
      /** Get expanded {@code generatedSepaDebit}. */
2485
      public PaymentMethod getGeneratedSepaDebitObject() {
2486
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
2487
      }
2488

2489
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
2490
        this.generatedSepaDebit =
×
2491
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
2492
      }
×
2493

2494
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
2495
      public String getGeneratedSepaDebitMandate() {
2496
        return (this.generatedSepaDebitMandate != null)
×
2497
            ? this.generatedSepaDebitMandate.getId()
×
2498
            : null;
×
2499
      }
2500

2501
      public void setGeneratedSepaDebitMandate(String id) {
2502
        this.generatedSepaDebitMandate =
×
2503
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
2504
      }
×
2505

2506
      /** Get expanded {@code generatedSepaDebitMandate}. */
2507
      public Mandate getGeneratedSepaDebitMandateObject() {
2508
        return (this.generatedSepaDebitMandate != null)
×
2509
            ? this.generatedSepaDebitMandate.getExpanded()
×
2510
            : null;
×
2511
      }
2512

2513
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
2514
        this.generatedSepaDebitMandate =
×
2515
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
2516
      }
×
2517
    }
2518

2519
    @Getter
2520
    @Setter
2521
    @EqualsAndHashCode(callSuper = false)
2522
    public static class InteracPresent extends StripeObject {
×
2523
      /** Card brand. Can be {@code interac}, {@code mastercard} or {@code visa}. */
2524
      @SerializedName("brand")
2525
      String brand;
2526

2527
      /**
2528
       * The cardholder name as read from the card, in <a
2529
       * href="https://en.wikipedia.org/wiki/ISO/IEC_7813">ISO 7813</a> format. May include
2530
       * alphanumeric characters, special characters and first/last name separator ({@code /}). In
2531
       * some cases, the cardholder name may not be available depending on how the issuer has
2532
       * configured the card. Cardholder name is typically not available on swipe or contactless
2533
       * payments, such as those made with Apple Pay and Google Pay.
2534
       */
2535
      @SerializedName("cardholder_name")
2536
      String cardholderName;
2537

2538
      /**
2539
       * Two-letter ISO code representing the country of the card. You could use this attribute to
2540
       * get a sense of the international breakdown of cards you've collected.
2541
       */
2542
      @SerializedName("country")
2543
      String country;
2544

2545
      /**
2546
       * A high-level description of the type of cards issued in this range. (For internal use only
2547
       * and not typically available in standard API requests.)
2548
       */
2549
      @SerializedName("description")
2550
      String description;
2551

2552
      /** Authorization response cryptogram. */
2553
      @SerializedName("emv_auth_data")
2554
      String emvAuthData;
2555

2556
      /** Two-digit number representing the card's expiration month. */
2557
      @SerializedName("exp_month")
2558
      Long expMonth;
2559

2560
      /** Four-digit number representing the card's expiration year. */
2561
      @SerializedName("exp_year")
2562
      Long expYear;
2563

2564
      /**
2565
       * Uniquely identifies this particular card number. You can use this attribute to check
2566
       * whether two customers who’ve signed up with you are using the same card number, for
2567
       * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
2568
       * tokenized number might be provided instead of the underlying card number.
2569
       *
2570
       * <p><em>As of May 1, 2021, card fingerprint in India for Connect changed to allow two
2571
       * fingerprints for the same card---one for India and one for the rest of the world.</em>
2572
       */
2573
      @SerializedName("fingerprint")
2574
      String fingerprint;
2575

2576
      /**
2577
       * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
2578
       * unknown}.
2579
       */
2580
      @SerializedName("funding")
2581
      String funding;
2582

2583
      /**
2584
       * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
2585
       * attached to a Customer for future transactions. Only present if it was possible to generate
2586
       * a card PaymentMethod.
2587
       */
2588
      @SerializedName("generated_card")
2589
      String generatedCard;
2590

2591
      /**
2592
       * Issuer identification number of the card. (For internal use only and not typically
2593
       * available in standard API requests.)
2594
       */
2595
      @SerializedName("iin")
2596
      String iin;
2597

2598
      /**
2599
       * The name of the card's issuing bank. (For internal use only and not typically available in
2600
       * standard API requests.)
2601
       */
2602
      @SerializedName("issuer")
2603
      String issuer;
2604

2605
      /** The last four digits of the card. */
2606
      @SerializedName("last4")
2607
      String last4;
2608

2609
      /**
2610
       * Identifies which network this charge was processed on. Can be {@code amex}, {@code
2611
       * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
2612
       * {@code jcb}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code unknown}.
2613
       */
2614
      @SerializedName("network")
2615
      String network;
2616

2617
      /**
2618
       * This is used by the financial networks to identify a transaction. Visa calls this the
2619
       * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
2620
       * Acquirer Reference Data. The first three digits of the Trace ID is the Financial Network
2621
       * Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent
2622
       * the date (MM/DD). This field will be available for successful Visa, Mastercard, or American
2623
       * Express transactions and always null for other card brands.
2624
       */
2625
      @SerializedName("network_transaction_id")
2626
      String networkTransactionId;
2627

2628
      /** EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. */
2629
      @SerializedName("preferred_locales")
2630
      List<String> preferredLocales;
2631

2632
      /**
2633
       * How card details were read in this transaction.
2634
       *
2635
       * <p>One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
2636
       * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
2637
       */
2638
      @SerializedName("read_method")
2639
      String readMethod;
2640

2641
      /**
2642
       * A collection of fields required to be displayed on receipts. Only required for EMV
2643
       * transactions.
2644
       */
2645
      @SerializedName("receipt")
2646
      Receipt receipt;
2647

2648
      @Getter
2649
      @Setter
2650
      @EqualsAndHashCode(callSuper = false)
2651
      public static class Receipt extends StripeObject {
×
2652
        /**
2653
         * The type of account being debited or credited
2654
         *
2655
         * <p>One of {@code checking}, {@code savings}, or {@code unknown}.
2656
         */
2657
        @SerializedName("account_type")
2658
        String accountType;
2659

2660
        /** EMV tag 9F26, cryptogram generated by the integrated circuit chip. */
2661
        @SerializedName("application_cryptogram")
2662
        String applicationCryptogram;
2663

2664
        /** Mnenomic of the Application Identifier. */
2665
        @SerializedName("application_preferred_name")
2666
        String applicationPreferredName;
2667

2668
        /** Identifier for this transaction. */
2669
        @SerializedName("authorization_code")
2670
        String authorizationCode;
2671

2672
        /** EMV tag 8A. A code returned by the card issuer. */
2673
        @SerializedName("authorization_response_code")
2674
        String authorizationResponseCode;
2675

2676
        /**
2677
         * Describes the method used by the cardholder to verify ownership of the card. One of the
2678
         * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
2679
         * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
2680
         */
2681
        @SerializedName("cardholder_verification_method")
2682
        String cardholderVerificationMethod;
2683

2684
        /**
2685
         * EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
2686
         */
2687
        @SerializedName("dedicated_file_name")
2688
        String dedicatedFileName;
2689

2690
        /** The outcome of a series of EMV functions performed by the card reader. */
2691
        @SerializedName("terminal_verification_results")
2692
        String terminalVerificationResults;
2693

2694
        /** An indication of various EMV functions performed during the transaction. */
2695
        @SerializedName("transaction_status_information")
2696
        String transactionStatusInformation;
2697
      }
2698
    }
2699

2700
    @Getter
2701
    @Setter
2702
    @EqualsAndHashCode(callSuper = false)
NEW
2703
    public static class KakaoPay extends StripeObject {
×
2704
      /** A unique identifier for the buyer as determined by the local payment processor. */
2705
      @SerializedName("buyer_id")
2706
      String buyerId;
2707
    }
2708

2709
    @Getter
2710
    @Setter
2711
    @EqualsAndHashCode(callSuper = false)
2712
    public static class Klarna extends StripeObject {
×
2713
      /** The payer details for this transaction. */
2714
      @SerializedName("payer_details")
2715
      PayerDetails payerDetails;
2716

2717
      /**
2718
       * The Klarna payment method used for this transaction. Can be one of {@code pay_later},
2719
       * {@code pay_now}, {@code pay_with_financing}, or {@code pay_in_installments}
2720
       */
2721
      @SerializedName("payment_method_category")
2722
      String paymentMethodCategory;
2723

2724
      /**
2725
       * Preferred language of the Klarna authorization page that the customer is redirected to. Can
2726
       * be one of {@code de-AT}, {@code en-AT}, {@code nl-BE}, {@code fr-BE}, {@code en-BE}, {@code
2727
       * de-DE}, {@code en-DE}, {@code da-DK}, {@code en-DK}, {@code es-ES}, {@code en-ES}, {@code
2728
       * fi-FI}, {@code sv-FI}, {@code en-FI}, {@code en-GB}, {@code en-IE}, {@code it-IT}, {@code
2729
       * en-IT}, {@code nl-NL}, {@code en-NL}, {@code nb-NO}, {@code en-NO}, {@code sv-SE}, {@code
2730
       * en-SE}, {@code en-US}, {@code es-US}, {@code fr-FR}, {@code en-FR}, {@code cs-CZ}, {@code
2731
       * en-CZ}, {@code ro-RO}, {@code en-RO}, {@code el-GR}, {@code en-GR}, {@code en-AU}, {@code
2732
       * en-NZ}, {@code en-CA}, {@code fr-CA}, {@code pl-PL}, {@code en-PL}, {@code pt-PT}, {@code
2733
       * en-PT}, {@code de-CH}, {@code fr-CH}, {@code it-CH}, or {@code en-CH}
2734
       */
2735
      @SerializedName("preferred_locale")
2736
      String preferredLocale;
2737

2738
      @Getter
2739
      @Setter
2740
      @EqualsAndHashCode(callSuper = false)
2741
      public static class PayerDetails extends StripeObject {
×
2742
        /** The payer's address. */
2743
        @SerializedName("address")
2744
        com.stripe.model.Charge.PaymentMethodDetails.Klarna.PayerDetails.Address address;
2745

2746
        @Getter
2747
        @Setter
2748
        @EqualsAndHashCode(callSuper = false)
2749
        public static class Address extends StripeObject {
×
2750
          /** The payer address country. */
2751
          @SerializedName("country")
2752
          String country;
2753
        }
2754
      }
2755
    }
2756

2757
    @Getter
2758
    @Setter
2759
    @EqualsAndHashCode(callSuper = false)
2760
    public static class Konbini extends StripeObject {
×
2761
      /**
2762
       * If the payment succeeded, this contains the details of the convenience store where the
2763
       * payment was completed.
2764
       */
2765
      @SerializedName("store")
2766
      Store store;
2767

2768
      @Getter
2769
      @Setter
2770
      @EqualsAndHashCode(callSuper = false)
2771
      public static class Store extends StripeObject {
×
2772
        /**
2773
         * The name of the convenience store chain where the payment was completed.
2774
         *
2775
         * <p>One of {@code familymart}, {@code lawson}, {@code ministop}, or {@code seicomart}.
2776
         */
2777
        @SerializedName("chain")
2778
        String chain;
2779
      }
2780
    }
2781

2782
    @Getter
2783
    @Setter
2784
    @EqualsAndHashCode(callSuper = false)
NEW
2785
    public static class KrCard extends StripeObject {
×
2786
      /**
2787
       * The local credit or debit card brand.
2788
       *
2789
       * <p>One of {@code bc}, {@code citi}, {@code hana}, {@code hyundai}, {@code jeju}, {@code
2790
       * jeonbuk}, {@code kakaobank}, {@code kbank}, {@code kdbbank}, {@code kookmin}, {@code
2791
       * kwangju}, {@code lotte}, {@code mg}, {@code nh}, {@code post}, {@code samsung}, {@code
2792
       * savingsbank}, {@code shinhan}, {@code shinhyup}, {@code suhyup}, {@code tossbank}, or
2793
       * {@code woori}.
2794
       */
2795
      @SerializedName("brand")
2796
      String brand;
2797

2798
      /** A unique identifier for the buyer as determined by the local payment processor. */
2799
      @SerializedName("buyer_id")
2800
      String buyerId;
2801

2802
      /** The last four digits of the card. This may not be present for American Express cards. */
2803
      @SerializedName("last4")
2804
      String last4;
2805
    }
2806

2807
    @Getter
2808
    @Setter
2809
    @EqualsAndHashCode(callSuper = false)
2810
    public static class Link extends StripeObject {
×
2811
      /**
2812
       * Two-letter ISO code representing the funding source country beneath the Link payment. You
2813
       * could use this attribute to get a sense of international fees.
2814
       */
2815
      @SerializedName("country")
2816
      String country;
2817
    }
2818

2819
    @Getter
2820
    @Setter
2821
    @EqualsAndHashCode(callSuper = false)
2822
    public static class MbWay extends StripeObject {}
×
2823

2824
    @Getter
2825
    @Setter
2826
    @EqualsAndHashCode(callSuper = false)
2827
    public static class Mobilepay extends StripeObject {
×
2828
      /** Internal card details. */
2829
      @SerializedName("card")
2830
      Card card;
2831

2832
      @Getter
2833
      @Setter
2834
      @EqualsAndHashCode(callSuper = false)
2835
      public static class Card extends StripeObject {
×
2836
        /** Brand of the card used in the transaction. */
2837
        @SerializedName("brand")
2838
        String brand;
2839

2840
        /** Two-letter ISO code representing the country of the card. */
2841
        @SerializedName("country")
2842
        String country;
2843

2844
        /** Two digit number representing the card's expiration month. */
2845
        @SerializedName("exp_month")
2846
        Long expMonth;
2847

2848
        /** Two digit number representing the card's expiration year. */
2849
        @SerializedName("exp_year")
2850
        Long expYear;
2851

2852
        /** The last 4 digits of the card. */
2853
        @SerializedName("last4")
2854
        String last4;
2855
      }
2856
    }
2857

2858
    @Getter
2859
    @Setter
2860
    @EqualsAndHashCode(callSuper = false)
2861
    public static class Multibanco extends StripeObject {
×
2862
      /** Entity number associated with this Multibanco payment. */
2863
      @SerializedName("entity")
2864
      String entity;
2865

2866
      /** Reference number associated with this Multibanco payment. */
2867
      @SerializedName("reference")
2868
      String reference;
2869
    }
2870

2871
    @Getter
2872
    @Setter
2873
    @EqualsAndHashCode(callSuper = false)
NEW
2874
    public static class NaverPay extends StripeObject {
×
2875
      /** A unique identifier for the buyer as determined by the local payment processor. */
2876
      @SerializedName("buyer_id")
2877
      String buyerId;
2878
    }
2879

2880
    @Getter
2881
    @Setter
2882
    @EqualsAndHashCode(callSuper = false)
2883
    public static class Oxxo extends StripeObject {
×
2884
      /** OXXO reference number. */
2885
      @SerializedName("number")
2886
      String number;
2887
    }
2888

2889
    @Getter
2890
    @Setter
2891
    @EqualsAndHashCode(callSuper = false)
2892
    public static class P24 extends StripeObject {
×
2893
      /**
2894
       * The customer's bank. Can be one of {@code ing}, {@code citi_handlowy}, {@code
2895
       * tmobile_usbugi_bankowe}, {@code plus_bank}, {@code etransfer_pocztowy24}, {@code
2896
       * banki_spbdzielcze}, {@code bank_nowy_bfg_sa}, {@code getin_bank}, {@code velobank}, {@code
2897
       * blik}, {@code noble_pay}, {@code ideabank}, {@code envelobank}, {@code
2898
       * santander_przelew24}, {@code nest_przelew}, {@code mbank_mtransfer}, {@code inteligo},
2899
       * {@code pbac_z_ipko}, {@code bnp_paribas}, {@code credit_agricole}, {@code toyota_bank},
2900
       * {@code bank_pekao_sa}, {@code volkswagen_bank}, {@code bank_millennium}, {@code
2901
       * alior_bank}, or {@code boz}.
2902
       */
2903
      @SerializedName("bank")
2904
      String bank;
2905

2906
      /** Unique reference for this Przelewy24 payment. */
2907
      @SerializedName("reference")
2908
      String reference;
2909

2910
      /**
2911
       * Owner's verified full name. Values are verified or provided by Przelewy24 directly (if
2912
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2913
       * Przelewy24 rarely provides this information so the attribute is usually empty.
2914
       */
2915
      @SerializedName("verified_name")
2916
      String verifiedName;
2917
    }
2918

2919
    @Getter
2920
    @Setter
2921
    @EqualsAndHashCode(callSuper = false)
NEW
2922
    public static class Payco extends StripeObject {
×
2923
      /** A unique identifier for the buyer as determined by the local payment processor. */
2924
      @SerializedName("buyer_id")
2925
      String buyerId;
2926
    }
2927

2928
    @Getter
2929
    @Setter
2930
    @EqualsAndHashCode(callSuper = false)
2931
    public static class Paynow extends StripeObject {
×
2932
      /** Reference number associated with this PayNow payment. */
2933
      @SerializedName("reference")
2934
      String reference;
2935
    }
2936

2937
    @Getter
2938
    @Setter
2939
    @EqualsAndHashCode(callSuper = false)
2940
    public static class Paypal extends StripeObject {
×
2941
      /**
2942
       * Owner's email. Values are provided by PayPal directly (if supported) at the time of
2943
       * authorization or settlement. They cannot be set or mutated.
2944
       */
2945
      @SerializedName("payer_email")
2946
      String payerEmail;
2947

2948
      /** PayPal account PayerID. This identifier uniquely identifies the PayPal customer. */
2949
      @SerializedName("payer_id")
2950
      String payerId;
2951

2952
      /**
2953
       * Owner's full name. Values provided by PayPal directly (if supported) at the time of
2954
       * authorization or settlement. They cannot be set or mutated.
2955
       */
2956
      @SerializedName("payer_name")
2957
      String payerName;
2958

2959
      /**
2960
       * The level of protection offered as defined by PayPal Seller Protection for Merchants, for
2961
       * this transaction.
2962
       */
2963
      @SerializedName("seller_protection")
2964
      SellerProtection sellerProtection;
2965

2966
      /**
2967
       * The shipping address for the customer, as supplied by the merchant at the point of payment
2968
       * execution. This shipping address will not be updated if the merchant updates the shipping
2969
       * address on the PaymentIntent after the PaymentIntent was successfully confirmed.
2970
       */
2971
      @SerializedName("shipping")
2972
      com.stripe.model.Address shipping;
2973

2974
      /** A unique ID generated by PayPal for this transaction. */
2975
      @SerializedName("transaction_id")
2976
      String transactionId;
2977

2978
      /**
2979
       * The shipping address for the customer, as supplied by the merchant at the point of payment
2980
       * execution. This shipping address will not be updated if the merchant updates the shipping
2981
       * address on the PaymentIntent after the PaymentIntent was successfully confirmed.
2982
       */
2983
      @SerializedName("verified_address")
2984
      com.stripe.model.Address verifiedAddress;
2985

2986
      /**
2987
       * Owner's verified email. Values are verified or provided by PayPal directly (if supported)
2988
       * at the time of authorization or settlement. They cannot be set or mutated.
2989
       */
2990
      @SerializedName("verified_email")
2991
      String verifiedEmail;
2992

2993
      /**
2994
       * Owner's verified full name. Values are verified or provided by PayPal directly (if
2995
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
2996
       */
2997
      @SerializedName("verified_name")
2998
      String verifiedName;
2999

3000
      @Getter
3001
      @Setter
3002
      @EqualsAndHashCode(callSuper = false)
3003
      public static class SellerProtection extends StripeObject {
×
3004
        /** An array of conditions that are covered for the transaction, if applicable. */
3005
        @SerializedName("dispute_categories")
3006
        List<String> disputeCategories;
3007

3008
        /**
3009
         * Indicates whether the transaction is eligible for PayPal's seller protection.
3010
         *
3011
         * <p>One of {@code eligible}, {@code not_eligible}, or {@code partially_eligible}.
3012
         */
3013
        @SerializedName("status")
3014
        String status;
3015
      }
3016
    }
3017

3018
    @Getter
3019
    @Setter
3020
    @EqualsAndHashCode(callSuper = false)
3021
    public static class Payto extends StripeObject {
×
3022
      /** Bank-State-Branch number of the bank account. */
3023
      @SerializedName("bsb_number")
3024
      String bsbNumber;
3025

3026
      /** Last four digits of the bank account number. */
3027
      @SerializedName("last4")
3028
      String last4;
3029

3030
      /** ID of the mandate used to make this payment. */
3031
      @SerializedName("mandate")
3032
      String mandate;
3033

3034
      /** The PayID alias for the bank account. */
3035
      @SerializedName("pay_id")
3036
      String payId;
3037
    }
3038

3039
    @Getter
3040
    @Setter
3041
    @EqualsAndHashCode(callSuper = false)
3042
    public static class Pix extends StripeObject {
×
3043
      /** Unique transaction id generated by BCB. */
3044
      @SerializedName("bank_transaction_id")
3045
      String bankTransactionId;
3046
    }
3047

3048
    @Getter
3049
    @Setter
3050
    @EqualsAndHashCode(callSuper = false)
3051
    public static class Promptpay extends StripeObject {
×
3052
      /** Bill reference generated by PromptPay. */
3053
      @SerializedName("reference")
3054
      String reference;
3055
    }
3056

3057
    @Getter
3058
    @Setter
3059
    @EqualsAndHashCode(callSuper = false)
3060
    public static class Rechnung extends StripeObject {}
×
3061

3062
    @Getter
3063
    @Setter
3064
    @EqualsAndHashCode(callSuper = false)
3065
    public static class RevolutPay extends StripeObject {}
×
3066

3067
    @Getter
3068
    @Setter
3069
    @EqualsAndHashCode(callSuper = false)
NEW
3070
    public static class SamsungPay extends StripeObject {
×
3071
      /** A unique identifier for the buyer as determined by the local payment processor. */
3072
      @SerializedName("buyer_id")
3073
      String buyerId;
3074
    }
3075

3076
    @Getter
3077
    @Setter
3078
    @EqualsAndHashCode(callSuper = false)
3079
    public static class SepaCreditTransfer extends StripeObject {
×
3080
      /** Name of the bank associated with the bank account. */
3081
      @SerializedName("bank_name")
3082
      String bankName;
3083

3084
      /** Bank Identifier Code of the bank associated with the bank account. */
3085
      @SerializedName("bic")
3086
      String bic;
3087

3088
      /** IBAN of the bank account to transfer funds to. */
3089
      @SerializedName("iban")
3090
      String iban;
3091
    }
3092

3093
    @Getter
3094
    @Setter
3095
    @EqualsAndHashCode(callSuper = false)
3096
    public static class SepaDebit extends StripeObject {
×
3097
      /** Bank code of bank associated with the bank account. */
3098
      @SerializedName("bank_code")
3099
      String bankCode;
3100

3101
      /** Branch code of bank associated with the bank account. */
3102
      @SerializedName("branch_code")
3103
      String branchCode;
3104

3105
      /** Two-letter ISO code representing the country the bank account is located in. */
3106
      @SerializedName("country")
3107
      String country;
3108

3109
      /**
3110
       * Uniquely identifies this particular bank account. You can use this attribute to check
3111
       * whether two bank accounts are the same.
3112
       */
3113
      @SerializedName("fingerprint")
3114
      String fingerprint;
3115

3116
      /** Last four characters of the IBAN. */
3117
      @SerializedName("last4")
3118
      String last4;
3119

3120
      /**
3121
       * Find the ID of the mandate used for this payment under the <a
3122
       * href="https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate">payment_method_details.sepa_debit.mandate</a>
3123
       * property on the Charge. Use this mandate ID to <a
3124
       * href="https://stripe.com/docs/api/mandates/retrieve">retrieve the Mandate</a>.
3125
       */
3126
      @SerializedName("mandate")
3127
      String mandate;
3128
    }
3129

3130
    @Getter
3131
    @Setter
3132
    @EqualsAndHashCode(callSuper = false)
3133
    public static class Sofort extends StripeObject {
×
3134
      /** Bank code of bank associated with the bank account. */
3135
      @SerializedName("bank_code")
3136
      String bankCode;
3137

3138
      /** Name of the bank associated with the bank account. */
3139
      @SerializedName("bank_name")
3140
      String bankName;
3141

3142
      /** Bank Identifier Code of the bank associated with the bank account. */
3143
      @SerializedName("bic")
3144
      String bic;
3145

3146
      /** Two-letter ISO code representing the country the bank account is located in. */
3147
      @SerializedName("country")
3148
      String country;
3149

3150
      /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
3151
      @SerializedName("generated_sepa_debit")
3152
      @Getter(lombok.AccessLevel.NONE)
3153
      @Setter(lombok.AccessLevel.NONE)
3154
      ExpandableField<PaymentMethod> generatedSepaDebit;
3155

3156
      /** The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
3157
      @SerializedName("generated_sepa_debit_mandate")
3158
      @Getter(lombok.AccessLevel.NONE)
3159
      @Setter(lombok.AccessLevel.NONE)
3160
      ExpandableField<Mandate> generatedSepaDebitMandate;
3161

3162
      /** Last four characters of the IBAN. */
3163
      @SerializedName("iban_last4")
3164
      String ibanLast4;
3165

3166
      /**
3167
       * Preferred language of the SOFORT authorization page that the customer is redirected to. Can
3168
       * be one of {@code de}, {@code en}, {@code es}, {@code fr}, {@code it}, {@code nl}, or {@code
3169
       * pl}
3170
       */
3171
      @SerializedName("preferred_language")
3172
      String preferredLanguage;
3173

3174
      /**
3175
       * Owner's verified full name. Values are verified or provided by SOFORT directly (if
3176
       * supported) at the time of authorization or settlement. They cannot be set or mutated.
3177
       */
3178
      @SerializedName("verified_name")
3179
      String verifiedName;
3180

3181
      /** Get ID of expandable {@code generatedSepaDebit} object. */
3182
      public String getGeneratedSepaDebit() {
3183
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getId() : null;
×
3184
      }
3185

3186
      public void setGeneratedSepaDebit(String id) {
3187
        this.generatedSepaDebit = ApiResource.setExpandableFieldId(id, this.generatedSepaDebit);
×
3188
      }
×
3189

3190
      /** Get expanded {@code generatedSepaDebit}. */
3191
      public PaymentMethod getGeneratedSepaDebitObject() {
3192
        return (this.generatedSepaDebit != null) ? this.generatedSepaDebit.getExpanded() : null;
×
3193
      }
3194

3195
      public void setGeneratedSepaDebitObject(PaymentMethod expandableObject) {
3196
        this.generatedSepaDebit =
×
3197
            new ExpandableField<PaymentMethod>(expandableObject.getId(), expandableObject);
×
3198
      }
×
3199

3200
      /** Get ID of expandable {@code generatedSepaDebitMandate} object. */
3201
      public String getGeneratedSepaDebitMandate() {
3202
        return (this.generatedSepaDebitMandate != null)
×
3203
            ? this.generatedSepaDebitMandate.getId()
×
3204
            : null;
×
3205
      }
3206

3207
      public void setGeneratedSepaDebitMandate(String id) {
3208
        this.generatedSepaDebitMandate =
×
3209
            ApiResource.setExpandableFieldId(id, this.generatedSepaDebitMandate);
×
3210
      }
×
3211

3212
      /** Get expanded {@code generatedSepaDebitMandate}. */
3213
      public Mandate getGeneratedSepaDebitMandateObject() {
3214
        return (this.generatedSepaDebitMandate != null)
×
3215
            ? this.generatedSepaDebitMandate.getExpanded()
×
3216
            : null;
×
3217
      }
3218

3219
      public void setGeneratedSepaDebitMandateObject(Mandate expandableObject) {
3220
        this.generatedSepaDebitMandate =
×
3221
            new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
3222
      }
×
3223
    }
3224

3225
    @Getter
3226
    @Setter
3227
    @EqualsAndHashCode(callSuper = false)
3228
    public static class StripeAccount extends StripeObject {}
×
3229

3230
    @Getter
3231
    @Setter
3232
    @EqualsAndHashCode(callSuper = false)
3233
    public static class Swish extends StripeObject {
×
3234
      /**
3235
       * Uniquely identifies the payer's Swish account. You can use this attribute to check whether
3236
       * two Swish transactions were paid for by the same payer
3237
       */
3238
      @SerializedName("fingerprint")
3239
      String fingerprint;
3240

3241
      /** Payer bank reference number for the payment. */
3242
      @SerializedName("payment_reference")
3243
      String paymentReference;
3244

3245
      /** The last four digits of the Swish account phone number. */
3246
      @SerializedName("verified_phone_last4")
3247
      String verifiedPhoneLast4;
3248
    }
3249

3250
    @Getter
3251
    @Setter
3252
    @EqualsAndHashCode(callSuper = false)
3253
    public static class Twint extends StripeObject {}
×
3254

3255
    @Getter
3256
    @Setter
3257
    @EqualsAndHashCode(callSuper = false)
3258
    public static class UsBankAccount extends StripeObject {
×
3259
      /**
3260
       * Account holder type: individual or company.
3261
       *
3262
       * <p>One of {@code company}, or {@code individual}.
3263
       */
3264
      @SerializedName("account_holder_type")
3265
      String accountHolderType;
3266

3267
      /**
3268
       * Account type: checkings or savings. Defaults to checking if omitted.
3269
       *
3270
       * <p>One of {@code checking}, or {@code savings}.
3271
       */
3272
      @SerializedName("account_type")
3273
      String accountType;
3274

3275
      /** Name of the bank associated with the bank account. */
3276
      @SerializedName("bank_name")
3277
      String bankName;
3278

3279
      /**
3280
       * Uniquely identifies this particular bank account. You can use this attribute to check
3281
       * whether two bank accounts are the same.
3282
       */
3283
      @SerializedName("fingerprint")
3284
      String fingerprint;
3285

3286
      /** Last four digits of the bank account number. */
3287
      @SerializedName("last4")
3288
      String last4;
3289

3290
      /** ID of the mandate used to make this payment. */
3291
      @SerializedName("mandate")
3292
      @Getter(lombok.AccessLevel.NONE)
3293
      @Setter(lombok.AccessLevel.NONE)
3294
      ExpandableField<Mandate> mandate;
3295

3296
      /** Reference number to locate ACH payments with customer's bank. */
3297
      @SerializedName("payment_reference")
3298
      String paymentReference;
3299

3300
      /** Routing number of the bank account. */
3301
      @SerializedName("routing_number")
3302
      String routingNumber;
3303

3304
      /** Get ID of expandable {@code mandate} object. */
3305
      public String getMandate() {
3306
        return (this.mandate != null) ? this.mandate.getId() : null;
×
3307
      }
3308

3309
      public void setMandate(String id) {
3310
        this.mandate = ApiResource.setExpandableFieldId(id, this.mandate);
×
3311
      }
×
3312

3313
      /** Get expanded {@code mandate}. */
3314
      public Mandate getMandateObject() {
3315
        return (this.mandate != null) ? this.mandate.getExpanded() : null;
×
3316
      }
3317

3318
      public void setMandateObject(Mandate expandableObject) {
3319
        this.mandate = new ExpandableField<Mandate>(expandableObject.getId(), expandableObject);
×
3320
      }
×
3321
    }
3322

3323
    @Getter
3324
    @Setter
3325
    @EqualsAndHashCode(callSuper = false)
3326
    public static class Wechat extends StripeObject {}
×
3327

3328
    @Getter
3329
    @Setter
3330
    @EqualsAndHashCode(callSuper = false)
3331
    public static class WechatPay extends StripeObject {
×
3332
      /**
3333
       * Uniquely identifies this particular WeChat Pay account. You can use this attribute to check
3334
       * whether two WeChat accounts are the same.
3335
       */
3336
      @SerializedName("fingerprint")
3337
      String fingerprint;
3338

3339
      /** Transaction ID of this particular WeChat Pay transaction. */
3340
      @SerializedName("transaction_id")
3341
      String transactionId;
3342
    }
3343

3344
    @Getter
3345
    @Setter
3346
    @EqualsAndHashCode(callSuper = false)
3347
    public static class Zip extends StripeObject {}
×
3348
  }
3349

3350
  /**
3351
   * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
3352
   * Session</a> for more information.
3353
   */
3354
  @Getter
3355
  @Setter
3356
  @EqualsAndHashCode(callSuper = false)
3357
  public static class RadarOptions extends StripeObject {
×
3358
    /**
3359
     * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
3360
     * the browser metadata and device details that help Radar make more accurate predictions on
3361
     * your payments.
3362
     */
3363
    @SerializedName("session")
3364
    String session;
3365
  }
3366

3367
  @Getter
3368
  @Setter
3369
  @EqualsAndHashCode(callSuper = false)
3370
  public static class TransferData extends StripeObject {
1✔
3371
    /**
3372
     * The amount transferred to the destination account, if specified. By default, the entire
3373
     * charge amount is transferred to the destination account.
3374
     */
3375
    @SerializedName("amount")
3376
    Long amount;
3377

3378
    /**
3379
     * ID of an existing, connected Stripe account to transfer funds to if {@code transfer_data} was
3380
     * specified in the charge request.
3381
     */
3382
    @SerializedName("destination")
3383
    @Getter(lombok.AccessLevel.NONE)
3384
    @Setter(lombok.AccessLevel.NONE)
3385
    ExpandableField<Account> destination;
3386

3387
    /** Get ID of expandable {@code destination} object. */
3388
    public String getDestination() {
3389
      return (this.destination != null) ? this.destination.getId() : null;
1✔
3390
    }
3391

3392
    public void setDestination(String id) {
3393
      this.destination = ApiResource.setExpandableFieldId(id, this.destination);
×
3394
    }
×
3395

3396
    /** Get expanded {@code destination}. */
3397
    public Account getDestinationObject() {
3398
      return (this.destination != null) ? this.destination.getExpanded() : null;
1✔
3399
    }
3400

3401
    public void setDestinationObject(Account expandableObject) {
3402
      this.destination = new ExpandableField<Account>(expandableObject.getId(), expandableObject);
×
3403
    }
×
3404
  }
3405

3406
  @Override
3407
  public void setResponseGetter(StripeResponseGetter responseGetter) {
3408
    super.setResponseGetter(responseGetter);
1✔
3409
    trySetResponseGetter(application, responseGetter);
1✔
3410
    trySetResponseGetter(applicationFee, responseGetter);
1✔
3411
    trySetResponseGetter(balanceTransaction, responseGetter);
1✔
3412
    trySetResponseGetter(billingDetails, responseGetter);
1✔
3413
    trySetResponseGetter(customer, responseGetter);
1✔
3414
    trySetResponseGetter(failureBalanceTransaction, responseGetter);
1✔
3415
    trySetResponseGetter(fraudDetails, responseGetter);
1✔
3416
    trySetResponseGetter(invoice, responseGetter);
1✔
3417
    trySetResponseGetter(level3, responseGetter);
1✔
3418
    trySetResponseGetter(onBehalfOf, responseGetter);
1✔
3419
    trySetResponseGetter(outcome, responseGetter);
1✔
3420
    trySetResponseGetter(paymentIntent, responseGetter);
1✔
3421
    trySetResponseGetter(paymentMethodDetails, responseGetter);
1✔
3422
    trySetResponseGetter(radarOptions, responseGetter);
1✔
3423
    trySetResponseGetter(refunds, responseGetter);
1✔
3424
    trySetResponseGetter(review, responseGetter);
1✔
3425
    trySetResponseGetter(shipping, responseGetter);
1✔
3426
    trySetResponseGetter(source, responseGetter);
1✔
3427
    trySetResponseGetter(sourceTransfer, responseGetter);
1✔
3428
    trySetResponseGetter(transfer, responseGetter);
1✔
3429
    trySetResponseGetter(transferData, responseGetter);
1✔
3430
  }
1✔
3431
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc