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

stripe / stripe-java / #16562

18 Oct 2024 07:00PM UTC coverage: 12.614% (-0.1%) from 12.74%
#16562

push

github

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

Update generated code for beta

49 of 1978 new or added lines in 47 files covered. (2.48%)

68 existing lines in 20 files now uncovered.

18798 of 149026 relevant lines covered (12.61%)

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
  /** If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. */
53
  @SerializedName("alma")
54
  Alma alma;
55

56
  /**
57
   * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
58
   * method.
59
   */
60
  @SerializedName("amazon_pay")
61
  AmazonPay amazonPay;
62

63
  /**
64
   * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank
65
   * account.
66
   */
67
  @SerializedName("au_becs_debit")
68
  AuBecsDebit auBecsDebit;
69

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

77
  /**
78
   * If this is a {@code bancontact} PaymentMethod, this hash contains details about the Bancontact
79
   * payment method.
80
   */
81
  @SerializedName("bancontact")
82
  Bancontact bancontact;
83

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

91
  /**
92
   * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
93
   * method.
94
   */
95
  @SerializedName("blik")
96
  Blik blik;
97

98
  /**
99
   * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto payment
100
   * method.
101
   */
102
  @SerializedName("boleto")
103
  Boleto boleto;
104

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

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

123
  /** The {@code Customer} to whom the original PaymentMethod is attached. */
124
  @SerializedName("customer")
125
  String customer;
126

127
  /**
128
   * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
129
   * CustomerBalance payment method.
130
   */
131
  @SerializedName("customer_balance")
132
  CustomerBalance customerBalance;
133

134
  /**
135
   * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
136
   * method.
137
   */
138
  @SerializedName("eps")
139
  Eps eps;
140

141
  /** Specifies which fields in the response should be expanded. */
142
  @SerializedName("expand")
143
  List<String> expand;
144

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

154
  /**
155
   * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
156
   * method.
157
   */
158
  @SerializedName("fpx")
159
  Fpx fpx;
160

161
  /**
162
   * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
163
   * payment method.
164
   */
165
  @SerializedName("giropay")
166
  Giropay giropay;
167

168
  /**
169
   * If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment method.
170
   */
171
  @SerializedName("gopay")
172
  Gopay gopay;
173

174
  /**
175
   * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
176
   * payment method.
177
   */
178
  @SerializedName("grabpay")
179
  Grabpay grabpay;
180

181
  /**
182
   * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment
183
   * method.
184
   */
185
  @SerializedName("ideal")
186
  Ideal ideal;
187

188
  /**
189
   * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
190
   * Interac Present payment method.
191
   */
192
  @SerializedName("interac_present")
193
  InteracPresent interacPresent;
194

195
  /**
196
   * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
197
   * payment method.
198
   */
199
  @SerializedName("kakao_pay")
200
  KakaoPay kakaoPay;
201

202
  /**
203
   * If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna payment
204
   * method.
205
   */
206
  @SerializedName("klarna")
207
  Klarna klarna;
208

209
  /**
210
   * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
211
   * payment method.
212
   */
213
  @SerializedName("konbini")
214
  Konbini konbini;
215

216
  /**
217
   * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
218
   * payment method.
219
   */
220
  @SerializedName("kr_card")
221
  KrCard krCard;
222

223
  /**
224
   * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
225
   * method.
226
   */
227
  @SerializedName("link")
228
  Link link;
229

230
  /**
231
   * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method.
232
   */
233
  @SerializedName("mb_way")
234
  MbWay mbWay;
235

236
  /**
237
   * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
238
   * to an object. This can be useful for storing additional information about the object in a
239
   * structured format. Individual keys can be unset by posting an empty value to them. All keys can
240
   * be unset by posting an empty value to {@code metadata}.
241
   */
242
  @SerializedName("metadata")
243
  Map<String, String> metadata;
244

245
  /**
246
   * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the MobilePay
247
   * payment method.
248
   */
249
  @SerializedName("mobilepay")
250
  Mobilepay mobilepay;
251

252
  /**
253
   * If this is a {@code multibanco} PaymentMethod, this hash contains details about the Multibanco
254
   * payment method.
255
   */
256
  @SerializedName("multibanco")
257
  Multibanco multibanco;
258

259
  /**
260
   * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
261
   * payment method.
262
   */
263
  @SerializedName("naver_pay")
264
  NaverPay naverPay;
265

266
  /**
267
   * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
268
   * method.
269
   */
270
  @SerializedName("oxxo")
271
  Oxxo oxxo;
272

273
  /**
274
   * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
275
   * method.
276
   */
277
  @SerializedName("p24")
278
  P24 p24;
279

280
  /**
281
   * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
282
   * method.
283
   */
284
  @SerializedName("payco")
285
  Payco payco;
286

287
  /** The PaymentMethod to share. */
288
  @SerializedName("payment_method")
289
  String paymentMethod;
290

291
  /**
292
   * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow payment
293
   * method.
294
   */
295
  @SerializedName("paynow")
296
  Paynow paynow;
297

298
  /**
299
   * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal payment
300
   * method.
301
   */
302
  @SerializedName("paypal")
303
  Paypal paypal;
304

305
  /**
306
   * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo payment
307
   * method.
308
   */
309
  @SerializedName("payto")
310
  Payto payto;
311

312
  /**
313
   * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
314
   * method.
315
   */
316
  @SerializedName("pix")
317
  Pix pix;
318

319
  /**
320
   * If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
321
   * payment method.
322
   */
323
  @SerializedName("promptpay")
324
  Promptpay promptpay;
325

326
  /**
327
   * If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
328
   * method.
329
   */
330
  @SerializedName("qris")
331
  Qris qris;
332

333
  /**
334
   * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
335
   * Session</a> for more information.
336
   */
337
  @SerializedName("radar_options")
338
  RadarOptions radarOptions;
339

340
  /**
341
   * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
342
   * payment method.
343
   */
344
  @SerializedName("rechnung")
345
  Rechnung rechnung;
346

347
  /**
348
   * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
349
   * Pay payment method.
350
   */
351
  @SerializedName("revolut_pay")
352
  RevolutPay revolutPay;
353

354
  /**
355
   * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the SamsungPay
356
   * payment method.
357
   */
358
  @SerializedName("samsung_pay")
359
  SamsungPay samsungPay;
360

361
  /**
362
   * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA debit
363
   * bank account.
364
   */
365
  @SerializedName("sepa_debit")
366
  SepaDebit sepaDebit;
367

368
  /**
369
   * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment
370
   * method.
371
   */
372
  @SerializedName("shopeepay")
373
  Shopeepay shopeepay;
374

375
  /**
376
   * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT payment
377
   * method.
378
   */
379
  @SerializedName("sofort")
380
  Sofort sofort;
381

382
  /**
383
   * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
384
   * method.
385
   */
386
  @SerializedName("swish")
387
  Swish swish;
388

389
  /**
390
   * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
391
   */
392
  @SerializedName("twint")
393
  Twint twint;
394

395
  /**
396
   * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name
397
   * matching this value. It contains additional information specific to the PaymentMethod type.
398
   */
399
  @SerializedName("type")
400
  Type type;
401

402
  /**
403
   * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
404
   * bank account payment method.
405
   */
406
  @SerializedName("us_bank_account")
407
  UsBankAccount usBankAccount;
408

409
  /**
410
   * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the wechat_pay
411
   * payment method.
412
   */
413
  @SerializedName("wechat_pay")
414
  WechatPay wechatPay;
415

416
  /**
417
   * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
418
   * method.
419
   */
420
  @SerializedName("zip")
421
  Zip zip;
422

423
  private PaymentMethodCreateParams(
424
      AcssDebit acssDebit,
425
      Affirm affirm,
426
      AfterpayClearpay afterpayClearpay,
427
      Alipay alipay,
428
      AllowRedisplay allowRedisplay,
429
      Alma alma,
430
      AmazonPay amazonPay,
431
      AuBecsDebit auBecsDebit,
432
      BacsDebit bacsDebit,
433
      Bancontact bancontact,
434
      BillingDetails billingDetails,
435
      Blik blik,
436
      Boleto boleto,
437
      Object card,
438
      Cashapp cashapp,
439
      String customer,
440
      CustomerBalance customerBalance,
441
      Eps eps,
442
      List<String> expand,
443
      Map<String, Object> extraParams,
444
      Fpx fpx,
445
      Giropay giropay,
446
      Gopay gopay,
447
      Grabpay grabpay,
448
      Ideal ideal,
449
      InteracPresent interacPresent,
450
      KakaoPay kakaoPay,
451
      Klarna klarna,
452
      Konbini konbini,
453
      KrCard krCard,
454
      Link link,
455
      MbWay mbWay,
456
      Map<String, String> metadata,
457
      Mobilepay mobilepay,
458
      Multibanco multibanco,
459
      NaverPay naverPay,
460
      Oxxo oxxo,
461
      P24 p24,
462
      Payco payco,
463
      String paymentMethod,
464
      Paynow paynow,
465
      Paypal paypal,
466
      Payto payto,
467
      Pix pix,
468
      Promptpay promptpay,
469
      Qris qris,
470
      RadarOptions radarOptions,
471
      Rechnung rechnung,
472
      RevolutPay revolutPay,
473
      SamsungPay samsungPay,
474
      SepaDebit sepaDebit,
475
      Shopeepay shopeepay,
476
      Sofort sofort,
477
      Swish swish,
478
      Twint twint,
479
      Type type,
480
      UsBankAccount usBankAccount,
481
      WechatPay wechatPay,
482
      Zip zip) {
×
483
    this.acssDebit = acssDebit;
×
484
    this.affirm = affirm;
×
485
    this.afterpayClearpay = afterpayClearpay;
×
486
    this.alipay = alipay;
×
487
    this.allowRedisplay = allowRedisplay;
×
NEW
488
    this.alma = alma;
×
489
    this.amazonPay = amazonPay;
×
490
    this.auBecsDebit = auBecsDebit;
×
491
    this.bacsDebit = bacsDebit;
×
492
    this.bancontact = bancontact;
×
493
    this.billingDetails = billingDetails;
×
494
    this.blik = blik;
×
495
    this.boleto = boleto;
×
496
    this.card = card;
×
497
    this.cashapp = cashapp;
×
498
    this.customer = customer;
×
499
    this.customerBalance = customerBalance;
×
500
    this.eps = eps;
×
501
    this.expand = expand;
×
502
    this.extraParams = extraParams;
×
503
    this.fpx = fpx;
×
504
    this.giropay = giropay;
×
NEW
505
    this.gopay = gopay;
×
506
    this.grabpay = grabpay;
×
507
    this.ideal = ideal;
×
508
    this.interacPresent = interacPresent;
×
509
    this.kakaoPay = kakaoPay;
×
510
    this.klarna = klarna;
×
511
    this.konbini = konbini;
×
512
    this.krCard = krCard;
×
513
    this.link = link;
×
514
    this.mbWay = mbWay;
×
515
    this.metadata = metadata;
×
516
    this.mobilepay = mobilepay;
×
517
    this.multibanco = multibanco;
×
518
    this.naverPay = naverPay;
×
519
    this.oxxo = oxxo;
×
520
    this.p24 = p24;
×
521
    this.payco = payco;
×
522
    this.paymentMethod = paymentMethod;
×
523
    this.paynow = paynow;
×
524
    this.paypal = paypal;
×
525
    this.payto = payto;
×
526
    this.pix = pix;
×
527
    this.promptpay = promptpay;
×
NEW
528
    this.qris = qris;
×
529
    this.radarOptions = radarOptions;
×
530
    this.rechnung = rechnung;
×
531
    this.revolutPay = revolutPay;
×
532
    this.samsungPay = samsungPay;
×
533
    this.sepaDebit = sepaDebit;
×
NEW
534
    this.shopeepay = shopeepay;
×
535
    this.sofort = sofort;
×
536
    this.swish = swish;
×
537
    this.twint = twint;
×
538
    this.type = type;
×
539
    this.usBankAccount = usBankAccount;
×
540
    this.wechatPay = wechatPay;
×
541
    this.zip = zip;
×
542
  }
×
543

544
  public static Builder builder() {
545
    return new Builder();
×
546
  }
547

