• 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

0.0
/src/main/java/com/stripe/param/PaymentMethodCreateParams.java
1
// File generated from our OpenAPI spec
2
package com.stripe.param;
3

4
import com.google.gson.annotations.SerializedName;
5
import com.stripe.net.ApiRequestParams;
6
import com.stripe.param.common.EmptyParam;
7
import java.util.ArrayList;
8
import java.util.HashMap;
9
import java.util.List;
10
import java.util.Map;
11
import lombok.Getter;
12

13
@Getter
14
public class PaymentMethodCreateParams extends ApiRequestParams {
15
  /**
16
   * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS Debit
17
   * payment method.
18
   */
19
  @SerializedName("acss_debit")
20
  AcssDebit acssDebit;
21

22
  /**
23
   * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm payment
24
   * method.
25
   */
26
  @SerializedName("affirm")
27
  Affirm affirm;
28

29
  /**
30
   * If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
31
   * AfterpayClearpay payment method.
32
   */
33
  @SerializedName("afterpay_clearpay")
34
  AfterpayClearpay afterpayClearpay;
35

36
  /**
37
   * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay payment
38
   * method.
39
   */
40
  @SerializedName("alipay")
41
  Alipay alipay;
42

43
  /**
44
   * This field indicates whether this payment method can be shown again to its customer in a
45
   * checkout flow. Stripe products such as Checkout and Elements use this field to determine
46
   * whether a payment method can be shown as a saved payment method in a checkout flow. The field
47
   * defaults to {@code unspecified}.
48
   */
49
  @SerializedName("allow_redisplay")
50
  AllowRedisplay allowRedisplay;
51

52
  /**
53
   * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
54
   * method.
55
   */
56
  @SerializedName("amazon_pay")
57
  AmazonPay amazonPay;
58

59
  /**
60
   * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank
61
   * account.
62
   */
63
  @SerializedName("au_becs_debit")
64
  AuBecsDebit auBecsDebit;
65

66
  /**
67
   * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs Direct
68
   * Debit bank account.
69
   */
70
  @SerializedName("bacs_debit")
71
  BacsDebit bacsDebit;
72

73
  /**
74
   * If this is a {@code bancontact} PaymentMethod, this hash contains details about the Bancontact
75
   * payment method.
76
   */
77
  @SerializedName("bancontact")
78
  Bancontact bancontact;
79

80
  /**
81
   * Billing information associated with the PaymentMethod that may be used or required by
82
   * particular types of payment methods.
83
   */
84
  @SerializedName("billing_details")
85
  BillingDetails billingDetails;
86

87
  /**
88
   * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
89
   * method.
90
   */
91
  @SerializedName("blik")
92
  Blik blik;
93

94
  /**
95
   * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto payment
96
   * method.
97
   */
98
  @SerializedName("boleto")
99
  Boleto boleto;
100

101
  /**
102
   * If this is a {@code card} PaymentMethod, this hash contains the user's card details. For
103
   * backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay,
104
   * Amex Express Checkout, or legacy Checkout) into the card hash with format {@code card: {token:
105
   * "tok_visa"}}. When providing a card number, you must meet the requirements for <a
106
   * href="https://stripe.com/docs/security#validating-pci-compliance">PCI compliance</a>. We
107
   * strongly recommend using Stripe.js instead of interacting with this API directly.
108
   */
109
  @SerializedName("card")
110
  Object card;
111

112
  /**
113
   * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App Pay
114
   * payment method.
115
   */
116
  @SerializedName("cashapp")
117
  Cashapp cashapp;
118

119
  /** The {@code Customer} to whom the original PaymentMethod is attached. */
120
  @SerializedName("customer")
121
  String customer;
122

123
  /**
124
   * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
125
   * CustomerBalance payment method.
126
   */
127
  @SerializedName("customer_balance")
128
  CustomerBalance customerBalance;
129

130
  /**
131
   * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
132
   * method.
133
   */
134
  @SerializedName("eps")
135
  Eps eps;
136

137
  /** Specifies which fields in the response should be expanded. */
138
  @SerializedName("expand")
139
  List<String> expand;
140

141
  /**
142
   * Map of extra parameters for custom features not available in this client library. The content
143
   * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
144
   * key/value pair is serialized as if the key is a root-level field (serialized) name in this
145
   * param object. Effectively, this map is flattened to its parent instance.
146
   */
147
  @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
148
  Map<String, Object> extraParams;
149

150
  /**
151
   * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
152
   * method.
153
   */
154
  @SerializedName("fpx")
155
  Fpx fpx;
156

157
  /**
158
   * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
159
   * payment method.
160
   */
161
  @SerializedName("giropay")
162
  Giropay giropay;
163

164
  /**
165
   * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
166
   * payment method.
167
   */
168
  @SerializedName("grabpay")
169
  Grabpay grabpay;
170

171
  /**
172
   * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment
173
   * method.
174
   */
175
  @SerializedName("ideal")
176
  Ideal ideal;
177

178
  /**
179
   * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
180
   * Interac Present payment method.
181
   */
182
  @SerializedName("interac_present")
183
  InteracPresent interacPresent;
184

185
  /**
186
   * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
187
   * payment method.
188
   */
189
  @SerializedName("kakao_pay")
190
  KakaoPay kakaoPay;
191

192
  /**
193
   * If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna payment
194
   * method.
195
   */
196
  @SerializedName("klarna")
197
  Klarna klarna;
198

199
  /**
200
   * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
201
   * payment method.
202
   */
203
  @SerializedName("konbini")
204
  Konbini konbini;
205

206
  /**
207
   * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
208
   * payment method.
209
   */
210
  @SerializedName("kr_card")
211
  KrCard krCard;
212

213
  /**
214
   * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
215
   * method.
216
   */
217
  @SerializedName("link")
218
  Link link;
219

220
  /**
221
   * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method.
222
   */
223
  @SerializedName("mb_way")
224
  MbWay mbWay;
225

226
  /**
227
   * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
228
   * to an object. This can be useful for storing additional information about the object in a
229
   * structured format. Individual keys can be unset by posting an empty value to them. All keys can
230
   * be unset by posting an empty value to {@code metadata}.
231
   */
232
  @SerializedName("metadata")
233
  Map<String, String> metadata;
234

235
  /**
236
   * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the MobilePay
237
   * payment method.
238
   */
239
  @SerializedName("mobilepay")
240
  Mobilepay mobilepay;
241

242
  /**
243
   * If this is a {@code multibanco} PaymentMethod, this hash contains details about the Multibanco
244
   * payment method.
245
   */
246
  @SerializedName("multibanco")
247
  Multibanco multibanco;
248

249
  /**
250
   * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
251
   * payment method.
252
   */
253
  @SerializedName("naver_pay")
254
  NaverPay naverPay;
255

256
  /**
257
   * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
258
   * method.
259
   */
260
  @SerializedName("oxxo")
261
  Oxxo oxxo;
262

263
  /**
264
   * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
265
   * method.
266
   */
267
  @SerializedName("p24")
268
  P24 p24;
269

270
  /**
271
   * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
272
   * method.
273
   */
274
  @SerializedName("payco")
275
  Payco payco;
276

277
  /** The PaymentMethod to share. */
278
  @SerializedName("payment_method")
279
  String paymentMethod;
280

281
  /**
282
   * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow payment
283
   * method.
284
   */
285
  @SerializedName("paynow")
286
  Paynow paynow;
287

288
  /**
289
   * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal payment
290
   * method.
291
   */
292
  @SerializedName("paypal")
293
  Paypal paypal;
294

295
  /**
296
   * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo payment
297
   * method.
298
   */
299
  @SerializedName("payto")
300
  Payto payto;
301

302
  /**
303
   * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
304
   * method.
305
   */
306
  @SerializedName("pix")
307
  Pix pix;
308

309
  /**
310
   * If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
311
   * payment method.
312
   */
313
  @SerializedName("promptpay")
314
  Promptpay promptpay;
315

316
  /**
317
   * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
318
   * Session</a> for more information.
319
   */
320
  @SerializedName("radar_options")
321
  RadarOptions radarOptions;
322

323
  /**
324
   * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
325
   * payment method.
326
   */
327
  @SerializedName("rechnung")
328
  Rechnung rechnung;
329

330
  /**
331
   * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
332
   * Pay payment method.
333
   */
334
  @SerializedName("revolut_pay")
335
  RevolutPay revolutPay;
336

337
  /**
338
   * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the SamsungPay
339
   * payment method.
340
   */
341
  @SerializedName("samsung_pay")
342
  SamsungPay samsungPay;
343

344
  /**
345
   * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA debit
346
   * bank account.
347
   */
348
  @SerializedName("sepa_debit")
349
  SepaDebit sepaDebit;
350

351
  /**
352
   * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT payment
353
   * method.
354
   */
355
  @SerializedName("sofort")
356
  Sofort sofort;
357

358
  /**
359
   * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
360
   * method.
361
   */
362
  @SerializedName("swish")
363
  Swish swish;
364

365
  /**
366
   * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
367
   */
368
  @SerializedName("twint")
369
  Twint twint;
370

371
  /**
372
   * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name
373
   * matching this value. It contains additional information specific to the PaymentMethod type.
374
   */
375
  @SerializedName("type")
376
  Type type;
377

378
  /**
379
   * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
380
   * bank account payment method.
381
   */
382
  @SerializedName("us_bank_account")
383
  UsBankAccount usBankAccount;
384

385
  /**
386
   * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the wechat_pay
387
   * payment method.
388
   */
389
  @SerializedName("wechat_pay")
390
  WechatPay wechatPay;
391

392
  /**
393
   * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
394
   * method.
395
   */
396
  @SerializedName("zip")
397
  Zip zip;
398

399
  private PaymentMethodCreateParams(
400
      AcssDebit acssDebit,
401
      Affirm affirm,
402
      AfterpayClearpay afterpayClearpay,
403
      Alipay alipay,
404
      AllowRedisplay allowRedisplay,
405
      AmazonPay amazonPay,
406
      AuBecsDebit auBecsDebit,
407
      BacsDebit bacsDebit,
408
      Bancontact bancontact,
409
      BillingDetails billingDetails,
410
      Blik blik,
411
      Boleto boleto,
412
      Object card,
413
      Cashapp cashapp,
414
      String customer,
415
      CustomerBalance customerBalance,
416
      Eps eps,
417
      List<String> expand,
418
      Map<String, Object> extraParams,
419
      Fpx fpx,
420
      Giropay giropay,
421
      Grabpay grabpay,
422
      Ideal ideal,
423
      InteracPresent interacPresent,
424
      KakaoPay kakaoPay,
425
      Klarna klarna,
426
      Konbini konbini,
427
      KrCard krCard,
428
      Link link,
429
      MbWay mbWay,
430
      Map<String, String> metadata,
431
      Mobilepay mobilepay,
432
      Multibanco multibanco,
433
      NaverPay naverPay,
434
      Oxxo oxxo,
435
      P24 p24,
436
      Payco payco,
437
      String paymentMethod,
438
      Paynow paynow,
439
      Paypal paypal,
440
      Payto payto,
441
      Pix pix,
442
      Promptpay promptpay,
443
      RadarOptions radarOptions,
444
      Rechnung rechnung,
445
      RevolutPay revolutPay,
446
      SamsungPay samsungPay,
447
      SepaDebit sepaDebit,
448
      Sofort sofort,
449
      Swish swish,
450
      Twint twint,
451
      Type type,
452
      UsBankAccount usBankAccount,
453
      WechatPay wechatPay,
454
      Zip zip) {
×
455
    this.acssDebit = acssDebit;
×
456
    this.affirm = affirm;
×
457
    this.afterpayClearpay = afterpayClearpay;
×
458
    this.alipay = alipay;
×
459
    this.allowRedisplay = allowRedisplay;
×
460
    this.amazonPay = amazonPay;
×
461
    this.auBecsDebit = auBecsDebit;
×
462
    this.bacsDebit = bacsDebit;
×
463
    this.bancontact = bancontact;
×
464
    this.billingDetails = billingDetails;
×
465
    this.blik = blik;
×
466
    this.boleto = boleto;
×
467
    this.card = card;
×
468
    this.cashapp = cashapp;
×
469
    this.customer = customer;
×
470
    this.customerBalance = customerBalance;
×
471
    this.eps = eps;
×
472
    this.expand = expand;
×
473
    this.extraParams = extraParams;
×
474
    this.fpx = fpx;
×
475
    this.giropay = giropay;
×
476
    this.grabpay = grabpay;
×
477
    this.ideal = ideal;
×
478
    this.interacPresent = interacPresent;
×
NEW
479
    this.kakaoPay = kakaoPay;
×
480
    this.klarna = klarna;
×
481
    this.konbini = konbini;
×
NEW
482
    this.krCard = krCard;
×
483
    this.link = link;
×
484
    this.mbWay = mbWay;
×
485
    this.metadata = metadata;
×
486
    this.mobilepay = mobilepay;
×
487
    this.multibanco = multibanco;
×
NEW
488
    this.naverPay = naverPay;
×
489
    this.oxxo = oxxo;
×
490
    this.p24 = p24;
×
NEW
491
    this.payco = payco;
×
492
    this.paymentMethod = paymentMethod;
×
493
    this.paynow = paynow;
×
494
    this.paypal = paypal;
×
495
    this.payto = payto;
×
496
    this.pix = pix;
×
497
    this.promptpay = promptpay;
×
498
    this.radarOptions = radarOptions;
×
499
    this.rechnung = rechnung;
×
500
    this.revolutPay = revolutPay;
×
NEW
501
    this.samsungPay = samsungPay;
×
502
    this.sepaDebit = sepaDebit;
×
503
    this.sofort = sofort;
×
504
    this.swish = swish;
×
505
    this.twint = twint;
×
506
    this.type = type;
×
507
    this.usBankAccount = usBankAccount;
×
508
    this.wechatPay = wechatPay;
×
509
    this.zip = zip;
×
510
  }
×
511

512
  public static Builder builder() {
513
    return new Builder();
×
514
  }
515

516
  public static class Builder {
×
517
    private AcssDebit acssDebit;
518

519
    private Affirm affirm;
520

521
    private AfterpayClearpay afterpayClearpay;
522

523
    private Alipay alipay;
524

525
    private AllowRedisplay allowRedisplay;
526

527
    private AmazonPay amazonPay;
528

529
    private AuBecsDebit auBecsDebit;
530

531
    private BacsDebit bacsDebit;
532

533
    private Bancontact bancontact;
534

535
    private BillingDetails billingDetails;
536

537
    private Blik blik;
538

539
    private Boleto boleto;
540

541
    private Object card;
542

543
    private Cashapp cashapp;
544

545
    private String customer;
546

547
    private CustomerBalance customerBalance;
548

549
    private Eps eps;
550

551
    private List<String> expand;
552

553
    private Map<String, Object> extraParams;
554

555
    private Fpx fpx;
556

557
    private Giropay giropay;
558

559
    private Grabpay grabpay;
560

561
    private Ideal ideal;
562

563
    private InteracPresent interacPresent;
564

565
    private KakaoPay kakaoPay;
566

567
    private Klarna klarna;
568

569
    private Konbini konbini;
570

571
    private KrCard krCard;
572

573
    private Link link;
574

575
    private MbWay mbWay;
576

577
    private Map<String, String> metadata;
578

579
    private Mobilepay mobilepay;
580

581
    private Multibanco multibanco;
582

583
    private NaverPay naverPay;
584

585
    private Oxxo oxxo;
586

587
    private P24 p24;
588

589
    private Payco payco;
590

591
    private String paymentMethod;
592

593
    private Paynow paynow;
594

595
    private Paypal paypal;
596

597
    private Payto payto;
598

599
    private Pix pix;
600

601
    private Promptpay promptpay;
602

603
    private RadarOptions radarOptions;
604

605
    private Rechnung rechnung;
606

607
    private RevolutPay revolutPay;
608

609
    private SamsungPay samsungPay;
610

611
    private SepaDebit sepaDebit;
612

613
    private Sofort sofort;
614

615
    private Swish swish;
616

617
    private Twint twint;
618

619
    private Type type;
620

621
    private UsBankAccount usBankAccount;
622

623
    private WechatPay wechatPay;
624

625
    private Zip zip;
626

627
    /** Finalize and obtain parameter instance from this builder. */
628
    public PaymentMethodCreateParams build() {
629
      return new PaymentMethodCreateParams(
×
630
          this.acssDebit,
631
          this.affirm,
632
          this.afterpayClearpay,
633
          this.alipay,
634
          this.allowRedisplay,
635
          this.amazonPay,
636
          this.auBecsDebit,
637
          this.bacsDebit,
638
          this.bancontact,
639
          this.billingDetails,
640
          this.blik,
641
          this.boleto,
642
          this.card,
643
          this.cashapp,
644
          this.customer,
645
          this.customerBalance,
646
          this.eps,
647
          this.expand,
648
          this.extraParams,
649
          this.fpx,
650
          this.giropay,
651
          this.grabpay,
652
          this.ideal,
653
          this.interacPresent,
654
          this.kakaoPay,
655
          this.klarna,
656
          this.konbini,
657
          this.krCard,
658
          this.link,
659
          this.mbWay,
660
          this.metadata,
661
          this.mobilepay,
662
          this.multibanco,
663
          this.naverPay,
664
          this.oxxo,
665
          this.p24,
666
          this.payco,
667
          this.paymentMethod,
668
          this.paynow,
669
          this.paypal,
670
          this.payto,
671
          this.pix,
672
          this.promptpay,
673
          this.radarOptions,
674
          this.rechnung,
675
          this.revolutPay,
676
          this.samsungPay,
677
          this.sepaDebit,
678
          this.sofort,
679
          this.swish,
680
          this.twint,
681
          this.type,
682
          this.usBankAccount,
683
          this.wechatPay,
684
          this.zip);
685
    }
686

687
    /**
688
     * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
689
     * Debit payment method.
690
     */
691
    public Builder setAcssDebit(PaymentMethodCreateParams.AcssDebit acssDebit) {
692
      this.acssDebit = acssDebit;
×
693
      return this;
×
694
    }
695

696
    /**
697
     * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
698
     * payment method.
699
     */
700
    public Builder setAffirm(PaymentMethodCreateParams.Affirm affirm) {
701
      this.affirm = affirm;
×
702
      return this;
×
703
    }
704

705
    /**
706
     * If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
707
     * AfterpayClearpay payment method.
708
     */
709
    public Builder setAfterpayClearpay(
710
        PaymentMethodCreateParams.AfterpayClearpay afterpayClearpay) {
711
      this.afterpayClearpay = afterpayClearpay;
×
712
      return this;
×
713
    }
714

715
    /**
716
     * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
717
     * payment method.
718
     */
719
    public Builder setAlipay(PaymentMethodCreateParams.Alipay alipay) {
720
      this.alipay = alipay;
×
721
      return this;
×
722
    }
723

724
    /**
725
     * This field indicates whether this payment method can be shown again to its customer in a
726
     * checkout flow. Stripe products such as Checkout and Elements use this field to determine
727
     * whether a payment method can be shown as a saved payment method in a checkout flow. The field
728
     * defaults to {@code unspecified}.
729
     */
730
    public Builder setAllowRedisplay(PaymentMethodCreateParams.AllowRedisplay allowRedisplay) {
731
      this.allowRedisplay = allowRedisplay;
×
732
      return this;
×
733
    }
734

735
    /**
736
     * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
737
     * method.
738
     */
739
    public Builder setAmazonPay(PaymentMethodCreateParams.AmazonPay amazonPay) {
740
      this.amazonPay = amazonPay;
×
741
      return this;
×
742
    }
743

744
    /**
745
     * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank
746
     * account.
747
     */
748
    public Builder setAuBecsDebit(PaymentMethodCreateParams.AuBecsDebit auBecsDebit) {
749
      this.auBecsDebit = auBecsDebit;
×
750
      return this;
×
751
    }
752

753
    /**
754
     * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
755
     * Direct Debit bank account.
756
     */
757
    public Builder setBacsDebit(PaymentMethodCreateParams.BacsDebit bacsDebit) {
758
      this.bacsDebit = bacsDebit;
×
759
      return this;
×
760
    }
761

762
    /**
763
     * If this is a {@code bancontact} PaymentMethod, this hash contains details about the
764
     * Bancontact payment method.
765
     */
766
    public Builder setBancontact(PaymentMethodCreateParams.Bancontact bancontact) {
767
      this.bancontact = bancontact;
×
768
      return this;
×
769
    }
770

771
    /**
772
     * Billing information associated with the PaymentMethod that may be used or required by
773
     * particular types of payment methods.
774
     */
775
    public Builder setBillingDetails(PaymentMethodCreateParams.BillingDetails billingDetails) {
776
      this.billingDetails = billingDetails;
×
777
      return this;
×
778
    }
779

780
    /**
781
     * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
782
     * method.
783
     */
784
    public Builder setBlik(PaymentMethodCreateParams.Blik blik) {
785
      this.blik = blik;
×
786
      return this;
×
787
    }
788

789
    /**
790
     * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
791
     * payment method.
792
     */
793
    public Builder setBoleto(PaymentMethodCreateParams.Boleto boleto) {
794
      this.boleto = boleto;
×
795
      return this;
×
796
    }
797

798
    /**
799
     * If this is a {@code card} PaymentMethod, this hash contains the user's card details. For
800
     * backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay,
801
     * Amex Express Checkout, or legacy Checkout) into the card hash with format {@code card:
802
     * {token: "tok_visa"}}. When providing a card number, you must meet the requirements for <a
803
     * href="https://stripe.com/docs/security#validating-pci-compliance">PCI compliance</a>. We
804
     * strongly recommend using Stripe.js instead of interacting with this API directly.
805
     */
806
    public Builder setCard(PaymentMethodCreateParams.CardDetails card) {
807
      this.card = card;
×
808
      return this;
×
809
    }
810

811
    /**
812
     * If this is a {@code card} PaymentMethod, this hash contains the user's card details. For
813
     * backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay,
814
     * Amex Express Checkout, or legacy Checkout) into the card hash with format {@code card:
815
     * {token: "tok_visa"}}. When providing a card number, you must meet the requirements for <a
816
     * href="https://stripe.com/docs/security#validating-pci-compliance">PCI compliance</a>. We
817
     * strongly recommend using Stripe.js instead of interacting with this API directly.
818
     */
819
    public Builder setCard(PaymentMethodCreateParams.Token card) {
820
      this.card = card;
×
821
      return this;
×
822
    }
823

824
    /**
825
     * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App Pay
826
     * payment method.
827
     */
828
    public Builder setCashapp(PaymentMethodCreateParams.Cashapp cashapp) {
829
      this.cashapp = cashapp;
×
830
      return this;
×
831
    }
832

833
    /** The {@code Customer} to whom the original PaymentMethod is attached. */
834
    public Builder setCustomer(String customer) {
835
      this.customer = customer;
×
836
      return this;
×
837
    }
838

839
    /**
840
     * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
841
     * CustomerBalance payment method.
842
     */
843
    public Builder setCustomerBalance(PaymentMethodCreateParams.CustomerBalance customerBalance) {
844
      this.customerBalance = customerBalance;
×
845
      return this;
×
846
    }
847

848
    /**
849
     * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
850
     * method.
851
     */
852
    public Builder setEps(PaymentMethodCreateParams.Eps eps) {
853
      this.eps = eps;
×
854
      return this;
×
855
    }
856

857
    /**
858
     * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and
859
     * subsequent calls adds additional elements to the original list. See {@link
860
     * PaymentMethodCreateParams#expand} for the field documentation.
861
     */
862
    public Builder addExpand(String element) {
863
      if (this.expand == null) {
×
864
        this.expand = new ArrayList<>();
×
865
      }
866
      this.expand.add(element);
×
867
      return this;
×
868
    }
869

870
    /**
871
     * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and
872
     * subsequent calls adds additional elements to the original list. See {@link
873
     * PaymentMethodCreateParams#expand} for the field documentation.
874
     */
875
    public Builder addAllExpand(List<String> elements) {
876
      if (this.expand == null) {
×
877
        this.expand = new ArrayList<>();
×
878
      }
879
      this.expand.addAll(elements);
×
880
      return this;
×
881
    }
882

883
    /**
884
     * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
885
     * call, and subsequent calls add additional key/value pairs to the original map. See {@link
886
     * PaymentMethodCreateParams#extraParams} for the field documentation.
887
     */
888
    public Builder putExtraParam(String key, Object value) {
889
      if (this.extraParams == null) {
×
890
        this.extraParams = new HashMap<>();
×
891
      }
892
      this.extraParams.put(key, value);
×
893
      return this;
×
894
    }
895

896
    /**
897
     * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
898
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
899
     * See {@link PaymentMethodCreateParams#extraParams} for the field documentation.
900
     */
901
    public Builder putAllExtraParam(Map<String, Object> map) {
902
      if (this.extraParams == null) {
×
903
        this.extraParams = new HashMap<>();
×
904
      }
905
      this.extraParams.putAll(map);
×
906
      return this;
×
907
    }
908

909
    /**
910
     * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
911
     * method.
912
     */
913
    public Builder setFpx(PaymentMethodCreateParams.Fpx fpx) {
914
      this.fpx = fpx;
×
915
      return this;
×
916
    }
917

918
    /**
919
     * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
920
     * payment method.
921
     */
922
    public Builder setGiropay(PaymentMethodCreateParams.Giropay giropay) {
923
      this.giropay = giropay;
×
924
      return this;
×
925
    }
926

927
    /**
928
     * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
929
     * payment method.
930
     */
931
    public Builder setGrabpay(PaymentMethodCreateParams.Grabpay grabpay) {
932
      this.grabpay = grabpay;
×
933
      return this;
×
934
    }
935

936
    /**
937
     * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment
938
     * method.
939
     */
940
    public Builder setIdeal(PaymentMethodCreateParams.Ideal ideal) {
941
      this.ideal = ideal;
×
942
      return this;
×
943
    }
944

945
    /**
946
     * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
947
     * Interac Present payment method.
948
     */
949
    public Builder setInteracPresent(PaymentMethodCreateParams.InteracPresent interacPresent) {
950
      this.interacPresent = interacPresent;
×
951
      return this;
×
952
    }
953

954
    /**
955
     * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
956
     * payment method.
957
     */
958
    public Builder setKakaoPay(PaymentMethodCreateParams.KakaoPay kakaoPay) {
NEW
959
      this.kakaoPay = kakaoPay;
×
NEW
960
      return this;
×
961
    }
962

963
    /**
964
     * If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna
965
     * payment method.
966
     */
967
    public Builder setKlarna(PaymentMethodCreateParams.Klarna klarna) {
968
      this.klarna = klarna;
×
969
      return this;
×
970
    }
971

972
    /**
973
     * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
974
     * payment method.
975
     */
976
    public Builder setKonbini(PaymentMethodCreateParams.Konbini konbini) {
977
      this.konbini = konbini;
×
978
      return this;
×
979
    }
980

981
    /**
982
     * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
983
     * payment method.
984
     */
985
    public Builder setKrCard(PaymentMethodCreateParams.KrCard krCard) {
NEW
986
      this.krCard = krCard;
×
NEW
987
      return this;
×
988
    }
989

990
    /**
991
     * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
992
     * method.
993
     */
994
    public Builder setLink(PaymentMethodCreateParams.Link link) {
995
      this.link = link;
×
996
      return this;
×
997
    }
998

999
    /**
1000
     * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
1001
     * method.
1002
     */
1003
    public Builder setMbWay(PaymentMethodCreateParams.MbWay mbWay) {
1004
      this.mbWay = mbWay;
×
1005
      return this;
×
1006
    }
1007

1008
    /**
1009
     * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call,
1010
     * and subsequent calls add additional key/value pairs to the original map. See {@link
1011
     * PaymentMethodCreateParams#metadata} for the field documentation.
1012
     */
1013
    public Builder putMetadata(String key, String value) {
1014
      if (this.metadata == null) {
×
1015
        this.metadata = new HashMap<>();
×
1016
      }
1017
      this.metadata.put(key, value);
×
1018
      return this;
×
1019
    }
1020

1021
    /**
1022
     * Add all map key/value pairs to `metadata` map. A map is initialized for the first
1023
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1024
     * See {@link PaymentMethodCreateParams#metadata} for the field documentation.
1025
     */
1026
    public Builder putAllMetadata(Map<String, String> map) {
1027
      if (this.metadata == null) {
×
1028
        this.metadata = new HashMap<>();
×
1029
      }
1030
      this.metadata.putAll(map);
×
1031
      return this;
×
1032
    }
1033

1034
    /**
1035
     * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the MobilePay
1036
     * payment method.
1037
     */
1038
    public Builder setMobilepay(PaymentMethodCreateParams.Mobilepay mobilepay) {
1039
      this.mobilepay = mobilepay;
×
1040
      return this;
×
1041
    }
1042

1043
    /**
1044
     * If this is a {@code multibanco} PaymentMethod, this hash contains details about the
1045
     * Multibanco payment method.
1046
     */
1047
    public Builder setMultibanco(PaymentMethodCreateParams.Multibanco multibanco) {
1048
      this.multibanco = multibanco;
×
1049
      return this;
×
1050
    }
1051

1052
    /**
1053
     * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
1054
     * payment method.
1055
     */
1056
    public Builder setNaverPay(PaymentMethodCreateParams.NaverPay naverPay) {
NEW
1057
      this.naverPay = naverPay;
×
NEW
1058
      return this;
×
1059
    }
1060

1061
    /**
1062
     * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
1063
     * method.
1064
     */
1065
    public Builder setOxxo(PaymentMethodCreateParams.Oxxo oxxo) {
1066
      this.oxxo = oxxo;
×
1067
      return this;
×
1068
    }
1069

1070
    /**
1071
     * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
1072
     * method.
1073
     */
1074
    public Builder setP24(PaymentMethodCreateParams.P24 p24) {
1075
      this.p24 = p24;
×
1076
      return this;
×
1077
    }
1078

1079
    /**
1080
     * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
1081
     * method.
1082
     */
1083
    public Builder setPayco(PaymentMethodCreateParams.Payco payco) {
NEW
1084
      this.payco = payco;
×
NEW
1085
      return this;
×
1086
    }
1087

1088
    /** The PaymentMethod to share. */
1089
    public Builder setPaymentMethod(String paymentMethod) {
1090
      this.paymentMethod = paymentMethod;
×
1091
      return this;
×
1092
    }
1093

1094
    /**
1095
     * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
1096
     * payment method.
1097
     */
1098
    public Builder setPaynow(PaymentMethodCreateParams.Paynow paynow) {
1099
      this.paynow = paynow;
×
1100
      return this;
×
1101
    }
1102

1103
    /**
1104
     * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
1105
     * payment method.
1106
     */
1107
    public Builder setPaypal(PaymentMethodCreateParams.Paypal paypal) {
1108
      this.paypal = paypal;
×
1109
      return this;
×
1110
    }
1111

1112
    /**
1113
     * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo payment
1114
     * method.
1115
     */
1116
    public Builder setPayto(PaymentMethodCreateParams.Payto payto) {
1117
      this.payto = payto;
×
1118
      return this;
×
1119
    }
1120

1121
    /**
1122
     * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
1123
     * method.
1124
     */
1125
    public Builder setPix(PaymentMethodCreateParams.Pix pix) {
1126
      this.pix = pix;
×
1127
      return this;
×
1128
    }
1129

1130
    /**
1131
     * If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
1132
     * payment method.
1133
     */
1134
    public Builder setPromptpay(PaymentMethodCreateParams.Promptpay promptpay) {
1135
      this.promptpay = promptpay;
×
1136
      return this;
×
1137
    }
1138

1139
    /**
1140
     * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
1141
     * Session</a> for more information.
1142
     */
1143
    public Builder setRadarOptions(PaymentMethodCreateParams.RadarOptions radarOptions) {
1144
      this.radarOptions = radarOptions;
×
1145
      return this;
×
1146
    }
1147

1148
    /**
1149
     * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
1150
     * payment method.
1151
     */
1152
    public Builder setRechnung(PaymentMethodCreateParams.Rechnung rechnung) {
1153
      this.rechnung = rechnung;
×
1154
      return this;
×
1155
    }
1156

1157
    /**
1158
     * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
1159
     * Pay payment method.
1160
     */
1161
    public Builder setRevolutPay(PaymentMethodCreateParams.RevolutPay revolutPay) {
1162
      this.revolutPay = revolutPay;
×
1163
      return this;
×
1164
    }
1165

1166
    /**
1167
     * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
1168
     * SamsungPay payment method.
1169
     */
1170
    public Builder setSamsungPay(PaymentMethodCreateParams.SamsungPay samsungPay) {
NEW
1171
      this.samsungPay = samsungPay;
×
NEW
1172
      return this;
×
1173
    }
1174

1175
    /**
1176
     * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
1177
     * debit bank account.
1178
     */
1179
    public Builder setSepaDebit(PaymentMethodCreateParams.SepaDebit sepaDebit) {
1180
      this.sepaDebit = sepaDebit;
×
1181
      return this;
×
1182
    }
1183

1184
    /**
1185
     * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
1186
     * payment method.
1187
     */
1188
    public Builder setSofort(PaymentMethodCreateParams.Sofort sofort) {
1189
      this.sofort = sofort;
×
1190
      return this;
×
1191
    }
1192

1193
    /**
1194
     * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
1195
     * method.
1196
     */
1197
    public Builder setSwish(PaymentMethodCreateParams.Swish swish) {
1198
      this.swish = swish;
×
1199
      return this;
×
1200
    }
1201

1202
    /**
1203
     * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
1204
     */
1205
    public Builder setTwint(PaymentMethodCreateParams.Twint twint) {
1206
      this.twint = twint;
×
1207
      return this;
×
1208
    }
1209

1210
    /**
1211
     * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a
1212
     * name matching this value. It contains additional information specific to the PaymentMethod
1213
     * type.
1214
     */
1215
    public Builder setType(PaymentMethodCreateParams.Type type) {
1216
      this.type = type;
×
1217
      return this;
×
1218
    }
1219

1220
    /**
1221
     * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
1222
     * bank account payment method.
1223
     */
1224
    public Builder setUsBankAccount(PaymentMethodCreateParams.UsBankAccount usBankAccount) {
1225
      this.usBankAccount = usBankAccount;
×
1226
      return this;
×
1227
    }
1228

1229
    /**
1230
     * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
1231
     * wechat_pay payment method.
1232
     */
1233
    public Builder setWechatPay(PaymentMethodCreateParams.WechatPay wechatPay) {
1234
      this.wechatPay = wechatPay;
×
1235
      return this;
×
1236
    }
1237

1238
    /**
1239
     * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
1240
     * method.
1241
     */
1242
    public Builder setZip(PaymentMethodCreateParams.Zip zip) {
1243
      this.zip = zip;
×
1244
      return this;
×
1245
    }
1246
  }
1247

1248
  @Getter
1249
  public static class AcssDebit {
1250
    /** <strong>Required.</strong> Customer's bank account number. */
1251
    @SerializedName("account_number")
1252
    String accountNumber;
1253

1254
    /**
1255
     * Map of extra parameters for custom features not available in this client library. The content
1256
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1257
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1258
     * param object. Effectively, this map is flattened to its parent instance.
1259
     */
1260
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1261
    Map<String, Object> extraParams;
1262

1263
    /** <strong>Required.</strong> Institution number of the customer's bank. */
1264
    @SerializedName("institution_number")
1265
    String institutionNumber;
1266

1267
    /** <strong>Required.</strong> Transit number of the customer's bank. */
1268
    @SerializedName("transit_number")
1269
    String transitNumber;
1270

1271
    private AcssDebit(
1272
        String accountNumber,
1273
        Map<String, Object> extraParams,
1274
        String institutionNumber,
1275
        String transitNumber) {
×
1276
      this.accountNumber = accountNumber;
×
1277
      this.extraParams = extraParams;
×
1278
      this.institutionNumber = institutionNumber;
×
1279
      this.transitNumber = transitNumber;
×
1280
    }
×
1281

1282
    public static Builder builder() {
1283
      return new Builder();
×
1284
    }
1285

1286
    public static class Builder {
×
1287
      private String accountNumber;
1288

1289
      private Map<String, Object> extraParams;
1290

1291
      private String institutionNumber;
1292

1293
      private String transitNumber;
1294

1295
      /** Finalize and obtain parameter instance from this builder. */
1296
      public PaymentMethodCreateParams.AcssDebit build() {
1297
        return new PaymentMethodCreateParams.AcssDebit(
×
1298
            this.accountNumber, this.extraParams, this.institutionNumber, this.transitNumber);
1299
      }
1300

1301
      /** <strong>Required.</strong> Customer's bank account number. */
1302
      public Builder setAccountNumber(String accountNumber) {
1303
        this.accountNumber = accountNumber;
×
1304
        return this;
×
1305
      }
1306

1307
      /**
1308
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1309
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1310
       * PaymentMethodCreateParams.AcssDebit#extraParams} for the field documentation.
1311
       */
1312
      public Builder putExtraParam(String key, Object value) {
1313
        if (this.extraParams == null) {
×
1314
          this.extraParams = new HashMap<>();
×
1315
        }
1316
        this.extraParams.put(key, value);
×
1317
        return this;
×
1318
      }
1319

1320
      /**
1321
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1322
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1323
       * See {@link PaymentMethodCreateParams.AcssDebit#extraParams} for the field documentation.
1324
       */
1325
      public Builder putAllExtraParam(Map<String, Object> map) {
1326
        if (this.extraParams == null) {
×
1327
          this.extraParams = new HashMap<>();
×
1328
        }
1329
        this.extraParams.putAll(map);
×
1330
        return this;
×
1331
      }
1332

1333
      /** <strong>Required.</strong> Institution number of the customer's bank. */
1334
      public Builder setInstitutionNumber(String institutionNumber) {
1335
        this.institutionNumber = institutionNumber;
×
1336
        return this;
×
1337
      }
1338

1339
      /** <strong>Required.</strong> Transit number of the customer's bank. */
1340
      public Builder setTransitNumber(String transitNumber) {
1341
        this.transitNumber = transitNumber;
×
1342
        return this;
×
1343
      }
1344
    }
1345
  }
1346

1347
  @Getter
1348
  public static class Affirm {
1349
    /**
1350
     * Map of extra parameters for custom features not available in this client library. The content
1351
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1352
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1353
     * param object. Effectively, this map is flattened to its parent instance.
1354
     */
1355
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1356
    Map<String, Object> extraParams;
1357

1358
    private Affirm(Map<String, Object> extraParams) {
×
1359
      this.extraParams = extraParams;
×
1360
    }
×
1361

1362
    public static Builder builder() {
1363
      return new Builder();
×
1364
    }
1365

1366
    public static class Builder {
×
1367
      private Map<String, Object> extraParams;
1368

1369
      /** Finalize and obtain parameter instance from this builder. */
1370
      public PaymentMethodCreateParams.Affirm build() {
1371
        return new PaymentMethodCreateParams.Affirm(this.extraParams);
×
1372
      }
1373

1374
      /**
1375
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1376
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1377
       * PaymentMethodCreateParams.Affirm#extraParams} for the field documentation.
1378
       */
1379
      public Builder putExtraParam(String key, Object value) {
1380
        if (this.extraParams == null) {
×
1381
          this.extraParams = new HashMap<>();
×
1382
        }
1383
        this.extraParams.put(key, value);
×
1384
        return this;
×
1385
      }
1386

1387
      /**
1388
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1389
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1390
       * See {@link PaymentMethodCreateParams.Affirm#extraParams} for the field documentation.
1391
       */
1392
      public Builder putAllExtraParam(Map<String, Object> map) {
1393
        if (this.extraParams == null) {
×
1394
          this.extraParams = new HashMap<>();
×
1395
        }
1396
        this.extraParams.putAll(map);
×
1397
        return this;
×
1398
      }
1399
    }
1400
  }
1401

1402
  @Getter
1403
  public static class AfterpayClearpay {
1404
    /**
1405
     * Map of extra parameters for custom features not available in this client library. The content
1406
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1407
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1408
     * param object. Effectively, this map is flattened to its parent instance.
1409
     */
1410
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1411
    Map<String, Object> extraParams;
1412

1413
    private AfterpayClearpay(Map<String, Object> extraParams) {
×
1414
      this.extraParams = extraParams;
×
1415
    }
×
1416

1417
    public static Builder builder() {
1418
      return new Builder();
×
1419
    }
1420

1421
    public static class Builder {
×
1422
      private Map<String, Object> extraParams;
1423

1424
      /** Finalize and obtain parameter instance from this builder. */
1425
      public PaymentMethodCreateParams.AfterpayClearpay build() {
1426
        return new PaymentMethodCreateParams.AfterpayClearpay(this.extraParams);
×
1427
      }
1428

1429
      /**
1430
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1431
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1432
       * PaymentMethodCreateParams.AfterpayClearpay#extraParams} for the field documentation.
1433
       */
1434
      public Builder putExtraParam(String key, Object value) {
1435
        if (this.extraParams == null) {
×
1436
          this.extraParams = new HashMap<>();
×
1437
        }
1438
        this.extraParams.put(key, value);
×
1439
        return this;
×
1440
      }
1441

1442
      /**
1443
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1444
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1445
       * See {@link PaymentMethodCreateParams.AfterpayClearpay#extraParams} for the field
1446
       * documentation.
1447
       */
1448
      public Builder putAllExtraParam(Map<String, Object> map) {
1449
        if (this.extraParams == null) {
×
1450
          this.extraParams = new HashMap<>();
×
1451
        }
1452
        this.extraParams.putAll(map);
×
1453
        return this;
×
1454
      }
1455
    }
1456
  }
1457

1458
  @Getter
1459
  public static class Alipay {
1460
    /**
1461
     * Map of extra parameters for custom features not available in this client library. The content
1462
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1463
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1464
     * param object. Effectively, this map is flattened to its parent instance.
1465
     */
1466
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1467
    Map<String, Object> extraParams;
1468

1469
    private Alipay(Map<String, Object> extraParams) {
×
1470
      this.extraParams = extraParams;
×
1471
    }
×
1472

1473
    public static Builder builder() {
1474
      return new Builder();
×
1475
    }
1476

1477
    public static class Builder {
×
1478
      private Map<String, Object> extraParams;
1479

1480
      /** Finalize and obtain parameter instance from this builder. */
1481
      public PaymentMethodCreateParams.Alipay build() {
1482
        return new PaymentMethodCreateParams.Alipay(this.extraParams);
×
1483
      }
1484

1485
      /**
1486
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1487
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1488
       * PaymentMethodCreateParams.Alipay#extraParams} for the field documentation.
1489
       */
1490
      public Builder putExtraParam(String key, Object value) {
1491
        if (this.extraParams == null) {
×
1492
          this.extraParams = new HashMap<>();
×
1493
        }
1494
        this.extraParams.put(key, value);
×
1495
        return this;
×
1496
      }
1497

1498
      /**
1499
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1500
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1501
       * See {@link PaymentMethodCreateParams.Alipay#extraParams} for the field documentation.
1502
       */
1503
      public Builder putAllExtraParam(Map<String, Object> map) {
1504
        if (this.extraParams == null) {
×
1505
          this.extraParams = new HashMap<>();
×
1506
        }
1507
        this.extraParams.putAll(map);
×
1508
        return this;
×
1509
      }
1510
    }
1511
  }
1512

1513
  @Getter
1514
  public static class AmazonPay {
1515
    /**
1516
     * Map of extra parameters for custom features not available in this client library. The content
1517
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1518
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1519
     * param object. Effectively, this map is flattened to its parent instance.
1520
     */
1521
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1522
    Map<String, Object> extraParams;
1523

1524
    private AmazonPay(Map<String, Object> extraParams) {
×
1525
      this.extraParams = extraParams;
×
1526
    }
×
1527

1528
    public static Builder builder() {
1529
      return new Builder();
×
1530
    }
1531

1532
    public static class Builder {
×
1533
      private Map<String, Object> extraParams;
1534

1535
      /** Finalize and obtain parameter instance from this builder. */
1536
      public PaymentMethodCreateParams.AmazonPay build() {
1537
        return new PaymentMethodCreateParams.AmazonPay(this.extraParams);
×
1538
      }
1539

1540
      /**
1541
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1542
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1543
       * PaymentMethodCreateParams.AmazonPay#extraParams} for the field documentation.
1544
       */
1545
      public Builder putExtraParam(String key, Object value) {
1546
        if (this.extraParams == null) {
×
1547
          this.extraParams = new HashMap<>();
×
1548
        }
1549
        this.extraParams.put(key, value);
×
1550
        return this;
×
1551
      }
1552

1553
      /**
1554
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1555
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1556
       * See {@link PaymentMethodCreateParams.AmazonPay#extraParams} for the field documentation.
1557
       */
1558
      public Builder putAllExtraParam(Map<String, Object> map) {
1559
        if (this.extraParams == null) {
×
1560
          this.extraParams = new HashMap<>();
×
1561
        }
1562
        this.extraParams.putAll(map);
×
1563
        return this;
×
1564
      }
1565
    }
1566
  }
1567

1568
  @Getter
1569
  public static class AuBecsDebit {
1570
    /** <strong>Required.</strong> The account number for the bank account. */
1571
    @SerializedName("account_number")
1572
    String accountNumber;
1573

1574
    /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1575
    @SerializedName("bsb_number")
1576
    String bsbNumber;
1577

1578
    /**
1579
     * Map of extra parameters for custom features not available in this client library. The content
1580
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1581
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1582
     * param object. Effectively, this map is flattened to its parent instance.
1583
     */
1584
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1585
    Map<String, Object> extraParams;
1586

1587
    private AuBecsDebit(String accountNumber, String bsbNumber, Map<String, Object> extraParams) {
×
1588
      this.accountNumber = accountNumber;
×
1589
      this.bsbNumber = bsbNumber;
×
1590
      this.extraParams = extraParams;
×
1591
    }
×
1592

1593
    public static Builder builder() {
1594
      return new Builder();
×
1595
    }
1596

1597
    public static class Builder {
×
1598
      private String accountNumber;
1599

1600
      private String bsbNumber;
1601

1602
      private Map<String, Object> extraParams;
1603

1604
      /** Finalize and obtain parameter instance from this builder. */
1605
      public PaymentMethodCreateParams.AuBecsDebit build() {
1606
        return new PaymentMethodCreateParams.AuBecsDebit(
×
1607
            this.accountNumber, this.bsbNumber, this.extraParams);
1608
      }
1609

1610
      /** <strong>Required.</strong> The account number for the bank account. */
1611
      public Builder setAccountNumber(String accountNumber) {
1612
        this.accountNumber = accountNumber;
×
1613
        return this;
×
1614
      }
1615

1616
      /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1617
      public Builder setBsbNumber(String bsbNumber) {
1618
        this.bsbNumber = bsbNumber;
×
1619
        return this;
×
1620
      }
1621

1622
      /**
1623
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1624
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1625
       * PaymentMethodCreateParams.AuBecsDebit#extraParams} for the field documentation.
1626
       */
1627
      public Builder putExtraParam(String key, Object value) {
1628
        if (this.extraParams == null) {
×
1629
          this.extraParams = new HashMap<>();
×
1630
        }
1631
        this.extraParams.put(key, value);
×
1632
        return this;
×
1633
      }
1634

1635
      /**
1636
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1637
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1638
       * See {@link PaymentMethodCreateParams.AuBecsDebit#extraParams} for the field documentation.
1639
       */
1640
      public Builder putAllExtraParam(Map<String, Object> map) {
1641
        if (this.extraParams == null) {
×
1642
          this.extraParams = new HashMap<>();
×
1643
        }
1644
        this.extraParams.putAll(map);
×
1645
        return this;
×
1646
      }
1647
    }
1648
  }
1649

1650
  @Getter
1651
  public static class BacsDebit {
1652
    /** Account number of the bank account that the funds will be debited from. */
1653
    @SerializedName("account_number")
1654
    String accountNumber;
1655

1656
    /**
1657
     * Map of extra parameters for custom features not available in this client library. The content
1658
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1659
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1660
     * param object. Effectively, this map is flattened to its parent instance.
1661
     */
1662
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1663
    Map<String, Object> extraParams;
1664

1665
    /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1666
    @SerializedName("sort_code")
1667
    String sortCode;
1668

1669
    private BacsDebit(String accountNumber, Map<String, Object> extraParams, String sortCode) {
×
1670
      this.accountNumber = accountNumber;
×
1671
      this.extraParams = extraParams;
×
1672
      this.sortCode = sortCode;
×
1673
    }
×
1674

1675
    public static Builder builder() {
1676
      return new Builder();
×
1677
    }
1678

1679
    public static class Builder {
×
1680
      private String accountNumber;
1681

1682
      private Map<String, Object> extraParams;
1683

1684
      private String sortCode;
1685

1686
      /** Finalize and obtain parameter instance from this builder. */
1687
      public PaymentMethodCreateParams.BacsDebit build() {
1688
        return new PaymentMethodCreateParams.BacsDebit(
×
1689
            this.accountNumber, this.extraParams, this.sortCode);
1690
      }
1691

1692
      /** Account number of the bank account that the funds will be debited from. */
1693
      public Builder setAccountNumber(String accountNumber) {
1694
        this.accountNumber = accountNumber;
×
1695
        return this;
×
1696
      }
1697

1698
      /**
1699
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1700
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1701
       * PaymentMethodCreateParams.BacsDebit#extraParams} for the field documentation.
1702
       */
1703
      public Builder putExtraParam(String key, Object value) {
1704
        if (this.extraParams == null) {
×
1705
          this.extraParams = new HashMap<>();
×
1706
        }
1707
        this.extraParams.put(key, value);
×
1708
        return this;
×
1709
      }
1710

1711
      /**
1712
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1713
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1714
       * See {@link PaymentMethodCreateParams.BacsDebit#extraParams} for the field documentation.
1715
       */
1716
      public Builder putAllExtraParam(Map<String, Object> map) {
1717
        if (this.extraParams == null) {
×
1718
          this.extraParams = new HashMap<>();
×
1719
        }
1720
        this.extraParams.putAll(map);
×
1721
        return this;
×
1722
      }
1723

1724
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1725
      public Builder setSortCode(String sortCode) {
1726
        this.sortCode = sortCode;
×
1727
        return this;
×
1728
      }
1729
    }
1730
  }
1731

1732
  @Getter
1733
  public static class Bancontact {
1734
    /**
1735
     * Map of extra parameters for custom features not available in this client library. The content
1736
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1737
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1738
     * param object. Effectively, this map is flattened to its parent instance.
1739
     */
1740
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1741
    Map<String, Object> extraParams;
1742

1743
    private Bancontact(Map<String, Object> extraParams) {
×
1744
      this.extraParams = extraParams;
×
1745
    }
×
1746

1747
    public static Builder builder() {
1748
      return new Builder();
×
1749
    }
1750

1751
    public static class Builder {
×
1752
      private Map<String, Object> extraParams;
1753

1754
      /** Finalize and obtain parameter instance from this builder. */
1755
      public PaymentMethodCreateParams.Bancontact build() {
1756
        return new PaymentMethodCreateParams.Bancontact(this.extraParams);
×
1757
      }
1758

1759
      /**
1760
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1761
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1762
       * PaymentMethodCreateParams.Bancontact#extraParams} for the field documentation.
1763
       */
1764
      public Builder putExtraParam(String key, Object value) {
1765
        if (this.extraParams == null) {
×
1766
          this.extraParams = new HashMap<>();
×
1767
        }
1768
        this.extraParams.put(key, value);
×
1769
        return this;
×
1770
      }
1771

1772
      /**
1773
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1774
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1775
       * See {@link PaymentMethodCreateParams.Bancontact#extraParams} for the field documentation.
1776
       */
1777
      public Builder putAllExtraParam(Map<String, Object> map) {
1778
        if (this.extraParams == null) {
×
1779
          this.extraParams = new HashMap<>();
×
1780
        }
1781
        this.extraParams.putAll(map);
×
1782
        return this;
×
1783
      }
1784
    }
1785
  }
1786

1787
  @Getter
1788
  public static class BillingDetails {
1789
    /** Billing address. */
1790
    @SerializedName("address")
1791
    Object address;
1792

1793
    /** Email address. */
1794
    @SerializedName("email")
1795
    Object email;
1796

1797
    /**
1798
     * Map of extra parameters for custom features not available in this client library. The content
1799
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1800
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1801
     * param object. Effectively, this map is flattened to its parent instance.
1802
     */
1803
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1804
    Map<String, Object> extraParams;
1805

1806
    /** Full name. */
1807
    @SerializedName("name")
1808
    Object name;
1809

1810
    /** Billing phone number (including extension). */
1811
    @SerializedName("phone")
1812
    Object phone;
1813

1814
    private BillingDetails(
1815
        Object address, Object email, Map<String, Object> extraParams, Object name, Object phone) {
×
1816
      this.address = address;
×
1817
      this.email = email;
×
1818
      this.extraParams = extraParams;
×
1819
      this.name = name;
×
1820
      this.phone = phone;
×
1821
    }
×
1822

1823
    public static Builder builder() {
1824
      return new Builder();
×
1825
    }
1826

1827
    public static class Builder {
×
1828
      private Object address;
1829

1830
      private Object email;
1831

1832
      private Map<String, Object> extraParams;
1833

1834
      private Object name;
1835

1836
      private Object phone;
1837

1838
      /** Finalize and obtain parameter instance from this builder. */
1839
      public PaymentMethodCreateParams.BillingDetails build() {
1840
        return new PaymentMethodCreateParams.BillingDetails(
×
1841
            this.address, this.email, this.extraParams, this.name, this.phone);
1842
      }
1843

1844
      /** Billing address. */
1845
      public Builder setAddress(PaymentMethodCreateParams.BillingDetails.Address address) {
1846
        this.address = address;
×
1847
        return this;
×
1848
      }
1849

1850
      /** Billing address. */
1851
      public Builder setAddress(EmptyParam address) {
1852
        this.address = address;
×
1853
        return this;
×
1854
      }
1855

1856
      /** Email address. */
1857
      public Builder setEmail(String email) {
1858
        this.email = email;
×
1859
        return this;
×
1860
      }
1861

1862
      /** Email address. */
1863
      public Builder setEmail(EmptyParam email) {
1864
        this.email = email;
×
1865
        return this;
×
1866
      }
1867

1868
      /**
1869
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1870
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1871
       * PaymentMethodCreateParams.BillingDetails#extraParams} for the field documentation.
1872
       */
1873
      public Builder putExtraParam(String key, Object value) {
1874
        if (this.extraParams == null) {
×
1875
          this.extraParams = new HashMap<>();
×
1876
        }
1877
        this.extraParams.put(key, value);
×
1878
        return this;
×
1879
      }
1880

1881
      /**
1882
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1883
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1884
       * See {@link PaymentMethodCreateParams.BillingDetails#extraParams} for the field
1885
       * documentation.
1886
       */
1887
      public Builder putAllExtraParam(Map<String, Object> map) {
1888
        if (this.extraParams == null) {
×
1889
          this.extraParams = new HashMap<>();
×
1890
        }
1891
        this.extraParams.putAll(map);
×
1892
        return this;
×
1893
      }
1894

1895
      /** Full name. */
1896
      public Builder setName(String name) {
1897
        this.name = name;
×
1898
        return this;
×
1899
      }
1900

1901
      /** Full name. */
1902
      public Builder setName(EmptyParam name) {
1903
        this.name = name;
×
1904
        return this;
×
1905
      }
1906

1907
      /** Billing phone number (including extension). */
1908
      public Builder setPhone(String phone) {
1909
        this.phone = phone;
×
1910
        return this;
×
1911
      }
1912

1913
      /** Billing phone number (including extension). */
1914
      public Builder setPhone(EmptyParam phone) {
1915
        this.phone = phone;
×
1916
        return this;
×
1917
      }
1918
    }
1919

1920
    @Getter
1921
    public static class Address {
1922
      /** City, district, suburb, town, or village. */
1923
      @SerializedName("city")
1924
      String city;
1925

1926
      /**
1927
       * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
1928
       * 3166-1 alpha-2</a>).
1929
       */
1930
      @SerializedName("country")
1931
      String country;
1932

1933
      /**
1934
       * Map of extra parameters for custom features not available in this client library. The
1935
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1936
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1937
       * name in this param object. Effectively, this map is flattened to its parent instance.
1938
       */
1939
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1940
      Map<String, Object> extraParams;
1941

1942
      /** Address line 1 (e.g., street, PO Box, or company name). */
1943
      @SerializedName("line1")
1944
      String line1;
1945

1946
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
1947
      @SerializedName("line2")
1948
      String line2;
1949

1950
      /** ZIP or postal code. */
1951
      @SerializedName("postal_code")
1952
      String postalCode;
1953

1954
      /** State, county, province, or region. */
1955
      @SerializedName("state")
1956
      String state;
1957

1958
      private Address(
1959
          String city,
1960
          String country,
1961
          Map<String, Object> extraParams,
1962
          String line1,
1963
          String line2,
1964
          String postalCode,
1965
          String state) {
×
1966
        this.city = city;
×
1967
        this.country = country;
×
1968
        this.extraParams = extraParams;
×
1969
        this.line1 = line1;
×
1970
        this.line2 = line2;
×
1971
        this.postalCode = postalCode;
×
1972
        this.state = state;
×
1973
      }
×
1974

1975
      public static Builder builder() {
1976
        return new Builder();
×
1977
      }
1978

1979
      public static class Builder {
×
1980
        private String city;
1981

1982
        private String country;
1983

1984
        private Map<String, Object> extraParams;
1985

1986
        private String line1;
1987

1988
        private String line2;
1989

1990
        private String postalCode;
1991

1992
        private String state;
1993

1994
        /** Finalize and obtain parameter instance from this builder. */
1995
        public PaymentMethodCreateParams.BillingDetails.Address build() {
1996
          return new PaymentMethodCreateParams.BillingDetails.Address(
×
1997
              this.city,
1998
              this.country,
1999
              this.extraParams,
2000
              this.line1,
2001
              this.line2,
2002
              this.postalCode,
2003
              this.state);
2004
        }
2005

2006
        /** City, district, suburb, town, or village. */
2007
        public Builder setCity(String city) {
2008
          this.city = city;
×
2009
          return this;
×
2010
        }
2011

2012
        /**
2013
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2014
         * 3166-1 alpha-2</a>).
2015
         */
2016
        public Builder setCountry(String country) {
2017
          this.country = country;
×
2018
          return this;
×
2019
        }
2020

2021
        /**
2022
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2023
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2024
         * map. See {@link PaymentMethodCreateParams.BillingDetails.Address#extraParams} for the
2025
         * field documentation.
2026
         */
2027
        public Builder putExtraParam(String key, Object value) {
2028
          if (this.extraParams == null) {
×
2029
            this.extraParams = new HashMap<>();
×
2030
          }
2031
          this.extraParams.put(key, value);
×
2032
          return this;
×
2033
        }
2034

2035
        /**
2036
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2037
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2038
         * map. See {@link PaymentMethodCreateParams.BillingDetails.Address#extraParams} for the
2039
         * field documentation.
2040
         */
2041
        public Builder putAllExtraParam(Map<String, Object> map) {
2042
          if (this.extraParams == null) {
×
2043
            this.extraParams = new HashMap<>();
×
2044
          }
2045
          this.extraParams.putAll(map);
×
2046
          return this;
×
2047
        }
2048

2049
        /** Address line 1 (e.g., street, PO Box, or company name). */
2050
        public Builder setLine1(String line1) {
2051
          this.line1 = line1;
×
2052
          return this;
×
2053
        }
2054

2055
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
2056
        public Builder setLine2(String line2) {
2057
          this.line2 = line2;
×
2058
          return this;
×
2059
        }
2060

2061
        /** ZIP or postal code. */
2062
        public Builder setPostalCode(String postalCode) {
2063
          this.postalCode = postalCode;
×
2064
          return this;
×
2065
        }
2066

2067
        /** State, county, province, or region. */
2068
        public Builder setState(String state) {
2069
          this.state = state;
×
2070
          return this;
×
2071
        }
2072
      }
2073
    }
2074
  }
2075

2076
  @Getter
2077
  public static class Blik {
2078
    /**
2079
     * Map of extra parameters for custom features not available in this client library. The content
2080
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2081
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2082
     * param object. Effectively, this map is flattened to its parent instance.
2083
     */
2084
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2085
    Map<String, Object> extraParams;
2086

2087
    private Blik(Map<String, Object> extraParams) {
×
2088
      this.extraParams = extraParams;
×
2089
    }
×
2090

2091
    public static Builder builder() {
2092
      return new Builder();
×
2093
    }
2094

2095
    public static class Builder {
×
2096
      private Map<String, Object> extraParams;
2097

2098
      /** Finalize and obtain parameter instance from this builder. */
2099
      public PaymentMethodCreateParams.Blik build() {
2100
        return new PaymentMethodCreateParams.Blik(this.extraParams);
×
2101
      }
2102

2103
      /**
2104
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2105
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2106
       * PaymentMethodCreateParams.Blik#extraParams} for the field documentation.
2107
       */
2108
      public Builder putExtraParam(String key, Object value) {
2109
        if (this.extraParams == null) {
×
2110
          this.extraParams = new HashMap<>();
×
2111
        }
2112
        this.extraParams.put(key, value);
×
2113
        return this;
×
2114
      }
2115

2116
      /**
2117
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2118
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2119
       * See {@link PaymentMethodCreateParams.Blik#extraParams} for the field documentation.
2120
       */
2121
      public Builder putAllExtraParam(Map<String, Object> map) {
2122
        if (this.extraParams == null) {
×
2123
          this.extraParams = new HashMap<>();
×
2124
        }
2125
        this.extraParams.putAll(map);
×
2126
        return this;
×
2127
      }
2128
    }
2129
  }
2130

2131
  @Getter
2132
  public static class Boleto {
2133
    /**
2134
     * Map of extra parameters for custom features not available in this client library. The content
2135
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2136
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2137
     * param object. Effectively, this map is flattened to its parent instance.
2138
     */
2139
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2140
    Map<String, Object> extraParams;
2141

2142
    /**
2143
     * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2144
     * for businesses consumers)
2145
     */
2146
    @SerializedName("tax_id")
2147
    String taxId;
2148

2149
    private Boleto(Map<String, Object> extraParams, String taxId) {
×
2150
      this.extraParams = extraParams;
×
2151
      this.taxId = taxId;
×
2152
    }
×
2153

2154
    public static Builder builder() {
2155
      return new Builder();
×
2156
    }
2157

2158
    public static class Builder {
×
2159
      private Map<String, Object> extraParams;
2160

2161
      private String taxId;
2162

2163
      /** Finalize and obtain parameter instance from this builder. */
2164
      public PaymentMethodCreateParams.Boleto build() {
2165
        return new PaymentMethodCreateParams.Boleto(this.extraParams, this.taxId);
×
2166
      }
2167

2168
      /**
2169
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2170
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2171
       * PaymentMethodCreateParams.Boleto#extraParams} for the field documentation.
2172
       */
2173
      public Builder putExtraParam(String key, Object value) {
2174
        if (this.extraParams == null) {
×
2175
          this.extraParams = new HashMap<>();
×
2176
        }
2177
        this.extraParams.put(key, value);
×
2178
        return this;
×
2179
      }
2180

2181
      /**
2182
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2183
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2184
       * See {@link PaymentMethodCreateParams.Boleto#extraParams} for the field documentation.
2185
       */
2186
      public Builder putAllExtraParam(Map<String, Object> map) {
2187
        if (this.extraParams == null) {
×
2188
          this.extraParams = new HashMap<>();
×
2189
        }
2190
        this.extraParams.putAll(map);
×
2191
        return this;
×
2192
      }
2193

2194
      /**
2195
       * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2196
       * for businesses consumers)
2197
       */
2198
      public Builder setTaxId(String taxId) {
2199
        this.taxId = taxId;
×
2200
        return this;
×
2201
      }
2202
    }
2203
  }
2204

2205
  @Getter
2206
  public static class CardDetails {
2207
    /** The card's CVC. It is highly recommended to always include this value. */
2208
    @SerializedName("cvc")
2209
    String cvc;
2210

2211
    /** Two-digit number representing the card's expiration month. */
2212
    @SerializedName("exp_month")
2213
    Long expMonth;
2214

2215
    /** Four-digit number representing the card's expiration year. */
2216
    @SerializedName("exp_year")
2217
    Long expYear;
2218

2219
    /**
2220
     * Map of extra parameters for custom features not available in this client library. The content
2221
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2222
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2223
     * param object. Effectively, this map is flattened to its parent instance.
2224
     */
2225
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2226
    Map<String, Object> extraParams;
2227

2228
    /** Contains information about card networks used to process the payment. */
2229
    @SerializedName("networks")
2230
    Networks networks;
2231

2232
    /** The card number, as a string without any separators. */
2233
    @SerializedName("number")
2234
    String number;
2235

2236
    private CardDetails(
2237
        String cvc,
2238
        Long expMonth,
2239
        Long expYear,
2240
        Map<String, Object> extraParams,
2241
        Networks networks,
2242
        String number) {
×
2243
      this.cvc = cvc;
×
2244
      this.expMonth = expMonth;
×
2245
      this.expYear = expYear;
×
2246
      this.extraParams = extraParams;
×
2247
      this.networks = networks;
×
2248
      this.number = number;
×
2249
    }
×
2250

2251
    public static Builder builder() {
2252
      return new Builder();
×
2253
    }
2254

2255
    public static class Builder {
×
2256
      private String cvc;
2257

2258
      private Long expMonth;
2259

2260
      private Long expYear;
2261

2262
      private Map<String, Object> extraParams;
2263

2264
      private Networks networks;
2265

2266
      private String number;
2267

2268
      /** Finalize and obtain parameter instance from this builder. */
2269
      public PaymentMethodCreateParams.CardDetails build() {
2270
        return new PaymentMethodCreateParams.CardDetails(
×
2271
            this.cvc, this.expMonth, this.expYear, this.extraParams, this.networks, this.number);
2272
      }
2273

2274
      /** The card's CVC. It is highly recommended to always include this value. */
2275
      public Builder setCvc(String cvc) {
2276
        this.cvc = cvc;
×
2277
        return this;
×
2278
      }
2279

2280
      /** Two-digit number representing the card's expiration month. */
2281
      public Builder setExpMonth(Long expMonth) {
2282
        this.expMonth = expMonth;
×
2283
        return this;
×
2284
      }
2285

2286
      /** Four-digit number representing the card's expiration year. */
2287
      public Builder setExpYear(Long expYear) {
2288
        this.expYear = expYear;
×
2289
        return this;
×
2290
      }
2291

2292
      /**
2293
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2294
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2295
       * PaymentMethodCreateParams.CardDetails#extraParams} for the field documentation.
2296
       */
2297
      public Builder putExtraParam(String key, Object value) {
2298
        if (this.extraParams == null) {
×
2299
          this.extraParams = new HashMap<>();
×
2300
        }
2301
        this.extraParams.put(key, value);
×
2302
        return this;
×
2303
      }
2304

2305
      /**
2306
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2307
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2308
       * See {@link PaymentMethodCreateParams.CardDetails#extraParams} for the field documentation.
2309
       */
2310
      public Builder putAllExtraParam(Map<String, Object> map) {
2311
        if (this.extraParams == null) {
×
2312
          this.extraParams = new HashMap<>();
×
2313
        }
2314
        this.extraParams.putAll(map);
×
2315
        return this;
×
2316
      }
2317

2318
      /** Contains information about card networks used to process the payment. */
2319
      public Builder setNetworks(PaymentMethodCreateParams.CardDetails.Networks networks) {
2320
        this.networks = networks;
×
2321
        return this;
×
2322
      }
2323

2324
      /** The card number, as a string without any separators. */
2325
      public Builder setNumber(String number) {
2326
        this.number = number;
×
2327
        return this;
×
2328
      }
2329
    }
2330

2331
    @Getter
2332
    public static class Networks {
2333
      /**
2334
       * Map of extra parameters for custom features not available in this client library. The
2335
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2336
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2337
       * name in this param object. Effectively, this map is flattened to its parent instance.
2338
       */
2339
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2340
      Map<String, Object> extraParams;
2341

2342
      /**
2343
       * The customer's preferred card network for co-branded cards. Supports {@code
2344
       * cartes_bancaires}, {@code mastercard}, or {@code visa}. Selection of a network that does
2345
       * not apply to the card will be stored as {@code invalid_preference} on the card.
2346
       */
2347
      @SerializedName("preferred")
2348
      Preferred preferred;
2349

2350
      private Networks(Map<String, Object> extraParams, Preferred preferred) {
×
2351
        this.extraParams = extraParams;
×
2352
        this.preferred = preferred;
×
2353
      }
×
2354

2355
      public static Builder builder() {
2356
        return new Builder();
×
2357
      }
2358

2359
      public static class Builder {
×
2360
        private Map<String, Object> extraParams;
2361

2362
        private Preferred preferred;
2363

2364
        /** Finalize and obtain parameter instance from this builder. */
2365
        public PaymentMethodCreateParams.CardDetails.Networks build() {
2366
          return new PaymentMethodCreateParams.CardDetails.Networks(
×
2367
              this.extraParams, this.preferred);
2368
        }
2369

2370
        /**
2371
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2372
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2373
         * map. See {@link PaymentMethodCreateParams.CardDetails.Networks#extraParams} for the field
2374
         * documentation.
2375
         */
2376
        public Builder putExtraParam(String key, Object value) {
2377
          if (this.extraParams == null) {
×
2378
            this.extraParams = new HashMap<>();
×
2379
          }
2380
          this.extraParams.put(key, value);
×
2381
          return this;
×
2382
        }
2383

2384
        /**
2385
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2386
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2387
         * map. See {@link PaymentMethodCreateParams.CardDetails.Networks#extraParams} for the field
2388
         * documentation.
2389
         */
2390
        public Builder putAllExtraParam(Map<String, Object> map) {
2391
          if (this.extraParams == null) {
×
2392
            this.extraParams = new HashMap<>();
×
2393
          }
2394
          this.extraParams.putAll(map);
×
2395
          return this;
×
2396
        }
2397

2398
        /**
2399
         * The customer's preferred card network for co-branded cards. Supports {@code
2400
         * cartes_bancaires}, {@code mastercard}, or {@code visa}. Selection of a network that does
2401
         * not apply to the card will be stored as {@code invalid_preference} on the card.
2402
         */
2403
        public Builder setPreferred(
2404
            PaymentMethodCreateParams.CardDetails.Networks.Preferred preferred) {
2405
          this.preferred = preferred;
×
2406
          return this;
×
2407
        }
2408
      }
2409

2410
      public enum Preferred implements ApiRequestParams.EnumParam {
×
2411
        @SerializedName("cartes_bancaires")
×
2412
        CARTES_BANCAIRES("cartes_bancaires"),
2413

2414
        @SerializedName("mastercard")
×
2415
        MASTERCARD("mastercard"),
2416

2417
        @SerializedName("visa")
×
2418
        VISA("visa");
2419

2420
        @Getter(onMethod_ = {@Override})
2421
        private final String value;
2422

2423
        Preferred(String value) {
×
2424
          this.value = value;
×
2425
        }
×
2426
      }
2427
    }
2428
  }
2429

2430
  @Getter
2431
  public static class Cashapp {
2432
    /**
2433
     * Map of extra parameters for custom features not available in this client library. The content
2434
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2435
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2436
     * param object. Effectively, this map is flattened to its parent instance.
2437
     */
2438
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2439
    Map<String, Object> extraParams;
2440

2441
    private Cashapp(Map<String, Object> extraParams) {
×
2442
      this.extraParams = extraParams;
×
2443
    }
×
2444

2445
    public static Builder builder() {
2446
      return new Builder();
×
2447
    }
2448

2449
    public static class Builder {
×
2450
      private Map<String, Object> extraParams;
2451

2452
      /** Finalize and obtain parameter instance from this builder. */
2453
      public PaymentMethodCreateParams.Cashapp build() {
2454
        return new PaymentMethodCreateParams.Cashapp(this.extraParams);
×
2455
      }
2456

2457
      /**
2458
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2459
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2460
       * PaymentMethodCreateParams.Cashapp#extraParams} for the field documentation.
2461
       */
2462
      public Builder putExtraParam(String key, Object value) {
2463
        if (this.extraParams == null) {
×
2464
          this.extraParams = new HashMap<>();
×
2465
        }
2466
        this.extraParams.put(key, value);
×
2467
        return this;
×
2468
      }
2469

2470
      /**
2471
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2472
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2473
       * See {@link PaymentMethodCreateParams.Cashapp#extraParams} for the field documentation.
2474
       */
2475
      public Builder putAllExtraParam(Map<String, Object> map) {
2476
        if (this.extraParams == null) {
×
2477
          this.extraParams = new HashMap<>();
×
2478
        }
2479
        this.extraParams.putAll(map);
×
2480
        return this;
×
2481
      }
2482
    }
2483
  }
2484

2485
  @Getter
2486
  public static class CustomerBalance {
2487
    /**
2488
     * Map of extra parameters for custom features not available in this client library. The content
2489
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2490
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2491
     * param object. Effectively, this map is flattened to its parent instance.
2492
     */
2493
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2494
    Map<String, Object> extraParams;
2495

2496
    private CustomerBalance(Map<String, Object> extraParams) {
×
2497
      this.extraParams = extraParams;
×
2498
    }
×
2499

2500
    public static Builder builder() {
2501
      return new Builder();
×
2502
    }
2503

2504
    public static class Builder {
×
2505
      private Map<String, Object> extraParams;
2506

2507
      /** Finalize and obtain parameter instance from this builder. */
2508
      public PaymentMethodCreateParams.CustomerBalance build() {
2509
        return new PaymentMethodCreateParams.CustomerBalance(this.extraParams);
×
2510
      }
2511

2512
      /**
2513
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2514
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2515
       * PaymentMethodCreateParams.CustomerBalance#extraParams} for the field documentation.
2516
       */
2517
      public Builder putExtraParam(String key, Object value) {
2518
        if (this.extraParams == null) {
×
2519
          this.extraParams = new HashMap<>();
×
2520
        }
2521
        this.extraParams.put(key, value);
×
2522
        return this;
×
2523
      }
2524

2525
      /**
2526
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2527
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2528
       * See {@link PaymentMethodCreateParams.CustomerBalance#extraParams} for the field
2529
       * documentation.
2530
       */
2531
      public Builder putAllExtraParam(Map<String, Object> map) {
2532
        if (this.extraParams == null) {
×
2533
          this.extraParams = new HashMap<>();
×
2534
        }
2535
        this.extraParams.putAll(map);
×
2536
        return this;
×
2537
      }
2538
    }
2539
  }
2540

2541
  @Getter
2542
  public static class Eps {
2543
    /** The customer's bank. */
2544
    @SerializedName("bank")
2545
    Bank bank;
2546

2547
    /**
2548
     * Map of extra parameters for custom features not available in this client library. The content
2549
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2550
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2551
     * param object. Effectively, this map is flattened to its parent instance.
2552
     */
2553
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2554
    Map<String, Object> extraParams;
2555

2556
    private Eps(Bank bank, Map<String, Object> extraParams) {
×
2557
      this.bank = bank;
×
2558
      this.extraParams = extraParams;
×
2559
    }
×
2560

2561
    public static Builder builder() {
2562
      return new Builder();
×
2563
    }
2564

2565
    public static class Builder {
×
2566
      private Bank bank;
2567

2568
      private Map<String, Object> extraParams;
2569

2570
      /** Finalize and obtain parameter instance from this builder. */
2571
      public PaymentMethodCreateParams.Eps build() {
2572
        return new PaymentMethodCreateParams.Eps(this.bank, this.extraParams);
×
2573
      }
2574

2575
      /** The customer's bank. */
2576
      public Builder setBank(PaymentMethodCreateParams.Eps.Bank bank) {
2577
        this.bank = bank;
×
2578
        return this;
×
2579
      }
2580

2581
      /**
2582
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2583
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2584
       * PaymentMethodCreateParams.Eps#extraParams} for the field documentation.
2585
       */
2586
      public Builder putExtraParam(String key, Object value) {
2587
        if (this.extraParams == null) {
×
2588
          this.extraParams = new HashMap<>();
×
2589
        }
2590
        this.extraParams.put(key, value);
×
2591
        return this;
×
2592
      }
2593

2594
      /**
2595
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2596
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2597
       * See {@link PaymentMethodCreateParams.Eps#extraParams} for the field documentation.
2598
       */
2599
      public Builder putAllExtraParam(Map<String, Object> map) {
2600
        if (this.extraParams == null) {
×
2601
          this.extraParams = new HashMap<>();
×
2602
        }
2603
        this.extraParams.putAll(map);
×
2604
        return this;
×
2605
      }
2606
    }
2607

2608
    public enum Bank implements ApiRequestParams.EnumParam {
×
2609
      @SerializedName("arzte_und_apotheker_bank")
×
2610
      ARZTE_UND_APOTHEKER_BANK("arzte_und_apotheker_bank"),
2611

2612
      @SerializedName("austrian_anadi_bank_ag")
×
2613
      AUSTRIAN_ANADI_BANK_AG("austrian_anadi_bank_ag"),
2614

2615
      @SerializedName("bank_austria")
×
2616
      BANK_AUSTRIA("bank_austria"),
2617

2618
      @SerializedName("bankhaus_carl_spangler")
×
2619
      BANKHAUS_CARL_SPANGLER("bankhaus_carl_spangler"),
2620

2621
      @SerializedName("bankhaus_schelhammer_und_schattera_ag")
×
2622
      BANKHAUS_SCHELHAMMER_UND_SCHATTERA_AG("bankhaus_schelhammer_und_schattera_ag"),
2623

2624
      @SerializedName("bawag_psk_ag")
×
2625
      BAWAG_PSK_AG("bawag_psk_ag"),
2626

2627
      @SerializedName("bks_bank_ag")
×
2628
      BKS_BANK_AG("bks_bank_ag"),
2629

2630
      @SerializedName("brull_kallmus_bank_ag")
×
2631
      BRULL_KALLMUS_BANK_AG("brull_kallmus_bank_ag"),
2632

2633
      @SerializedName("btv_vier_lander_bank")
×
2634
      BTV_VIER_LANDER_BANK("btv_vier_lander_bank"),
2635

2636
      @SerializedName("capital_bank_grawe_gruppe_ag")
×
2637
      CAPITAL_BANK_GRAWE_GRUPPE_AG("capital_bank_grawe_gruppe_ag"),
2638

2639
      @SerializedName("deutsche_bank_ag")
×
2640
      DEUTSCHE_BANK_AG("deutsche_bank_ag"),
2641

2642
      @SerializedName("dolomitenbank")
×
2643
      DOLOMITENBANK("dolomitenbank"),
2644

2645
      @SerializedName("easybank_ag")
×
2646
      EASYBANK_AG("easybank_ag"),
2647

2648
      @SerializedName("erste_bank_und_sparkassen")
×
2649
      ERSTE_BANK_UND_SPARKASSEN("erste_bank_und_sparkassen"),
2650

2651
      @SerializedName("hypo_alpeadriabank_international_ag")
×
2652
      HYPO_ALPEADRIABANK_INTERNATIONAL_AG("hypo_alpeadriabank_international_ag"),
2653

2654
      @SerializedName("hypo_bank_burgenland_aktiengesellschaft")
×
2655
      HYPO_BANK_BURGENLAND_AKTIENGESELLSCHAFT("hypo_bank_burgenland_aktiengesellschaft"),
2656

2657
      @SerializedName("hypo_noe_lb_fur_niederosterreich_u_wien")
×
2658
      HYPO_NOE_LB_FUR_NIEDEROSTERREICH_U_WIEN("hypo_noe_lb_fur_niederosterreich_u_wien"),
2659

2660
      @SerializedName("hypo_oberosterreich_salzburg_steiermark")
×
2661
      HYPO_OBEROSTERREICH_SALZBURG_STEIERMARK("hypo_oberosterreich_salzburg_steiermark"),
2662

2663
      @SerializedName("hypo_tirol_bank_ag")
×
2664
      HYPO_TIROL_BANK_AG("hypo_tirol_bank_ag"),
2665

2666
      @SerializedName("hypo_vorarlberg_bank_ag")
×
2667
      HYPO_VORARLBERG_BANK_AG("hypo_vorarlberg_bank_ag"),
2668

2669
      @SerializedName("marchfelder_bank")
×
2670
      MARCHFELDER_BANK("marchfelder_bank"),
2671

2672
      @SerializedName("oberbank_ag")
×
2673
      OBERBANK_AG("oberbank_ag"),
2674

2675
      @SerializedName("raiffeisen_bankengruppe_osterreich")
×
2676
      RAIFFEISEN_BANKENGRUPPE_OSTERREICH("raiffeisen_bankengruppe_osterreich"),
2677

2678
      @SerializedName("schoellerbank_ag")
×
2679
      SCHOELLERBANK_AG("schoellerbank_ag"),
2680

2681
      @SerializedName("sparda_bank_wien")
×
2682
      SPARDA_BANK_WIEN("sparda_bank_wien"),
2683

2684
      @SerializedName("volksbank_gruppe")
×
2685
      VOLKSBANK_GRUPPE("volksbank_gruppe"),
2686

2687
      @SerializedName("volkskreditbank_ag")
×
2688
      VOLKSKREDITBANK_AG("volkskreditbank_ag"),
2689

2690
      @SerializedName("vr_bank_braunau")
×
2691
      VR_BANK_BRAUNAU("vr_bank_braunau");
2692

2693
      @Getter(onMethod_ = {@Override})
2694
      private final String value;
2695

2696
      Bank(String value) {
×
2697
        this.value = value;
×
2698
      }
×
2699
    }
2700
  }
2701

2702
  @Getter
2703
  public static class Fpx {
2704
    /** Account holder type for FPX transaction. */
2705
    @SerializedName("account_holder_type")
2706
    AccountHolderType accountHolderType;
2707

2708
    /** <strong>Required.</strong> The customer's bank. */
2709
    @SerializedName("bank")
2710
    Bank bank;
2711

2712
    /**
2713
     * Map of extra parameters for custom features not available in this client library. The content
2714
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2715
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2716
     * param object. Effectively, this map is flattened to its parent instance.
2717
     */
2718
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2719
    Map<String, Object> extraParams;
2720

2721
    private Fpx(AccountHolderType accountHolderType, Bank bank, Map<String, Object> extraParams) {
×
2722
      this.accountHolderType = accountHolderType;
×
2723
      this.bank = bank;
×
2724
      this.extraParams = extraParams;
×
2725
    }
×
2726

2727
    public static Builder builder() {
2728
      return new Builder();
×
2729
    }
2730

2731
    public static class Builder {
×
2732
      private AccountHolderType accountHolderType;
2733

2734
      private Bank bank;
2735

2736
      private Map<String, Object> extraParams;
2737

2738
      /** Finalize and obtain parameter instance from this builder. */
2739
      public PaymentMethodCreateParams.Fpx build() {
2740
        return new PaymentMethodCreateParams.Fpx(
×
2741
            this.accountHolderType, this.bank, this.extraParams);
2742
      }
2743

2744
      /** Account holder type for FPX transaction. */
2745
      public Builder setAccountHolderType(
2746
          PaymentMethodCreateParams.Fpx.AccountHolderType accountHolderType) {
2747
        this.accountHolderType = accountHolderType;
×
2748
        return this;
×
2749
      }
2750

2751
      /** <strong>Required.</strong> The customer's bank. */
2752
      public Builder setBank(PaymentMethodCreateParams.Fpx.Bank bank) {
2753
        this.bank = bank;
×
2754
        return this;
×
2755
      }
2756

2757
      /**
2758
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2759
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2760
       * PaymentMethodCreateParams.Fpx#extraParams} for the field documentation.
2761
       */
2762
      public Builder putExtraParam(String key, Object value) {
2763
        if (this.extraParams == null) {
×
2764
          this.extraParams = new HashMap<>();
×
2765
        }
2766
        this.extraParams.put(key, value);
×
2767
        return this;
×
2768
      }
2769

2770
      /**
2771
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2772
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2773
       * See {@link PaymentMethodCreateParams.Fpx#extraParams} for the field documentation.
2774
       */
2775
      public Builder putAllExtraParam(Map<String, Object> map) {
2776
        if (this.extraParams == null) {
×
2777
          this.extraParams = new HashMap<>();
×
2778
        }
2779
        this.extraParams.putAll(map);
×
2780
        return this;
×
2781
      }
2782
    }
2783

2784
    public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
2785
      @SerializedName("company")
×
2786
      COMPANY("company"),
2787

2788
      @SerializedName("individual")
×
2789
      INDIVIDUAL("individual");
2790

2791
      @Getter(onMethod_ = {@Override})
2792
      private final String value;
2793

2794
      AccountHolderType(String value) {
×
2795
        this.value = value;
×
2796
      }
×
2797
    }
2798

2799
    public enum Bank implements ApiRequestParams.EnumParam {
×
2800
      @SerializedName("affin_bank")
×
2801
      AFFIN_BANK("affin_bank"),
2802

2803
      @SerializedName("agrobank")
×
2804
      AGROBANK("agrobank"),
2805

2806
      @SerializedName("alliance_bank")
×
2807
      ALLIANCE_BANK("alliance_bank"),
2808

2809
      @SerializedName("ambank")
×
2810
      AMBANK("ambank"),
2811

2812
      @SerializedName("bank_islam")
×
2813
      BANK_ISLAM("bank_islam"),
2814

2815
      @SerializedName("bank_muamalat")
×
2816
      BANK_MUAMALAT("bank_muamalat"),
2817

2818
      @SerializedName("bank_of_china")
×
2819
      BANK_OF_CHINA("bank_of_china"),
2820

2821
      @SerializedName("bank_rakyat")
×
2822
      BANK_RAKYAT("bank_rakyat"),
2823

2824
      @SerializedName("bsn")
×
2825
      BSN("bsn"),
2826

2827
      @SerializedName("cimb")
×
2828
      CIMB("cimb"),
2829

2830
      @SerializedName("deutsche_bank")
×
2831
      DEUTSCHE_BANK("deutsche_bank"),
2832

2833
      @SerializedName("hong_leong_bank")
×
2834
      HONG_LEONG_BANK("hong_leong_bank"),
2835

2836
      @SerializedName("hsbc")
×
2837
      HSBC("hsbc"),
2838

2839
      @SerializedName("kfh")
×
2840
      KFH("kfh"),
2841

2842
      @SerializedName("maybank2e")
×
2843
      MAYBANK2E("maybank2e"),
2844

2845
      @SerializedName("maybank2u")
×
2846
      MAYBANK2U("maybank2u"),
2847

2848
      @SerializedName("ocbc")
×
2849
      OCBC("ocbc"),
2850

2851
      @SerializedName("pb_enterprise")
×
2852
      PB_ENTERPRISE("pb_enterprise"),
2853

2854
      @SerializedName("public_bank")
×
2855
      PUBLIC_BANK("public_bank"),
2856

2857
      @SerializedName("rhb")
×
2858
      RHB("rhb"),
2859

2860
      @SerializedName("standard_chartered")
×
2861
      STANDARD_CHARTERED("standard_chartered"),
2862

2863
      @SerializedName("uob")
×
2864
      UOB("uob");
2865

2866
      @Getter(onMethod_ = {@Override})
2867
      private final String value;
2868

2869
      Bank(String value) {
×
2870
        this.value = value;
×
2871
      }
×
2872
    }
2873
  }
2874

2875
  @Getter
2876
  public static class Giropay {
2877
    /**
2878
     * Map of extra parameters for custom features not available in this client library. The content
2879
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2880
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2881
     * param object. Effectively, this map is flattened to its parent instance.
2882
     */
2883
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2884
    Map<String, Object> extraParams;
2885

2886
    private Giropay(Map<String, Object> extraParams) {
×
2887
      this.extraParams = extraParams;
×
2888
    }
×
2889

2890
    public static Builder builder() {
2891
      return new Builder();
×
2892
    }
2893

2894
    public static class Builder {
×
2895
      private Map<String, Object> extraParams;
2896

2897
      /** Finalize and obtain parameter instance from this builder. */
2898
      public PaymentMethodCreateParams.Giropay build() {
2899
        return new PaymentMethodCreateParams.Giropay(this.extraParams);
×
2900
      }
2901

2902
      /**
2903
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2904
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2905
       * PaymentMethodCreateParams.Giropay#extraParams} for the field documentation.
2906
       */
2907
      public Builder putExtraParam(String key, Object value) {
2908
        if (this.extraParams == null) {
×
2909
          this.extraParams = new HashMap<>();
×
2910
        }
2911
        this.extraParams.put(key, value);
×
2912
        return this;
×
2913
      }
2914

2915
      /**
2916
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2917
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2918
       * See {@link PaymentMethodCreateParams.Giropay#extraParams} for the field documentation.
2919
       */
2920
      public Builder putAllExtraParam(Map<String, Object> map) {
2921
        if (this.extraParams == null) {
×
2922
          this.extraParams = new HashMap<>();
×
2923
        }
2924
        this.extraParams.putAll(map);
×
2925
        return this;
×
2926
      }
2927
    }
2928
  }