548
  public static class Builder {
×
549
    private AcssDebit acssDebit;
550

551
    private Affirm affirm;
552

553
    private AfterpayClearpay afterpayClearpay;
554

555
    private Alipay alipay;
556

557
    private AllowRedisplay allowRedisplay;
558

559
    private Alma alma;
560

561
    private AmazonPay amazonPay;
562

563
    private AuBecsDebit auBecsDebit;
564

565
    private BacsDebit bacsDebit;
566

567
    private Bancontact bancontact;
568

569
    private BillingDetails billingDetails;
570

571
    private Blik blik;
572

573
    private Boleto boleto;
574

575
    private Object card;
576

577
    private Cashapp cashapp;
578

579
    private String customer;
580

581
    private CustomerBalance customerBalance;
582

583
    private Eps eps;
584

585
    private List<String> expand;
586

587
    private Map<String, Object> extraParams;
588

589
    private Fpx fpx;
590

591
    private Giropay giropay;
592

593
    private Gopay gopay;
594

595
    private Grabpay grabpay;
596

597
    private Ideal ideal;
598

599
    private InteracPresent interacPresent;
600

601
    private KakaoPay kakaoPay;
602

603
    private Klarna klarna;
604

605
    private Konbini konbini;
606

607
    private KrCard krCard;
608

609
    private Link link;
610

611
    private MbWay mbWay;
612

613
    private Map<String, String> metadata;
614

615
    private Mobilepay mobilepay;
616

617
    private Multibanco multibanco;
618

619
    private NaverPay naverPay;
620

621
    private Oxxo oxxo;
622

623
    private P24 p24;
624

625
    private Payco payco;
626

627
    private String paymentMethod;
628

629
    private Paynow paynow;
630

631
    private Paypal paypal;
632

633
    private Payto payto;
634

635
    private Pix pix;
636

637
    private Promptpay promptpay;
638

639
    private Qris qris;
640

641
    private RadarOptions radarOptions;
642

643
    private Rechnung rechnung;
644

645
    private RevolutPay revolutPay;
646

647
    private SamsungPay samsungPay;
648

649
    private SepaDebit sepaDebit;
650

651
    private Shopeepay shopeepay;
652

653
    private Sofort sofort;
654

655
    private Swish swish;
656

657
    private Twint twint;
658

659
    private Type type;
660

661
    private UsBankAccount usBankAccount;
662

663
    private WechatPay wechatPay;
664

665
    private Zip zip;
666

667
    /** Finalize and obtain parameter instance from this builder. */
668
    public PaymentMethodCreateParams build() {
669
      return new PaymentMethodCreateParams(
×
670
          this.acssDebit,
671
          this.affirm,
672
          this.afterpayClearpay,
673
          this.alipay,
674
          this.allowRedisplay,
675
          this.alma,
676
          this.amazonPay,
677
          this.auBecsDebit,
678
          this.bacsDebit,
679
          this.bancontact,
680
          this.billingDetails,
681
          this.blik,
682
          this.boleto,
683
          this.card,
684
          this.cashapp,
685
          this.customer,
686
          this.customerBalance,
687
          this.eps,
688
          this.expand,
689
          this.extraParams,
690
          this.fpx,
691
          this.giropay,
692
          this.gopay,
693
          this.grabpay,
694
          this.ideal,
695
          this.interacPresent,
696
          this.kakaoPay,
697
          this.klarna,
698
          this.konbini,
699
          this.krCard,
700
          this.link,
701
          this.mbWay,
702
          this.metadata,
703
          this.mobilepay,
704
          this.multibanco,
705
          this.naverPay,
706
          this.oxxo,
707
          this.p24,
708
          this.payco,
709
          this.paymentMethod,
710
          this.paynow,
711
          this.paypal,
712
          this.payto,
713
          this.pix,
714
          this.promptpay,
715
          this.qris,
716
          this.radarOptions,
717
          this.rechnung,
718
          this.revolutPay,
719
          this.samsungPay,
720
          this.sepaDebit,
721
          this.shopeepay,
722
          this.sofort,
723
          this.swish,
724
          this.twint,
725
          this.type,
726
          this.usBankAccount,
727
          this.wechatPay,
728
          this.zip);
729
    }
730

731
    /**
732
     * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
733
     * Debit payment method.
734
     */
735
    public Builder setAcssDebit(PaymentMethodCreateParams.AcssDebit acssDebit) {
736
      this.acssDebit = acssDebit;
×
737
      return this;
×
738
    }
739

740
    /**
741
     * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
742
     * payment method.
743
     */
744
    public Builder setAffirm(PaymentMethodCreateParams.Affirm affirm) {
745
      this.affirm = affirm;
×
746
      return this;
×
747
    }
748

749
    /**
750
     * If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
751
     * AfterpayClearpay payment method.
752
     */
753
    public Builder setAfterpayClearpay(
754
        PaymentMethodCreateParams.AfterpayClearpay afterpayClearpay) {
755
      this.afterpayClearpay = afterpayClearpay;
×
756
      return this;
×
757
    }
758

759
    /**
760
     * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
761
     * payment method.
762
     */
763
    public Builder setAlipay(PaymentMethodCreateParams.Alipay alipay) {
764
      this.alipay = alipay;
×
765
      return this;
×
766
    }
767

768
    /**
769
     * This field indicates whether this payment method can be shown again to its customer in a
770
     * checkout flow. Stripe products such as Checkout and Elements use this field to determine
771
     * whether a payment method can be shown as a saved payment method in a checkout flow. The field
772
     * defaults to {@code unspecified}.
773
     */
774
    public Builder setAllowRedisplay(PaymentMethodCreateParams.AllowRedisplay allowRedisplay) {
775
      this.allowRedisplay = allowRedisplay;
×
776
      return this;
×
777
    }
778

779
    /**
780
     * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
781
     */
782
    public Builder setAlma(PaymentMethodCreateParams.Alma alma) {
NEW
783
      this.alma = alma;
×
NEW
784
      return this;
×
785
    }
786

787
    /**
788
     * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
789
     * method.
790
     */
791
    public Builder setAmazonPay(PaymentMethodCreateParams.AmazonPay amazonPay) {
792
      this.amazonPay = amazonPay;
×
793
      return this;
×
794
    }
795

796
    /**
797
     * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank
798
     * account.
799
     */
800
    public Builder setAuBecsDebit(PaymentMethodCreateParams.AuBecsDebit auBecsDebit) {
801
      this.auBecsDebit = auBecsDebit;
×
802
      return this;
×
803
    }
804

805
    /**
806
     * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
807
     * Direct Debit bank account.
808
     */
809
    public Builder setBacsDebit(PaymentMethodCreateParams.BacsDebit bacsDebit) {
810
      this.bacsDebit = bacsDebit;
×
811
      return this;
×
812
    }
813

814
    /**
815
     * If this is a {@code bancontact} PaymentMethod, this hash contains details about the
816
     * Bancontact payment method.
817
     */
818
    public Builder setBancontact(PaymentMethodCreateParams.Bancontact bancontact) {
819
      this.bancontact = bancontact;
×
820
      return this;
×
821
    }
822

823
    /**
824
     * Billing information associated with the PaymentMethod that may be used or required by
825
     * particular types of payment methods.
826
     */
827
    public Builder setBillingDetails(PaymentMethodCreateParams.BillingDetails billingDetails) {
828
      this.billingDetails = billingDetails;
×
829
      return this;
×
830
    }
831

832
    /**
833
     * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
834
     * method.
835
     */
836
    public Builder setBlik(PaymentMethodCreateParams.Blik blik) {
837
      this.blik = blik;
×
838
      return this;
×
839
    }
840

841
    /**
842
     * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
843
     * payment method.
844
     */
845
    public Builder setBoleto(PaymentMethodCreateParams.Boleto boleto) {
846
      this.boleto = boleto;
×
847
      return this;
×
848
    }
849

850
    /**
851
     * If this is a {@code card} PaymentMethod, this hash contains the user's card details. For
852
     * backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay,
853
     * Amex Express Checkout, or legacy Checkout) into the card hash with format {@code card:
854
     * {token: "tok_visa"}}. When providing a card number, you must meet the requirements for <a
855
     * href="https://stripe.com/docs/security#validating-pci-compliance">PCI compliance</a>. We
856
     * strongly recommend using Stripe.js instead of interacting with this API directly.
857
     */
858
    public Builder setCard(PaymentMethodCreateParams.CardDetails card) {
859
      this.card = card;
×
860
      return this;
×
861
    }
862

863
    /**
864
     * If this is a {@code card} PaymentMethod, this hash contains the user's card details. For
865
     * backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay,
866
     * Amex Express Checkout, or legacy Checkout) into the card hash with format {@code card:
867
     * {token: "tok_visa"}}. When providing a card number, you must meet the requirements for <a
868
     * href="https://stripe.com/docs/security#validating-pci-compliance">PCI compliance</a>. We
869
     * strongly recommend using Stripe.js instead of interacting with this API directly.
870
     */
871
    public Builder setCard(PaymentMethodCreateParams.Token card) {
872
      this.card = card;
×
873
      return this;
×
874
    }
875

876
    /**
877
     * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App Pay
878
     * payment method.
879
     */
880
    public Builder setCashapp(PaymentMethodCreateParams.Cashapp cashapp) {
881
      this.cashapp = cashapp;
×
882
      return this;
×
883
    }
884

885
    /** The {@code Customer} to whom the original PaymentMethod is attached. */
886
    public Builder setCustomer(String customer) {
887
      this.customer = customer;
×
888
      return this;
×
889
    }
890

891
    /**
892
     * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
893
     * CustomerBalance payment method.
894
     */
895
    public Builder setCustomerBalance(PaymentMethodCreateParams.CustomerBalance customerBalance) {
896
      this.customerBalance = customerBalance;
×
897
      return this;
×
898
    }
899

900
    /**
901
     * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
902
     * method.
903
     */
904
    public Builder setEps(PaymentMethodCreateParams.Eps eps) {
905
      this.eps = eps;
×
906
      return this;
×
907
    }
908

909
    /**
910
     * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and
911
     * subsequent calls adds additional elements to the original list. See {@link
912
     * PaymentMethodCreateParams#expand} for the field documentation.
913
     */
914
    public Builder addExpand(String element) {
915
      if (this.expand == null) {
×
916
        this.expand = new ArrayList<>();
×
917
      }
918
      this.expand.add(element);
×
919
      return this;
×
920
    }
921

922
    /**
923
     * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and
924
     * subsequent calls adds additional elements to the original list. See {@link
925
     * PaymentMethodCreateParams#expand} for the field documentation.
926
     */
927
    public Builder addAllExpand(List<String> elements) {
928
      if (this.expand == null) {
×
929
        this.expand = new ArrayList<>();
×
930
      }
931
      this.expand.addAll(elements);
×
932
      return this;
×
933
    }
934

935
    /**
936
     * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
937
     * call, and subsequent calls add additional key/value pairs to the original map. See {@link
938
     * PaymentMethodCreateParams#extraParams} for the field documentation.
939
     */
940
    public Builder putExtraParam(String key, Object value) {
941
      if (this.extraParams == null) {
×
942
        this.extraParams = new HashMap<>();
×
943
      }
944
      this.extraParams.put(key, value);
×
945
      return this;
×
946
    }
947

948
    /**
949
     * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
950
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
951
     * See {@link PaymentMethodCreateParams#extraParams} for the field documentation.
952
     */
953
    public Builder putAllExtraParam(Map<String, Object> map) {
954
      if (this.extraParams == null) {
×
955
        this.extraParams = new HashMap<>();
×
956
      }
957
      this.extraParams.putAll(map);
×
958
      return this;
×
959
    }
960

961
    /**
962
     * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
963
     * method.
964
     */
965
    public Builder setFpx(PaymentMethodCreateParams.Fpx fpx) {
966
      this.fpx = fpx;
×
967
      return this;
×
968
    }
969

970
    /**
971
     * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
972
     * payment method.
973
     */
974
    public Builder setGiropay(PaymentMethodCreateParams.Giropay giropay) {
975
      this.giropay = giropay;
×
976
      return this;
×
977
    }
978

979
    /**
980
     * If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment method.
981
     */
982
    public Builder setGopay(PaymentMethodCreateParams.Gopay gopay) {
NEW
983
      this.gopay = gopay;
×
NEW
984
      return this;
×
985
    }
986

987
    /**
988
     * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
989
     * payment method.
990
     */
991
    public Builder setGrabpay(PaymentMethodCreateParams.Grabpay grabpay) {
992
      this.grabpay = grabpay;
×
993
      return this;
×
994
    }
995

996
    /**
997
     * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment
998
     * method.
999
     */
1000
    public Builder setIdeal(PaymentMethodCreateParams.Ideal ideal) {
1001
      this.ideal = ideal;
×
1002
      return this;
×
1003
    }
1004

1005
    /**
1006
     * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
1007
     * Interac Present payment method.
1008
     */
1009
    public Builder setInteracPresent(PaymentMethodCreateParams.InteracPresent interacPresent) {
1010
      this.interacPresent = interacPresent;
×
1011
      return this;
×
1012
    }
1013

1014
    /**
1015
     * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
1016
     * payment method.
1017
     */
1018
    public Builder setKakaoPay(PaymentMethodCreateParams.KakaoPay kakaoPay) {
1019
      this.kakaoPay = kakaoPay;
×
1020
      return this;
×
1021
    }
1022

1023
    /**
1024
     * If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna
1025
     * payment method.
1026
     */
1027
    public Builder setKlarna(PaymentMethodCreateParams.Klarna klarna) {
1028
      this.klarna = klarna;
×
1029
      return this;
×
1030
    }
1031

1032
    /**
1033
     * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
1034
     * payment method.
1035
     */
1036
    public Builder setKonbini(PaymentMethodCreateParams.Konbini konbini) {
1037
      this.konbini = konbini;
×
1038
      return this;
×
1039
    }
1040

1041
    /**
1042
     * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
1043
     * payment method.
1044
     */
1045
    public Builder setKrCard(PaymentMethodCreateParams.KrCard krCard) {
1046
      this.krCard = krCard;
×
1047
      return this;
×
1048
    }
1049

1050
    /**
1051
     * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
1052
     * method.
1053
     */
1054
    public Builder setLink(PaymentMethodCreateParams.Link link) {
1055
      this.link = link;
×
1056
      return this;
×
1057
    }
1058

1059
    /**
1060
     * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
1061
     * method.
1062
     */
1063
    public Builder setMbWay(PaymentMethodCreateParams.MbWay mbWay) {
1064
      this.mbWay = mbWay;
×
1065
      return this;
×
1066
    }
1067

1068
    /**
1069
     * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call,
1070
     * and subsequent calls add additional key/value pairs to the original map. See {@link
1071
     * PaymentMethodCreateParams#metadata} for the field documentation.
1072
     */
1073
    public Builder putMetadata(String key, String value) {
1074
      if (this.metadata == null) {
×
1075
        this.metadata = new HashMap<>();
×
1076
      }
1077
      this.metadata.put(key, value);
×
1078
      return this;
×
1079
    }
1080

1081
    /**
1082
     * Add all map key/value pairs to `metadata` map. A map is initialized for the first
1083
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1084
     * See {@link PaymentMethodCreateParams#metadata} for the field documentation.
1085
     */
1086
    public Builder putAllMetadata(Map<String, String> map) {
1087
      if (this.metadata == null) {
×
1088
        this.metadata = new HashMap<>();
×
1089
      }
1090
      this.metadata.putAll(map);
×
1091
      return this;
×
1092
    }
1093

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

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

1112
    /**
1113
     * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
1114
     * payment method.
1115
     */
1116
    public Builder setNaverPay(PaymentMethodCreateParams.NaverPay naverPay) {
1117
      this.naverPay = naverPay;
×
1118
      return this;
×
1119
    }
1120

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

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

1139
    /**
1140
     * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
1141
     * method.
1142
     */
1143
    public Builder setPayco(PaymentMethodCreateParams.Payco payco) {
1144
      this.payco = payco;
×
1145
      return this;
×
1146
    }
1147

1148
    /** The PaymentMethod to share. */
1149
    public Builder setPaymentMethod(String paymentMethod) {
1150
      this.paymentMethod = paymentMethod;
×
1151
      return this;
×
1152
    }
1153

1154
    /**
1155
     * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
1156
     * payment method.
1157
     */
1158
    public Builder setPaynow(PaymentMethodCreateParams.Paynow paynow) {
1159
      this.paynow = paynow;
×
1160
      return this;
×
1161
    }
1162

1163
    /**
1164
     * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
1165
     * payment method.
1166
     */
1167
    public Builder setPaypal(PaymentMethodCreateParams.Paypal paypal) {
1168
      this.paypal = paypal;
×
1169
      return this;
×
1170
    }
1171

1172
    /**
1173
     * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo payment
1174
     * method.
1175
     */
1176
    public Builder setPayto(PaymentMethodCreateParams.Payto payto) {
1177
      this.payto = payto;
×
1178
      return this;
×
1179
    }
1180

1181
    /**
1182
     * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
1183
     * method.
1184
     */
1185
    public Builder setPix(PaymentMethodCreateParams.Pix pix) {
1186
      this.pix = pix;
×
1187
      return this;
×
1188
    }
1189

1190
    /**
1191
     * If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
1192
     * payment method.
1193
     */
1194
    public Builder setPromptpay(PaymentMethodCreateParams.Promptpay promptpay) {
1195
      this.promptpay = promptpay;
×
1196
      return this;
×
1197
    }
1198

1199
    /**
1200
     * If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
1201
     * method.
1202
     */
1203
    public Builder setQris(PaymentMethodCreateParams.Qris qris) {
NEW
1204
      this.qris = qris;
×
NEW
1205
      return this;
×
1206
    }
1207

1208
    /**
1209
     * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
1210
     * Session</a> for more information.
1211
     */
1212
    public Builder setRadarOptions(PaymentMethodCreateParams.RadarOptions radarOptions) {
1213
      this.radarOptions = radarOptions;
×
1214
      return this;
×
1215
    }
1216

1217
    /**
1218
     * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
1219
     * payment method.
1220
     */
1221
    public Builder setRechnung(PaymentMethodCreateParams.Rechnung rechnung) {
1222
      this.rechnung = rechnung;
×
1223
      return this;
×
1224
    }
1225

1226
    /**
1227
     * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
1228
     * Pay payment method.
1229
     */
1230
    public Builder setRevolutPay(PaymentMethodCreateParams.RevolutPay revolutPay) {
1231
      this.revolutPay = revolutPay;
×
1232
      return this;
×
1233
    }
1234

1235
    /**
1236
     * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
1237
     * SamsungPay payment method.
1238
     */
1239
    public Builder setSamsungPay(PaymentMethodCreateParams.SamsungPay samsungPay) {
1240
      this.samsungPay = samsungPay;
×
1241
      return this;
×
1242
    }
1243

1244
    /**
1245
     * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
1246
     * debit bank account.
1247
     */
1248
    public Builder setSepaDebit(PaymentMethodCreateParams.SepaDebit sepaDebit) {
1249
      this.sepaDebit = sepaDebit;
×
1250
      return this;
×
1251
    }
1252

1253
    /**
1254
     * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment
1255
     * method.
1256
     */
1257
    public Builder setShopeepay(PaymentMethodCreateParams.Shopeepay shopeepay) {
NEW
1258
      this.shopeepay = shopeepay;
×
NEW
1259
      return this;
×
1260
    }
1261

1262
    /**
1263
     * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
1264
     * payment method.
1265
     */
1266
    public Builder setSofort(PaymentMethodCreateParams.Sofort sofort) {
1267
      this.sofort = sofort;
×
1268
      return this;
×
1269
    }
1270

1271
    /**
1272
     * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
1273
     * method.
1274
     */
1275
    public Builder setSwish(PaymentMethodCreateParams.Swish swish) {
1276
      this.swish = swish;
×
1277
      return this;
×
1278
    }
1279

1280
    /**
1281
     * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
1282
     */
1283
    public Builder setTwint(PaymentMethodCreateParams.Twint twint) {
1284
      this.twint = twint;
×
1285
      return this;
×
1286
    }
1287

1288
    /**
1289
     * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a
1290
     * name matching this value. It contains additional information specific to the PaymentMethod
1291
     * type.
1292
     */
1293
    public Builder setType(PaymentMethodCreateParams.Type type) {
1294
      this.type = type;
×
1295
      return this;
×
1296
    }
1297

1298
    /**
1299
     * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
1300
     * bank account payment method.
1301
     */
1302
    public Builder setUsBankAccount(PaymentMethodCreateParams.UsBankAccount usBankAccount) {
1303
      this.usBankAccount = usBankAccount;
×
1304
      return this;
×
1305
    }
1306

1307
    /**
1308
     * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
1309
     * wechat_pay payment method.
1310
     */
1311
    public Builder setWechatPay(PaymentMethodCreateParams.WechatPay wechatPay) {
1312
      this.wechatPay = wechatPay;
×
1313
      return this;
×
1314
    }
1315

1316
    /**
1317
     * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
1318
     * method.
1319
     */
1320
    public Builder setZip(PaymentMethodCreateParams.Zip zip) {
1321
      this.zip = zip;
×
1322
      return this;
×
1323
    }
1324
  }
1325

1326
  @Getter
1327
  public static class AcssDebit {
1328
    /** <strong>Required.</strong> Customer's bank account number. */
1329
    @SerializedName("account_number")
1330
    String accountNumber;
1331

1332
    /**
1333
     * Map of extra parameters for custom features not available in this client library. The content
1334
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1335
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1336
     * param object. Effectively, this map is flattened to its parent instance.
1337
     */
1338
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1339
    Map<String, Object> extraParams;
1340

1341
    /** <strong>Required.</strong> Institution number of the customer's bank. */
1342
    @SerializedName("institution_number")
1343
    String institutionNumber;
1344

1345
    /** <strong>Required.</strong> Transit number of the customer's bank. */
1346
    @SerializedName("transit_number")
1347
    String transitNumber;
1348

1349
    private AcssDebit(
1350
        String accountNumber,
1351
        Map<String, Object> extraParams,
1352
        String institutionNumber,
1353
        String transitNumber) {
×
1354
      this.accountNumber = accountNumber;
×
1355
      this.extraParams = extraParams;
×
1356
      this.institutionNumber = institutionNumber;
×
1357
      this.transitNumber = transitNumber;
×
1358
    }
×
1359

1360
    public static Builder builder() {
1361
      return new Builder();
×
1362
    }
1363

1364
    public static class Builder {
×
1365
      private String accountNumber;
1366

1367
      private Map<String, Object> extraParams;
1368

1369
      private String institutionNumber;
1370

1371
      private String transitNumber;
1372

1373
      /** Finalize and obtain parameter instance from this builder. */
1374
      public PaymentMethodCreateParams.AcssDebit build() {
1375
        return new PaymentMethodCreateParams.AcssDebit(
×
1376
            this.accountNumber, this.extraParams, this.institutionNumber, this.transitNumber);
1377
      }
1378

1379
      /** <strong>Required.</strong> Customer's bank account number. */
1380
      public Builder setAccountNumber(String accountNumber) {
1381
        this.accountNumber = accountNumber;
×
1382
        return this;
×
1383
      }
1384

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

1398
      /**
1399
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1400
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1401
       * See {@link PaymentMethodCreateParams.AcssDebit#extraParams} for the field documentation.
1402
       */
1403
      public Builder putAllExtraParam(Map<String, Object> map) {
1404
        if (this.extraParams == null) {
×
1405
          this.extraParams = new HashMap<>();
×
1406
        }
1407
        this.extraParams.putAll(map);
×
1408
        return this;
×
1409
      }
1410

1411
      /** <strong>Required.</strong> Institution number of the customer's bank. */
1412
      public Builder setInstitutionNumber(String institutionNumber) {
1413
        this.institutionNumber = institutionNumber;
×
1414
        return this;
×
1415
      }
1416

1417
      /** <strong>Required.</strong> Transit number of the customer's bank. */
1418
      public Builder setTransitNumber(String transitNumber) {
1419
        this.transitNumber = transitNumber;
×
1420
        return this;
×
1421
      }
1422
    }
1423
  }
1424

1425
  @Getter
1426
  public static class Affirm {
1427
    /**
1428
     * Map of extra parameters for custom features not available in this client library. The content
1429
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1430
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1431
     * param object. Effectively, this map is flattened to its parent instance.
1432
     */
1433
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1434
    Map<String, Object> extraParams;
1435

1436
    private Affirm(Map<String, Object> extraParams) {
×
1437
      this.extraParams = extraParams;
×
1438
    }
×
1439

1440
    public static Builder builder() {
1441
      return new Builder();
×
1442
    }
1443

1444
    public static class Builder {
×
1445
      private Map<String, Object> extraParams;
1446

1447
      /** Finalize and obtain parameter instance from this builder. */
1448
      public PaymentMethodCreateParams.Affirm build() {
1449
        return new PaymentMethodCreateParams.Affirm(this.extraParams);
×
1450
      }
1451

1452
      /**
1453
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1454
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1455
       * PaymentMethodCreateParams.Affirm#extraParams} for the field documentation.
1456
       */
1457
      public Builder putExtraParam(String key, Object value) {
1458
        if (this.extraParams == null) {
×
1459
          this.extraParams = new HashMap<>();
×
1460
        }
1461
        this.extraParams.put(key, value);
×
1462
        return this;
×
1463
      }
1464

1465
      /**
1466
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1467
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1468
       * See {@link PaymentMethodCreateParams.Affirm#extraParams} for the field documentation.
1469
       */
1470
      public Builder putAllExtraParam(Map<String, Object> map) {
1471
        if (this.extraParams == null) {
×
1472
          this.extraParams = new HashMap<>();
×
1473
        }
1474
        this.extraParams.putAll(map);
×
1475
        return this;
×
1476
      }
1477
    }
1478
  }
1479

1480
  @Getter
1481
  public static class AfterpayClearpay {
1482
    /**
1483
     * Map of extra parameters for custom features not available in this client library. The content
1484
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1485
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1486
     * param object. Effectively, this map is flattened to its parent instance.
1487
     */
1488
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1489
    Map<String, Object> extraParams;
1490

1491
    private AfterpayClearpay(Map<String, Object> extraParams) {
×
1492
      this.extraParams = extraParams;
×
1493
    }
×
1494

1495
    public static Builder builder() {
1496
      return new Builder();
×
1497
    }
1498

1499
    public static class Builder {
×
1500
      private Map<String, Object> extraParams;
1501

1502
      /** Finalize and obtain parameter instance from this builder. */
1503
      public PaymentMethodCreateParams.AfterpayClearpay build() {
1504
        return new PaymentMethodCreateParams.AfterpayClearpay(this.extraParams);
×
1505
      }
1506

1507
      /**
1508
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1509
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1510
       * PaymentMethodCreateParams.AfterpayClearpay#extraParams} for the field documentation.
1511
       */
1512
      public Builder putExtraParam(String key, Object value) {
1513
        if (this.extraParams == null) {
×
1514
          this.extraParams = new HashMap<>();
×
1515
        }
1516
        this.extraParams.put(key, value);
×
1517
        return this;
×
1518
      }
1519

1520
      /**
1521
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1522
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1523
       * See {@link PaymentMethodCreateParams.AfterpayClearpay#extraParams} for the field
1524
       * documentation.
1525
       */
1526
      public Builder putAllExtraParam(Map<String, Object> map) {
1527
        if (this.extraParams == null) {
×
1528
          this.extraParams = new HashMap<>();
×
1529
        }
1530
        this.extraParams.putAll(map);
×
1531
        return this;
×
1532
      }
1533
    }
1534
  }
1535

1536
  @Getter
1537
  public static class Alipay {
1538
    /**
1539
     * Map of extra parameters for custom features not available in this client library. The content
1540
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1541
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1542
     * param object. Effectively, this map is flattened to its parent instance.
1543
     */
1544
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1545
    Map<String, Object> extraParams;
1546

1547
    private Alipay(Map<String, Object> extraParams) {
×
1548
      this.extraParams = extraParams;
×
1549
    }
×
1550

1551
    public static Builder builder() {
1552
      return new Builder();
×
1553
    }
1554

1555
    public static class Builder {
×
1556
      private Map<String, Object> extraParams;
1557

1558
      /** Finalize and obtain parameter instance from this builder. */
1559
      public PaymentMethodCreateParams.Alipay build() {
1560
        return new PaymentMethodCreateParams.Alipay(this.extraParams);
×
1561
      }
1562

1563
      /**
1564
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1565
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1566
       * PaymentMethodCreateParams.Alipay#extraParams} for the field documentation.
1567
       */
1568
      public Builder putExtraParam(String key, Object value) {
1569
        if (this.extraParams == null) {
×
1570
          this.extraParams = new HashMap<>();
×
1571
        }
1572
        this.extraParams.put(key, value);
×
1573
        return this;
×
1574
      }
1575

1576
      /**
1577
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1578
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1579
       * See {@link PaymentMethodCreateParams.Alipay#extraParams} for the field documentation.
1580
       */
1581
      public Builder putAllExtraParam(Map<String, Object> map) {
1582
        if (this.extraParams == null) {
×
1583
          this.extraParams = new HashMap<>();
×
1584
        }
1585
        this.extraParams.putAll(map);
×
1586
        return this;
×
1587
      }
1588
    }
1589
  }