2929

2930
  @Getter
2931
  public static class Grabpay {
2932
    /**
2933
     * Map of extra parameters for custom features not available in this client library. The content
2934
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2935
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2936
     * param object. Effectively, this map is flattened to its parent instance.
2937
     */
2938
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2939
    Map<String, Object> extraParams;
2940

2941
    private Grabpay(Map<String, Object> extraParams) {
×
2942
      this.extraParams = extraParams;
×
2943
    }
×
2944

2945
    public static Builder builder() {
2946
      return new Builder();
×
2947
    }
2948

2949
    public static class Builder {
×
2950
      private Map<String, Object> extraParams;
2951

2952
      /** Finalize and obtain parameter instance from this builder. */
2953
      public PaymentMethodCreateParams.Grabpay build() {
2954
        return new PaymentMethodCreateParams.Grabpay(this.extraParams);
×
2955
      }
2956

2957
      /**
2958
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2959
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2960
       * PaymentMethodCreateParams.Grabpay#extraParams} for the field documentation.
2961
       */
2962
      public Builder putExtraParam(String key, Object value) {
2963
        if (this.extraParams == null) {
×
2964
          this.extraParams = new HashMap<>();
×
2965
        }
2966
        this.extraParams.put(key, value);
×
2967
        return this;
×
2968
      }
2969

2970
      /**
2971
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2972
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2973
       * See {@link PaymentMethodCreateParams.Grabpay#extraParams} for the field documentation.
2974
       */
2975
      public Builder putAllExtraParam(Map<String, Object> map) {
2976
        if (this.extraParams == null) {
×
2977
          this.extraParams = new HashMap<>();
×
2978
        }
2979
        this.extraParams.putAll(map);
×
2980
        return this;
×
2981
      }
2982
    }
2983
  }
2984

2985
  @Getter
2986
  public static class Ideal {
2987
    /** The customer's bank. */
2988
    @SerializedName("bank")
2989
    Bank bank;
2990

2991
    /**
2992
     * Map of extra parameters for custom features not available in this client library. The content
2993
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2994
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2995
     * param object. Effectively, this map is flattened to its parent instance.
2996
     */
2997
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2998
    Map<String, Object> extraParams;
2999

3000
    private Ideal(Bank bank, Map<String, Object> extraParams) {
×
3001
      this.bank = bank;
×
3002
      this.extraParams = extraParams;
×
3003
    }
×
3004

3005
    public static Builder builder() {
3006
      return new Builder();
×
3007
    }
3008

3009
    public static class Builder {
×
3010
      private Bank bank;
3011

3012
      private Map<String, Object> extraParams;
3013

3014
      /** Finalize and obtain parameter instance from this builder. */
3015
      public PaymentMethodCreateParams.Ideal build() {
3016
        return new PaymentMethodCreateParams.Ideal(this.bank, this.extraParams);
×
3017
      }
3018

3019
      /** The customer's bank. */
3020
      public Builder setBank(PaymentMethodCreateParams.Ideal.Bank bank) {
3021
        this.bank = bank;
×
3022
        return this;
×
3023
      }
3024

3025
      /**
3026
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3027
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3028
       * PaymentMethodCreateParams.Ideal#extraParams} for the field documentation.
3029
       */
3030
      public Builder putExtraParam(String key, Object value) {
3031
        if (this.extraParams == null) {
×
3032
          this.extraParams = new HashMap<>();
×
3033
        }
3034
        this.extraParams.put(key, value);
×
3035
        return this;
×
3036
      }
3037

3038
      /**
3039
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3040
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3041
       * See {@link PaymentMethodCreateParams.Ideal#extraParams} for the field documentation.
3042
       */
3043
      public Builder putAllExtraParam(Map<String, Object> map) {
3044
        if (this.extraParams == null) {
×
3045
          this.extraParams = new HashMap<>();
×
3046
        }
3047
        this.extraParams.putAll(map);
×
3048
        return this;
×
3049
      }
3050
    }
3051

3052
    public enum Bank implements ApiRequestParams.EnumParam {
×
3053
      @SerializedName("abn_amro")
×
3054
      ABN_AMRO("abn_amro"),
3055

3056
      @SerializedName("asn_bank")
×
3057
      ASN_BANK("asn_bank"),
3058

3059
      @SerializedName("bunq")
×
3060
      BUNQ("bunq"),
3061

3062
      @SerializedName("handelsbanken")
×
3063
      HANDELSBANKEN("handelsbanken"),
3064

3065
      @SerializedName("ing")
×
3066
      ING("ing"),
3067

3068
      @SerializedName("knab")
×
3069
      KNAB("knab"),
3070

3071
      @SerializedName("moneyou")
×
3072
      MONEYOU("moneyou"),
3073

3074
      @SerializedName("n26")
×
3075
      N26("n26"),
3076

3077
      @SerializedName("nn")
×
3078
      NN("nn"),
3079

3080
      @SerializedName("rabobank")
×
3081
      RABOBANK("rabobank"),
3082

3083
      @SerializedName("regiobank")
×
3084
      REGIOBANK("regiobank"),
3085

3086
      @SerializedName("revolut")
×
3087
      REVOLUT("revolut"),
3088

3089
      @SerializedName("sns_bank")
×
3090
      SNS_BANK("sns_bank"),
3091

3092
      @SerializedName("triodos_bank")
×
3093
      TRIODOS_BANK("triodos_bank"),
3094

3095
      @SerializedName("van_lanschot")
×
3096
      VAN_LANSCHOT("van_lanschot"),
3097

3098
      @SerializedName("yoursafe")
×
3099
      YOURSAFE("yoursafe");
3100

3101
      @Getter(onMethod_ = {@Override})
3102
      private final String value;
3103

3104
      Bank(String value) {
×
3105
        this.value = value;
×
3106
      }
×
3107
    }
3108
  }