1590

1591
  @Getter
1592
  public static class Alma {
1593
    /**
1594
     * Map of extra parameters for custom features not available in this client library. The content
1595
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1596
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1597
     * param object. Effectively, this map is flattened to its parent instance.
1598
     */
1599
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1600
    Map<String, Object> extraParams;
1601

NEW
1602
    private Alma(Map<String, Object> extraParams) {
×
NEW
1603
      this.extraParams = extraParams;
×
NEW
1604
    }
×
1605

1606
    public static Builder builder() {
NEW
1607
      return new Builder();
×
1608
    }
1609

NEW
1610
    public static class Builder {
×
1611
      private Map<String, Object> extraParams;
1612

1613
      /** Finalize and obtain parameter instance from this builder. */
1614
      public PaymentMethodCreateParams.Alma build() {
NEW
1615
        return new PaymentMethodCreateParams.Alma(this.extraParams);
×
1616
      }
1617

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

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

1646
  @Getter
1647
  public static class AmazonPay {
1648
    /**
1649
     * Map of extra parameters for custom features not available in this client library. The content
1650
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1651
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1652
     * param object. Effectively, this map is flattened to its parent instance.
1653
     */
1654
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1655
    Map<String, Object> extraParams;
1656

1657
    private AmazonPay(Map<String, Object> extraParams) {
×
1658
      this.extraParams = extraParams;
×
1659
    }
×
1660

1661
    public static Builder builder() {
1662
      return new Builder();
×
1663
    }
1664

1665
    public static class Builder {
×
1666
      private Map<String, Object> extraParams;
1667

1668
      /** Finalize and obtain parameter instance from this builder. */
1669
      public PaymentMethodCreateParams.AmazonPay build() {
1670
        return new PaymentMethodCreateParams.AmazonPay(this.extraParams);
×
1671
      }
1672

1673
      /**
1674
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1675
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1676
       * PaymentMethodCreateParams.AmazonPay#extraParams} for the field documentation.
1677
       */
1678
      public Builder putExtraParam(String key, Object value) {
1679
        if (this.extraParams == null) {
×
1680
          this.extraParams = new HashMap<>();
×
1681
        }
1682
        this.extraParams.put(key, value);
×
1683
        return this;
×
1684
      }
1685

1686
      /**
1687
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1688
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1689
       * See {@link PaymentMethodCreateParams.AmazonPay#extraParams} for the field documentation.
1690
       */
1691
      public Builder putAllExtraParam(Map<String, Object> map) {
1692
        if (this.extraParams == null) {
×
1693
          this.extraParams = new HashMap<>();
×
1694
        }
1695
        this.extraParams.putAll(map);
×
1696
        return this;
×
1697
      }
1698
    }
1699
  }
1700

1701
  @Getter
1702
  public static class AuBecsDebit {
1703
    /** <strong>Required.</strong> The account number for the bank account. */
1704
    @SerializedName("account_number")
1705
    String accountNumber;
1706

1707
    /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1708
    @SerializedName("bsb_number")
1709
    String bsbNumber;
1710

1711
    /**
1712
     * Map of extra parameters for custom features not available in this client library. The content
1713
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1714
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1715
     * param object. Effectively, this map is flattened to its parent instance.
1716
     */
1717
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1718
    Map<String, Object> extraParams;
1719

1720
    private AuBecsDebit(String accountNumber, String bsbNumber, Map<String, Object> extraParams) {
×
1721
      this.accountNumber = accountNumber;
×
1722
      this.bsbNumber = bsbNumber;
×
1723
      this.extraParams = extraParams;
×
1724
    }
×
1725

1726
    public static Builder builder() {
1727
      return new Builder();
×
1728
    }
1729

1730
    public static class Builder {
×
1731
      private String accountNumber;
1732

1733
      private String bsbNumber;
1734

1735
      private Map<String, Object> extraParams;
1736

1737
      /** Finalize and obtain parameter instance from this builder. */
1738
      public PaymentMethodCreateParams.AuBecsDebit build() {
1739
        return new PaymentMethodCreateParams.AuBecsDebit(
×
1740
            this.accountNumber, this.bsbNumber, this.extraParams);
1741
      }
1742

1743
      /** <strong>Required.</strong> The account number for the bank account. */
1744
      public Builder setAccountNumber(String accountNumber) {
1745
        this.accountNumber = accountNumber;
×
1746
        return this;
×
1747
      }
1748

1749
      /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1750
      public Builder setBsbNumber(String bsbNumber) {
1751
        this.bsbNumber = bsbNumber;
×
1752
        return this;
×
1753
      }
1754

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

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

1783
  @Getter
1784
  public static class BacsDebit {
1785
    /** Account number of the bank account that the funds will be debited from. */
1786
    @SerializedName("account_number")
1787
    String accountNumber;
1788

1789
    /**
1790
     * Map of extra parameters for custom features not available in this client library. The content
1791
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1792
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1793
     * param object. Effectively, this map is flattened to its parent instance.
1794
     */
1795
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1796
    Map<String, Object> extraParams;
1797

1798
    /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1799
    @SerializedName("sort_code")
1800
    String sortCode;
1801

1802
    private BacsDebit(String accountNumber, Map<String, Object> extraParams, String sortCode) {
×
1803
      this.accountNumber = accountNumber;
×
1804
      this.extraParams = extraParams;
×
1805
      this.sortCode = sortCode;
×
1806
    }
×
1807

1808
    public static Builder builder() {
1809
      return new Builder();
×
1810
    }
1811

1812
    public static class Builder {
×
1813
      private String accountNumber;
1814

1815
      private Map<String, Object> extraParams;
1816

1817
      private String sortCode;
1818

1819
      /** Finalize and obtain parameter instance from this builder. */
1820
      public PaymentMethodCreateParams.BacsDebit build() {
1821
        return new PaymentMethodCreateParams.BacsDebit(
×
1822
            this.accountNumber, this.extraParams, this.sortCode);
1823
      }
1824

1825
      /** Account number of the bank account that the funds will be debited from. */
1826
      public Builder setAccountNumber(String accountNumber) {
1827
        this.accountNumber = accountNumber;
×
1828
        return this;
×
1829
      }
1830

1831
      /**
1832
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1833
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1834
       * PaymentMethodCreateParams.BacsDebit#extraParams} for the field documentation.
1835
       */
1836
      public Builder putExtraParam(String key, Object value) {
1837
        if (this.extraParams == null) {
×
1838
          this.extraParams = new HashMap<>();
×
1839
        }
1840
        this.extraParams.put(key, value);
×
1841
        return this;
×
1842
      }
1843

1844
      /**
1845
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1846
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1847
       * See {@link PaymentMethodCreateParams.BacsDebit#extraParams} for the field documentation.
1848
       */
1849
      public Builder putAllExtraParam(Map<String, Object> map) {
1850
        if (this.extraParams == null) {
×
1851
          this.extraParams = new HashMap<>();
×
1852
        }
1853
        this.extraParams.putAll(map);
×
1854
        return this;
×
1855
      }
1856

1857
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1858
      public Builder setSortCode(String sortCode) {
1859
        this.sortCode = sortCode;
×
1860
        return this;
×
1861
      }
1862
    }
1863
  }
1864

1865
  @Getter
1866
  public static class Bancontact {
1867
    /**
1868
     * Map of extra parameters for custom features not available in this client library. The content
1869
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1870
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1871
     * param object. Effectively, this map is flattened to its parent instance.
1872
     */
1873
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1874
    Map<String, Object> extraParams;
1875

1876
    private Bancontact(Map<String, Object> extraParams) {
×
1877
      this.extraParams = extraParams;
×
1878
    }
×
1879

1880
    public static Builder builder() {
1881
      return new Builder();
×
1882
    }
1883

1884
    public static class Builder {
×
1885
      private Map<String, Object> extraParams;
1886

1887
      /** Finalize and obtain parameter instance from this builder. */
1888
      public PaymentMethodCreateParams.Bancontact build() {
1889
        return new PaymentMethodCreateParams.Bancontact(this.extraParams);
×
1890
      }
1891

1892
      /**
1893
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1894
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1895
       * PaymentMethodCreateParams.Bancontact#extraParams} for the field documentation.
1896
       */
1897
      public Builder putExtraParam(String key, Object value) {
1898
        if (this.extraParams == null) {
×
1899
          this.extraParams = new HashMap<>();
×
1900
        }
1901
        this.extraParams.put(key, value);
×
1902
        return this;
×
1903
      }
1904

1905
      /**
1906
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1907
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1908
       * See {@link PaymentMethodCreateParams.Bancontact#extraParams} for the field documentation.
1909
       */
1910
      public Builder putAllExtraParam(Map<String, Object> map) {
1911
        if (this.extraParams == null) {
×
1912
          this.extraParams = new HashMap<>();
×
1913
        }
1914
        this.extraParams.putAll(map);
×
1915
        return this;
×
1916
      }
1917
    }
1918
  }
1919

1920
  @Getter
1921
  public static class BillingDetails {
1922
    /** Billing address. */
1923
    @SerializedName("address")
1924
    Object address;
1925

1926
    /** Email address. */
1927
    @SerializedName("email")
1928
    Object email;
1929

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

1939
    /** Full name. */
1940
    @SerializedName("name")
1941
    Object name;
1942

1943
    /** Billing phone number (including extension). */
1944
    @SerializedName("phone")
1945
    Object phone;
1946

1947
    private BillingDetails(
1948
        Object address, Object email, Map<String, Object> extraParams, Object name, Object phone) {
×
1949
      this.address = address;
×
1950
      this.email = email;
×
1951
      this.extraParams = extraParams;
×
1952
      this.name = name;
×
1953
      this.phone = phone;
×
1954
    }
×
1955

1956
    public static Builder builder() {
1957
      return new Builder();
×
1958
    }
1959

1960
    public static class Builder {
×
1961
      private Object address;
1962

1963
      private Object email;
1964

1965
      private Map<String, Object> extraParams;
1966

1967
      private Object name;
1968

1969
      private Object phone;
1970

1971
      /** Finalize and obtain parameter instance from this builder. */
1972
      public PaymentMethodCreateParams.BillingDetails build() {
1973
        return new PaymentMethodCreateParams.BillingDetails(
×
1974
            this.address, this.email, this.extraParams, this.name, this.phone);
1975
      }
1976

1977
      /** Billing address. */
1978
      public Builder setAddress(PaymentMethodCreateParams.BillingDetails.Address address) {
1979
        this.address = address;
×
1980
        return this;
×
1981
      }
1982

1983
      /** Billing address. */
1984
      public Builder setAddress(EmptyParam address) {
1985
        this.address = address;
×
1986
        return this;
×
1987
      }
1988

1989
      /** Email address. */
1990
      public Builder setEmail(String email) {
1991
        this.email = email;
×
1992
        return this;
×
1993
      }
1994

1995
      /** Email address. */
1996
      public Builder setEmail(EmptyParam email) {
1997
        this.email = email;
×
1998
        return this;
×
1999
      }
2000

2001
      /**
2002
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2003
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2004
       * PaymentMethodCreateParams.BillingDetails#extraParams} for the field documentation.
2005
       */
2006
      public Builder putExtraParam(String key, Object value) {
2007
        if (this.extraParams == null) {
×
2008
          this.extraParams = new HashMap<>();
×
2009
        }
2010
        this.extraParams.put(key, value);
×
2011
        return this;
×
2012
      }
2013

2014
      /**
2015
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2016
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2017
       * See {@link PaymentMethodCreateParams.BillingDetails#extraParams} for the field
2018
       * documentation.
2019
       */
2020
      public Builder putAllExtraParam(Map<String, Object> map) {
2021
        if (this.extraParams == null) {
×
2022
          this.extraParams = new HashMap<>();
×
2023
        }
2024
        this.extraParams.putAll(map);
×
2025
        return this;
×
2026
      }
2027

2028
      /** Full name. */
2029
      public Builder setName(String name) {
2030
        this.name = name;
×
2031
        return this;
×
2032
      }
2033

2034
      /** Full name. */
2035
      public Builder setName(EmptyParam name) {
2036
        this.name = name;
×
2037
        return this;
×
2038
      }
2039

2040
      /** Billing phone number (including extension). */
2041
      public Builder setPhone(String phone) {
2042
        this.phone = phone;
×
2043
        return this;
×
2044
      }
2045

2046
      /** Billing phone number (including extension). */
2047
      public Builder setPhone(EmptyParam phone) {
2048
        this.phone = phone;
×
2049
        return this;
×
2050
      }
2051
    }
2052

2053
    @Getter
2054
    public static class Address {
2055
      /** City, district, suburb, town, or village. */
2056
      @SerializedName("city")
2057
      String city;
2058

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

2066
      /**
2067
       * Map of extra parameters for custom features not available in this client library. The
2068
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2069
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2070
       * name in this param object. Effectively, this map is flattened to its parent instance.
2071
       */
2072
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2073
      Map<String, Object> extraParams;
2074

2075
      /** Address line 1 (e.g., street, PO Box, or company name). */
2076
      @SerializedName("line1")
2077
      String line1;
2078

2079
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
2080
      @SerializedName("line2")
2081
      String line2;
2082

2083
      /** ZIP or postal code. */
2084
      @SerializedName("postal_code")
2085
      String postalCode;
2086

2087
      /** State, county, province, or region. */
2088
      @SerializedName("state")
2089
      String state;
2090

2091
      private Address(
2092
          String city,
2093
          String country,
2094
          Map<String, Object> extraParams,
2095
          String line1,
2096
          String line2,
2097
          String postalCode,
2098
          String state) {
×
2099
        this.city = city;
×
2100
        this.country = country;
×
2101
        this.extraParams = extraParams;
×
2102
        this.line1 = line1;
×
2103
        this.line2 = line2;
×
2104
        this.postalCode = postalCode;
×
2105
        this.state = state;
×
2106
      }
×
2107

2108
      public static Builder builder() {
2109
        return new Builder();
×
2110
      }
2111

2112
      public static class Builder {
×
2113
        private String city;
2114

2115
        private String country;
2116

2117
        private Map<String, Object> extraParams;
2118

2119
        private String line1;
2120

2121
        private String line2;
2122

2123
        private String postalCode;
2124

2125
        private String state;
2126

2127
        /** Finalize and obtain parameter instance from this builder. */
2128
        public PaymentMethodCreateParams.BillingDetails.Address build() {
2129
          return new PaymentMethodCreateParams.BillingDetails.Address(
×
2130
              this.city,
2131
              this.country,
2132
              this.extraParams,
2133
              this.line1,
2134
              this.line2,
2135
              this.postalCode,
2136
              this.state);
2137
        }
2138

2139
        /** City, district, suburb, town, or village. */
2140
        public Builder setCity(String city) {
2141
          this.city = city;
×
2142
          return this;
×
2143
        }
2144

2145
        /**
2146
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2147
         * 3166-1 alpha-2</a>).
2148
         */
2149
        public Builder setCountry(String country) {
2150
          this.country = country;
×
2151
          return this;
×
2152
        }
2153

2154
        /**
2155
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2156
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2157
         * map. See {@link PaymentMethodCreateParams.BillingDetails.Address#extraParams} for the
2158
         * field documentation.
2159
         */
2160
        public Builder putExtraParam(String key, Object value) {
2161
          if (this.extraParams == null) {
×
2162
            this.extraParams = new HashMap<>();
×
2163
          }
2164
          this.extraParams.put(key, value);
×
2165
          return this;
×
2166
        }
2167

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

2182
        /** Address line 1 (e.g., street, PO Box, or company name). */
2183
        public Builder setLine1(String line1) {
2184
          this.line1 = line1;
×
2185
          return this;
×
2186
        }
2187

2188
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
2189
        public Builder setLine2(String line2) {
2190
          this.line2 = line2;
×
2191
          return this;
×
2192
        }
2193

2194
        /** ZIP or postal code. */
2195
        public Builder setPostalCode(String postalCode) {
2196
          this.postalCode = postalCode;
×
2197
          return this;
×
2198
        }
2199

2200
        /** State, county, province, or region. */
2201
        public Builder setState(String state) {
2202
          this.state = state;
×
2203
          return this;
×
2204
        }
2205
      }
2206
    }
2207
  }
2208

2209
  @Getter
2210
  public static class Blik {
2211
    /**
2212
     * Map of extra parameters for custom features not available in this client library. The content
2213
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2214
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2215
     * param object. Effectively, this map is flattened to its parent instance.
2216
     */
2217
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2218
    Map<String, Object> extraParams;
2219

2220
    private Blik(Map<String, Object> extraParams) {
×
2221
      this.extraParams = extraParams;
×
2222
    }
×
2223

2224
    public static Builder builder() {
2225
      return new Builder();
×
2226
    }
2227

2228
    public static class Builder {
×
2229
      private Map<String, Object> extraParams;
2230

2231
      /** Finalize and obtain parameter instance from this builder. */
2232
      public PaymentMethodCreateParams.Blik build() {
2233
        return new PaymentMethodCreateParams.Blik(this.extraParams);
×
2234
      }
2235

2236
      /**
2237
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2238
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2239
       * PaymentMethodCreateParams.Blik#extraParams} for the field documentation.
2240
       */
2241
      public Builder putExtraParam(String key, Object value) {
2242
        if (this.extraParams == null) {
×
2243
          this.extraParams = new HashMap<>();
×
2244
        }
2245
        this.extraParams.put(key, value);
×
2246
        return this;
×
2247
      }
2248

2249
      /**
2250
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2251
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2252
       * See {@link PaymentMethodCreateParams.Blik#extraParams} for the field documentation.
2253
       */
2254
      public Builder putAllExtraParam(Map<String, Object> map) {
2255
        if (this.extraParams == null) {
×
2256
          this.extraParams = new HashMap<>();
×
2257
        }
2258
        this.extraParams.putAll(map);
×
2259
        return this;
×
2260
      }
2261
    }
2262
  }
2263

2264
  @Getter
2265
  public static class Boleto {
2266
    /**
2267
     * Map of extra parameters for custom features not available in this client library. The content
2268
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2269
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2270
     * param object. Effectively, this map is flattened to its parent instance.
2271
     */
2272
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2273
    Map<String, Object> extraParams;
2274

2275
    /**
2276
     * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2277
     * for businesses consumers)
2278
     */
2279
    @SerializedName("tax_id")
2280
    String taxId;
2281

2282
    private Boleto(Map<String, Object> extraParams, String taxId) {
×
2283
      this.extraParams = extraParams;
×
2284
      this.taxId = taxId;
×
2285
    }
×
2286

2287
    public static Builder builder() {
2288
      return new Builder();
×
2289
    }
2290

2291
    public static class Builder {
×
2292
      private Map<String, Object> extraParams;
2293

2294
      private String taxId;
2295

2296
      /** Finalize and obtain parameter instance from this builder. */
2297
      public PaymentMethodCreateParams.Boleto build() {
2298
        return new PaymentMethodCreateParams.Boleto(this.extraParams, this.taxId);
×
2299
      }
2300

2301
      /**
2302
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2303
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2304
       * PaymentMethodCreateParams.Boleto#extraParams} for the field documentation.
2305
       */
2306
      public Builder putExtraParam(String key, Object value) {
2307
        if (this.extraParams == null) {
×
2308
          this.extraParams = new HashMap<>();
×
2309
        }
2310
        this.extraParams.put(key, value);
×
2311
        return this;
×
2312
      }
2313

2314
      /**
2315
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2316
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2317
       * See {@link PaymentMethodCreateParams.Boleto#extraParams} for the field documentation.
2318
       */
2319
      public Builder putAllExtraParam(Map<String, Object> map) {
2320
        if (this.extraParams == null) {
×
2321
          this.extraParams = new HashMap<>();
×
2322
        }
2323
        this.extraParams.putAll(map);
×
2324
        return this;
×
2325
      }
2326

2327
      /**
2328
       * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2329
       * for businesses consumers)
2330
       */
2331
      public Builder setTaxId(String taxId) {
2332
        this.taxId = taxId;
×
2333
        return this;
×
2334
      }
2335
    }
2336
  }
2337

2338
  @Getter
2339
  public static class CardDetails {
2340
    /** The card's CVC. It is highly recommended to always include this value. */
2341
    @SerializedName("cvc")
2342
    String cvc;
2343

2344
    /** Two-digit number representing the card's expiration month. */
2345
    @SerializedName("exp_month")
2346
    Long expMonth;
2347

2348
    /** Four-digit number representing the card's expiration year. */
2349
    @SerializedName("exp_year")
2350
    Long expYear;
2351

2352
    /**
2353
     * Map of extra parameters for custom features not available in this client library. The content
2354
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2355
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2356
     * param object. Effectively, this map is flattened to its parent instance.
2357
     */
2358
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2359
    Map<String, Object> extraParams;
2360

2361
    /** Contains information about card networks used to process the payment. */
2362
    @SerializedName("networks")
2363
    Networks networks;
2364

2365
    /** The card number, as a string without any separators. */
2366
    @SerializedName("number")
2367
    String number;
2368

2369
    private CardDetails(
2370
        String cvc,
2371
        Long expMonth,
2372
        Long expYear,
2373
        Map<String, Object> extraParams,
2374
        Networks networks,
2375
        String number) {
×
2376
      this.cvc = cvc;
×
2377
      this.expMonth = expMonth;
×
2378
      this.expYear = expYear;
×
2379
      this.extraParams = extraParams;
×
2380
      this.networks = networks;
×
2381
      this.number = number;
×
2382
    }
×
2383

2384
    public static Builder builder() {
2385
      return new Builder();
×
2386
    }
2387

2388
    public static class Builder {
×
2389
      private String cvc;
2390

2391
      private Long expMonth;
2392

2393
      private Long expYear;
2394

2395
      private Map<String, Object> extraParams;
2396

2397
      private Networks networks;
2398

2399
      private String number;
2400

2401
      /** Finalize and obtain parameter instance from this builder. */
2402
      public PaymentMethodCreateParams.CardDetails build() {
2403
        return new PaymentMethodCreateParams.CardDetails(
×
2404
            this.cvc, this.expMonth, this.expYear, this.extraParams, this.networks, this.number);
2405
      }
2406

2407
      /** The card's CVC. It is highly recommended to always include this value. */
2408
      public Builder setCvc(String cvc) {
2409
        this.cvc = cvc;
×
2410
        return this;
×
2411
      }
2412

2413
      /** Two-digit number representing the card's expiration month. */
2414
      public Builder setExpMonth(Long expMonth) {
2415
        this.expMonth = expMonth;
×
2416
        return this;
×
2417
      }
2418

2419
      /** Four-digit number representing the card's expiration year. */
2420
      public Builder setExpYear(Long expYear) {
2421
        this.expYear = expYear;
×
2422
        return this;
×
2423
      }
2424

2425
      /**
2426
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2427
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2428
       * PaymentMethodCreateParams.CardDetails#extraParams} for the field documentation.
2429
       */
2430
      public Builder putExtraParam(String key, Object value) {
2431
        if (this.extraParams == null) {
×
2432
          this.extraParams = new HashMap<>();
×
2433
        }
2434
        this.extraParams.put(key, value);
×
2435
        return this;
×
2436
      }
2437

2438
      /**
2439
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2440
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2441
       * See {@link PaymentMethodCreateParams.CardDetails#extraParams} for the field documentation.
2442
       */
2443
      public Builder putAllExtraParam(Map<String, Object> map) {
2444
        if (this.extraParams == null) {
×
2445
          this.extraParams = new HashMap<>();
×
2446
        }
2447
        this.extraParams.putAll(map);
×
2448
        return this;
×
2449
      }
2450

2451
      /** Contains information about card networks used to process the payment. */
2452
      public Builder setNetworks(PaymentMethodCreateParams.CardDetails.Networks networks) {
2453
        this.networks = networks;
×
2454
        return this;
×
2455
      }
2456

2457
      /** The card number, as a string without any separators. */
2458
      public Builder setNumber(String number) {
2459
        this.number = number;
×
2460
        return this;
×
2461
      }
2462
    }
2463

2464
    @Getter
2465
    public static class Networks {
2466
      /**
2467
       * Map of extra parameters for custom features not available in this client library. The
2468
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2469
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2470
       * name in this param object. Effectively, this map is flattened to its parent instance.
2471
       */
2472
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2473
      Map<String, Object> extraParams;
2474

2475
      /**
2476
       * The customer's preferred card network for co-branded cards. Supports {@code
2477
       * cartes_bancaires}, {@code mastercard}, or {@code visa}. Selection of a network that does
2478
       * not apply to the card will be stored as {@code invalid_preference} on the card.
2479
       */
2480
      @SerializedName("preferred")
2481
      Preferred preferred;
2482

2483
      private Networks(Map<String, Object> extraParams, Preferred preferred) {
×
2484
        this.extraParams = extraParams;
×
2485
        this.preferred = preferred;
×
2486
      }
×
2487

2488
      public static Builder builder() {
2489
        return new Builder();
×
2490
      }
2491

2492
      public static class Builder {
×
2493
        private Map<String, Object> extraParams;
2494

2495
        private Preferred preferred;
2496

2497
        /** Finalize and obtain parameter instance from this builder. */
2498
        public PaymentMethodCreateParams.CardDetails.Networks build() {
2499
          return new PaymentMethodCreateParams.CardDetails.Networks(
×
2500
              this.extraParams, this.preferred);
2501
        }
2502

2503
        /**
2504
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2505
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2506
         * map. See {@link PaymentMethodCreateParams.CardDetails.Networks#extraParams} for the field
2507
         * documentation.
2508
         */
2509
        public Builder putExtraParam(String key, Object value) {
2510
          if (this.extraParams == null) {
×
2511
            this.extraParams = new HashMap<>();
×
2512
          }
2513
          this.extraParams.put(key, value);
×
2514
          return this;
×
2515
        }
2516

2517
        /**
2518
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2519
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2520
         * map. See {@link PaymentMethodCreateParams.CardDetails.Networks#extraParams} for the field
2521
         * documentation.
2522
         */
2523
        public Builder putAllExtraParam(Map<String, Object> map) {
2524
          if (this.extraParams == null) {
×
2525
            this.extraParams = new HashMap<>();
×
2526
          }
2527
          this.extraParams.putAll(map);
×
2528
          return this;
×
2529
        }
2530

2531
        /**
2532
         * The customer's preferred card network for co-branded cards. Supports {@code
2533
         * cartes_bancaires}, {@code mastercard}, or {@code visa}. Selection of a network that does
2534
         * not apply to the card will be stored as {@code invalid_preference} on the card.
2535
         */
2536
        public Builder setPreferred(
2537
            PaymentMethodCreateParams.CardDetails.Networks.Preferred preferred) {
2538
          this.preferred = preferred;
×
2539
          return this;
×
2540
        }
2541
      }
2542

2543
      public enum Preferred implements ApiRequestParams.EnumParam {
×
2544
        @SerializedName("cartes_bancaires")
×
2545
        CARTES_BANCAIRES("cartes_bancaires"),
2546

2547
        @SerializedName("mastercard")
×
2548
        MASTERCARD("mastercard"),
2549

2550
        @SerializedName("visa")
×
2551
        VISA("visa");
2552

2553
        @Getter(onMethod_ = {@Override})
2554
        private final String value;
2555

2556
        Preferred(String value) {
×
2557
          this.value = value;
×
2558
        }
×
2559
      }
2560
    }
2561
  }
2562

2563
  @Getter
2564
  public static class Cashapp {
2565
    /**
2566
     * Map of extra parameters for custom features not available in this client library. The content
2567
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2568
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2569
     * param object. Effectively, this map is flattened to its parent instance.
2570
     */
2571
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2572
    Map<String, Object> extraParams;
2573

2574
    private Cashapp(Map<String, Object> extraParams) {
×
2575
      this.extraParams = extraParams;
×
2576
    }
×
2577

2578
    public static Builder builder() {
2579
      return new Builder();
×
2580
    }
2581

2582
    public static class Builder {
×
2583
      private Map<String, Object> extraParams;
2584

2585
      /** Finalize and obtain parameter instance from this builder. */
2586
      public PaymentMethodCreateParams.Cashapp build() {
2587
        return new PaymentMethodCreateParams.Cashapp(this.extraParams);
×
2588
      }
2589

2590
      /**
2591
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2592
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2593
       * PaymentMethodCreateParams.Cashapp#extraParams} for the field documentation.
2594
       */
2595
      public Builder putExtraParam(String key, Object value) {
2596
        if (this.extraParams == null) {
×
2597
          this.extraParams = new HashMap<>();
×
2598
        }
2599
        this.extraParams.put(key, value);
×
2600
        return this;
×
2601
      }
2602

2603
      /**
2604
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2605
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2606
       * See {@link PaymentMethodCreateParams.Cashapp#extraParams} for the field documentation.
2607
       */
2608
      public Builder putAllExtraParam(Map<String, Object> map) {
2609
        if (this.extraParams == null) {
×
2610
          this.extraParams = new HashMap<>();
×
2611
        }
2612
        this.extraParams.putAll(map);
×
2613
        return this;
×
2614
      }
2615
    }
2616
  }
2617

2618
  @Getter
2619
  public static class CustomerBalance {
2620
    /**
2621
     * Map of extra parameters for custom features not available in this client library. The content
2622
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2623
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2624
     * param object. Effectively, this map is flattened to its parent instance.
2625
     */
2626
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2627
    Map<String, Object> extraParams;
2628

2629
    private CustomerBalance(Map<String, Object> extraParams) {
×
2630
      this.extraParams = extraParams;
×
2631
    }
×
2632

2633
    public static Builder builder() {
2634
      return new Builder();
×
2635
    }
2636

2637
    public static class Builder {
×
2638
      private Map<String, Object> extraParams;
2639

2640
      /** Finalize and obtain parameter instance from this builder. */
2641
      public PaymentMethodCreateParams.CustomerBalance build() {
2642
        return new PaymentMethodCreateParams.CustomerBalance(this.extraParams);
×
2643
      }
2644

2645
      /**
2646
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2647
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2648
       * PaymentMethodCreateParams.CustomerBalance#extraParams} for the field documentation.
2649
       */
2650
      public Builder putExtraParam(String key, Object value) {
2651
        if (this.extraParams == null) {
×
2652
          this.extraParams = new HashMap<>();
×
2653
        }
2654
        this.extraParams.put(key, value);
×
2655
        return this;
×
2656
      }
2657

2658
      /**
2659
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2660
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2661
       * See {@link PaymentMethodCreateParams.CustomerBalance#extraParams} for the field
2662
       * documentation.
2663
       */
2664
      public Builder putAllExtraParam(Map<String, Object> map) {
2665
        if (this.extraParams == null) {
×
2666
          this.extraParams = new HashMap<>();
×
2667
        }
2668
        this.extraParams.putAll(map);
×
2669
        return this;
×
2670
      }
2671
    }
2672
  }
2673

2674
  @Getter
2675
  public static class Eps {
2676
    /** The customer's bank. */
2677
    @SerializedName("bank")
2678
    Bank bank;
2679

2680
    /**
2681
     * Map of extra parameters for custom features not available in this client library. The content
2682
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2683
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2684
     * param object. Effectively, this map is flattened to its parent instance.
2685
     */
2686
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2687
    Map<String, Object> extraParams;
2688

2689
    private Eps(Bank bank, Map<String, Object> extraParams) {
×
2690
      this.bank = bank;
×
2691
      this.extraParams = extraParams;
×
2692
    }
×
2693

2694
    public static Builder builder() {
2695
      return new Builder();
×
2696
    }
2697

2698
    public static class Builder {
×
2699
      private Bank bank;
2700

2701
      private Map<String, Object> extraParams;
2702

2703
      /** Finalize and obtain parameter instance from this builder. */
2704
      public PaymentMethodCreateParams.Eps build() {
2705
        return new PaymentMethodCreateParams.Eps(this.bank, this.extraParams);
×
2706
      }
2707

2708
      /** The customer's bank. */
2709
      public Builder setBank(PaymentMethodCreateParams.Eps.Bank bank) {
2710
        this.bank = bank;
×
2711
        return this;
×
2712
      }
2713

2714
      /**
2715
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2716
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2717
       * PaymentMethodCreateParams.Eps#extraParams} for the field documentation.
2718
       */
2719
      public Builder putExtraParam(String key, Object value) {
2720
        if (this.extraParams == null) {
×
2721
          this.extraParams = new HashMap<>();
×
2722
        }
2723
        this.extraParams.put(key, value);
×
2724
        return this;
×
2725
      }
2726

2727
      /**
2728
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2729
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2730
       * See {@link PaymentMethodCreateParams.Eps#extraParams} for the field documentation.
2731
       */
2732
      public Builder putAllExtraParam(Map<String, Object> map) {
2733
        if (this.extraParams == null) {
×
2734
          this.extraParams = new HashMap<>();
×
2735
        }
2736
        this.extraParams.putAll(map);
×
2737
        return this;
×
2738
      }
2739
    }
2740

2741
    public enum Bank implements ApiRequestParams.EnumParam {
×
2742
      @SerializedName("arzte_und_apotheker_bank")
×
2743
      ARZTE_UND_APOTHEKER_BANK("arzte_und_apotheker_bank"),
2744

2745
      @SerializedName("austrian_anadi_bank_ag")
×
2746
      AUSTRIAN_ANADI_BANK_AG("austrian_anadi_bank_ag"),
2747

2748
      @SerializedName("bank_austria")
×
2749
      BANK_AUSTRIA("bank_austria"),
2750

2751
      @SerializedName("bankhaus_carl_spangler")
×
2752
      BANKHAUS_CARL_SPANGLER("bankhaus_carl_spangler"),
2753

2754
      @SerializedName("bankhaus_schelhammer_und_schattera_ag")
×
2755
      BANKHAUS_SCHELHAMMER_UND_SCHATTERA_AG("bankhaus_schelhammer_und_schattera_ag"),
2756

2757
      @SerializedName("bawag_psk_ag")
×
2758
      BAWAG_PSK_AG("bawag_psk_ag"),
2759

2760
      @SerializedName("bks_bank_ag")
×
2761
      BKS_BANK_AG("bks_bank_ag"),
2762

2763
      @SerializedName("brull_kallmus_bank_ag")
×
2764
      BRULL_KALLMUS_BANK_AG("brull_kallmus_bank_ag"),
2765

2766
      @SerializedName("btv_vier_lander_bank")
×
2767
      BTV_VIER_LANDER_BANK("btv_vier_lander_bank"),
2768

2769
      @SerializedName("capital_bank_grawe_gruppe_ag")
×
2770
      CAPITAL_BANK_GRAWE_GRUPPE_AG("capital_bank_grawe_gruppe_ag"),
2771

2772
      @SerializedName("deutsche_bank_ag")
×
2773
      DEUTSCHE_BANK_AG("deutsche_bank_ag"),
2774

2775
      @SerializedName("dolomitenbank")
×
2776
      DOLOMITENBANK("dolomitenbank"),
2777

2778
      @SerializedName("easybank_ag")
×
2779
      EASYBANK_AG("easybank_ag"),
2780

2781
      @SerializedName("erste_bank_und_sparkassen")
×
2782
      ERSTE_BANK_UND_SPARKASSEN("erste_bank_und_sparkassen"),
2783

2784
      @SerializedName("hypo_alpeadriabank_international_ag")
×
2785
      HYPO_ALPEADRIABANK_INTERNATIONAL_AG("hypo_alpeadriabank_international_ag"),
2786

2787
      @SerializedName("hypo_bank_burgenland_aktiengesellschaft")
×
2788
      HYPO_BANK_BURGENLAND_AKTIENGESELLSCHAFT("hypo_bank_burgenland_aktiengesellschaft"),
2789

2790
      @SerializedName("hypo_noe_lb_fur_niederosterreich_u_wien")
×
2791
      HYPO_NOE_LB_FUR_NIEDEROSTERREICH_U_WIEN("hypo_noe_lb_fur_niederosterreich_u_wien"),
2792

2793
      @SerializedName("hypo_oberosterreich_salzburg_steiermark")
×
2794
      HYPO_OBEROSTERREICH_SALZBURG_STEIERMARK("hypo_oberosterreich_salzburg_steiermark"),
2795

2796
      @SerializedName("hypo_tirol_bank_ag")
×
2797
      HYPO_TIROL_BANK_AG("hypo_tirol_bank_ag"),
2798

2799
      @SerializedName("hypo_vorarlberg_bank_ag")
×
2800
      HYPO_VORARLBERG_BANK_AG("hypo_vorarlberg_bank_ag"),
2801

2802
      @SerializedName("marchfelder_bank")
×
2803
      MARCHFELDER_BANK("marchfelder_bank"),
2804

2805
      @SerializedName("oberbank_ag")
×
2806
      OBERBANK_AG("oberbank_ag"),
2807

2808
      @SerializedName("raiffeisen_bankengruppe_osterreich")
×
2809
      RAIFFEISEN_BANKENGRUPPE_OSTERREICH("raiffeisen_bankengruppe_osterreich"),
2810

2811
      @SerializedName("schoellerbank_ag")
×
2812
      SCHOELLERBANK_AG("schoellerbank_ag"),
2813

2814
      @SerializedName("sparda_bank_wien")
×
2815
      SPARDA_BANK_WIEN("sparda_bank_wien"),
2816

2817
      @SerializedName("volksbank_gruppe")
×
2818
      VOLKSBANK_GRUPPE("volksbank_gruppe"),
2819

2820
      @SerializedName("volkskreditbank_ag")
×
2821
      VOLKSKREDITBANK_AG("volkskreditbank_ag"),
2822

2823
      @SerializedName("vr_bank_braunau")
×
2824
      VR_BANK_BRAUNAU("vr_bank_braunau");
2825

2826
      @Getter(onMethod_ = {@Override})
2827
      private final String value;
2828

2829
      Bank(String value) {
×
2830
        this.value = value;
×
2831
      }
×
2832
    }
2833
  }
2834

2835
  @Getter
2836
  public static class Fpx {
2837
    /** Account holder type for FPX transaction. */
2838
    @SerializedName("account_holder_type")
2839
    AccountHolderType accountHolderType;
2840

2841
    /** <strong>Required.</strong> The customer's bank. */
2842
    @SerializedName("bank")
2843
    Bank bank;
2844

2845
    /**
2846
     * Map of extra parameters for custom features not available in this client library. The content
2847
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2848
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2849
     * param object. Effectively, this map is flattened to its parent instance.
2850
     */
2851
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2852
    Map<String, Object> extraParams;
2853

2854
    private Fpx(AccountHolderType accountHolderType, Bank bank, Map<String, Object> extraParams) {
×
2855
      this.accountHolderType = accountHolderType;
×
2856
      this.bank = bank;
×
2857
      this.extraParams = extraParams;
×
2858
    }
×
2859

2860
    public static Builder builder() {
2861
      return new Builder();
×
2862
    }
2863

2864
    public static class Builder {
×
2865
      private AccountHolderType accountHolderType;
2866

2867
      private Bank bank;
2868

2869
      private Map<String, Object> extraParams;
2870

2871
      /** Finalize and obtain parameter instance from this builder. */
2872
      public PaymentMethodCreateParams.Fpx build() {
2873
        return new PaymentMethodCreateParams.Fpx(
×
2874
            this.accountHolderType, this.bank, this.extraParams);
2875
      }
2876

2877
      /** Account holder type for FPX transaction. */
2878
      public Builder setAccountHolderType(
2879
          PaymentMethodCreateParams.Fpx.AccountHolderType accountHolderType) {
2880
        this.accountHolderType = accountHolderType;
×
2881
        return this;
×
2882
      }
2883

2884
      /** <strong>Required.</strong> The customer's bank. */
2885
      public Builder setBank(PaymentMethodCreateParams.Fpx.Bank bank) {
2886
        this.bank = bank;
×
2887
        return this;
×
2888
      }
2889

2890
      /**
2891
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2892
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2893
       * PaymentMethodCreateParams.Fpx#extraParams} for the field documentation.
2894
       */
2895
      public Builder putExtraParam(String key, Object value) {
2896
        if (this.extraParams == null) {
×
2897
          this.extraParams = new HashMap<>();
×
2898
        }
2899
        this.extraParams.put(key, value);
×
2900
        return this;
×
2901
      }
2902

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

2917
    public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
2918
      @SerializedName("company")
×
2919
      COMPANY("company"),
2920

2921
      @SerializedName("individual")
×
2922
      INDIVIDUAL("individual");
2923

2924
      @Getter(onMethod_ = {@Override})
2925
      private final String value;
2926

2927
      AccountHolderType(String value) {
×
2928
        this.value = value;
×
2929
      }
×
2930
    }
2931

2932
    public enum Bank implements ApiRequestParams.EnumParam {
×
2933
      @SerializedName("affin_bank")
×
2934
      AFFIN_BANK("affin_bank"),
2935

2936
      @SerializedName("agrobank")
×
2937
      AGROBANK("agrobank"),
2938

2939
      @SerializedName("alliance_bank")
×
2940
      ALLIANCE_BANK("alliance_bank"),
2941

2942
      @SerializedName("ambank")
×
2943
      AMBANK("ambank"),
2944

2945
      @SerializedName("bank_islam")
×
2946
      BANK_ISLAM("bank_islam"),
2947

2948
      @SerializedName("bank_muamalat")
×
2949
      BANK_MUAMALAT("bank_muamalat"),
2950

2951
      @SerializedName("bank_of_china")
×
2952
      BANK_OF_CHINA("bank_of_china"),
2953

2954
      @SerializedName("bank_rakyat")
×
2955
      BANK_RAKYAT("bank_rakyat"),
2956

2957
      @SerializedName("bsn")
×
2958
      BSN("bsn"),
2959

2960
      @SerializedName("cimb")
×
2961
      CIMB("cimb"),
2962

2963
      @SerializedName("deutsche_bank")
×
2964
      DEUTSCHE_BANK("deutsche_bank"),
2965

2966
      @SerializedName("hong_leong_bank")
×
2967
      HONG_LEONG_BANK("hong_leong_bank"),
2968

2969
      @SerializedName("hsbc")
×
2970
      HSBC("hsbc"),
2971

2972
      @SerializedName("kfh")
×
2973
      KFH("kfh"),
2974

2975
      @SerializedName("maybank2e")
×
2976
      MAYBANK2E("maybank2e"),
2977

2978
      @SerializedName("maybank2u")
×
2979
      MAYBANK2U("maybank2u"),
2980

2981
      @SerializedName("ocbc")
×
2982
      OCBC("ocbc"),
2983

2984
      @SerializedName("pb_enterprise")
×
2985
      PB_ENTERPRISE("pb_enterprise"),
2986

2987
      @SerializedName("public_bank")
×
2988
      PUBLIC_BANK("public_bank"),
2989

2990
      @SerializedName("rhb")
×
2991
      RHB("rhb"),
2992

2993
      @SerializedName("standard_chartered")
×
2994
      STANDARD_CHARTERED("standard_chartered"),
2995

2996
      @SerializedName("uob")
×
2997
      UOB("uob");
2998

2999
      @Getter(onMethod_ = {@Override})
3000
      private final String value;
3001

3002
      Bank(String value) {
×
3003
        this.value = value;
×
3004
      }
×
3005
    }
3006
  }
3007

3008
  @Getter
3009
  public static class Giropay {
3010
    /**
3011
     * Map of extra parameters for custom features not available in this client library. The content
3012
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3013
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3014
     * param object. Effectively, this map is flattened to its parent instance.
3015
     */
3016
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3017
    Map<String, Object> extraParams;
3018

3019
    private Giropay(Map<String, Object> extraParams) {
×
3020
      this.extraParams = extraParams;
×
3021
    }
×
3022

3023
    public static Builder builder() {
3024
      return new Builder();
×
3025
    }
3026

3027
    public static class Builder {
×
3028
      private Map<String, Object> extraParams;
3029

3030
      /** Finalize and obtain parameter instance from this builder. */
3031
      public PaymentMethodCreateParams.Giropay build() {
3032
        return new PaymentMethodCreateParams.Giropay(this.extraParams);
×
3033
      }
3034

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

3048
      /**
3049
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3050
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3051
       * See {@link PaymentMethodCreateParams.Giropay#extraParams} for the field documentation.
3052
       */
3053
      public Builder putAllExtraParam(Map<String, Object> map) {
3054
        if (this.extraParams == null) {
×
3055
          this.extraParams = new HashMap<>();
×
3056
        }
3057
        this.extraParams.putAll(map);
×
3058
        return this;
×
3059
      }
3060
    }
3061
  }
3062

3063
  @Getter
3064
  public static class Gopay {
3065
    /**
3066
     * Map of extra parameters for custom features not available in this client library. The content
3067
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3068
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3069
     * param object. Effectively, this map is flattened to its parent instance.
3070
     */
3071
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3072
    Map<String, Object> extraParams;
3073

NEW
3074
    private Gopay(Map<String, Object> extraParams) {
×
NEW
3075
      this.extraParams = extraParams;
×
NEW
3076
    }
×
3077

3078
    public static Builder builder() {
NEW
3079
      return new Builder();
×
3080
    }
3081

NEW
3082
    public static class Builder {
×
3083
      private Map<String, Object> extraParams;
3084

3085
      /** Finalize and obtain parameter instance from this builder. */
3086
      public PaymentMethodCreateParams.Gopay build() {
NEW
3087
        return new PaymentMethodCreateParams.Gopay(this.extraParams);
×
3088
      }
3089

3090
      /**
3091
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3092
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3093
       * PaymentMethodCreateParams.Gopay#extraParams} for the field documentation.
3094
       */
3095
      public Builder putExtraParam(String key, Object value) {
NEW
3096
        if (this.extraParams == null) {
×
NEW
3097
          this.extraParams = new HashMap<>();
×
3098
        }
NEW
3099
        this.extraParams.put(key, value);
×
NEW
3100
        return this;
×
3101
      }
3102

3103
      /**
3104
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3105
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3106
       * See {@link PaymentMethodCreateParams.Gopay#extraParams} for the field documentation.
3107
       */
3108
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
3109
        if (this.extraParams == null) {
×
NEW
3110
          this.extraParams = new HashMap<>();
×
3111
        }
NEW
3112
        this.extraParams.putAll(map);
×
NEW
3113
        return this;
×
3114
      }
3115
    }
3116
  }
3117

3118
  @Getter
3119
  public static class Grabpay {
3120
    /**
3121
     * Map of extra parameters for custom features not available in this client library. The content
3122
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3123
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3124
     * param object. Effectively, this map is flattened to its parent instance.
3125
     */
3126
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3127
    Map<String, Object> extraParams;
3128

3129
    private Grabpay(Map<String, Object> extraParams) {
×
3130
      this.extraParams = extraParams;
×
3131
    }
×
3132

3133
    public static Builder builder() {
3134
      return new Builder();
×
3135
    }
3136

3137
    public static class Builder {
×
3138
      private Map<String, Object> extraParams;
3139

3140
      /** Finalize and obtain parameter instance from this builder. */
3141
      public PaymentMethodCreateParams.Grabpay build() {
3142
        return new PaymentMethodCreateParams.Grabpay(this.extraParams);
×
3143
      }
3144

3145
      /**
3146
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3147
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3148
       * PaymentMethodCreateParams.Grabpay#extraParams} for the field documentation.
3149
       */
3150
      public Builder putExtraParam(String key, Object value) {
3151
        if (this.extraParams == null) {
×
3152
          this.extraParams = new HashMap<>();
×
3153
        }
3154
        this.extraParams.put(key, value);
×
3155
        return this;
×
3156
      }
3157

3158
      /**
3159
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3160
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3161
       * See {@link PaymentMethodCreateParams.Grabpay#extraParams} for the field documentation.
3162
       */
3163
      public Builder putAllExtraParam(Map<String, Object> map) {
3164
        if (this.extraParams == null) {
×
3165
          this.extraParams = new HashMap<>();
×
3166
        }
3167
        this.extraParams.putAll(map);
×
3168
        return this;
×
3169
      }
3170
    }
3171
  }
3172

3173
  @Getter
3174
  public static class Ideal {
3175
    /**
3176
     * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3177
     * customers.
3178
     */
3179
    @SerializedName("bank")
3180
    Bank bank;
3181

3182
    /**
3183
     * Map of extra parameters for custom features not available in this client library. The content
3184
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3185
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3186
     * param object. Effectively, this map is flattened to its parent instance.
3187
     */
3188
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3189
    Map<String, Object> extraParams;
3190

3191
    private Ideal(Bank bank, Map<String, Object> extraParams) {
×
3192
      this.bank = bank;
×
3193
      this.extraParams = extraParams;
×
3194
    }
×
3195

3196
    public static Builder builder() {
3197
      return new Builder();
×
3198
    }
3199

3200
    public static class Builder {
×
3201
      private Bank bank;
3202

3203
      private Map<String, Object> extraParams;
3204

3205
      /** Finalize and obtain parameter instance from this builder. */
3206
      public PaymentMethodCreateParams.Ideal build() {
3207
        return new PaymentMethodCreateParams.Ideal(this.bank, this.extraParams);
×
3208
      }
3209

3210
      /**
3211
       * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3212
       * customers.
3213
       */
3214
      public Builder setBank(PaymentMethodCreateParams.Ideal.Bank bank) {
3215
        this.bank = bank;
×
3216
        return this;
×
3217
      }
3218

3219
      /**
3220
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3221
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3222
       * PaymentMethodCreateParams.Ideal#extraParams} for the field documentation.
3223
       */
3224
      public Builder putExtraParam(String key, Object value) {
3225
        if (this.extraParams == null) {
×
3226
          this.extraParams = new HashMap<>();
×
3227
        }
3228
        this.extraParams.put(key, value);
×
3229
        return this;
×
3230
      }
3231

3232
      /**
3233
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3234
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3235
       * See {@link PaymentMethodCreateParams.Ideal#extraParams} for the field documentation.
3236
       */
3237
      public Builder putAllExtraParam(Map<String, Object> map) {
3238
        if (this.extraParams == null) {
×
3239
          this.extraParams = new HashMap<>();
×
3240
        }
3241
        this.extraParams.putAll(map);
×
3242
        return this;
×
3243
      }
3244
    }
3245

3246
    public enum Bank implements ApiRequestParams.EnumParam {
×
3247
      @SerializedName("abn_amro")
×
3248
      ABN_AMRO("abn_amro"),
3249

3250
      @SerializedName("asn_bank")
×
3251
      ASN_BANK("asn_bank"),
3252

3253
      @SerializedName("bunq")
×
3254
      BUNQ("bunq"),
3255

3256
      @SerializedName("handelsbanken")
×
3257
      HANDELSBANKEN("handelsbanken"),
3258

3259
      @SerializedName("ing")
×
3260
      ING("ing"),
3261

3262
      @SerializedName("knab")
×
3263
      KNAB("knab"),
3264

3265
      @SerializedName("moneyou")
×
3266
      MONEYOU("moneyou"),
3267

3268
      @SerializedName("n26")
×
3269
      N26("n26"),
3270

3271
      @SerializedName("nn")
×
3272
      NN("nn"),
3273

3274
      @SerializedName("rabobank")
×
3275
      RABOBANK("rabobank"),
3276

3277
      @SerializedName("regiobank")
×
3278
      REGIOBANK("regiobank"),
3279

3280
      @SerializedName("revolut")
×
3281
      REVOLUT("revolut"),
3282

3283
      @SerializedName("sns_bank")
×
3284
      SNS_BANK("sns_bank"),
3285

3286
      @SerializedName("triodos_bank")
×
3287
      TRIODOS_BANK("triodos_bank"),
3288

3289
      @SerializedName("van_lanschot")
×
3290
      VAN_LANSCHOT("van_lanschot"),
3291

3292
      @SerializedName("yoursafe")
×
3293
      YOURSAFE("yoursafe");
3294

3295
      @Getter(onMethod_ = {@Override})
3296
      private final String value;
3297

3298
      Bank(String value) {
×
3299
        this.value = value;
×
3300
      }
×
3301
    }
3302
  }
3303

3304
  @Getter
3305
  public static class InteracPresent {
3306
    /**
3307
     * Map of extra parameters for custom features not available in this client library. The content
3308
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3309
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3310
     * param object. Effectively, this map is flattened to its parent instance.
3311
     */
3312
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3313
    Map<String, Object> extraParams;
3314

3315
    private InteracPresent(Map<String, Object> extraParams) {
×
3316
      this.extraParams = extraParams;
×
3317
    }
×
3318

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

3323
    public static class Builder {
×
3324
      private Map<String, Object> extraParams;
3325

3326
      /** Finalize and obtain parameter instance from this builder. */
3327
      public PaymentMethodCreateParams.InteracPresent build() {
3328
        return new PaymentMethodCreateParams.InteracPresent(this.extraParams);
×
3329
      }
3330

3331
      /**
3332
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3333
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3334
       * PaymentMethodCreateParams.InteracPresent#extraParams} for the field documentation.
3335
       */
3336
      public Builder putExtraParam(String key, Object value) {
3337
        if (this.extraParams == null) {
×
3338
          this.extraParams = new HashMap<>();
×
3339
        }
3340
        this.extraParams.put(key, value);
×
3341
        return this;
×
3342
      }
3343

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

3360
  @Getter
3361
  public static class KakaoPay {
3362
    /**
3363
     * Map of extra parameters for custom features not available in this client library. The content
3364
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3365
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3366
     * param object. Effectively, this map is flattened to its parent instance.
3367
     */
3368
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3369
    Map<String, Object> extraParams;
3370

3371
    private KakaoPay(Map<String, Object> extraParams) {
×
3372
      this.extraParams = extraParams;
×
3373
    }
×
3374

3375
    public static Builder builder() {
3376
      return new Builder();
×
3377
    }
3378

3379
    public static class Builder {
×
3380
      private Map<String, Object> extraParams;
3381

3382
      /** Finalize and obtain parameter instance from this builder. */
3383
      public PaymentMethodCreateParams.KakaoPay build() {
3384
        return new PaymentMethodCreateParams.KakaoPay(this.extraParams);
×
3385
      }
3386

3387
      /**
3388
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3389
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3390
       * PaymentMethodCreateParams.KakaoPay#extraParams} for the field documentation.
3391
       */
3392
      public Builder putExtraParam(String key, Object value) {
3393
        if (this.extraParams == null) {
×
3394
          this.extraParams = new HashMap<>();
×
3395
        }
3396
        this.extraParams.put(key, value);
×
3397
        return this;
×
3398
      }
3399

3400
      /**
3401
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3402
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3403
       * See {@link PaymentMethodCreateParams.KakaoPay#extraParams} for the field documentation.
3404
       */
3405
      public Builder putAllExtraParam(Map<String, Object> map) {
3406
        if (this.extraParams == null) {
×
3407
          this.extraParams = new HashMap<>();
×
3408
        }
3409
        this.extraParams.putAll(map);
×
3410
        return this;
×
3411
      }
3412
    }
3413
  }
3414

3415
  @Getter
3416
  public static class Klarna {
3417
    /** Customer's date of birth. */
3418
    @SerializedName("dob")
3419
    Dob dob;
3420

3421
    /**
3422
     * Map of extra parameters for custom features not available in this client library. The content
3423
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3424
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3425
     * param object. Effectively, this map is flattened to its parent instance.
3426
     */
3427
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3428
    Map<String, Object> extraParams;
3429

3430
    private Klarna(Dob dob, Map<String, Object> extraParams) {
×
3431
      this.dob = dob;
×
3432
      this.extraParams = extraParams;
×
3433
    }
×
3434

3435
    public static Builder builder() {
3436
      return new Builder();
×
3437
    }
3438

3439
    public static class Builder {
×
3440
      private Dob dob;
3441

3442
      private Map<String, Object> extraParams;
3443

3444
      /** Finalize and obtain parameter instance from this builder. */
3445
      public PaymentMethodCreateParams.Klarna build() {
3446
        return new PaymentMethodCreateParams.Klarna(this.dob, this.extraParams);
×
3447
      }
3448

3449
      /** Customer's date of birth. */
3450
      public Builder setDob(PaymentMethodCreateParams.Klarna.Dob dob) {
3451
        this.dob = dob;
×
3452
        return this;
×
3453
      }
3454

3455
      /**
3456
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3457
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3458
       * PaymentMethodCreateParams.Klarna#extraParams} for the field documentation.
3459
       */
3460
      public Builder putExtraParam(String key, Object value) {
3461
        if (this.extraParams == null) {
×
3462
          this.extraParams = new HashMap<>();
×
3463
        }
3464
        this.extraParams.put(key, value);
×
3465
        return this;
×
3466
      }
3467

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

3482
    @Getter
3483
    public static class Dob {
3484
      /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3485
      @SerializedName("day")
3486
      Long day;
3487

3488
      /**
3489
       * Map of extra parameters for custom features not available in this client library. The
3490
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3491
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3492
       * name in this param object. Effectively, this map is flattened to its parent instance.
3493
       */
3494
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3495
      Map<String, Object> extraParams;
3496

3497
      /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3498
      @SerializedName("month")
3499
      Long month;
3500

3501
      /** <strong>Required.</strong> The four-digit year of birth. */
3502
      @SerializedName("year")
3503
      Long year;
3504

3505
      private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
3506
        this.day = day;
×
3507
        this.extraParams = extraParams;
×
3508
        this.month = month;
×
3509
        this.year = year;
×
3510
      }
×
3511

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

3516
      public static class Builder {
×
3517
        private Long day;
3518

3519
        private Map<String, Object> extraParams;
3520

3521
        private Long month;
3522

3523
        private Long year;
3524

3525
        /** Finalize and obtain parameter instance from this builder. */
3526
        public PaymentMethodCreateParams.Klarna.Dob build() {
3527
          return new PaymentMethodCreateParams.Klarna.Dob(
×
3528
              this.day, this.extraParams, this.month, this.year);
3529
        }
3530

3531
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3532
        public Builder setDay(Long day) {
3533
          this.day = day;
×
3534
          return this;
×
3535
        }
3536

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

3551
        /**
3552
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3553
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3554
         * map. See {@link PaymentMethodCreateParams.Klarna.Dob#extraParams} for the field
3555
         * documentation.
3556
         */
3557
        public Builder putAllExtraParam(Map<String, Object> map) {
3558
          if (this.extraParams == null) {
×
3559
            this.extraParams = new HashMap<>();
×
3560
          }
3561
          this.extraParams.putAll(map);
×
3562
          return this;
×
3563
        }
3564

3565
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3566
        public Builder setMonth(Long month) {
3567
          this.month = month;
×
3568
          return this;
×
3569
        }
3570

3571
        /** <strong>Required.</strong> The four-digit year of birth. */
3572
        public Builder setYear(Long year) {
3573
          this.year = year;
×
3574
          return this;
×
3575
        }
3576
      }
3577
    }
3578
  }
3579

3580
  @Getter
3581
  public static class Konbini {
3582
    /**
3583
     * Map of extra parameters for custom features not available in this client library. The content
3584
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3585
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3586
     * param object. Effectively, this map is flattened to its parent instance.
3587
     */
3588
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3589
    Map<String, Object> extraParams;
3590

3591
    private Konbini(Map<String, Object> extraParams) {
×
3592
      this.extraParams = extraParams;
×
3593
    }
×
3594

3595
    public static Builder builder() {
3596
      return new Builder();
×
3597
    }
3598

3599
    public static class Builder {
×
3600
      private Map<String, Object> extraParams;
3601

3602
      /** Finalize and obtain parameter instance from this builder. */
3603
      public PaymentMethodCreateParams.Konbini build() {
3604
        return new PaymentMethodCreateParams.Konbini(this.extraParams);
×
3605
      }
3606

3607
      /**
3608
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3609
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3610
       * PaymentMethodCreateParams.Konbini#extraParams} for the field documentation.
3611
       */
3612
      public Builder putExtraParam(String key, Object value) {
3613
        if (this.extraParams == null) {
×
3614
          this.extraParams = new HashMap<>();
×
3615
        }
3616
        this.extraParams.put(key, value);
×
3617
        return this;
×
3618
      }
3619

3620
      /**
3621
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3622
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3623
       * See {@link PaymentMethodCreateParams.Konbini#extraParams} for the field documentation.
3624
       */
3625
      public Builder putAllExtraParam(Map<String, Object> map) {
3626
        if (this.extraParams == null) {
×
3627
          this.extraParams = new HashMap<>();
×
3628
        }
3629
        this.extraParams.putAll(map);
×
3630
        return this;
×
3631
      }
3632
    }
3633
  }
3634

3635
  @Getter
3636
  public static class KrCard {
3637
    /**
3638
     * Map of extra parameters for custom features not available in this client library. The content
3639
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3640
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3641
     * param object. Effectively, this map is flattened to its parent instance.
3642
     */
3643
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3644
    Map<String, Object> extraParams;
3645

3646
    private KrCard(Map<String, Object> extraParams) {
×
3647
      this.extraParams = extraParams;
×
3648
    }
×
3649

3650
    public static Builder builder() {
3651
      return new Builder();
×
3652
    }
3653

3654
    public static class Builder {
×
3655
      private Map<String, Object> extraParams;
3656

3657
      /** Finalize and obtain parameter instance from this builder. */
3658
      public PaymentMethodCreateParams.KrCard build() {
3659
        return new PaymentMethodCreateParams.KrCard(this.extraParams);
×
3660
      }
3661

3662
      /**
3663
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3664
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3665
       * PaymentMethodCreateParams.KrCard#extraParams} for the field documentation.
3666
       */
3667
      public Builder putExtraParam(String key, Object value) {
3668
        if (this.extraParams == null) {
×
3669
          this.extraParams = new HashMap<>();
×
3670
        }
3671
        this.extraParams.put(key, value);
×
3672
        return this;
×
3673
      }
3674

3675
      /**
3676
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3677
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3678
       * See {@link PaymentMethodCreateParams.KrCard#extraParams} for the field documentation.
3679
       */
3680
      public Builder putAllExtraParam(Map<String, Object> map) {
3681
        if (this.extraParams == null) {
×
3682
          this.extraParams = new HashMap<>();
×
3683
        }
3684
        this.extraParams.putAll(map);
×
3685
        return this;
×
3686
      }
3687
    }
3688
  }
3689

3690
  @Getter
3691
  public static class Link {
3692
    /**
3693
     * Map of extra parameters for custom features not available in this client library. The content
3694
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3695
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3696
     * param object. Effectively, this map is flattened to its parent instance.
3697
     */
3698
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3699
    Map<String, Object> extraParams;
3700

3701
    private Link(Map<String, Object> extraParams) {
×
3702
      this.extraParams = extraParams;
×
3703
    }
×
3704

3705
    public static Builder builder() {
3706
      return new Builder();
×
3707
    }
3708

3709
    public static class Builder {
×
3710
      private Map<String, Object> extraParams;
3711

3712
      /** Finalize and obtain parameter instance from this builder. */
3713
      public PaymentMethodCreateParams.Link build() {
3714
        return new PaymentMethodCreateParams.Link(this.extraParams);
×
3715
      }
3716

3717
      /**
3718
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3719
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3720
       * PaymentMethodCreateParams.Link#extraParams} for the field documentation.
3721
       */
3722
      public Builder putExtraParam(String key, Object value) {
3723
        if (this.extraParams == null) {
×
3724
          this.extraParams = new HashMap<>();
×
3725
        }
3726
        this.extraParams.put(key, value);
×
3727
        return this;
×
3728
      }
3729

3730
      /**
3731
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3732
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3733
       * See {@link PaymentMethodCreateParams.Link#extraParams} for the field documentation.
3734
       */
3735
      public Builder putAllExtraParam(Map<String, Object> map) {
3736
        if (this.extraParams == null) {
×
3737
          this.extraParams = new HashMap<>();
×
3738
        }
3739
        this.extraParams.putAll(map);
×
3740
        return this;
×
3741
      }
3742
    }
3743
  }
3744

3745
  @Getter
3746
  public static class MbWay {
3747
    /**
3748
     * Map of extra parameters for custom features not available in this client library. The content
3749
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3750
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3751
     * param object. Effectively, this map is flattened to its parent instance.
3752
     */
3753
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3754
    Map<String, Object> extraParams;
3755

3756
    private MbWay(Map<String, Object> extraParams) {
×
3757
      this.extraParams = extraParams;
×
3758
    }
×
3759

3760
    public static Builder builder() {
3761
      return new Builder();
×
3762
    }
3763

3764
    public static class Builder {
×
3765
      private Map<String, Object> extraParams;
3766

3767
      /** Finalize and obtain parameter instance from this builder. */
3768
      public PaymentMethodCreateParams.MbWay build() {
3769
        return new PaymentMethodCreateParams.MbWay(this.extraParams);
×
3770
      }
3771

3772
      /**
3773
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3774
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3775
       * PaymentMethodCreateParams.MbWay#extraParams} for the field documentation.
3776
       */
3777
      public Builder putExtraParam(String key, Object value) {
3778
        if (this.extraParams == null) {
×
3779
          this.extraParams = new HashMap<>();
×
3780
        }
3781
        this.extraParams.put(key, value);
×
3782
        return this;
×
3783
      }
3784

3785
      /**
3786
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3787
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3788
       * See {@link PaymentMethodCreateParams.MbWay#extraParams} for the field documentation.
3789
       */
3790
      public Builder putAllExtraParam(Map<String, Object> map) {
3791
        if (this.extraParams == null) {
×
3792
          this.extraParams = new HashMap<>();
×
3793
        }
3794
        this.extraParams.putAll(map);
×
3795
        return this;
×
3796
      }
3797
    }
3798
  }
3799

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

3811
    private Mobilepay(Map<String, Object> extraParams) {
×
3812
      this.extraParams = extraParams;
×
3813
    }
×
3814

3815
    public static Builder builder() {
3816
      return new Builder();
×
3817
    }
3818

3819
    public static class Builder {
×
3820
      private Map<String, Object> extraParams;
3821

3822
      /** Finalize and obtain parameter instance from this builder. */
3823
      public PaymentMethodCreateParams.Mobilepay build() {
3824
        return new PaymentMethodCreateParams.Mobilepay(this.extraParams);
×
3825
      }
3826

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

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

3855
  @Getter
3856
  public static class Multibanco {
3857
    /**
3858
     * Map of extra parameters for custom features not available in this client library. The content
3859
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3860
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3861
     * param object. Effectively, this map is flattened to its parent instance.
3862
     */
3863
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3864
    Map<String, Object> extraParams;
3865

3866
    private Multibanco(Map<String, Object> extraParams) {
×
3867
      this.extraParams = extraParams;
×
3868
    }
×
3869

3870
    public static Builder builder() {
3871
      return new Builder();
×
3872
    }
3873

3874
    public static class Builder {
×
3875
      private Map<String, Object> extraParams;
3876

3877
      /** Finalize and obtain parameter instance from this builder. */
3878
      public PaymentMethodCreateParams.Multibanco build() {
3879
        return new PaymentMethodCreateParams.Multibanco(this.extraParams);
×
3880
      }
3881

3882
      /**
3883
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3884
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3885
       * PaymentMethodCreateParams.Multibanco#extraParams} for the field documentation.
3886
       */
3887
      public Builder putExtraParam(String key, Object value) {
3888
        if (this.extraParams == null) {
×
3889
          this.extraParams = new HashMap<>();
×
3890
        }
3891
        this.extraParams.put(key, value);
×
3892
        return this;
×
3893
      }
3894

3895
      /**
3896
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3897
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3898
       * See {@link PaymentMethodCreateParams.Multibanco#extraParams} for the field documentation.
3899
       */
3900
      public Builder putAllExtraParam(Map<String, Object> map) {
3901
        if (this.extraParams == null) {
×
3902
          this.extraParams = new HashMap<>();
×
3903
        }
3904
        this.extraParams.putAll(map);
×
3905
        return this;
×
3906
      }
3907
    }
3908
  }
3909

3910
  @Getter
3911
  public static class NaverPay {
3912
    /**
3913
     * Map of extra parameters for custom features not available in this client library. The content
3914
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3915
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3916
     * param object. Effectively, this map is flattened to its parent instance.
3917
     */
3918
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3919
    Map<String, Object> extraParams;
3920

3921
    /**
3922
     * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3923
     * defaults to {@code card}.
3924
     */
3925
    @SerializedName("funding")
3926
    Funding funding;
3927

3928
    private NaverPay(Map<String, Object> extraParams, Funding funding) {
×
3929
      this.extraParams = extraParams;
×
3930
      this.funding = funding;
×
3931
    }
×
3932

3933
    public static Builder builder() {
3934
      return new Builder();
×
3935
    }
3936

3937
    public static class Builder {
×
3938
      private Map<String, Object> extraParams;
3939

3940
      private Funding funding;
3941

3942
      /** Finalize and obtain parameter instance from this builder. */
3943
      public PaymentMethodCreateParams.NaverPay build() {
3944
        return new PaymentMethodCreateParams.NaverPay(this.extraParams, this.funding);
×
3945
      }
3946

3947
      /**
3948
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3949
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3950
       * PaymentMethodCreateParams.NaverPay#extraParams} for the field documentation.
3951
       */
3952
      public Builder putExtraParam(String key, Object value) {
3953
        if (this.extraParams == null) {
×
3954
          this.extraParams = new HashMap<>();
×
3955
        }
3956
        this.extraParams.put(key, value);
×
3957
        return this;
×
3958
      }
3959

3960
      /**
3961
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3962
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3963
       * See {@link PaymentMethodCreateParams.NaverPay#extraParams} for the field documentation.
3964
       */
3965
      public Builder putAllExtraParam(Map<String, Object> map) {
3966
        if (this.extraParams == null) {
×
3967
          this.extraParams = new HashMap<>();
×
3968
        }
3969
        this.extraParams.putAll(map);
×
3970
        return this;
×
3971
      }
3972

3973
      /**
3974
       * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3975
       * defaults to {@code card}.
3976
       */
3977
      public Builder setFunding(PaymentMethodCreateParams.NaverPay.Funding funding) {
3978
        this.funding = funding;
×
3979
        return this;
×
3980
      }
3981
    }
3982

3983
    public enum Funding implements ApiRequestParams.EnumParam {
×
3984
      @SerializedName("card")
×
3985
      CARD("card"),
3986

3987
      @SerializedName("points")
×
3988
      POINTS("points");
3989

3990
      @Getter(onMethod_ = {@Override})
3991
      private final String value;
3992

3993
      Funding(String value) {
×
3994
        this.value = value;
×
3995
      }
×
3996
    }
3997
  }
3998

3999
  @Getter
4000
  public static class Oxxo {
4001
    /**
4002
     * Map of extra parameters for custom features not available in this client library. The content
4003
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4004
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4005
     * param object. Effectively, this map is flattened to its parent instance.
4006
     */
4007
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4008
    Map<String, Object> extraParams;
4009

4010
    private Oxxo(Map<String, Object> extraParams) {
×
4011
      this.extraParams = extraParams;
×
4012
    }
×
4013

4014
    public static Builder builder() {
4015
      return new Builder();
×
4016
    }
4017

4018
    public static class Builder {
×
4019
      private Map<String, Object> extraParams;
4020

4021
      /** Finalize and obtain parameter instance from this builder. */
4022
      public PaymentMethodCreateParams.Oxxo build() {
4023
        return new PaymentMethodCreateParams.Oxxo(this.extraParams);
×
4024
      }
4025

4026
      /**
4027
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4028
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4029
       * PaymentMethodCreateParams.Oxxo#extraParams} for the field documentation.
4030
       */
4031
      public Builder putExtraParam(String key, Object value) {
4032
        if (this.extraParams == null) {
×
4033
          this.extraParams = new HashMap<>();
×
4034
        }
4035
        this.extraParams.put(key, value);
×
4036
        return this;
×
4037
      }
4038

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

4054
  @Getter
4055
  public static class P24 {
4056
    /** The customer's bank. */
4057
    @SerializedName("bank")
4058
    Bank bank;
4059

4060
    /**
4061
     * Map of extra parameters for custom features not available in this client library. The content
4062
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4063
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4064
     * param object. Effectively, this map is flattened to its parent instance.
4065
     */
4066
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4067
    Map<String, Object> extraParams;
4068

4069
    private P24(Bank bank, Map<String, Object> extraParams) {
×
4070
      this.bank = bank;
×
4071
      this.extraParams = extraParams;
×
4072
    }
×
4073

4074
    public static Builder builder() {
4075
      return new Builder();
×
4076
    }
4077

4078
    public static class Builder {
×
4079
      private Bank bank;
4080

4081
      private Map<String, Object> extraParams;
4082

4083
      /** Finalize and obtain parameter instance from this builder. */
4084
      public PaymentMethodCreateParams.P24 build() {
4085
        return new PaymentMethodCreateParams.P24(this.bank, this.extraParams);
×
4086
      }
4087

4088
      /** The customer's bank. */
4089
      public Builder setBank(PaymentMethodCreateParams.P24.Bank bank) {
4090
        this.bank = bank;
×
4091
        return this;
×
4092
      }
4093

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

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

4121
    public enum Bank implements ApiRequestParams.EnumParam {
×
4122
      @SerializedName("alior_bank")
×
4123
      ALIOR_BANK("alior_bank"),
4124

4125
      @SerializedName("bank_millennium")
×
4126
      BANK_MILLENNIUM("bank_millennium"),
4127

4128
      @SerializedName("bank_nowy_bfg_sa")
×
4129
      BANK_NOWY_BFG_SA("bank_nowy_bfg_sa"),
4130

4131
      @SerializedName("bank_pekao_sa")
×
4132
      BANK_PEKAO_SA("bank_pekao_sa"),
4133

4134
      @SerializedName("banki_spbdzielcze")
×
4135
      BANKI_SPBDZIELCZE("banki_spbdzielcze"),
4136

4137
      @SerializedName("blik")
×
4138
      BLIK("blik"),
4139

4140
      @SerializedName("bnp_paribas")
×
4141
      BNP_PARIBAS("bnp_paribas"),
4142

4143
      @SerializedName("boz")
×
4144
      BOZ("boz"),
4145

4146
      @SerializedName("citi_handlowy")
×
4147
      CITI_HANDLOWY("citi_handlowy"),
4148

4149
      @SerializedName("credit_agricole")
×
4150
      CREDIT_AGRICOLE("credit_agricole"),
4151

4152
      @SerializedName("envelobank")
×
4153
      ENVELOBANK("envelobank"),
4154

4155
      @SerializedName("etransfer_pocztowy24")
×
4156
      ETRANSFER_POCZTOWY24("etransfer_pocztowy24"),
4157

4158
      @SerializedName("getin_bank")
×
4159
      GETIN_BANK("getin_bank"),
4160

4161
      @SerializedName("ideabank")
×
4162
      IDEABANK("ideabank"),
4163

4164
      @SerializedName("ing")
×
4165
      ING("ing"),
4166

4167
      @SerializedName("inteligo")
×
4168
      INTELIGO("inteligo"),
4169

4170
      @SerializedName("mbank_mtransfer")
×
4171
      MBANK_MTRANSFER("mbank_mtransfer"),
4172

4173
      @SerializedName("nest_przelew")
×
4174
      NEST_PRZELEW("nest_przelew"),
4175

4176
      @SerializedName("noble_pay")
×
4177
      NOBLE_PAY("noble_pay"),
4178

4179
      @SerializedName("pbac_z_ipko")
×
4180
      PBAC_Z_IPKO("pbac_z_ipko"),
4181

4182
      @SerializedName("plus_bank")
×
4183
      PLUS_BANK("plus_bank"),
4184

4185
      @SerializedName("santander_przelew24")
×
4186
      SANTANDER_PRZELEW24("santander_przelew24"),
4187

4188
      @SerializedName("tmobile_usbugi_bankowe")
×
4189
      TMOBILE_USBUGI_BANKOWE("tmobile_usbugi_bankowe"),
4190

4191
      @SerializedName("toyota_bank")
×
4192
      TOYOTA_BANK("toyota_bank"),
4193

4194
      @SerializedName("velobank")
×
4195
      VELOBANK("velobank"),
4196

4197
      @SerializedName("volkswagen_bank")
×
4198
      VOLKSWAGEN_BANK("volkswagen_bank");
4199

4200
      @Getter(onMethod_ = {@Override})
4201
      private final String value;
4202

4203
      Bank(String value) {
×
4204
        this.value = value;
×
4205
      }
×
4206
    }
4207
  }
4208

4209
  @Getter
4210
  public static class Payco {
4211
    /**
4212
     * Map of extra parameters for custom features not available in this client library. The content
4213
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4214
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4215
     * param object. Effectively, this map is flattened to its parent instance.
4216
     */
4217
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4218
    Map<String, Object> extraParams;
4219

4220
    private Payco(Map<String, Object> extraParams) {
×
4221
      this.extraParams = extraParams;
×
4222
    }
×
4223

4224
    public static Builder builder() {
4225
      return new Builder();
×
4226
    }
4227

4228
    public static class Builder {
×
4229
      private Map<String, Object> extraParams;
4230

4231
      /** Finalize and obtain parameter instance from this builder. */
4232
      public PaymentMethodCreateParams.Payco build() {
4233
        return new PaymentMethodCreateParams.Payco(this.extraParams);
×
4234
      }
4235

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

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

4264
  @Getter
4265
  public static class Paynow {
4266
    /**
4267
     * Map of extra parameters for custom features not available in this client library. The content
4268
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4269
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4270
     * param object. Effectively, this map is flattened to its parent instance.
4271
     */
4272
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4273
    Map<String, Object> extraParams;
4274

4275
    private Paynow(Map<String, Object> extraParams) {
×
4276
      this.extraParams = extraParams;
×
4277
    }
×
4278

4279
    public static Builder builder() {
4280
      return new Builder();
×
4281
    }
4282

4283
    public static class Builder {
×
4284
      private Map<String, Object> extraParams;
4285

4286
      /** Finalize and obtain parameter instance from this builder. */
4287
      public PaymentMethodCreateParams.Paynow build() {
4288
        return new PaymentMethodCreateParams.Paynow(this.extraParams);
×
4289
      }
4290

4291
      /**
4292
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4293
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4294
       * PaymentMethodCreateParams.Paynow#extraParams} for the field documentation.
4295
       */
4296
      public Builder putExtraParam(String key, Object value) {
4297
        if (this.extraParams == null) {
×
4298
          this.extraParams = new HashMap<>();
×
4299
        }
4300
        this.extraParams.put(key, value);
×
4301
        return this;
×
4302
      }
4303

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

4319
  @Getter
4320
  public static class Paypal {
4321
    /**
4322
     * Map of extra parameters for custom features not available in this client library. The content
4323
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4324
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4325
     * param object. Effectively, this map is flattened to its parent instance.
4326
     */
4327
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4328
    Map<String, Object> extraParams;
4329

4330
    private Paypal(Map<String, Object> extraParams) {
×
4331
      this.extraParams = extraParams;
×
4332
    }
×
4333

4334
    public static Builder builder() {
4335
      return new Builder();
×
4336
    }
4337

4338
    public static class Builder {
×
4339
      private Map<String, Object> extraParams;
4340

4341
      /** Finalize and obtain parameter instance from this builder. */
4342
      public PaymentMethodCreateParams.Paypal build() {
4343
        return new PaymentMethodCreateParams.Paypal(this.extraParams);
×
4344
      }
4345

4346
      /**
4347
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4348
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4349
       * PaymentMethodCreateParams.Paypal#extraParams} for the field documentation.
4350
       */
4351
      public Builder putExtraParam(String key, Object value) {
4352
        if (this.extraParams == null) {
×
4353
          this.extraParams = new HashMap<>();
×
4354
        }
4355
        this.extraParams.put(key, value);
×
4356
        return this;
×
4357
      }
4358

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

4374
  @Getter
4375
  public static class Payto {
4376
    /** The account number for the bank account. */
4377
    @SerializedName("account_number")
4378
    String accountNumber;
4379

4380
    /** Bank-State-Branch number of the bank account. */
4381
    @SerializedName("bsb_number")
4382
    String bsbNumber;
4383

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

4393
    /** The PayID alias for the bank account. */
4394
    @SerializedName("pay_id")
4395
    String payId;
4396

4397
    private Payto(
4398
        String accountNumber, String bsbNumber, Map<String, Object> extraParams, String payId) {
×
4399
      this.accountNumber = accountNumber;
×
4400
      this.bsbNumber = bsbNumber;
×
4401
      this.extraParams = extraParams;
×
4402
      this.payId = payId;
×
4403
    }
×
4404

4405
    public static Builder builder() {
4406
      return new Builder();
×
4407
    }
4408

4409
    public static class Builder {
×
4410
      private String accountNumber;
4411

4412
      private String bsbNumber;
4413

4414
      private Map<String, Object> extraParams;
4415

4416
      private String payId;
4417

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

4424
      /** The account number for the bank account. */
4425
      public Builder setAccountNumber(String accountNumber) {
4426
        this.accountNumber = accountNumber;
×
4427
        return this;
×
4428
      }
4429

4430
      /** Bank-State-Branch number of the bank account. */
4431
      public Builder setBsbNumber(String bsbNumber) {
4432
        this.bsbNumber = bsbNumber;
×
4433
        return this;
×
4434
      }
4435

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

4449
      /**
4450
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4451
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4452
       * See {@link PaymentMethodCreateParams.Payto#extraParams} for the field documentation.
4453
       */
4454
      public Builder putAllExtraParam(Map<String, Object> map) {
4455
        if (this.extraParams == null) {
×
4456
          this.extraParams = new HashMap<>();
×
4457
        }
4458
        this.extraParams.putAll(map);
×
4459
        return this;
×
4460
      }
4461

4462
      /** The PayID alias for the bank account. */
4463
      public Builder setPayId(String payId) {
4464
        this.payId = payId;
×
4465
        return this;
×
4466
      }
4467
    }
4468
  }
4469

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

4481
    private Pix(Map<String, Object> extraParams) {
×
4482
      this.extraParams = extraParams;
×
4483
    }
×
4484

4485
    public static Builder builder() {
4486
      return new Builder();
×
4487
    }
4488

4489
    public static class Builder {
×
4490
      private Map<String, Object> extraParams;
4491

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

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

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

4525
  @Getter
4526
  public static class Promptpay {
4527
    /**
4528
     * Map of extra parameters for custom features not available in this client library. The content
4529
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4530
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4531
     * param object. Effectively, this map is flattened to its parent instance.
4532
     */
4533
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4534
    Map<String, Object> extraParams;
4535

4536
    private Promptpay(Map<String, Object> extraParams) {
×
4537
      this.extraParams = extraParams;
×
4538
    }
×
4539

4540
    public static Builder builder() {
4541
      return new Builder();
×
4542
    }
4543

4544
    public static class Builder {
×
4545
      private Map<String, Object> extraParams;
4546

4547
      /** Finalize and obtain parameter instance from this builder. */
4548
      public PaymentMethodCreateParams.Promptpay build() {
4549
        return new PaymentMethodCreateParams.Promptpay(this.extraParams);
×
4550
      }
4551

4552
      /**
4553
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4554
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4555
       * PaymentMethodCreateParams.Promptpay#extraParams} for the field documentation.
4556
       */
4557
      public Builder putExtraParam(String key, Object value) {
4558
        if (this.extraParams == null) {
×
4559
          this.extraParams = new HashMap<>();
×
4560
        }
4561
        this.extraParams.put(key, value);
×
4562
        return this;
×
4563
      }
4564

4565
      /**
4566
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4567
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4568
       * See {@link PaymentMethodCreateParams.Promptpay#extraParams} for the field documentation.
4569
       */
4570
      public Builder putAllExtraParam(Map<String, Object> map) {
4571
        if (this.extraParams == null) {
×
4572
          this.extraParams = new HashMap<>();
×
4573
        }
4574
        this.extraParams.putAll(map);
×
4575
        return this;
×
4576
      }
4577
    }
4578
  }
4579

4580
  @Getter
4581
  public static class Qris {
4582
    /**
4583
     * Map of extra parameters for custom features not available in this client library. The content
4584
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4585
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4586
     * param object. Effectively, this map is flattened to its parent instance.
4587
     */
4588
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4589
    Map<String, Object> extraParams;
4590

NEW
4591
    private Qris(Map<String, Object> extraParams) {
×
NEW
4592
      this.extraParams = extraParams;
×
NEW
4593
    }
×
4594

4595
    public static Builder builder() {
NEW
4596
      return new Builder();
×
4597
    }
4598

NEW
4599
    public static class Builder {
×
4600
      private Map<String, Object> extraParams;
4601

4602
      /** Finalize and obtain parameter instance from this builder. */
4603
      public PaymentMethodCreateParams.Qris build() {
NEW
4604
        return new PaymentMethodCreateParams.Qris(this.extraParams);
×
4605
      }
4606

4607
      /**
4608
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4609
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4610
       * PaymentMethodCreateParams.Qris#extraParams} for the field documentation.
4611
       */
4612
      public Builder putExtraParam(String key, Object value) {
NEW
4613
        if (this.extraParams == null) {
×
NEW
4614
          this.extraParams = new HashMap<>();
×
4615
        }
NEW
4616
        this.extraParams.put(key, value);
×
NEW
4617
        return this;
×
4618
      }
4619

4620
      /**
4621
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4622
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4623
       * See {@link PaymentMethodCreateParams.Qris#extraParams} for the field documentation.
4624
       */
4625
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
4626
        if (this.extraParams == null) {
×
NEW
4627
          this.extraParams = new HashMap<>();
×
4628
        }
NEW
4629
        this.extraParams.putAll(map);
×
NEW
4630
        return this;
×
4631
      }
4632
    }
4633
  }
4634

4635
  @Getter
4636
  public static class RadarOptions {
4637
    /**
4638
     * Map of extra parameters for custom features not available in this client library. The content
4639
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4640
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4641
     * param object. Effectively, this map is flattened to its parent instance.
4642
     */
4643
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4644
    Map<String, Object> extraParams;
4645

4646
    /**
4647
     * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4648
     * the browser metadata and device details that help Radar make more accurate predictions on
4649
     * your payments.
4650
     */
4651
    @SerializedName("session")
4652
    String session;
4653

4654
    private RadarOptions(Map<String, Object> extraParams, String session) {
×
4655
      this.extraParams = extraParams;
×
4656
      this.session = session;
×
4657
    }
×
4658

4659
    public static Builder builder() {
4660
      return new Builder();
×
4661
    }
4662

4663
    public static class Builder {
×
4664
      private Map<String, Object> extraParams;
4665

4666
      private String session;
4667

4668
      /** Finalize and obtain parameter instance from this builder. */
4669
      public PaymentMethodCreateParams.RadarOptions build() {
4670
        return new PaymentMethodCreateParams.RadarOptions(this.extraParams, this.session);
×
4671
      }
4672

4673
      /**
4674
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4675
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4676
       * PaymentMethodCreateParams.RadarOptions#extraParams} for the field documentation.
4677
       */
4678
      public Builder putExtraParam(String key, Object value) {
4679
        if (this.extraParams == null) {
×
4680
          this.extraParams = new HashMap<>();
×
4681
        }
4682
        this.extraParams.put(key, value);
×
4683
        return this;
×
4684
      }
4685

4686
      /**
4687
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4688
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4689
       * See {@link PaymentMethodCreateParams.RadarOptions#extraParams} for the field documentation.
4690
       */
4691
      public Builder putAllExtraParam(Map<String, Object> map) {
4692
        if (this.extraParams == null) {
×
4693
          this.extraParams = new HashMap<>();
×
4694
        }
4695
        this.extraParams.putAll(map);
×
4696
        return this;
×
4697
      }
4698

4699
      /**
4700
       * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4701
       * the browser metadata and device details that help Radar make more accurate predictions on
4702
       * your payments.
4703
       */
4704
      public Builder setSession(String session) {
4705
        this.session = session;
×
4706
        return this;
×
4707
      }
4708
    }
4709
  }
4710

4711
  @Getter
4712
  public static class Rechnung {
4713
    /** <strong>Required.</strong> Customer's date of birth */
4714
    @SerializedName("dob")
4715
    Dob dob;
4716

4717
    /**
4718
     * Map of extra parameters for custom features not available in this client library. The content
4719
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4720
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4721
     * param object. Effectively, this map is flattened to its parent instance.
4722
     */
4723
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4724
    Map<String, Object> extraParams;
4725

4726
    private Rechnung(Dob dob, Map<String, Object> extraParams) {
×
4727
      this.dob = dob;
×
4728
      this.extraParams = extraParams;
×
4729
    }
×
4730

4731
    public static Builder builder() {
4732
      return new Builder();
×
4733
    }
4734

4735
    public static class Builder {
×
4736
      private Dob dob;
4737

4738
      private Map<String, Object> extraParams;
4739

4740
      /** Finalize and obtain parameter instance from this builder. */
4741
      public PaymentMethodCreateParams.Rechnung build() {
4742
        return new PaymentMethodCreateParams.Rechnung(this.dob, this.extraParams);
×
4743
      }
4744

4745
      /** <strong>Required.</strong> Customer's date of birth */
4746
      public Builder setDob(PaymentMethodCreateParams.Rechnung.Dob dob) {
4747
        this.dob = dob;
×
4748
        return this;
×
4749
      }
4750

4751
      /**
4752
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4753
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4754
       * PaymentMethodCreateParams.Rechnung#extraParams} for the field documentation.
4755
       */
4756
      public Builder putExtraParam(String key, Object value) {
4757
        if (this.extraParams == null) {
×
4758
          this.extraParams = new HashMap<>();
×
4759
        }
4760
        this.extraParams.put(key, value);
×
4761
        return this;
×
4762
      }
4763

4764
      /**
4765
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4766
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4767
       * See {@link PaymentMethodCreateParams.Rechnung#extraParams} for the field documentation.
4768
       */
4769
      public Builder putAllExtraParam(Map<String, Object> map) {
4770
        if (this.extraParams == null) {
×
4771
          this.extraParams = new HashMap<>();
×
4772
        }
4773
        this.extraParams.putAll(map);
×
4774
        return this;
×
4775
      }
4776
    }
4777

4778
    @Getter
4779
    public static class Dob {
4780
      /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4781
      @SerializedName("day")
4782
      Long day;
4783

4784
      /**
4785
       * Map of extra parameters for custom features not available in this client library. The
4786
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4787
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4788
       * name in this param object. Effectively, this map is flattened to its parent instance.
4789
       */
4790
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4791
      Map<String, Object> extraParams;
4792

4793
      /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4794
      @SerializedName("month")
4795
      Long month;
4796

4797
      /** <strong>Required.</strong> The four-digit year of birth. */
4798
      @SerializedName("year")
4799
      Long year;
4800

4801
      private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
4802
        this.day = day;
×
4803
        this.extraParams = extraParams;
×
4804
        this.month = month;
×
4805
        this.year = year;
×
4806
      }
×
4807

4808
      public static Builder builder() {
4809
        return new Builder();
×
4810
      }
4811

4812
      public static class Builder {
×
4813
        private Long day;
4814

4815
        private Map<String, Object> extraParams;
4816

4817
        private Long month;
4818

4819
        private Long year;
4820

4821
        /** Finalize and obtain parameter instance from this builder. */
4822
        public PaymentMethodCreateParams.Rechnung.Dob build() {
4823
          return new PaymentMethodCreateParams.Rechnung.Dob(
×
4824
              this.day, this.extraParams, this.month, this.year);
4825
        }
4826

4827
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4828
        public Builder setDay(Long day) {
4829
          this.day = day;
×
4830
          return this;
×
4831
        }
4832

4833
        /**
4834
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4835
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4836
         * map. See {@link PaymentMethodCreateParams.Rechnung.Dob#extraParams} for the field
4837
         * documentation.
4838
         */
4839
        public Builder putExtraParam(String key, Object value) {
4840
          if (this.extraParams == null) {
×
4841
            this.extraParams = new HashMap<>();
×
4842
          }
4843
          this.extraParams.put(key, value);
×
4844
          return this;
×
4845
        }
4846

4847
        /**
4848
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4849
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4850
         * map. See {@link PaymentMethodCreateParams.Rechnung.Dob#extraParams} for the field
4851
         * documentation.
4852
         */
4853
        public Builder putAllExtraParam(Map<String, Object> map) {
4854
          if (this.extraParams == null) {
×
4855
            this.extraParams = new HashMap<>();
×
4856
          }
4857
          this.extraParams.putAll(map);
×
4858
          return this;
×
4859
        }
4860

4861
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4862
        public Builder setMonth(Long month) {
4863
          this.month = month;
×
4864
          return this;
×
4865
        }
4866

4867
        /** <strong>Required.</strong> The four-digit year of birth. */
4868
        public Builder setYear(Long year) {
4869
          this.year = year;
×
4870
          return this;
×
4871
        }
4872
      }
4873
    }
4874
  }
4875

4876
  @Getter
4877
  public static class RevolutPay {
4878
    /**
4879
     * Map of extra parameters for custom features not available in this client library. The content
4880
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4881
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4882
     * param object. Effectively, this map is flattened to its parent instance.
4883
     */
4884
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4885
    Map<String, Object> extraParams;
4886

4887
    private RevolutPay(Map<String, Object> extraParams) {
×
4888
      this.extraParams = extraParams;
×
4889
    }
×
4890

4891
    public static Builder builder() {
4892
      return new Builder();
×
4893
    }
4894

4895
    public static class Builder {
×
4896
      private Map<String, Object> extraParams;
4897

4898
      /** Finalize and obtain parameter instance from this builder. */
4899
      public PaymentMethodCreateParams.RevolutPay build() {
4900
        return new PaymentMethodCreateParams.RevolutPay(this.extraParams);
×
4901
      }
4902

4903
      /**
4904
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4905
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4906
       * PaymentMethodCreateParams.RevolutPay#extraParams} for the field documentation.
4907
       */
4908
      public Builder putExtraParam(String key, Object value) {
4909
        if (this.extraParams == null) {
×
4910
          this.extraParams = new HashMap<>();
×
4911
        }
4912
        this.extraParams.put(key, value);
×
4913
        return this;
×
4914
      }
4915

4916
      /**
4917
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4918
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4919
       * See {@link PaymentMethodCreateParams.RevolutPay#extraParams} for the field documentation.
4920
       */
4921
      public Builder putAllExtraParam(Map<String, Object> map) {
4922
        if (this.extraParams == null) {
×
4923
          this.extraParams = new HashMap<>();
×
4924
        }
4925
        this.extraParams.putAll(map);
×
4926
        return this;
×
4927
      }
4928
    }
4929
  }
4930

4931
  @Getter
4932
  public static class SamsungPay {
4933
    /**
4934
     * Map of extra parameters for custom features not available in this client library. The content
4935
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4936
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4937
     * param object. Effectively, this map is flattened to its parent instance.
4938
     */
4939
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4940
    Map<String, Object> extraParams;
4941

4942
    private SamsungPay(Map<String, Object> extraParams) {
×
4943
      this.extraParams = extraParams;
×
4944
    }
×
4945

4946
    public static Builder builder() {
4947
      return new Builder();
×
4948
    }
4949

4950
    public static class Builder {
×
4951
      private Map<String, Object> extraParams;
4952

4953
      /** Finalize and obtain parameter instance from this builder. */
4954
      public PaymentMethodCreateParams.SamsungPay build() {
4955
        return new PaymentMethodCreateParams.SamsungPay(this.extraParams);
×
4956
      }
4957

4958
      /**
4959
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4960
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4961
       * PaymentMethodCreateParams.SamsungPay#extraParams} for the field documentation.
4962
       */
4963
      public Builder putExtraParam(String key, Object value) {
4964
        if (this.extraParams == null) {
×
4965
          this.extraParams = new HashMap<>();
×
4966
        }
4967
        this.extraParams.put(key, value);
×
4968
        return this;
×
4969
      }
4970

4971
      /**
4972
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4973
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4974
       * See {@link PaymentMethodCreateParams.SamsungPay#extraParams} for the field documentation.
4975
       */
4976
      public Builder putAllExtraParam(Map<String, Object> map) {
4977
        if (this.extraParams == null) {
×
4978
          this.extraParams = new HashMap<>();
×
4979
        }
4980
        this.extraParams.putAll(map);
×
4981
        return this;
×
4982
      }
4983
    }
4984
  }
4985

4986
  @Getter
4987
  public static class SepaDebit {
4988
    /**
4989
     * Map of extra parameters for custom features not available in this client library. The content
4990
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4991
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4992
     * param object. Effectively, this map is flattened to its parent instance.
4993
     */
4994
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4995
    Map<String, Object> extraParams;
4996

4997
    /** <strong>Required.</strong> IBAN of the bank account. */
4998
    @SerializedName("iban")
4999
    String iban;
5000

5001
    private SepaDebit(Map<String, Object> extraParams, String iban) {
×
5002
      this.extraParams = extraParams;
×
5003
      this.iban = iban;
×
5004
    }
×
5005

5006
    public static Builder builder() {
5007
      return new Builder();
×
5008
    }
5009

5010
    public static class Builder {
×
5011
      private Map<String, Object> extraParams;
5012

5013
      private String iban;
5014

5015
      /** Finalize and obtain parameter instance from this builder. */
5016
      public PaymentMethodCreateParams.SepaDebit build() {
5017
        return new PaymentMethodCreateParams.SepaDebit(this.extraParams, this.iban);
×
5018
      }
5019

5020
      /**
5021
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5022
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5023
       * PaymentMethodCreateParams.SepaDebit#extraParams} for the field documentation.
5024
       */
5025
      public Builder putExtraParam(String key, Object value) {
5026
        if (this.extraParams == null) {
×
5027
          this.extraParams = new HashMap<>();
×
5028
        }
5029
        this.extraParams.put(key, value);
×
5030
        return this;
×
5031
      }
5032

5033
      /**
5034
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5035
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5036
       * See {@link PaymentMethodCreateParams.SepaDebit#extraParams} for the field documentation.
5037
       */
5038
      public Builder putAllExtraParam(Map<String, Object> map) {
5039
        if (this.extraParams == null) {
×
5040
          this.extraParams = new HashMap<>();
×
5041
        }
5042
        this.extraParams.putAll(map);
×
5043
        return this;
×
5044
      }
5045

5046
      /** <strong>Required.</strong> IBAN of the bank account. */
5047
      public Builder setIban(String iban) {
5048
        this.iban = iban;
×
5049
        return this;
×
5050
      }
5051
    }
5052
  }
5053

5054
  @Getter
5055
  public static class Shopeepay {
5056
    /**
5057
     * Map of extra parameters for custom features not available in this client library. The content
5058
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5059
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5060
     * param object. Effectively, this map is flattened to its parent instance.
5061
     */
5062
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5063
    Map<String, Object> extraParams;
5064

NEW
5065
    private Shopeepay(Map<String, Object> extraParams) {
×
NEW
5066
      this.extraParams = extraParams;
×
NEW
5067
    }
×
5068

5069
    public static Builder builder() {
NEW
5070
      return new Builder();
×
5071
    }
5072

NEW
5073
    public static class Builder {
×
5074
      private Map<String, Object> extraParams;
5075

5076
      /** Finalize and obtain parameter instance from this builder. */
5077
      public PaymentMethodCreateParams.Shopeepay build() {
NEW
5078
        return new PaymentMethodCreateParams.Shopeepay(this.extraParams);
×
5079
      }
5080

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

5094
      /**
5095
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5096
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5097
       * See {@link PaymentMethodCreateParams.Shopeepay#extraParams} for the field documentation.
5098
       */
5099
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
5100
        if (this.extraParams == null) {
×
NEW
5101
          this.extraParams = new HashMap<>();
×
5102
        }
NEW
5103
        this.extraParams.putAll(map);
×
NEW
5104
        return this;
×
5105
      }
5106
    }
5107
  }
5108

5109
  @Getter
5110
  public static class Sofort {
5111
    /**
5112
     * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
5113
     * located in.
5114
     */
5115
    @SerializedName("country")
5116
    Country country;
5117

5118
    /**
5119
     * Map of extra parameters for custom features not available in this client library. The content
5120
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5121
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5122
     * param object. Effectively, this map is flattened to its parent instance.
5123
     */
5124
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5125
    Map<String, Object> extraParams;
5126

5127
    private Sofort(Country country, Map<String, Object> extraParams) {
×
5128
      this.country = country;
×
5129
      this.extraParams = extraParams;
×
5130
    }
×
5131

5132
    public static Builder builder() {
5133
      return new Builder();
×
5134
    }
5135

5136
    public static class Builder {
×
5137
      private Country country;
5138

5139
      private Map<String, Object> extraParams;
5140

5141
      /** Finalize and obtain parameter instance from this builder. */
5142
      public PaymentMethodCreateParams.Sofort build() {
5143
        return new PaymentMethodCreateParams.Sofort(this.country, this.extraParams);
×
5144
      }
5145

5146
      /**
5147
       * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
5148
       * located in.
5149
       */
5150
      public Builder setCountry(PaymentMethodCreateParams.Sofort.Country country) {
5151
        this.country = country;
×
5152
        return this;
×
5153
      }
5154

5155
      /**
5156
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5157
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5158
       * PaymentMethodCreateParams.Sofort#extraParams} for the field documentation.
5159
       */
5160
      public Builder putExtraParam(String key, Object value) {
5161
        if (this.extraParams == null) {
×
5162
          this.extraParams = new HashMap<>();
×
5163
        }
5164
        this.extraParams.put(key, value);
×
5165
        return this;
×
5166
      }
5167

5168
      /**
5169
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5170
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5171
       * See {@link PaymentMethodCreateParams.Sofort#extraParams} for the field documentation.
5172
       */
5173
      public Builder putAllExtraParam(Map<String, Object> map) {
5174
        if (this.extraParams == null) {
×
5175
          this.extraParams = new HashMap<>();
×
5176
        }
5177
        this.extraParams.putAll(map);
×
5178
        return this;
×
5179
      }
5180
    }
5181

5182
    public enum Country implements ApiRequestParams.EnumParam {
×
5183
      @SerializedName("AT")
×
5184
      AT("AT"),
5185

5186
      @SerializedName("BE")
×
5187
      BE("BE"),
5188

5189
      @SerializedName("DE")
×
5190
      DE("DE"),
5191

5192
      @SerializedName("ES")
×
5193
      ES("ES"),
5194

5195
      @SerializedName("IT")
×
5196
      IT("IT"),
5197

5198
      @SerializedName("NL")
×
5199
      NL("NL");
5200

5201
      @Getter(onMethod_ = {@Override})
5202
      private final String value;
5203

5204
      Country(String value) {
×
5205
        this.value = value;
×
5206
      }
×
5207
    }
5208
  }
5209

5210
  @Getter
5211
  public static class Swish {
5212
    /**
5213
     * Map of extra parameters for custom features not available in this client library. The content
5214
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5215
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5216
     * param object. Effectively, this map is flattened to its parent instance.
5217
     */
5218
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5219
    Map<String, Object> extraParams;
5220

5221
    private Swish(Map<String, Object> extraParams) {
×
5222
      this.extraParams = extraParams;
×
5223
    }
×
5224

5225
    public static Builder builder() {
5226
      return new Builder();
×
5227
    }
5228

5229
    public static class Builder {
×
5230
      private Map<String, Object> extraParams;
5231

5232
      /** Finalize and obtain parameter instance from this builder. */
5233
      public PaymentMethodCreateParams.Swish build() {
5234
        return new PaymentMethodCreateParams.Swish(this.extraParams);
×
5235
      }
5236

5237
      /**
5238
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5239
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5240
       * PaymentMethodCreateParams.Swish#extraParams} for the field documentation.
5241
       */
5242
      public Builder putExtraParam(String key, Object value) {
5243
        if (this.extraParams == null) {
×
5244
          this.extraParams = new HashMap<>();
×
5245
        }
5246
        this.extraParams.put(key, value);
×
5247
        return this;
×
5248
      }
5249

5250
      /**
5251
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5252
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5253
       * See {@link PaymentMethodCreateParams.Swish#extraParams} for the field documentation.
5254
       */
5255
      public Builder putAllExtraParam(Map<String, Object> map) {
5256
        if (this.extraParams == null) {
×
5257
          this.extraParams = new HashMap<>();
×
5258
        }
5259
        this.extraParams.putAll(map);
×
5260
        return this;
×
5261
      }
5262
    }
5263
  }
5264

5265
  @Getter
5266
  public static class Token {
5267
    /**
5268
     * Map of extra parameters for custom features not available in this client library. The content
5269
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5270
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5271
     * param object. Effectively, this map is flattened to its parent instance.
5272
     */
5273
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5274
    Map<String, Object> extraParams;
5275

5276
    /**
5277
     * For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple
5278
     * Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card: {token:
5279
     * &quot;tok_visa&quot;}.
5280
     */
5281
    @SerializedName("token")
5282
    String token;
5283

5284
    private Token(Map<String, Object> extraParams, String token) {
×
5285
      this.extraParams = extraParams;
×
5286
      this.token = token;
×
5287
    }
×
5288

5289
    public static Builder builder() {
5290
      return new Builder();
×
5291
    }
5292

5293
    public static class Builder {
×
5294
      private Map<String, Object> extraParams;
5295

5296
      private String token;
5297

5298
      /** Finalize and obtain parameter instance from this builder. */
5299
      public PaymentMethodCreateParams.Token build() {
5300
        return new PaymentMethodCreateParams.Token(this.extraParams, this.token);
×
5301
      }
5302

5303
      /**
5304
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5305
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5306
       * PaymentMethodCreateParams.Token#extraParams} for the field documentation.
5307
       */
5308
      public Builder putExtraParam(String key, Object value) {
5309
        if (this.extraParams == null) {
×
5310
          this.extraParams = new HashMap<>();
×
5311
        }
5312
        this.extraParams.put(key, value);
×
5313
        return this;
×
5314
      }
5315

5316
      /**
5317
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5318
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5319
       * See {@link PaymentMethodCreateParams.Token#extraParams} for the field documentation.
5320
       */
5321
      public Builder putAllExtraParam(Map<String, Object> map) {
5322
        if (this.extraParams == null) {
×
5323
          this.extraParams = new HashMap<>();
×
5324
        }
5325
        this.extraParams.putAll(map);
×
5326
        return this;
×
5327
      }
5328

5329
      /**
5330
       * For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple
5331
       * Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card:
5332
       * {token: &quot;tok_visa&quot;}.
5333
       */
5334
      public Builder setToken(String token) {
5335
        this.token = token;
×
5336
        return this;
×
5337
      }
5338
    }
5339
  }
5340

5341
  @Getter
5342
  public static class Twint {
5343
    /**
5344
     * Map of extra parameters for custom features not available in this client library. The content
5345
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5346
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5347
     * param object. Effectively, this map is flattened to its parent instance.
5348
     */
5349
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5350
    Map<String, Object> extraParams;
5351

5352
    private Twint(Map<String, Object> extraParams) {
×
5353
      this.extraParams = extraParams;
×
5354
    }
×
5355

5356
    public static Builder builder() {
5357
      return new Builder();
×
5358
    }
5359

5360
    public static class Builder {
×
5361
      private Map<String, Object> extraParams;
5362

5363
      /** Finalize and obtain parameter instance from this builder. */
5364
      public PaymentMethodCreateParams.Twint build() {
5365
        return new PaymentMethodCreateParams.Twint(this.extraParams);
×
5366
      }
5367

5368
      /**
5369
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5370
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5371
       * PaymentMethodCreateParams.Twint#extraParams} for the field documentation.
5372
       */
5373
      public Builder putExtraParam(String key, Object value) {
5374
        if (this.extraParams == null) {
×
5375
          this.extraParams = new HashMap<>();
×
5376
        }
5377
        this.extraParams.put(key, value);
×
5378
        return this;
×
5379
      }
5380

5381
      /**
5382
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5383
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5384
       * See {@link PaymentMethodCreateParams.Twint#extraParams} for the field documentation.
5385
       */
5386
      public Builder putAllExtraParam(Map<String, Object> map) {
5387
        if (this.extraParams == null) {
×
5388
          this.extraParams = new HashMap<>();
×
5389
        }
5390
        this.extraParams.putAll(map);
×
5391
        return this;
×
5392
      }
5393
    }
5394
  }
5395

5396
  @Getter
5397
  public static class UsBankAccount {
5398
    /** Account holder type: individual or company. */
5399
    @SerializedName("account_holder_type")
5400
    AccountHolderType accountHolderType;
5401

5402
    /** Account number of the bank account. */
5403
    @SerializedName("account_number")
5404
    String accountNumber;
5405

5406
    /** Account type: checkings or savings. Defaults to checking if omitted. */
5407
    @SerializedName("account_type")
5408
    AccountType accountType;
5409

5410
    /**
5411
     * Map of extra parameters for custom features not available in this client library. The content
5412
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5413
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5414
     * param object. Effectively, this map is flattened to its parent instance.
5415
     */
5416
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5417
    Map<String, Object> extraParams;
5418

5419
    /** The ID of a Financial Connections Account to use as a payment method. */
5420
    @SerializedName("financial_connections_account")
5421
    String financialConnectionsAccount;
5422

5423
    /** Routing number of the bank account. */
5424
    @SerializedName("routing_number")
5425
    String routingNumber;
5426

5427
    private UsBankAccount(
5428
        AccountHolderType accountHolderType,
5429
        String accountNumber,
5430
        AccountType accountType,
5431
        Map<String, Object> extraParams,
5432
        String financialConnectionsAccount,
5433
        String routingNumber) {
×
5434
      this.accountHolderType = accountHolderType;
×
5435
      this.accountNumber = accountNumber;
×
5436
      this.accountType = accountType;
×
5437
      this.extraParams = extraParams;
×
5438
      this.financialConnectionsAccount = financialConnectionsAccount;
×
5439
      this.routingNumber = routingNumber;
×
5440
    }
×
5441

5442
    public static Builder builder() {
5443
      return new Builder();
×
5444
    }
5445

5446
    public static class Builder {
×
5447
      private AccountHolderType accountHolderType;
5448

5449
      private String accountNumber;
5450

5451
      private AccountType accountType;
5452

5453
      private Map<String, Object> extraParams;
5454

5455
      private String financialConnectionsAccount;
5456

5457
      private String routingNumber;
5458

5459
      /** Finalize and obtain parameter instance from this builder. */
5460
      public PaymentMethodCreateParams.UsBankAccount build() {
5461
        return new PaymentMethodCreateParams.UsBankAccount(
×
5462
            this.accountHolderType,
5463
            this.accountNumber,
5464
            this.accountType,
5465
            this.extraParams,
5466
            this.financialConnectionsAccount,
5467
            this.routingNumber);
5468
      }
5469

5470
      /** Account holder type: individual or company. */
5471
      public Builder setAccountHolderType(
5472
          PaymentMethodCreateParams.UsBankAccount.AccountHolderType accountHolderType) {
5473
        this.accountHolderType = accountHolderType;
×
5474
        return this;
×
5475
      }
5476

5477
      /** Account number of the bank account. */
5478
      public Builder setAccountNumber(String accountNumber) {
5479
        this.accountNumber = accountNumber;
×
5480
        return this;
×
5481
      }
5482

5483
      /** Account type: checkings or savings. Defaults to checking if omitted. */
5484
      public Builder setAccountType(
5485
          PaymentMethodCreateParams.UsBankAccount.AccountType accountType) {
5486
        this.accountType = accountType;
×
5487
        return this;
×
5488
      }
5489

5490
      /**
5491
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5492
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5493
       * PaymentMethodCreateParams.UsBankAccount#extraParams} for the field documentation.
5494
       */
5495
      public Builder putExtraParam(String key, Object value) {
5496
        if (this.extraParams == null) {
×
5497
          this.extraParams = new HashMap<>();
×
5498
        }
5499
        this.extraParams.put(key, value);
×
5500
        return this;
×
5501
      }
5502

5503
      /**
5504
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5505
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5506
       * See {@link PaymentMethodCreateParams.UsBankAccount#extraParams} for the field
5507
       * documentation.
5508
       */
5509
      public Builder putAllExtraParam(Map<String, Object> map) {
5510
        if (this.extraParams == null) {
×
5511
          this.extraParams = new HashMap<>();
×
5512
        }
5513
        this.extraParams.putAll(map);
×
5514
        return this;
×
5515
      }
5516

5517
      /** The ID of a Financial Connections Account to use as a payment method. */
5518
      public Builder setFinancialConnectionsAccount(String financialConnectionsAccount) {
5519
        this.financialConnectionsAccount = financialConnectionsAccount;
×
5520
        return this;
×
5521
      }
5522

5523
      /** Routing number of the bank account. */
5524
      public Builder setRoutingNumber(String routingNumber) {
5525
        this.routingNumber = routingNumber;
×
5526
        return this;
×
5527
      }
5528
    }
5529

5530
    public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
5531
      @SerializedName("company")
×
5532
      COMPANY("company"),
5533

5534
      @SerializedName("individual")
×
5535
      INDIVIDUAL("individual");
5536

5537
      @Getter(onMethod_ = {@Override})
5538
      private final String value;
5539

5540
      AccountHolderType(String value) {
×
5541
        this.value = value;
×
5542
      }
×
5543
    }
5544

5545
    public enum AccountType implements ApiRequestParams.EnumParam {
×
5546
      @SerializedName("checking")
×
5547
      CHECKING("checking"),
5548

5549
      @SerializedName("savings")
×
5550
      SAVINGS("savings");
5551

5552
      @Getter(onMethod_ = {@Override})
5553
      private final String value;
5554

5555
      AccountType(String value) {
×
5556
        this.value = value;
×
5557
      }
×
5558
    }
5559
  }
5560

5561
  @Getter
5562
  public static class WechatPay {
5563
    /**
5564
     * Map of extra parameters for custom features not available in this client library. The content
5565
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5566
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5567
     * param object. Effectively, this map is flattened to its parent instance.
5568
     */
5569
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5570
    Map<String, Object> extraParams;
5571

5572
    private WechatPay(Map<String, Object> extraParams) {
×
5573
      this.extraParams = extraParams;
×
5574
    }
×
5575

5576
    public static Builder builder() {
5577
      return new Builder();
×
5578
    }
5579

5580
    public static class Builder {
×
5581
      private Map<String, Object> extraParams;
5582

5583
      /** Finalize and obtain parameter instance from this builder. */
5584
      public PaymentMethodCreateParams.WechatPay build() {
5585
        return new PaymentMethodCreateParams.WechatPay(this.extraParams);
×
5586
      }
5587

5588
      /**
5589
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5590
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5591
       * PaymentMethodCreateParams.WechatPay#extraParams} for the field documentation.
5592
       */
5593
      public Builder putExtraParam(String key, Object value) {
5594
        if (this.extraParams == null) {
×
5595
          this.extraParams = new HashMap<>();
×
5596
        }
5597
        this.extraParams.put(key, value);
×
5598
        return this;
×
5599
      }
5600

5601
      /**
5602
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5603
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5604
       * See {@link PaymentMethodCreateParams.WechatPay#extraParams} for the field documentation.
5605
       */
5606
      public Builder putAllExtraParam(Map<String, Object> map) {
5607
        if (this.extraParams == null) {
×
5608
          this.extraParams = new HashMap<>();
×
5609
        }
5610
        this.extraParams.putAll(map);
×
5611
        return this;
×
5612
      }
5613
    }
5614
  }
5615

5616
  @Getter
5617
  public static class Zip {
5618
    /**
5619
     * Map of extra parameters for custom features not available in this client library. The content
5620
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5621
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5622
     * param object. Effectively, this map is flattened to its parent instance.
5623
     */
5624
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5625
    Map<String, Object> extraParams;
5626

5627
    private Zip(Map<String, Object> extraParams) {
×
5628
      this.extraParams = extraParams;
×
5629
    }
×
5630

5631
    public static Builder builder() {
5632
      return new Builder();
×
5633
    }
5634

5635
    public static class Builder {
×
5636
      private Map<String, Object> extraParams;
5637

5638
      /** Finalize and obtain parameter instance from this builder. */
5639
      public PaymentMethodCreateParams.Zip build() {
5640
        return new PaymentMethodCreateParams.Zip(this.extraParams);
×
5641
      }
5642

5643
      /**
5644
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5645
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5646
       * PaymentMethodCreateParams.Zip#extraParams} for the field documentation.
5647
       */
5648
      public Builder putExtraParam(String key, Object value) {
5649
        if (this.extraParams == null) {
×
5650
          this.extraParams = new HashMap<>();
×
5651
        }
5652
        this.extraParams.put(key, value);
×
5653
        return this;
×
5654
      }
5655

5656
      /**
5657
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5658
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5659
       * See {@link PaymentMethodCreateParams.Zip#extraParams} for the field documentation.
5660
       */
5661
      public Builder putAllExtraParam(Map<String, Object> map) {
5662
        if (this.extraParams == null) {
×
5663
          this.extraParams = new HashMap<>();
×
5664
        }
5665
        this.extraParams.putAll(map);
×
5666
        return this;
×
5667
      }
5668
    }
5669
  }
5670

5671
  public enum AllowRedisplay implements ApiRequestParams.EnumParam {
×
5672
    @SerializedName("always")
×
5673
    ALWAYS("always"),
5674

5675
    @SerializedName("limited")
×
5676
    LIMITED("limited"),
5677

5678
    @SerializedName("unspecified")
×
5679
    UNSPECIFIED("unspecified");
5680

5681
    @Getter(onMethod_ = {@Override})
5682
    private final String value;
5683

5684
    AllowRedisplay(String value) {
×
5685
      this.value = value;
×
5686
    }
×
5687
  }
5688

5689
  public enum Type implements ApiRequestParams.EnumParam {
×
5690
    @SerializedName("acss_debit")
×
5691
    ACSS_DEBIT("acss_debit"),
5692

5693
    @SerializedName("affirm")
×
5694
    AFFIRM("affirm"),
5695

5696
    @SerializedName("afterpay_clearpay")
×
5697
    AFTERPAY_CLEARPAY("afterpay_clearpay"),
5698

5699
    @SerializedName("alipay")
×
5700
    ALIPAY("alipay"),
5701

NEW
5702
    @SerializedName("alma")
×
5703
    ALMA("alma"),
5704

UNCOV
5705
    @SerializedName("amazon_pay")
×
5706
    AMAZON_PAY("amazon_pay"),
5707

5708
    @SerializedName("au_becs_debit")
×
5709
    AU_BECS_DEBIT("au_becs_debit"),
5710

5711
    @SerializedName("bacs_debit")
×
5712
    BACS_DEBIT("bacs_debit"),
5713

5714
    @SerializedName("bancontact")
×
5715
    BANCONTACT("bancontact"),
5716

5717
    @SerializedName("blik")
×
5718
    BLIK("blik"),
5719

5720
    @SerializedName("boleto")
×
5721
    BOLETO("boleto"),
5722

5723
    @SerializedName("card")
×
5724
    CARD("card"),
5725

5726
    @SerializedName("cashapp")
×
5727
    CASHAPP("cashapp"),
5728

5729
    @SerializedName("customer_balance")
×
5730
    CUSTOMER_BALANCE("customer_balance"),
5731

5732
    @SerializedName("eps")
×
5733
    EPS("eps"),
5734

5735
    @SerializedName("fpx")
×
5736
    FPX("fpx"),
5737

5738
    @SerializedName("giropay")
×
5739
    GIROPAY("giropay"),
5740

NEW
5741
    @SerializedName("gopay")
×
5742
    GOPAY("gopay"),
5743

UNCOV
5744
    @SerializedName("grabpay")
×
5745
    GRABPAY("grabpay"),
5746

5747
    @SerializedName("ideal")
×
5748
    IDEAL("ideal"),
5749

5750
    @SerializedName("kakao_pay")
×
5751
    KAKAO_PAY("kakao_pay"),
5752

5753
    @SerializedName("klarna")
×
5754
    KLARNA("klarna"),
5755

5756
    @SerializedName("konbini")
×
5757
    KONBINI("konbini"),
5758

5759
    @SerializedName("kr_card")
×
5760
    KR_CARD("kr_card"),
5761

5762
    @SerializedName("link")
×
5763
    LINK("link"),
5764

5765
    @SerializedName("mb_way")
×
5766
    MB_WAY("mb_way"),
5767

5768
    @SerializedName("mobilepay")
×
5769
    MOBILEPAY("mobilepay"),
5770

5771
    @SerializedName("multibanco")
×
5772
    MULTIBANCO("multibanco"),
5773

5774
    @SerializedName("naver_pay")
×
5775
    NAVER_PAY("naver_pay"),
5776

5777
    @SerializedName("oxxo")
×
5778
    OXXO("oxxo"),
5779

5780
    @SerializedName("p24")
×
5781
    P24("p24"),
5782

5783
    @SerializedName("payco")
×
5784
    PAYCO("payco"),
5785

5786
    @SerializedName("paynow")
×
5787
    PAYNOW("paynow"),
5788

5789
    @SerializedName("paypal")
×
5790
    PAYPAL("paypal"),
5791

5792
    @SerializedName("payto")
×
5793
    PAYTO("payto"),
5794

5795
    @SerializedName("pix")
×
5796
    PIX("pix"),
5797

5798
    @SerializedName("promptpay")
×
5799
    PROMPTPAY("promptpay"),
5800

NEW
5801
    @SerializedName("qris")
×
5802
    QRIS("qris"),
5803

UNCOV
5804
    @SerializedName("rechnung")
×
5805
    RECHNUNG("rechnung"),
5806

5807
    @SerializedName("revolut_pay")
×
5808
    REVOLUT_PAY("revolut_pay"),
5809

5810
    @SerializedName("samsung_pay")
×
5811
    SAMSUNG_PAY("samsung_pay"),
5812

5813
    @SerializedName("sepa_debit")
×
5814
    SEPA_DEBIT("sepa_debit"),
5815

NEW
5816
    @SerializedName("shopeepay")
×
5817
    SHOPEEPAY("shopeepay"),
5818

UNCOV
5819
    @SerializedName("sofort")
×
5820
    SOFORT("sofort"),
5821

5822
    @SerializedName("swish")
×
5823
    SWISH("swish"),
5824

5825
    @SerializedName("twint")
×
5826
    TWINT("twint"),
5827

5828
    @SerializedName("us_bank_account")
×
5829
    US_BANK_ACCOUNT("us_bank_account"),
5830

5831
    @SerializedName("wechat_pay")
×
5832
    WECHAT_PAY("wechat_pay"),
5833

5834
    @SerializedName("zip")
×
5835
    ZIP("zip");
5836

5837
    @Getter(onMethod_ = {@Override})
5838
    private final String value;
5839

5840
    Type(String value) {
×
5841
      this.value = value;
×
5842
    }
×
5843
  }
5844
}
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