3109

3110
  @Getter
3111
  public static class InteracPresent {
3112
    /**
3113
     * Map of extra parameters for custom features not available in this client library. The content
3114
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3115
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3116
     * param object. Effectively, this map is flattened to its parent instance.
3117
     */
3118
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3119
    Map<String, Object> extraParams;
3120

3121
    private InteracPresent(Map<String, Object> extraParams) {
×
3122
      this.extraParams = extraParams;
×
3123
    }
×
3124

3125
    public static Builder builder() {
3126
      return new Builder();
×
3127
    }
3128

3129
    public static class Builder {
×
3130
      private Map<String, Object> extraParams;
3131

3132
      /** Finalize and obtain parameter instance from this builder. */
3133
      public PaymentMethodCreateParams.InteracPresent build() {
3134
        return new PaymentMethodCreateParams.InteracPresent(this.extraParams);
×
3135
      }
3136

3137
      /**
3138
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3139
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3140
       * PaymentMethodCreateParams.InteracPresent#extraParams} for the field documentation.
3141
       */
3142
      public Builder putExtraParam(String key, Object value) {
3143
        if (this.extraParams == null) {
×
3144
          this.extraParams = new HashMap<>();
×
3145
        }
3146
        this.extraParams.put(key, value);
×
3147
        return this;
×
3148
      }
3149

3150
      /**
3151
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3152
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3153
       * See {@link PaymentMethodCreateParams.InteracPresent#extraParams} for the field
3154
       * documentation.
3155
       */
3156
      public Builder putAllExtraParam(Map<String, Object> map) {
3157
        if (this.extraParams == null) {
×
3158
          this.extraParams = new HashMap<>();
×
3159
        }
3160
        this.extraParams.putAll(map);
×
3161
        return this;
×
3162
      }
3163
    }
3164
  }
3165

3166
  @Getter
3167
  public static class KakaoPay {
3168
    /**
3169
     * Map of extra parameters for custom features not available in this client library. The content
3170
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3171
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3172
     * param object. Effectively, this map is flattened to its parent instance.
3173
     */
3174
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3175
    Map<String, Object> extraParams;
3176

NEW
3177
    private KakaoPay(Map<String, Object> extraParams) {
×
NEW
3178
      this.extraParams = extraParams;
×
NEW
3179
    }
×
3180

3181
    public static Builder builder() {
NEW
3182
      return new Builder();
×
3183
    }
3184

NEW
3185
    public static class Builder {
×
3186
      private Map<String, Object> extraParams;
3187

3188
      /** Finalize and obtain parameter instance from this builder. */
3189
      public PaymentMethodCreateParams.KakaoPay build() {
NEW
3190
        return new PaymentMethodCreateParams.KakaoPay(this.extraParams);
×
3191
      }
3192

3193
      /**
3194
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3195
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3196
       * PaymentMethodCreateParams.KakaoPay#extraParams} for the field documentation.
3197
       */
3198
      public Builder putExtraParam(String key, Object value) {
NEW
3199
        if (this.extraParams == null) {
×
NEW
3200
          this.extraParams = new HashMap<>();
×
3201
        }
NEW
3202
        this.extraParams.put(key, value);
×
NEW
3203
        return this;
×
3204
      }
3205

3206
      /**
3207
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3208
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3209
       * See {@link PaymentMethodCreateParams.KakaoPay#extraParams} for the field documentation.
3210
       */
3211
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
3212
        if (this.extraParams == null) {
×
NEW
3213
          this.extraParams = new HashMap<>();
×
3214
        }
NEW
3215
        this.extraParams.putAll(map);
×
NEW
3216
        return this;
×
3217
      }
3218
    }
3219
  }
3220

3221
  @Getter
3222
  public static class Klarna {
3223
    /** Customer's date of birth. */
3224
    @SerializedName("dob")
3225
    Dob dob;
3226

3227
    /**
3228
     * Map of extra parameters for custom features not available in this client library. The content
3229
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3230
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3231
     * param object. Effectively, this map is flattened to its parent instance.
3232
     */
3233
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3234
    Map<String, Object> extraParams;
3235

3236
    private Klarna(Dob dob, Map<String, Object> extraParams) {
×
3237
      this.dob = dob;
×
3238
      this.extraParams = extraParams;
×
3239
    }
×
3240

3241
    public static Builder builder() {
3242
      return new Builder();
×
3243
    }
3244

3245
    public static class Builder {
×
3246
      private Dob dob;
3247

3248
      private Map<String, Object> extraParams;
3249

3250
      /** Finalize and obtain parameter instance from this builder. */
3251
      public PaymentMethodCreateParams.Klarna build() {
3252
        return new PaymentMethodCreateParams.Klarna(this.dob, this.extraParams);
×
3253
      }
3254

3255
      /** Customer's date of birth. */
3256
      public Builder setDob(PaymentMethodCreateParams.Klarna.Dob dob) {
3257
        this.dob = dob;
×
3258
        return this;
×
3259
      }
3260

3261
      /**
3262
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3263
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3264
       * PaymentMethodCreateParams.Klarna#extraParams} for the field documentation.
3265
       */
3266
      public Builder putExtraParam(String key, Object value) {
3267
        if (this.extraParams == null) {
×
3268
          this.extraParams = new HashMap<>();
×
3269
        }
3270
        this.extraParams.put(key, value);
×
3271
        return this;
×
3272
      }
3273

3274
      /**
3275
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3276
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3277
       * See {@link PaymentMethodCreateParams.Klarna#extraParams} for the field documentation.
3278
       */
3279
      public Builder putAllExtraParam(Map<String, Object> map) {
3280
        if (this.extraParams == null) {
×
3281
          this.extraParams = new HashMap<>();
×
3282
        }
3283
        this.extraParams.putAll(map);
×
3284
        return this;
×
3285
      }
3286
    }
3287

3288
    @Getter
3289
    public static class Dob {
3290
      /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3291
      @SerializedName("day")
3292
      Long day;
3293

3294
      /**
3295
       * Map of extra parameters for custom features not available in this client library. The
3296
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3297
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3298
       * name in this param object. Effectively, this map is flattened to its parent instance.
3299
       */
3300
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3301
      Map<String, Object> extraParams;
3302

3303
      /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3304
      @SerializedName("month")
3305
      Long month;
3306

3307
      /** <strong>Required.</strong> The four-digit year of birth. */
3308
      @SerializedName("year")
3309
      Long year;
3310

3311
      private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
3312
        this.day = day;
×
3313
        this.extraParams = extraParams;
×
3314
        this.month = month;
×
3315
        this.year = year;
×
3316
      }
×
3317

3318
      public static Builder builder() {
3319
        return new Builder();
×
3320
      }
3321

3322
      public static class Builder {
×
3323
        private Long day;
3324

3325
        private Map<String, Object> extraParams;
3326

3327
        private Long month;
3328

3329
        private Long year;
3330

3331
        /** Finalize and obtain parameter instance from this builder. */
3332
        public PaymentMethodCreateParams.Klarna.Dob build() {
3333
          return new PaymentMethodCreateParams.Klarna.Dob(
×
3334
              this.day, this.extraParams, this.month, this.year);
3335
        }
3336

3337
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3338
        public Builder setDay(Long day) {
3339
          this.day = day;
×
3340
          return this;
×
3341
        }
3342

3343
        /**
3344
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3345
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3346
         * map. See {@link PaymentMethodCreateParams.Klarna.Dob#extraParams} for the field
3347
         * documentation.
3348
         */
3349
        public Builder putExtraParam(String key, Object value) {
3350
          if (this.extraParams == null) {
×
3351
            this.extraParams = new HashMap<>();
×
3352
          }
3353
          this.extraParams.put(key, value);
×
3354
          return this;
×
3355
        }
3356

3357
        /**
3358
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3359
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3360
         * map. See {@link PaymentMethodCreateParams.Klarna.Dob#extraParams} for the field
3361
         * documentation.
3362
         */
3363
        public Builder putAllExtraParam(Map<String, Object> map) {
3364
          if (this.extraParams == null) {
×
3365
            this.extraParams = new HashMap<>();
×
3366
          }
3367
          this.extraParams.putAll(map);
×
3368
          return this;
×
3369
        }
3370

3371
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3372
        public Builder setMonth(Long month) {
3373
          this.month = month;
×
3374
          return this;
×
3375
        }
3376

3377
        /** <strong>Required.</strong> The four-digit year of birth. */
3378
        public Builder setYear(Long year) {
3379
          this.year = year;
×
3380
          return this;
×
3381
        }
3382
      }
3383
    }
3384
  }
3385

3386
  @Getter
3387
  public static class Konbini {
3388
    /**
3389
     * Map of extra parameters for custom features not available in this client library. The content
3390
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3391
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3392
     * param object. Effectively, this map is flattened to its parent instance.
3393
     */
3394
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3395
    Map<String, Object> extraParams;
3396

3397
    private Konbini(Map<String, Object> extraParams) {
×
3398
      this.extraParams = extraParams;
×
3399
    }
×
3400

3401
    public static Builder builder() {
3402
      return new Builder();
×
3403
    }
3404

3405
    public static class Builder {
×
3406
      private Map<String, Object> extraParams;
3407

3408
      /** Finalize and obtain parameter instance from this builder. */
3409
      public PaymentMethodCreateParams.Konbini build() {
3410
        return new PaymentMethodCreateParams.Konbini(this.extraParams);
×
3411
      }
3412

3413
      /**
3414
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3415
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3416
       * PaymentMethodCreateParams.Konbini#extraParams} for the field documentation.
3417
       */
3418
      public Builder putExtraParam(String key, Object value) {
3419
        if (this.extraParams == null) {
×
3420
          this.extraParams = new HashMap<>();
×
3421
        }
3422
        this.extraParams.put(key, value);
×
3423
        return this;
×
3424
      }
3425

3426
      /**
3427
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3428
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3429
       * See {@link PaymentMethodCreateParams.Konbini#extraParams} for the field documentation.
3430
       */
3431
      public Builder putAllExtraParam(Map<String, Object> map) {
3432
        if (this.extraParams == null) {
×
3433
          this.extraParams = new HashMap<>();
×
3434
        }
3435
        this.extraParams.putAll(map);
×
3436
        return this;
×
3437
      }
3438
    }
3439
  }
3440

3441
  @Getter
3442
  public static class KrCard {
3443
    /**
3444
     * Map of extra parameters for custom features not available in this client library. The content
3445
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3446
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3447
     * param object. Effectively, this map is flattened to its parent instance.
3448
     */
3449
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3450
    Map<String, Object> extraParams;
3451

NEW
3452
    private KrCard(Map<String, Object> extraParams) {
×
NEW
3453
      this.extraParams = extraParams;
×
NEW
3454
    }
×
3455

3456
    public static Builder builder() {
NEW
3457
      return new Builder();
×
3458
    }
3459

NEW
3460
    public static class Builder {
×
3461
      private Map<String, Object> extraParams;
3462

3463
      /** Finalize and obtain parameter instance from this builder. */
3464
      public PaymentMethodCreateParams.KrCard build() {
NEW
3465
        return new PaymentMethodCreateParams.KrCard(this.extraParams);
×
3466
      }
3467

3468
      /**
3469
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3470
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3471
       * PaymentMethodCreateParams.KrCard#extraParams} for the field documentation.
3472
       */
3473
      public Builder putExtraParam(String key, Object value) {
NEW
3474
        if (this.extraParams == null) {
×
NEW
3475
          this.extraParams = new HashMap<>();
×
3476
        }
NEW
3477
        this.extraParams.put(key, value);
×
NEW
3478
        return this;
×
3479
      }
3480

3481
      /**
3482
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3483
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3484
       * See {@link PaymentMethodCreateParams.KrCard#extraParams} for the field documentation.
3485
       */
3486
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
3487
        if (this.extraParams == null) {
×
NEW
3488
          this.extraParams = new HashMap<>();
×
3489
        }
NEW
3490
        this.extraParams.putAll(map);
×
NEW
3491
        return this;
×
3492
      }
3493
    }
3494
  }
3495

3496
  @Getter
3497
  public static class Link {
3498
    /**
3499
     * Map of extra parameters for custom features not available in this client library. The content
3500
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3501
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3502
     * param object. Effectively, this map is flattened to its parent instance.
3503
     */
3504
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3505
    Map<String, Object> extraParams;
3506

3507
    private Link(Map<String, Object> extraParams) {
×
3508
      this.extraParams = extraParams;
×
3509
    }
×
3510

3511
    public static Builder builder() {
3512
      return new Builder();
×
3513
    }
3514

3515
    public static class Builder {
×
3516
      private Map<String, Object> extraParams;
3517

3518
      /** Finalize and obtain parameter instance from this builder. */
3519
      public PaymentMethodCreateParams.Link build() {
3520
        return new PaymentMethodCreateParams.Link(this.extraParams);
×
3521
      }
3522

3523
      /**
3524
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3525
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3526
       * PaymentMethodCreateParams.Link#extraParams} for the field documentation.
3527
       */
3528
      public Builder putExtraParam(String key, Object value) {
3529
        if (this.extraParams == null) {
×
3530
          this.extraParams = new HashMap<>();
×
3531
        }
3532
        this.extraParams.put(key, value);
×
3533
        return this;
×
3534
      }
3535

3536
      /**
3537
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3538
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3539
       * See {@link PaymentMethodCreateParams.Link#extraParams} for the field documentation.
3540
       */
3541
      public Builder putAllExtraParam(Map<String, Object> map) {
3542
        if (this.extraParams == null) {
×
3543
          this.extraParams = new HashMap<>();
×
3544
        }
3545
        this.extraParams.putAll(map);
×
3546
        return this;
×
3547
      }
3548
    }
3549
  }
3550

3551
  @Getter
3552
  public static class MbWay {
3553
    /**
3554
     * Map of extra parameters for custom features not available in this client library. The content
3555
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3556
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3557
     * param object. Effectively, this map is flattened to its parent instance.
3558
     */
3559
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3560
    Map<String, Object> extraParams;
3561

3562
    private MbWay(Map<String, Object> extraParams) {
×
3563
      this.extraParams = extraParams;
×
3564
    }
×
3565

3566
    public static Builder builder() {
3567
      return new Builder();
×
3568
    }
3569

3570
    public static class Builder {
×
3571
      private Map<String, Object> extraParams;
3572

3573
      /** Finalize and obtain parameter instance from this builder. */
3574
      public PaymentMethodCreateParams.MbWay build() {
3575
        return new PaymentMethodCreateParams.MbWay(this.extraParams);
×
3576
      }
3577

3578
      /**
3579
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3580
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3581
       * PaymentMethodCreateParams.MbWay#extraParams} for the field documentation.
3582
       */
3583
      public Builder putExtraParam(String key, Object value) {
3584
        if (this.extraParams == null) {
×
3585
          this.extraParams = new HashMap<>();
×
3586
        }
3587
        this.extraParams.put(key, value);
×
3588
        return this;
×
3589
      }
3590

3591
      /**
3592
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3593
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3594
       * See {@link PaymentMethodCreateParams.MbWay#extraParams} for the field documentation.
3595
       */
3596
      public Builder putAllExtraParam(Map<String, Object> map) {
3597
        if (this.extraParams == null) {
×
3598
          this.extraParams = new HashMap<>();
×
3599
        }
3600
        this.extraParams.putAll(map);
×
3601
        return this;
×
3602
      }
3603
    }
3604
  }
3605

3606
  @Getter
3607
  public static class Mobilepay {
3608
    /**
3609
     * Map of extra parameters for custom features not available in this client library. The content
3610
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3611
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3612
     * param object. Effectively, this map is flattened to its parent instance.
3613
     */
3614
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3615
    Map<String, Object> extraParams;
3616

3617
    private Mobilepay(Map<String, Object> extraParams) {
×
3618
      this.extraParams = extraParams;
×
3619
    }
×
3620

3621
    public static Builder builder() {
3622
      return new Builder();
×
3623
    }
3624

3625
    public static class Builder {
×
3626
      private Map<String, Object> extraParams;
3627

3628
      /** Finalize and obtain parameter instance from this builder. */
3629
      public PaymentMethodCreateParams.Mobilepay build() {
3630
        return new PaymentMethodCreateParams.Mobilepay(this.extraParams);
×
3631
      }
3632

3633
      /**
3634
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3635
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3636
       * PaymentMethodCreateParams.Mobilepay#extraParams} for the field documentation.
3637
       */
3638
      public Builder putExtraParam(String key, Object value) {
3639
        if (this.extraParams == null) {
×
3640
          this.extraParams = new HashMap<>();
×
3641
        }
3642
        this.extraParams.put(key, value);
×
3643
        return this;
×
3644
      }
3645

3646
      /**
3647
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3648
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3649
       * See {@link PaymentMethodCreateParams.Mobilepay#extraParams} for the field documentation.
3650
       */
3651
      public Builder putAllExtraParam(Map<String, Object> map) {
3652
        if (this.extraParams == null) {
×
3653
          this.extraParams = new HashMap<>();
×
3654
        }
3655
        this.extraParams.putAll(map);
×
3656
        return this;
×
3657
      }
3658
    }
3659
  }
3660

3661
  @Getter
3662
  public static class Multibanco {
3663
    /**
3664
     * Map of extra parameters for custom features not available in this client library. The content
3665
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3666
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3667
     * param object. Effectively, this map is flattened to its parent instance.
3668
     */
3669
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3670
    Map<String, Object> extraParams;
3671

3672
    private Multibanco(Map<String, Object> extraParams) {
×
3673
      this.extraParams = extraParams;
×
3674
    }
×
3675

3676
    public static Builder builder() {
3677
      return new Builder();
×
3678
    }
3679

3680
    public static class Builder {
×
3681
      private Map<String, Object> extraParams;
3682

3683
      /** Finalize and obtain parameter instance from this builder. */
3684
      public PaymentMethodCreateParams.Multibanco build() {
3685
        return new PaymentMethodCreateParams.Multibanco(this.extraParams);
×
3686
      }
3687

3688
      /**
3689
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3690
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3691
       * PaymentMethodCreateParams.Multibanco#extraParams} for the field documentation.
3692
       */
3693
      public Builder putExtraParam(String key, Object value) {
3694
        if (this.extraParams == null) {
×
3695
          this.extraParams = new HashMap<>();
×
3696
        }
3697
        this.extraParams.put(key, value);
×
3698
        return this;
×
3699
      }
3700

3701
      /**
3702
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3703
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3704
       * See {@link PaymentMethodCreateParams.Multibanco#extraParams} for the field documentation.
3705
       */
3706
      public Builder putAllExtraParam(Map<String, Object> map) {
3707
        if (this.extraParams == null) {
×
3708
          this.extraParams = new HashMap<>();
×
3709
        }
3710
        this.extraParams.putAll(map);
×
3711
        return this;
×
3712
      }
3713
    }
3714
  }
3715

3716
  @Getter
3717
  public static class NaverPay {
3718
    /**
3719
     * Map of extra parameters for custom features not available in this client library. The content
3720
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3721
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3722
     * param object. Effectively, this map is flattened to its parent instance.
3723
     */
3724
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3725
    Map<String, Object> extraParams;
3726

3727
    /**
3728
     * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3729
     * defaults to {@code card}.
3730
     */
3731
    @SerializedName("funding")
3732
    Funding funding;
3733

NEW
3734
    private NaverPay(Map<String, Object> extraParams, Funding funding) {
×
NEW
3735
      this.extraParams = extraParams;
×
NEW
3736
      this.funding = funding;
×
NEW
3737
    }
×
3738

3739
    public static Builder builder() {
NEW
3740
      return new Builder();
×
3741
    }
3742

NEW
3743
    public static class Builder {
×
3744
      private Map<String, Object> extraParams;
3745

3746
      private Funding funding;
3747

3748
      /** Finalize and obtain parameter instance from this builder. */
3749
      public PaymentMethodCreateParams.NaverPay build() {
NEW
3750
        return new PaymentMethodCreateParams.NaverPay(this.extraParams, this.funding);
×
3751
      }
3752

3753
      /**
3754
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3755
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3756
       * PaymentMethodCreateParams.NaverPay#extraParams} for the field documentation.
3757
       */
3758
      public Builder putExtraParam(String key, Object value) {
NEW
3759
        if (this.extraParams == null) {
×
NEW
3760
          this.extraParams = new HashMap<>();
×
3761
        }
NEW
3762
        this.extraParams.put(key, value);
×
NEW
3763
        return this;
×
3764
      }
3765

3766
      /**
3767
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3768
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3769
       * See {@link PaymentMethodCreateParams.NaverPay#extraParams} for the field documentation.
3770
       */
3771
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
3772
        if (this.extraParams == null) {
×
NEW
3773
          this.extraParams = new HashMap<>();
×
3774
        }
NEW
3775
        this.extraParams.putAll(map);
×
NEW
3776
        return this;
×
3777
      }
3778

3779
      /**
3780
       * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3781
       * defaults to {@code card}.
3782
       */
3783
      public Builder setFunding(PaymentMethodCreateParams.NaverPay.Funding funding) {
NEW
3784
        this.funding = funding;
×
NEW
3785
        return this;
×
3786
      }
3787
    }
3788

NEW
3789
    public enum Funding implements ApiRequestParams.EnumParam {
×
NEW
3790
      @SerializedName("card")
×
3791
      CARD("card"),
3792

NEW
3793
      @SerializedName("points")
×
3794
      POINTS("points");
3795

3796
      @Getter(onMethod_ = {@Override})
3797
      private final String value;
3798

NEW
3799
      Funding(String value) {
×
NEW
3800
        this.value = value;
×
NEW
3801
      }
×
3802
    }
3803
  }
3804

3805
  @Getter
3806
  public static class Oxxo {
3807
    /**
3808
     * Map of extra parameters for custom features not available in this client library. The content
3809
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3810
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3811
     * param object. Effectively, this map is flattened to its parent instance.
3812
     */
3813
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3814
    Map<String, Object> extraParams;
3815

3816
    private Oxxo(Map<String, Object> extraParams) {
×
3817
      this.extraParams = extraParams;
×
3818
    }
×
3819

3820
    public static Builder builder() {
3821
      return new Builder();
×
3822
    }
3823

3824
    public static class Builder {
×
3825
      private Map<String, Object> extraParams;
3826

3827
      /** Finalize and obtain parameter instance from this builder. */
3828
      public PaymentMethodCreateParams.Oxxo build() {
3829
        return new PaymentMethodCreateParams.Oxxo(this.extraParams);
×
3830
      }
3831

3832
      /**
3833
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3834
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3835
       * PaymentMethodCreateParams.Oxxo#extraParams} for the field documentation.
3836
       */
3837
      public Builder putExtraParam(String key, Object value) {
3838
        if (this.extraParams == null) {
×
3839
          this.extraParams = new HashMap<>();
×
3840
        }
3841
        this.extraParams.put(key, value);
×
3842
        return this;
×
3843
      }
3844

3845
      /**
3846
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3847
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3848
       * See {@link PaymentMethodCreateParams.Oxxo#extraParams} for the field documentation.
3849
       */
3850
      public Builder putAllExtraParam(Map<String, Object> map) {
3851
        if (this.extraParams == null) {
×
3852
          this.extraParams = new HashMap<>();
×
3853
        }
3854
        this.extraParams.putAll(map);
×
3855
        return this;
×
3856
      }
3857
    }
3858
  }
3859

3860
  @Getter
3861
  public static class P24 {
3862
    /** The customer's bank. */
3863
    @SerializedName("bank")
3864
    Bank bank;
3865

3866
    /**
3867
     * Map of extra parameters for custom features not available in this client library. The content
3868
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3869
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3870
     * param object. Effectively, this map is flattened to its parent instance.
3871
     */
3872
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3873
    Map<String, Object> extraParams;
3874

3875
    private P24(Bank bank, Map<String, Object> extraParams) {
×
3876
      this.bank = bank;
×
3877
      this.extraParams = extraParams;
×
3878
    }
×
3879

3880
    public static Builder builder() {
3881
      return new Builder();
×
3882
    }
3883

3884
    public static class Builder {
×
3885
      private Bank bank;
3886

3887
      private Map<String, Object> extraParams;
3888

3889
      /** Finalize and obtain parameter instance from this builder. */
3890
      public PaymentMethodCreateParams.P24 build() {
3891
        return new PaymentMethodCreateParams.P24(this.bank, this.extraParams);
×
3892
      }
3893

3894
      /** The customer's bank. */
3895
      public Builder setBank(PaymentMethodCreateParams.P24.Bank bank) {
3896
        this.bank = bank;
×
3897
        return this;
×
3898
      }
3899

3900
      /**
3901
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3902
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3903
       * PaymentMethodCreateParams.P24#extraParams} for the field documentation.
3904
       */
3905
      public Builder putExtraParam(String key, Object value) {
3906
        if (this.extraParams == null) {
×
3907
          this.extraParams = new HashMap<>();
×
3908
        }
3909
        this.extraParams.put(key, value);
×
3910
        return this;
×
3911
      }
3912

3913
      /**
3914
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3915
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3916
       * See {@link PaymentMethodCreateParams.P24#extraParams} for the field documentation.
3917
       */
3918
      public Builder putAllExtraParam(Map<String, Object> map) {
3919
        if (this.extraParams == null) {
×
3920
          this.extraParams = new HashMap<>();
×
3921
        }
3922
        this.extraParams.putAll(map);
×
3923
        return this;
×
3924
      }
3925
    }
3926

3927
    public enum Bank implements ApiRequestParams.EnumParam {
×
3928
      @SerializedName("alior_bank")
×
3929
      ALIOR_BANK("alior_bank"),
3930

3931
      @SerializedName("bank_millennium")
×
3932
      BANK_MILLENNIUM("bank_millennium"),
3933

3934
      @SerializedName("bank_nowy_bfg_sa")
×
3935
      BANK_NOWY_BFG_SA("bank_nowy_bfg_sa"),
3936

3937
      @SerializedName("bank_pekao_sa")
×
3938
      BANK_PEKAO_SA("bank_pekao_sa"),
3939

3940
      @SerializedName("banki_spbdzielcze")
×
3941
      BANKI_SPBDZIELCZE("banki_spbdzielcze"),
3942

3943
      @SerializedName("blik")
×
3944
      BLIK("blik"),
3945

3946
      @SerializedName("bnp_paribas")
×
3947
      BNP_PARIBAS("bnp_paribas"),
3948

3949
      @SerializedName("boz")
×
3950
      BOZ("boz"),
3951

3952
      @SerializedName("citi_handlowy")
×
3953
      CITI_HANDLOWY("citi_handlowy"),
3954

3955
      @SerializedName("credit_agricole")
×
3956
      CREDIT_AGRICOLE("credit_agricole"),
3957

3958
      @SerializedName("envelobank")
×
3959
      ENVELOBANK("envelobank"),
3960

3961
      @SerializedName("etransfer_pocztowy24")
×
3962
      ETRANSFER_POCZTOWY24("etransfer_pocztowy24"),
3963

3964
      @SerializedName("getin_bank")
×
3965
      GETIN_BANK("getin_bank"),
3966

3967
      @SerializedName("ideabank")
×
3968
      IDEABANK("ideabank"),
3969

3970
      @SerializedName("ing")
×
3971
      ING("ing"),
3972

3973
      @SerializedName("inteligo")
×
3974
      INTELIGO("inteligo"),
3975

3976
      @SerializedName("mbank_mtransfer")
×
3977
      MBANK_MTRANSFER("mbank_mtransfer"),
3978

3979
      @SerializedName("nest_przelew")
×
3980
      NEST_PRZELEW("nest_przelew"),
3981

3982
      @SerializedName("noble_pay")
×
3983
      NOBLE_PAY("noble_pay"),
3984

3985
      @SerializedName("pbac_z_ipko")
×
3986
      PBAC_Z_IPKO("pbac_z_ipko"),
3987

3988
      @SerializedName("plus_bank")
×
3989
      PLUS_BANK("plus_bank"),
3990

3991
      @SerializedName("santander_przelew24")
×
3992
      SANTANDER_PRZELEW24("santander_przelew24"),
3993

3994
      @SerializedName("tmobile_usbugi_bankowe")
×
3995
      TMOBILE_USBUGI_BANKOWE("tmobile_usbugi_bankowe"),
3996

3997
      @SerializedName("toyota_bank")
×
3998
      TOYOTA_BANK("toyota_bank"),
3999

4000
      @SerializedName("velobank")
×
4001
      VELOBANK("velobank"),
4002

4003
      @SerializedName("volkswagen_bank")
×
4004
      VOLKSWAGEN_BANK("volkswagen_bank");
4005

4006
      @Getter(onMethod_ = {@Override})
4007
      private final String value;
4008

4009
      Bank(String value) {
×
4010
        this.value = value;
×
4011
      }
×
4012
    }
4013
  }
4014

4015
  @Getter
4016
  public static class Payco {
4017
    /**
4018
     * Map of extra parameters for custom features not available in this client library. The content
4019
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4020
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4021
     * param object. Effectively, this map is flattened to its parent instance.
4022
     */
4023
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4024
    Map<String, Object> extraParams;
4025

NEW
4026
    private Payco(Map<String, Object> extraParams) {
×
NEW
4027
      this.extraParams = extraParams;
×
NEW
4028
    }
×
4029

4030
    public static Builder builder() {
NEW
4031
      return new Builder();
×
4032
    }
4033

NEW
4034
    public static class Builder {
×
4035
      private Map<String, Object> extraParams;
4036

4037
      /** Finalize and obtain parameter instance from this builder. */
4038
      public PaymentMethodCreateParams.Payco build() {
NEW
4039
        return new PaymentMethodCreateParams.Payco(this.extraParams);
×
4040
      }
4041

4042
      /**
4043
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4044
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4045
       * PaymentMethodCreateParams.Payco#extraParams} for the field documentation.
4046
       */
4047
      public Builder putExtraParam(String key, Object value) {
NEW
4048
        if (this.extraParams == null) {
×
NEW
4049
          this.extraParams = new HashMap<>();
×
4050
        }
NEW
4051
        this.extraParams.put(key, value);
×
NEW
4052
        return this;
×
4053
      }
4054

4055
      /**
4056
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4057
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4058
       * See {@link PaymentMethodCreateParams.Payco#extraParams} for the field documentation.
4059
       */
4060
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
4061
        if (this.extraParams == null) {
×
NEW
4062
          this.extraParams = new HashMap<>();
×
4063
        }
NEW
4064
        this.extraParams.putAll(map);
×
NEW
4065
        return this;
×
4066
      }
4067
    }
4068
  }
4069

4070
  @Getter
4071
  public static class Paynow {
4072
    /**
4073
     * Map of extra parameters for custom features not available in this client library. The content
4074
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4075
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4076
     * param object. Effectively, this map is flattened to its parent instance.
4077
     */
4078
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4079
    Map<String, Object> extraParams;
4080

4081
    private Paynow(Map<String, Object> extraParams) {
×
4082
      this.extraParams = extraParams;
×
4083
    }
×
4084

4085
    public static Builder builder() {
4086
      return new Builder();
×
4087
    }
4088

4089
    public static class Builder {
×
4090
      private Map<String, Object> extraParams;
4091

4092
      /** Finalize and obtain parameter instance from this builder. */
4093
      public PaymentMethodCreateParams.Paynow build() {
4094
        return new PaymentMethodCreateParams.Paynow(this.extraParams);
×
4095
      }
4096

4097
      /**
4098
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4099
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4100
       * PaymentMethodCreateParams.Paynow#extraParams} for the field documentation.
4101
       */
4102
      public Builder putExtraParam(String key, Object value) {
4103
        if (this.extraParams == null) {
×
4104
          this.extraParams = new HashMap<>();
×
4105
        }
4106
        this.extraParams.put(key, value);
×
4107
        return this;
×
4108
      }
4109

4110
      /**
4111
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4112
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4113
       * See {@link PaymentMethodCreateParams.Paynow#extraParams} for the field documentation.
4114
       */
4115
      public Builder putAllExtraParam(Map<String, Object> map) {
4116
        if (this.extraParams == null) {
×
4117
          this.extraParams = new HashMap<>();
×
4118
        }
4119
        this.extraParams.putAll(map);
×
4120
        return this;
×
4121
      }
4122
    }
4123
  }
4124

4125
  @Getter
4126
  public static class Paypal {
4127
    /**
4128
     * Map of extra parameters for custom features not available in this client library. The content
4129
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4130
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4131
     * param object. Effectively, this map is flattened to its parent instance.
4132
     */
4133
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4134
    Map<String, Object> extraParams;
4135

4136
    private Paypal(Map<String, Object> extraParams) {
×
4137
      this.extraParams = extraParams;
×
4138
    }
×
4139

4140
    public static Builder builder() {
4141
      return new Builder();
×
4142
    }
4143

4144
    public static class Builder {
×
4145
      private Map<String, Object> extraParams;
4146

4147
      /** Finalize and obtain parameter instance from this builder. */
4148
      public PaymentMethodCreateParams.Paypal build() {
4149
        return new PaymentMethodCreateParams.Paypal(this.extraParams);
×
4150
      }
4151

4152
      /**
4153
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4154
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4155
       * PaymentMethodCreateParams.Paypal#extraParams} for the field documentation.
4156
       */
4157
      public Builder putExtraParam(String key, Object value) {
4158
        if (this.extraParams == null) {
×
4159
          this.extraParams = new HashMap<>();
×
4160
        }
4161
        this.extraParams.put(key, value);
×
4162
        return this;
×
4163
      }
4164

4165
      /**
4166
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4167
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4168
       * See {@link PaymentMethodCreateParams.Paypal#extraParams} for the field documentation.
4169
       */
4170
      public Builder putAllExtraParam(Map<String, Object> map) {
4171
        if (this.extraParams == null) {
×
4172
          this.extraParams = new HashMap<>();
×
4173
        }
4174
        this.extraParams.putAll(map);
×
4175
        return this;
×
4176
      }
4177
    }
4178
  }
4179

4180
  @Getter
4181
  public static class Payto {
4182
    /** The account number for the bank account. */
4183
    @SerializedName("account_number")
4184
    String accountNumber;
4185

4186
    /** Bank-State-Branch number of the bank account. */
4187
    @SerializedName("bsb_number")
4188
    String bsbNumber;
4189

4190
    /**
4191
     * Map of extra parameters for custom features not available in this client library. The content
4192
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4193
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4194
     * param object. Effectively, this map is flattened to its parent instance.
4195
     */
4196
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4197
    Map<String, Object> extraParams;
4198

4199
    /** The PayID alias for the bank account. */
4200
    @SerializedName("pay_id")
4201
    String payId;
4202

4203
    private Payto(
4204
        String accountNumber, String bsbNumber, Map<String, Object> extraParams, String payId) {
×
4205
      this.accountNumber = accountNumber;
×
4206
      this.bsbNumber = bsbNumber;
×
4207
      this.extraParams = extraParams;
×
4208
      this.payId = payId;
×
4209
    }
×
4210

4211
    public static Builder builder() {
4212
      return new Builder();
×
4213
    }
4214

4215
    public static class Builder {
×
4216
      private String accountNumber;
4217

4218
      private String bsbNumber;
4219

4220
      private Map<String, Object> extraParams;
4221

4222
      private String payId;
4223

4224
      /** Finalize and obtain parameter instance from this builder. */
4225
      public PaymentMethodCreateParams.Payto build() {
4226
        return new PaymentMethodCreateParams.Payto(
×
4227
            this.accountNumber, this.bsbNumber, this.extraParams, this.payId);
4228
      }
4229

4230
      /** The account number for the bank account. */
4231
      public Builder setAccountNumber(String accountNumber) {
4232
        this.accountNumber = accountNumber;
×
4233
        return this;
×
4234
      }
4235

4236
      /** Bank-State-Branch number of the bank account. */
4237
      public Builder setBsbNumber(String bsbNumber) {
4238
        this.bsbNumber = bsbNumber;
×
4239
        return this;
×
4240
      }
4241

4242
      /**
4243
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4244
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4245
       * PaymentMethodCreateParams.Payto#extraParams} for the field documentation.
4246
       */
4247
      public Builder putExtraParam(String key, Object value) {
4248
        if (this.extraParams == null) {
×
4249
          this.extraParams = new HashMap<>();
×
4250
        }
4251
        this.extraParams.put(key, value);
×
4252
        return this;
×
4253
      }
4254

4255
      /**
4256
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4257
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4258
       * See {@link PaymentMethodCreateParams.Payto#extraParams} for the field documentation.
4259
       */
4260
      public Builder putAllExtraParam(Map<String, Object> map) {
4261
        if (this.extraParams == null) {
×
4262
          this.extraParams = new HashMap<>();
×
4263
        }
4264
        this.extraParams.putAll(map);
×
4265
        return this;
×
4266
      }
4267

4268
      /** The PayID alias for the bank account. */
4269
      public Builder setPayId(String payId) {
4270
        this.payId = payId;
×
4271
        return this;
×
4272
      }
4273
    }
4274
  }
4275

4276
  @Getter
4277
  public static class Pix {
4278
    /**
4279
     * Map of extra parameters for custom features not available in this client library. The content
4280
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4281
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4282
     * param object. Effectively, this map is flattened to its parent instance.
4283
     */
4284
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4285
    Map<String, Object> extraParams;
4286

4287
    private Pix(Map<String, Object> extraParams) {
×
4288
      this.extraParams = extraParams;
×
4289
    }
×
4290

4291
    public static Builder builder() {
4292
      return new Builder();
×
4293
    }
4294

4295
    public static class Builder {
×
4296
      private Map<String, Object> extraParams;
4297

4298
      /** Finalize and obtain parameter instance from this builder. */
4299
      public PaymentMethodCreateParams.Pix build() {
4300
        return new PaymentMethodCreateParams.Pix(this.extraParams);
×
4301
      }
4302

4303
      /**
4304
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4305
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4306
       * PaymentMethodCreateParams.Pix#extraParams} for the field documentation.
4307
       */
4308
      public Builder putExtraParam(String key, Object value) {
4309
        if (this.extraParams == null) {
×
4310
          this.extraParams = new HashMap<>();
×
4311
        }
4312
        this.extraParams.put(key, value);
×
4313
        return this;
×
4314
      }
4315

4316
      /**
4317
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4318
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4319
       * See {@link PaymentMethodCreateParams.Pix#extraParams} for the field documentation.
4320
       */
4321
      public Builder putAllExtraParam(Map<String, Object> map) {
4322
        if (this.extraParams == null) {
×
4323
          this.extraParams = new HashMap<>();
×
4324
        }
4325
        this.extraParams.putAll(map);
×
4326
        return this;
×
4327
      }
4328
    }
4329
  }
4330

4331
  @Getter
4332
  public static class Promptpay {
4333
    /**
4334
     * Map of extra parameters for custom features not available in this client library. The content
4335
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4336
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4337
     * param object. Effectively, this map is flattened to its parent instance.
4338
     */
4339
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4340
    Map<String, Object> extraParams;
4341

4342
    private Promptpay(Map<String, Object> extraParams) {
×
4343
      this.extraParams = extraParams;
×
4344
    }
×
4345

4346
    public static Builder builder() {
4347
      return new Builder();
×
4348
    }
4349

4350
    public static class Builder {
×
4351
      private Map<String, Object> extraParams;
4352

4353
      /** Finalize and obtain parameter instance from this builder. */
4354
      public PaymentMethodCreateParams.Promptpay build() {
4355
        return new PaymentMethodCreateParams.Promptpay(this.extraParams);
×
4356
      }
4357

4358
      /**
4359
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4360
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4361
       * PaymentMethodCreateParams.Promptpay#extraParams} for the field documentation.
4362
       */
4363
      public Builder putExtraParam(String key, Object value) {
4364
        if (this.extraParams == null) {
×
4365
          this.extraParams = new HashMap<>();
×
4366
        }
4367
        this.extraParams.put(key, value);
×
4368
        return this;
×
4369
      }
4370

4371
      /**
4372
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4373
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4374
       * See {@link PaymentMethodCreateParams.Promptpay#extraParams} for the field documentation.
4375
       */
4376
      public Builder putAllExtraParam(Map<String, Object> map) {
4377
        if (this.extraParams == null) {
×
4378
          this.extraParams = new HashMap<>();
×
4379
        }
4380
        this.extraParams.putAll(map);
×
4381
        return this;
×
4382
      }
4383
    }
4384
  }
4385

4386
  @Getter
4387
  public static class RadarOptions {
4388
    /**
4389
     * Map of extra parameters for custom features not available in this client library. The content
4390
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4391
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4392
     * param object. Effectively, this map is flattened to its parent instance.
4393
     */
4394
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4395
    Map<String, Object> extraParams;
4396

4397
    /**
4398
     * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4399
     * the browser metadata and device details that help Radar make more accurate predictions on
4400
     * your payments.
4401
     */
4402
    @SerializedName("session")
4403
    String session;
4404

4405
    private RadarOptions(Map<String, Object> extraParams, String session) {
×
4406
      this.extraParams = extraParams;
×
4407
      this.session = session;
×
4408
    }
×
4409

4410
    public static Builder builder() {
4411
      return new Builder();
×
4412
    }
4413

4414
    public static class Builder {
×
4415
      private Map<String, Object> extraParams;
4416

4417
      private String session;
4418

4419
      /** Finalize and obtain parameter instance from this builder. */
4420
      public PaymentMethodCreateParams.RadarOptions build() {
4421
        return new PaymentMethodCreateParams.RadarOptions(this.extraParams, this.session);
×
4422
      }
4423

4424
      /**
4425
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4426
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4427
       * PaymentMethodCreateParams.RadarOptions#extraParams} for the field documentation.
4428
       */
4429
      public Builder putExtraParam(String key, Object value) {
4430
        if (this.extraParams == null) {
×
4431
          this.extraParams = new HashMap<>();
×
4432
        }
4433
        this.extraParams.put(key, value);
×
4434
        return this;
×
4435
      }
4436

4437
      /**
4438
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4439
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4440
       * See {@link PaymentMethodCreateParams.RadarOptions#extraParams} for the field documentation.
4441
       */
4442
      public Builder putAllExtraParam(Map<String, Object> map) {
4443
        if (this.extraParams == null) {
×
4444
          this.extraParams = new HashMap<>();
×
4445
        }
4446
        this.extraParams.putAll(map);
×
4447
        return this;
×
4448
      }
4449

4450
      /**
4451
       * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4452
       * the browser metadata and device details that help Radar make more accurate predictions on
4453
       * your payments.
4454
       */
4455
      public Builder setSession(String session) {
4456
        this.session = session;
×
4457
        return this;
×
4458
      }
4459
    }
4460
  }
4461

4462
  @Getter
4463
  public static class Rechnung {
4464
    /** <strong>Required.</strong> Customer's date of birth */
4465
    @SerializedName("dob")
4466
    Dob dob;
4467

4468
    /**
4469
     * Map of extra parameters for custom features not available in this client library. The content
4470
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4471
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4472
     * param object. Effectively, this map is flattened to its parent instance.
4473
     */
4474
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4475
    Map<String, Object> extraParams;
4476

4477
    private Rechnung(Dob dob, Map<String, Object> extraParams) {
×
4478
      this.dob = dob;
×
4479
      this.extraParams = extraParams;
×
4480
    }
×
4481

4482
    public static Builder builder() {
4483
      return new Builder();
×
4484
    }
4485

4486
    public static class Builder {
×
4487
      private Dob dob;
4488

4489
      private Map<String, Object> extraParams;
4490

4491
      /** Finalize and obtain parameter instance from this builder. */
4492
      public PaymentMethodCreateParams.Rechnung build() {
4493
        return new PaymentMethodCreateParams.Rechnung(this.dob, this.extraParams);
×
4494
      }
4495

4496
      /** <strong>Required.</strong> Customer's date of birth */
4497
      public Builder setDob(PaymentMethodCreateParams.Rechnung.Dob dob) {
4498
        this.dob = dob;
×
4499
        return this;
×
4500
      }
4501

4502
      /**
4503
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4504
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4505
       * PaymentMethodCreateParams.Rechnung#extraParams} for the field documentation.
4506
       */
4507
      public Builder putExtraParam(String key, Object value) {
4508
        if (this.extraParams == null) {
×
4509
          this.extraParams = new HashMap<>();
×
4510
        }
4511
        this.extraParams.put(key, value);
×
4512
        return this;
×
4513
      }
4514

4515
      /**
4516
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4517
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4518
       * See {@link PaymentMethodCreateParams.Rechnung#extraParams} for the field documentation.
4519
       */
4520
      public Builder putAllExtraParam(Map<String, Object> map) {
4521
        if (this.extraParams == null) {
×
4522
          this.extraParams = new HashMap<>();
×
4523
        }
4524
        this.extraParams.putAll(map);
×
4525
        return this;
×
4526
      }
4527
    }
4528

4529
    @Getter
4530
    public static class Dob {
4531
      /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4532
      @SerializedName("day")
4533
      Long day;
4534

4535
      /**
4536
       * Map of extra parameters for custom features not available in this client library. The
4537
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4538
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4539
       * name in this param object. Effectively, this map is flattened to its parent instance.
4540
       */
4541
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4542
      Map<String, Object> extraParams;
4543

4544
      /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4545
      @SerializedName("month")
4546
      Long month;
4547

4548
      /** <strong>Required.</strong> The four-digit year of birth. */
4549
      @SerializedName("year")
4550
      Long year;
4551

4552
      private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
4553
        this.day = day;
×
4554
        this.extraParams = extraParams;
×
4555
        this.month = month;
×
4556
        this.year = year;
×
4557
      }
×
4558

4559
      public static Builder builder() {
4560
        return new Builder();
×
4561
      }
4562

4563
      public static class Builder {
×
4564
        private Long day;
4565

4566
        private Map<String, Object> extraParams;
4567

4568
        private Long month;
4569

4570
        private Long year;
4571

4572
        /** Finalize and obtain parameter instance from this builder. */
4573
        public PaymentMethodCreateParams.Rechnung.Dob build() {
4574
          return new PaymentMethodCreateParams.Rechnung.Dob(
×
4575
              this.day, this.extraParams, this.month, this.year);
4576
        }
4577

4578
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4579
        public Builder setDay(Long day) {
4580
          this.day = day;
×
4581
          return this;
×
4582
        }
4583

4584
        /**
4585
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4586
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4587
         * map. See {@link PaymentMethodCreateParams.Rechnung.Dob#extraParams} for the field
4588
         * documentation.
4589
         */
4590
        public Builder putExtraParam(String key, Object value) {
4591
          if (this.extraParams == null) {
×
4592
            this.extraParams = new HashMap<>();
×
4593
          }
4594
          this.extraParams.put(key, value);
×
4595
          return this;
×
4596
        }
4597

4598
        /**
4599
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4600
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4601
         * map. See {@link PaymentMethodCreateParams.Rechnung.Dob#extraParams} for the field
4602
         * documentation.
4603
         */
4604
        public Builder putAllExtraParam(Map<String, Object> map) {
4605
          if (this.extraParams == null) {
×
4606
            this.extraParams = new HashMap<>();
×
4607
          }
4608
          this.extraParams.putAll(map);
×
4609
          return this;
×
4610
        }
4611

4612
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4613
        public Builder setMonth(Long month) {
4614
          this.month = month;
×
4615
          return this;
×
4616
        }
4617

4618
        /** <strong>Required.</strong> The four-digit year of birth. */
4619
        public Builder setYear(Long year) {
4620
          this.year = year;
×
4621
          return this;
×
4622
        }
4623
      }
4624
    }
4625
  }
4626

4627
  @Getter
4628
  public static class RevolutPay {
4629
    /**
4630
     * Map of extra parameters for custom features not available in this client library. The content
4631
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4632
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4633
     * param object. Effectively, this map is flattened to its parent instance.
4634
     */
4635
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4636
    Map<String, Object> extraParams;
4637

4638
    private RevolutPay(Map<String, Object> extraParams) {
×
4639
      this.extraParams = extraParams;
×
4640
    }
×
4641

4642
    public static Builder builder() {
4643
      return new Builder();
×
4644
    }
4645

4646
    public static class Builder {
×
4647
      private Map<String, Object> extraParams;
4648

4649
      /** Finalize and obtain parameter instance from this builder. */
4650
      public PaymentMethodCreateParams.RevolutPay build() {
4651
        return new PaymentMethodCreateParams.RevolutPay(this.extraParams);
×
4652
      }
4653

4654
      /**
4655
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4656
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4657
       * PaymentMethodCreateParams.RevolutPay#extraParams} for the field documentation.
4658
       */
4659
      public Builder putExtraParam(String key, Object value) {
4660
        if (this.extraParams == null) {
×
4661
          this.extraParams = new HashMap<>();
×
4662
        }
4663
        this.extraParams.put(key, value);
×
4664
        return this;
×
4665
      }
4666

4667
      /**
4668
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4669
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4670
       * See {@link PaymentMethodCreateParams.RevolutPay#extraParams} for the field documentation.
4671
       */
4672
      public Builder putAllExtraParam(Map<String, Object> map) {
4673
        if (this.extraParams == null) {
×
4674
          this.extraParams = new HashMap<>();
×
4675
        }
4676
        this.extraParams.putAll(map);
×
4677
        return this;
×
4678
      }
4679
    }
4680
  }
4681

4682
  @Getter
4683
  public static class SamsungPay {
4684
    /**
4685
     * Map of extra parameters for custom features not available in this client library. The content
4686
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4687
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4688
     * param object. Effectively, this map is flattened to its parent instance.
4689
     */
4690
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4691
    Map<String, Object> extraParams;
4692

NEW
4693
    private SamsungPay(Map<String, Object> extraParams) {
×
NEW
4694
      this.extraParams = extraParams;
×
NEW
4695
    }
×
4696

4697
    public static Builder builder() {
NEW
4698
      return new Builder();
×
4699
    }
4700

NEW
4701
    public static class Builder {
×
4702
      private Map<String, Object> extraParams;
4703

4704
      /** Finalize and obtain parameter instance from this builder. */
4705
      public PaymentMethodCreateParams.SamsungPay build() {
NEW
4706
        return new PaymentMethodCreateParams.SamsungPay(this.extraParams);
×
4707
      }
4708

4709
      /**
4710
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4711
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4712
       * PaymentMethodCreateParams.SamsungPay#extraParams} for the field documentation.
4713
       */
4714
      public Builder putExtraParam(String key, Object value) {
NEW
4715
        if (this.extraParams == null) {
×
NEW
4716
          this.extraParams = new HashMap<>();
×
4717
        }
NEW
4718
        this.extraParams.put(key, value);
×
NEW
4719
        return this;
×
4720
      }
4721

4722
      /**
4723
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4724
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4725
       * See {@link PaymentMethodCreateParams.SamsungPay#extraParams} for the field documentation.
4726
       */
4727
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
4728
        if (this.extraParams == null) {
×
NEW
4729
          this.extraParams = new HashMap<>();
×
4730
        }
NEW
4731
        this.extraParams.putAll(map);
×
NEW
4732
        return this;
×
4733
      }
4734
    }
4735
  }
4736

4737
  @Getter
4738
  public static class SepaDebit {
4739
    /**
4740
     * Map of extra parameters for custom features not available in this client library. The content
4741
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4742
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4743
     * param object. Effectively, this map is flattened to its parent instance.
4744
     */
4745
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4746
    Map<String, Object> extraParams;
4747

4748
    /** <strong>Required.</strong> IBAN of the bank account. */
4749
    @SerializedName("iban")
4750
    String iban;
4751

4752
    private SepaDebit(Map<String, Object> extraParams, String iban) {
×
4753
      this.extraParams = extraParams;
×
4754
      this.iban = iban;
×
4755
    }
×
4756

4757
    public static Builder builder() {
4758
      return new Builder();
×
4759
    }
4760

4761
    public static class Builder {
×
4762
      private Map<String, Object> extraParams;
4763

4764
      private String iban;
4765

4766
      /** Finalize and obtain parameter instance from this builder. */
4767
      public PaymentMethodCreateParams.SepaDebit build() {
4768
        return new PaymentMethodCreateParams.SepaDebit(this.extraParams, this.iban);
×
4769
      }
4770

4771
      /**
4772
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4773
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4774
       * PaymentMethodCreateParams.SepaDebit#extraParams} for the field documentation.
4775
       */
4776
      public Builder putExtraParam(String key, Object value) {
4777
        if (this.extraParams == null) {
×
4778
          this.extraParams = new HashMap<>();
×
4779
        }
4780
        this.extraParams.put(key, value);
×
4781
        return this;
×
4782
      }
4783

4784
      /**
4785
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4786
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4787
       * See {@link PaymentMethodCreateParams.SepaDebit#extraParams} for the field documentation.
4788
       */
4789
      public Builder putAllExtraParam(Map<String, Object> map) {
4790
        if (this.extraParams == null) {
×
4791
          this.extraParams = new HashMap<>();
×
4792
        }
4793
        this.extraParams.putAll(map);
×
4794
        return this;
×
4795
      }
4796

4797
      /** <strong>Required.</strong> IBAN of the bank account. */
4798
      public Builder setIban(String iban) {
4799
        this.iban = iban;
×
4800
        return this;
×
4801
      }
4802
    }
4803
  }
4804

4805
  @Getter
4806
  public static class Sofort {
4807
    /**
4808
     * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
4809
     * located in.
4810
     */
4811
    @SerializedName("country")
4812
    Country country;
4813

4814
    /**
4815
     * Map of extra parameters for custom features not available in this client library. The content
4816
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4817
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4818
     * param object. Effectively, this map is flattened to its parent instance.
4819
     */
4820
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4821
    Map<String, Object> extraParams;
4822

4823
    private Sofort(Country country, Map<String, Object> extraParams) {
×
4824
      this.country = country;
×
4825
      this.extraParams = extraParams;
×
4826
    }
×
4827

4828
    public static Builder builder() {
4829
      return new Builder();
×
4830
    }
4831

4832
    public static class Builder {
×
4833
      private Country country;
4834

4835
      private Map<String, Object> extraParams;
4836

4837
      /** Finalize and obtain parameter instance from this builder. */
4838
      public PaymentMethodCreateParams.Sofort build() {
4839
        return new PaymentMethodCreateParams.Sofort(this.country, this.extraParams);
×
4840
      }
4841

4842
      /**
4843
       * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
4844
       * located in.
4845
       */
4846
      public Builder setCountry(PaymentMethodCreateParams.Sofort.Country country) {
4847
        this.country = country;
×
4848
        return this;
×
4849
      }
4850

4851
      /**
4852
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4853
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4854
       * PaymentMethodCreateParams.Sofort#extraParams} for the field documentation.
4855
       */
4856
      public Builder putExtraParam(String key, Object value) {
4857
        if (this.extraParams == null) {
×
4858
          this.extraParams = new HashMap<>();
×
4859
        }
4860
        this.extraParams.put(key, value);
×
4861
        return this;
×
4862
      }
4863

4864
      /**
4865
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4866
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4867
       * See {@link PaymentMethodCreateParams.Sofort#extraParams} for the field documentation.
4868
       */
4869
      public Builder putAllExtraParam(Map<String, Object> map) {
4870
        if (this.extraParams == null) {
×
4871
          this.extraParams = new HashMap<>();
×
4872
        }
4873
        this.extraParams.putAll(map);
×
4874
        return this;
×
4875
      }
4876
    }
4877

4878
    public enum Country implements ApiRequestParams.EnumParam {
×
4879
      @SerializedName("AT")
×
4880
      AT("AT"),
4881

4882
      @SerializedName("BE")
×
4883
      BE("BE"),
4884

4885
      @SerializedName("DE")
×
4886
      DE("DE"),
4887

4888
      @SerializedName("ES")
×
4889
      ES("ES"),
4890

4891
      @SerializedName("IT")
×
4892
      IT("IT"),
4893

4894
      @SerializedName("NL")
×
4895
      NL("NL");
4896

4897
      @Getter(onMethod_ = {@Override})
4898
      private final String value;
4899

4900
      Country(String value) {
×
4901
        this.value = value;
×
4902
      }
×
4903
    }
4904
  }
4905

4906
  @Getter
4907
  public static class Swish {
4908
    /**
4909
     * Map of extra parameters for custom features not available in this client library. The content
4910
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4911
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4912
     * param object. Effectively, this map is flattened to its parent instance.
4913
     */
4914
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4915
    Map<String, Object> extraParams;
4916

4917
    private Swish(Map<String, Object> extraParams) {
×
4918
      this.extraParams = extraParams;
×
4919
    }
×
4920

4921
    public static Builder builder() {
4922
      return new Builder();
×
4923
    }
4924

4925
    public static class Builder {
×
4926
      private Map<String, Object> extraParams;
4927

4928
      /** Finalize and obtain parameter instance from this builder. */
4929
      public PaymentMethodCreateParams.Swish build() {
4930
        return new PaymentMethodCreateParams.Swish(this.extraParams);
×
4931
      }
4932

4933
      /**
4934
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4935
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4936
       * PaymentMethodCreateParams.Swish#extraParams} for the field documentation.
4937
       */
4938
      public Builder putExtraParam(String key, Object value) {
4939
        if (this.extraParams == null) {
×
4940
          this.extraParams = new HashMap<>();
×
4941
        }
4942
        this.extraParams.put(key, value);
×
4943
        return this;
×
4944
      }
4945

4946
      /**
4947
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4948
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4949
       * See {@link PaymentMethodCreateParams.Swish#extraParams} for the field documentation.
4950
       */
4951
      public Builder putAllExtraParam(Map<String, Object> map) {
4952
        if (this.extraParams == null) {
×
4953
          this.extraParams = new HashMap<>();
×
4954
        }
4955
        this.extraParams.putAll(map);
×
4956
        return this;
×
4957
      }
4958
    }
4959
  }
4960

4961
  @Getter
4962
  public static class Token {
4963
    /**
4964
     * Map of extra parameters for custom features not available in this client library. The content
4965
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4966
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4967
     * param object. Effectively, this map is flattened to its parent instance.
4968
     */
4969
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4970
    Map<String, Object> extraParams;
4971

4972
    /**
4973
     * For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple
4974
     * Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card: {token:
4975
     * &quot;tok_visa&quot;}.
4976
     */
4977
    @SerializedName("token")
4978
    String token;
4979

4980
    private Token(Map<String, Object> extraParams, String token) {
×
4981
      this.extraParams = extraParams;
×
4982
      this.token = token;
×
4983
    }
×
4984

4985
    public static Builder builder() {
4986
      return new Builder();
×
4987
    }
4988

4989
    public static class Builder {
×
4990
      private Map<String, Object> extraParams;
4991

4992
      private String token;
4993

4994
      /** Finalize and obtain parameter instance from this builder. */
4995
      public PaymentMethodCreateParams.Token build() {
4996
        return new PaymentMethodCreateParams.Token(this.extraParams, this.token);
×
4997
      }
4998

4999
      /**
5000
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5001
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5002
       * PaymentMethodCreateParams.Token#extraParams} for the field documentation.
5003
       */
5004
      public Builder putExtraParam(String key, Object value) {
5005
        if (this.extraParams == null) {
×
5006
          this.extraParams = new HashMap<>();
×
5007
        }
5008
        this.extraParams.put(key, value);
×
5009
        return this;
×
5010
      }
5011

5012
      /**
5013
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5014
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5015
       * See {@link PaymentMethodCreateParams.Token#extraParams} for the field documentation.
5016
       */
5017
      public Builder putAllExtraParam(Map<String, Object> map) {
5018
        if (this.extraParams == null) {
×
5019
          this.extraParams = new HashMap<>();
×
5020
        }
5021
        this.extraParams.putAll(map);
×
5022
        return this;
×
5023
      }
5024

5025
      /**
5026
       * For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple
5027
       * Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card:
5028
       * {token: &quot;tok_visa&quot;}.
5029
       */
5030
      public Builder setToken(String token) {
5031
        this.token = token;
×
5032
        return this;
×
5033
      }
5034
    }
5035
  }
5036

5037
  @Getter
5038
  public static class Twint {
5039
    /**
5040
     * Map of extra parameters for custom features not available in this client library. The content
5041
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5042
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5043
     * param object. Effectively, this map is flattened to its parent instance.
5044
     */
5045
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5046
    Map<String, Object> extraParams;
5047

5048
    private Twint(Map<String, Object> extraParams) {
×
5049
      this.extraParams = extraParams;
×
5050
    }
×
5051

5052
    public static Builder builder() {
5053
      return new Builder();
×
5054
    }
5055

5056
    public static class Builder {
×
5057
      private Map<String, Object> extraParams;
5058

5059
      /** Finalize and obtain parameter instance from this builder. */
5060
      public PaymentMethodCreateParams.Twint build() {
5061
        return new PaymentMethodCreateParams.Twint(this.extraParams);
×
5062
      }
5063

5064
      /**
5065
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5066
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5067
       * PaymentMethodCreateParams.Twint#extraParams} for the field documentation.
5068
       */
5069
      public Builder putExtraParam(String key, Object value) {
5070
        if (this.extraParams == null) {
×
5071
          this.extraParams = new HashMap<>();
×
5072
        }
5073
        this.extraParams.put(key, value);
×
5074
        return this;
×
5075
      }
5076

5077
      /**
5078
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5079
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5080
       * See {@link PaymentMethodCreateParams.Twint#extraParams} for the field documentation.
5081
       */
5082
      public Builder putAllExtraParam(Map<String, Object> map) {
5083
        if (this.extraParams == null) {
×
5084
          this.extraParams = new HashMap<>();
×
5085
        }
5086
        this.extraParams.putAll(map);
×
5087
        return this;
×
5088
      }
5089
    }
5090
  }
5091

5092
  @Getter
5093
  public static class UsBankAccount {
5094
    /** Account holder type: individual or company. */
5095
    @SerializedName("account_holder_type")
5096
    AccountHolderType accountHolderType;
5097

5098
    /** Account number of the bank account. */
5099
    @SerializedName("account_number")
5100
    String accountNumber;
5101

5102
    /** Account type: checkings or savings. Defaults to checking if omitted. */
5103
    @SerializedName("account_type")
5104
    AccountType accountType;
5105

5106
    /**
5107
     * Map of extra parameters for custom features not available in this client library. The content
5108
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5109
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5110
     * param object. Effectively, this map is flattened to its parent instance.
5111
     */
5112
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5113
    Map<String, Object> extraParams;
5114

5115
    /** The ID of a Financial Connections Account to use as a payment method. */
5116
    @SerializedName("financial_connections_account")
5117
    String financialConnectionsAccount;
5118

5119
    /** Routing number of the bank account. */
5120
    @SerializedName("routing_number")
5121
    String routingNumber;
5122

5123
    private UsBankAccount(
5124
        AccountHolderType accountHolderType,
5125
        String accountNumber,
5126
        AccountType accountType,
5127
        Map<String, Object> extraParams,
5128
        String financialConnectionsAccount,
5129
        String routingNumber) {
×
5130
      this.accountHolderType = accountHolderType;
×
5131
      this.accountNumber = accountNumber;
×
5132
      this.accountType = accountType;
×
5133
      this.extraParams = extraParams;
×
5134
      this.financialConnectionsAccount = financialConnectionsAccount;
×
5135
      this.routingNumber = routingNumber;
×
5136
    }
×
5137

5138
    public static Builder builder() {
5139
      return new Builder();
×
5140
    }
5141

5142
    public static class Builder {
×
5143
      private AccountHolderType accountHolderType;
5144

5145
      private String accountNumber;
5146

5147
      private AccountType accountType;
5148

5149
      private Map<String, Object> extraParams;
5150

5151
      private String financialConnectionsAccount;
5152

5153
      private String routingNumber;
5154

5155
      /** Finalize and obtain parameter instance from this builder. */
5156
      public PaymentMethodCreateParams.UsBankAccount build() {
5157
        return new PaymentMethodCreateParams.UsBankAccount(
×
5158
            this.accountHolderType,
5159
            this.accountNumber,
5160
            this.accountType,
5161
            this.extraParams,
5162
            this.financialConnectionsAccount,
5163
            this.routingNumber);
5164
      }
5165

5166
      /** Account holder type: individual or company. */
5167
      public Builder setAccountHolderType(
5168
          PaymentMethodCreateParams.UsBankAccount.AccountHolderType accountHolderType) {
5169
        this.accountHolderType = accountHolderType;
×
5170
        return this;
×
5171
      }
5172

5173
      /** Account number of the bank account. */
5174
      public Builder setAccountNumber(String accountNumber) {
5175
        this.accountNumber = accountNumber;
×
5176
        return this;
×
5177
      }
5178

5179
      /** Account type: checkings or savings. Defaults to checking if omitted. */
5180
      public Builder setAccountType(
5181
          PaymentMethodCreateParams.UsBankAccount.AccountType accountType) {
5182
        this.accountType = accountType;
×
5183
        return this;
×
5184
      }
5185

5186
      /**
5187
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5188
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5189
       * PaymentMethodCreateParams.UsBankAccount#extraParams} for the field documentation.
5190
       */
5191
      public Builder putExtraParam(String key, Object value) {
5192
        if (this.extraParams == null) {
×
5193
          this.extraParams = new HashMap<>();
×
5194
        }
5195
        this.extraParams.put(key, value);
×
5196
        return this;
×
5197
      }
5198

5199
      /**
5200
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5201
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5202
       * See {@link PaymentMethodCreateParams.UsBankAccount#extraParams} for the field
5203
       * documentation.
5204
       */
5205
      public Builder putAllExtraParam(Map<String, Object> map) {
5206
        if (this.extraParams == null) {
×
5207
          this.extraParams = new HashMap<>();
×
5208
        }
5209
        this.extraParams.putAll(map);
×
5210
        return this;
×
5211
      }
5212

5213
      /** The ID of a Financial Connections Account to use as a payment method. */
5214
      public Builder setFinancialConnectionsAccount(String financialConnectionsAccount) {
5215
        this.financialConnectionsAccount = financialConnectionsAccount;
×
5216
        return this;
×
5217
      }
5218

5219
      /** Routing number of the bank account. */
5220
      public Builder setRoutingNumber(String routingNumber) {
5221
        this.routingNumber = routingNumber;
×
5222
        return this;
×
5223
      }
5224
    }
5225

5226
    public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
5227
      @SerializedName("company")
×
5228
      COMPANY("company"),
5229

5230
      @SerializedName("individual")
×
5231
      INDIVIDUAL("individual");
5232

5233
      @Getter(onMethod_ = {@Override})
5234
      private final String value;
5235

5236
      AccountHolderType(String value) {
×
5237
        this.value = value;
×
5238
      }
×
5239
    }
5240

5241
    public enum AccountType implements ApiRequestParams.EnumParam {
×
5242
      @SerializedName("checking")
×
5243
      CHECKING("checking"),
5244

5245
      @SerializedName("savings")
×
5246
      SAVINGS("savings");
5247

5248
      @Getter(onMethod_ = {@Override})
5249
      private final String value;
5250

5251
      AccountType(String value) {
×
5252
        this.value = value;
×
5253
      }
×
5254
    }
5255
  }
5256

5257
  @Getter
5258
  public static class WechatPay {
5259
    /**
5260
     * Map of extra parameters for custom features not available in this client library. The content
5261
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5262
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5263
     * param object. Effectively, this map is flattened to its parent instance.
5264
     */
5265
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5266
    Map<String, Object> extraParams;
5267

5268
    private WechatPay(Map<String, Object> extraParams) {
×
5269
      this.extraParams = extraParams;
×
5270
    }
×
5271

5272
    public static Builder builder() {
5273
      return new Builder();
×
5274
    }
5275

5276
    public static class Builder {
×
5277
      private Map<String, Object> extraParams;
5278

5279
      /** Finalize and obtain parameter instance from this builder. */
5280
      public PaymentMethodCreateParams.WechatPay build() {
5281
        return new PaymentMethodCreateParams.WechatPay(this.extraParams);
×
5282
      }
5283

5284
      /**
5285
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5286
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5287
       * PaymentMethodCreateParams.WechatPay#extraParams} for the field documentation.
5288
       */
5289
      public Builder putExtraParam(String key, Object value) {
5290
        if (this.extraParams == null) {
×
5291
          this.extraParams = new HashMap<>();
×
5292
        }
5293
        this.extraParams.put(key, value);
×
5294
        return this;
×
5295
      }
5296

5297
      /**
5298
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5299
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5300
       * See {@link PaymentMethodCreateParams.WechatPay#extraParams} for the field documentation.
5301
       */
5302
      public Builder putAllExtraParam(Map<String, Object> map) {
5303
        if (this.extraParams == null) {
×
5304
          this.extraParams = new HashMap<>();
×
5305
        }
5306
        this.extraParams.putAll(map);
×
5307
        return this;
×
5308
      }
5309
    }
5310
  }
5311

5312
  @Getter
5313
  public static class Zip {
5314
    /**
5315
     * Map of extra parameters for custom features not available in this client library. The content
5316
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5317
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5318
     * param object. Effectively, this map is flattened to its parent instance.
5319
     */
5320
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5321
    Map<String, Object> extraParams;
5322

5323
    private Zip(Map<String, Object> extraParams) {
×
5324
      this.extraParams = extraParams;
×
5325
    }
×
5326

5327
    public static Builder builder() {
5328
      return new Builder();
×
5329
    }
5330

5331
    public static class Builder {
×
5332
      private Map<String, Object> extraParams;
5333

5334
      /** Finalize and obtain parameter instance from this builder. */
5335
      public PaymentMethodCreateParams.Zip build() {
5336
        return new PaymentMethodCreateParams.Zip(this.extraParams);
×
5337
      }
5338

5339
      /**
5340
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5341
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5342
       * PaymentMethodCreateParams.Zip#extraParams} for the field documentation.
5343
       */
5344
      public Builder putExtraParam(String key, Object value) {
5345
        if (this.extraParams == null) {
×
5346
          this.extraParams = new HashMap<>();
×
5347
        }
5348
        this.extraParams.put(key, value);
×
5349
        return this;
×
5350
      }
5351

5352
      /**
5353
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5354
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5355
       * See {@link PaymentMethodCreateParams.Zip#extraParams} for the field documentation.
5356
       */
5357
      public Builder putAllExtraParam(Map<String, Object> map) {
5358
        if (this.extraParams == null) {
×
5359
          this.extraParams = new HashMap<>();
×
5360
        }
5361
        this.extraParams.putAll(map);
×
5362
        return this;
×
5363
      }
5364
    }
5365
  }
5366

5367
  public enum AllowRedisplay implements ApiRequestParams.EnumParam {
×
5368
    @SerializedName("always")
×
5369
    ALWAYS("always"),
5370

5371
    @SerializedName("limited")
×
5372
    LIMITED("limited"),
5373

5374
    @SerializedName("unspecified")
×
5375
    UNSPECIFIED("unspecified");
5376

5377
    @Getter(onMethod_ = {@Override})
5378
    private final String value;
5379

5380
    AllowRedisplay(String value) {
×
5381
      this.value = value;
×
5382
    }
×
5383
  }
5384

5385
  public enum Type implements ApiRequestParams.EnumParam {
×
5386
    @SerializedName("acss_debit")
×
5387
    ACSS_DEBIT("acss_debit"),
5388

5389
    @SerializedName("affirm")
×
5390
    AFFIRM("affirm"),
5391

5392
    @SerializedName("afterpay_clearpay")
×
5393
    AFTERPAY_CLEARPAY("afterpay_clearpay"),
5394

5395
    @SerializedName("alipay")
×
5396
    ALIPAY("alipay"),
5397

5398
    @SerializedName("amazon_pay")
×
5399
    AMAZON_PAY("amazon_pay"),
5400

5401
    @SerializedName("au_becs_debit")
×
5402
    AU_BECS_DEBIT("au_becs_debit"),
5403

5404
    @SerializedName("bacs_debit")
×
5405
    BACS_DEBIT("bacs_debit"),
5406

5407
    @SerializedName("bancontact")
×
5408
    BANCONTACT("bancontact"),
5409

5410
    @SerializedName("blik")
×
5411
    BLIK("blik"),
5412

5413
    @SerializedName("boleto")
×
5414
    BOLETO("boleto"),
5415

5416
    @SerializedName("card")
×
5417
    CARD("card"),
5418

5419
    @SerializedName("cashapp")
×
5420
    CASHAPP("cashapp"),
5421

5422
    @SerializedName("customer_balance")
×
5423
    CUSTOMER_BALANCE("customer_balance"),
5424

5425
    @SerializedName("eps")
×
5426
    EPS("eps"),
5427

5428
    @SerializedName("fpx")
×
5429
    FPX("fpx"),
5430

5431
    @SerializedName("giropay")
×
5432
    GIROPAY("giropay"),
5433

5434
    @SerializedName("grabpay")
×
5435
    GRABPAY("grabpay"),
5436

5437
    @SerializedName("ideal")
×
5438
    IDEAL("ideal"),
5439

NEW
5440
    @SerializedName("kakao_pay")
×
5441
    KAKAO_PAY("kakao_pay"),
5442

UNCOV
5443
    @SerializedName("klarna")
×
5444
    KLARNA("klarna"),
5445

5446
    @SerializedName("konbini")
×
5447
    KONBINI("konbini"),
5448

NEW
5449
    @SerializedName("kr_card")
×
5450
    KR_CARD("kr_card"),
5451

UNCOV
5452
    @SerializedName("link")
×
5453
    LINK("link"),
5454

5455
    @SerializedName("mb_way")
×
5456
    MB_WAY("mb_way"),
5457

5458
    @SerializedName("mobilepay")
×
5459
    MOBILEPAY("mobilepay"),
5460

5461
    @SerializedName("multibanco")
×
5462
    MULTIBANCO("multibanco"),
5463

NEW
5464
    @SerializedName("naver_pay")
×
5465
    NAVER_PAY("naver_pay"),
5466

UNCOV
5467
    @SerializedName("oxxo")
×
5468
    OXXO("oxxo"),
5469

5470
    @SerializedName("p24")
×
5471
    P24("p24"),
5472

NEW
5473
    @SerializedName("payco")
×
5474
    PAYCO("payco"),
5475

UNCOV
5476
    @SerializedName("paynow")
×
5477
    PAYNOW("paynow"),
5478

5479
    @SerializedName("paypal")
×
5480
    PAYPAL("paypal"),
5481

5482
    @SerializedName("payto")
×
5483
    PAYTO("payto"),
5484

5485
    @SerializedName("pix")
×
5486
    PIX("pix"),
5487

5488
    @SerializedName("promptpay")
×
5489
    PROMPTPAY("promptpay"),
5490

5491
    @SerializedName("rechnung")
×
5492
    RECHNUNG("rechnung"),
5493

5494
    @SerializedName("revolut_pay")
×
5495
    REVOLUT_PAY("revolut_pay"),
5496

NEW
5497
    @SerializedName("samsung_pay")
×
5498
    SAMSUNG_PAY("samsung_pay"),
5499

UNCOV
5500
    @SerializedName("sepa_debit")
×
5501
    SEPA_DEBIT("sepa_debit"),
5502

5503
    @SerializedName("sofort")
×
5504
    SOFORT("sofort"),
5505

5506
    @SerializedName("swish")
×
5507
    SWISH("swish"),
5508

5509
    @SerializedName("twint")
×
5510
    TWINT("twint"),
5511

5512
    @SerializedName("us_bank_account")
×
5513
    US_BANK_ACCOUNT("us_bank_account"),
5514

5515
    @SerializedName("wechat_pay")
×
5516
    WECHAT_PAY("wechat_pay"),
5517

5518
    @SerializedName("zip")
×
5519
    ZIP("zip");
5520

5521
    @Getter(onMethod_ = {@Override})
5522
    private final String value;
5523

5524
    Type(String value) {
×
5525
      this.value = value;
×
5526
    }
×
5527
  }
5528
}
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