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

stripe / stripe-java / #16599

29 Oct 2024 11:04PM UTC coverage: 12.519% (-0.1%) from 12.62%
#16599

push

github

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

Update generated code for beta

40 of 1580 new or added lines in 51 files covered. (2.53%)

19 existing lines in 15 files now uncovered.

18843 of 150513 relevant lines covered (12.52%)

0.13 hits per line

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

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 IdBankTransfer} PaymentMethod, this hash contains details about the
183
   * IdBankTransfer payment method.
184
   */
185
  @SerializedName("id_bank_transfer")
186
  IdBankTransfer idBankTransfer;
187

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

195
  /**
196
   * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
197
   * Interac Present payment method.
198
   */
199
  @SerializedName("interac_present")
200
  InteracPresent interacPresent;
201

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

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

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

223
  /**
224
   * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
225
   * payment method.
226
   */
227
  @SerializedName("kr_card")
228
  KrCard krCard;
229

230
  /**
231
   * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
232
   * method.
233
   */
234
  @SerializedName("link")
235
  Link link;
236

237
  /**
238
   * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method.
239
   */
240
  @SerializedName("mb_way")
241
  MbWay mbWay;
242

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

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

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

266
  /**
267
   * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
268
   * payment method.
269
   */
270
  @SerializedName("naver_pay")
271
  NaverPay naverPay;
272

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

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

287
  /**
288
   * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
289
   * method.
290
   */
291
  @SerializedName("payco")
292
  Payco payco;
293

294
  /** The PaymentMethod to share. */
295
  @SerializedName("payment_method")
296
  String paymentMethod;
297

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

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

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

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

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

333
  /**
334
   * If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
335
   * method.
336
   */
337
  @SerializedName("qris")
338
  Qris qris;
339

340
  /**
341
   * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
342
   * Session</a> for more information.
343
   */
344
  @SerializedName("radar_options")
345
  RadarOptions radarOptions;
346

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

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

361
  /**
362
   * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the SamsungPay
363
   * payment method.
364
   */
365
  @SerializedName("samsung_pay")
366
  SamsungPay samsungPay;
367

368
  /**
369
   * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA debit
370
   * bank account.
371
   */
372
  @SerializedName("sepa_debit")
373
  SepaDebit sepaDebit;
374

375
  /**
376
   * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment
377
   * method.
378
   */
379
  @SerializedName("shopeepay")
380
  Shopeepay shopeepay;
381

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

389
  /**
390
   * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
391
   * method.
392
   */
393
  @SerializedName("swish")
394
  Swish swish;
395

396
  /**
397
   * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
398
   */
399
  @SerializedName("twint")
400
  Twint twint;
401

402
  /**
403
   * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name
404
   * matching this value. It contains additional information specific to the PaymentMethod type.
405
   */
406
  @SerializedName("type")
407
  Type type;
408

409
  /**
410
   * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
411
   * bank account payment method.
412
   */
413
  @SerializedName("us_bank_account")
414
  UsBankAccount usBankAccount;
415

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

423
  /**
424
   * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
425
   * method.
426
   */
427
  @SerializedName("zip")
428
  Zip zip;
429

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

553
  public static Builder builder() {
554
    return new Builder();
×
555
  }
556

557
  public static class Builder {
×
558
    private AcssDebit acssDebit;
559

560
    private Affirm affirm;
561

562
    private AfterpayClearpay afterpayClearpay;
563

564
    private Alipay alipay;
565

566
    private AllowRedisplay allowRedisplay;
567

568
    private Alma alma;
569

570
    private AmazonPay amazonPay;
571

572
    private AuBecsDebit auBecsDebit;
573

574
    private BacsDebit bacsDebit;
575

576
    private Bancontact bancontact;
577

578
    private BillingDetails billingDetails;
579

580
    private Blik blik;
581

582
    private Boleto boleto;
583

584
    private Object card;
585

586
    private Cashapp cashapp;
587

588
    private String customer;
589

590
    private CustomerBalance customerBalance;
591

592
    private Eps eps;
593

594
    private List<String> expand;
595

596
    private Map<String, Object> extraParams;
597

598
    private Fpx fpx;
599

600
    private Giropay giropay;
601

602
    private Gopay gopay;
603

604
    private Grabpay grabpay;
605

606
    private IdBankTransfer idBankTransfer;
607

608
    private Ideal ideal;
609

610
    private InteracPresent interacPresent;
611

612
    private KakaoPay kakaoPay;
613

614
    private Klarna klarna;
615

616
    private Konbini konbini;
617

618
    private KrCard krCard;
619

620
    private Link link;
621

622
    private MbWay mbWay;
623

624
    private Map<String, String> metadata;
625

626
    private Mobilepay mobilepay;
627

628
    private Multibanco multibanco;
629

630
    private NaverPay naverPay;
631

632
    private Oxxo oxxo;
633

634
    private P24 p24;
635

636
    private Payco payco;
637

638
    private String paymentMethod;
639

640
    private Paynow paynow;
641

642
    private Paypal paypal;
643

644
    private Payto payto;
645

646
    private Pix pix;
647

648
    private Promptpay promptpay;
649

650
    private Qris qris;
651

652
    private RadarOptions radarOptions;
653

654
    private Rechnung rechnung;
655

656
    private RevolutPay revolutPay;
657

658
    private SamsungPay samsungPay;
659

660
    private SepaDebit sepaDebit;
661

662
    private Shopeepay shopeepay;
663

664
    private Sofort sofort;
665

666
    private Swish swish;
667

668
    private Twint twint;
669

670
    private Type type;
671

672
    private UsBankAccount usBankAccount;
673

674
    private WechatPay wechatPay;
675

676
    private Zip zip;
677

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

743
    /**
744
     * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
745
     * Debit payment method.
746
     */
747
    public Builder setAcssDebit(PaymentMethodCreateParams.AcssDebit acssDebit) {
748
      this.acssDebit = acssDebit;
×
749
      return this;
×
750
    }
751

752
    /**
753
     * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
754
     * payment method.
755
     */
756
    public Builder setAffirm(PaymentMethodCreateParams.Affirm affirm) {
757
      this.affirm = affirm;
×
758
      return this;
×
759
    }
760

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

771
    /**
772
     * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
773
     * payment method.
774
     */
775
    public Builder setAlipay(PaymentMethodCreateParams.Alipay alipay) {
776
      this.alipay = alipay;
×
777
      return this;
×
778
    }
779

780
    /**
781
     * This field indicates whether this payment method can be shown again to its customer in a
782
     * checkout flow. Stripe products such as Checkout and Elements use this field to determine
783
     * whether a payment method can be shown as a saved payment method in a checkout flow. The field
784
     * defaults to {@code unspecified}.
785
     */
786
    public Builder setAllowRedisplay(PaymentMethodCreateParams.AllowRedisplay allowRedisplay) {
787
      this.allowRedisplay = allowRedisplay;
×
788
      return this;
×
789
    }
790

791
    /**
792
     * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
793
     */
794
    public Builder setAlma(PaymentMethodCreateParams.Alma alma) {
795
      this.alma = alma;
×
796
      return this;
×
797
    }
798

799
    /**
800
     * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
801
     * method.
802
     */
803
    public Builder setAmazonPay(PaymentMethodCreateParams.AmazonPay amazonPay) {
804
      this.amazonPay = amazonPay;
×
805
      return this;
×
806
    }
807

808
    /**
809
     * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank
810
     * account.
811
     */
812
    public Builder setAuBecsDebit(PaymentMethodCreateParams.AuBecsDebit auBecsDebit) {
813
      this.auBecsDebit = auBecsDebit;
×
814
      return this;
×
815
    }
816

817
    /**
818
     * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
819
     * Direct Debit bank account.
820
     */
821
    public Builder setBacsDebit(PaymentMethodCreateParams.BacsDebit bacsDebit) {
822
      this.bacsDebit = bacsDebit;
×
823
      return this;
×
824
    }
825

826
    /**
827
     * If this is a {@code bancontact} PaymentMethod, this hash contains details about the
828
     * Bancontact payment method.
829
     */
830
    public Builder setBancontact(PaymentMethodCreateParams.Bancontact bancontact) {
831
      this.bancontact = bancontact;
×
832
      return this;
×
833
    }
834

835
    /**
836
     * Billing information associated with the PaymentMethod that may be used or required by
837
     * particular types of payment methods.
838
     */
839
    public Builder setBillingDetails(PaymentMethodCreateParams.BillingDetails billingDetails) {
840
      this.billingDetails = billingDetails;
×
841
      return this;
×
842
    }
843

844
    /**
845
     * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
846
     * method.
847
     */
848
    public Builder setBlik(PaymentMethodCreateParams.Blik blik) {
849
      this.blik = blik;
×
850
      return this;
×
851
    }
852

853
    /**
854
     * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
855
     * payment method.
856
     */
857
    public Builder setBoleto(PaymentMethodCreateParams.Boleto boleto) {
858
      this.boleto = boleto;
×
859
      return this;
×
860
    }
861

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

875
    /**
876
     * If this is a {@code card} PaymentMethod, this hash contains the user's card details. For
877
     * backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay,
878
     * Amex Express Checkout, or legacy Checkout) into the card hash with format {@code card:
879
     * {token: "tok_visa"}}. When providing a card number, you must meet the requirements for <a
880
     * href="https://stripe.com/docs/security#validating-pci-compliance">PCI compliance</a>. We
881
     * strongly recommend using Stripe.js instead of interacting with this API directly.
882
     */
883
    public Builder setCard(PaymentMethodCreateParams.Token card) {
884
      this.card = card;
×
885
      return this;
×
886
    }
887

888
    /**
889
     * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App Pay
890
     * payment method.
891
     */
892
    public Builder setCashapp(PaymentMethodCreateParams.Cashapp cashapp) {
893
      this.cashapp = cashapp;
×
894
      return this;
×
895
    }
896

897
    /** The {@code Customer} to whom the original PaymentMethod is attached. */
898
    public Builder setCustomer(String customer) {
899
      this.customer = customer;
×
900
      return this;
×
901
    }
902

903
    /**
904
     * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
905
     * CustomerBalance payment method.
906
     */
907
    public Builder setCustomerBalance(PaymentMethodCreateParams.CustomerBalance customerBalance) {
908
      this.customerBalance = customerBalance;
×
909
      return this;
×
910
    }
911

912
    /**
913
     * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
914
     * method.
915
     */
916
    public Builder setEps(PaymentMethodCreateParams.Eps eps) {
917
      this.eps = eps;
×
918
      return this;
×
919
    }
920

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

934
    /**
935
     * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and
936
     * subsequent calls adds additional elements to the original list. See {@link
937
     * PaymentMethodCreateParams#expand} for the field documentation.
938
     */
939
    public Builder addAllExpand(List<String> elements) {
940
      if (this.expand == null) {
×
941
        this.expand = new ArrayList<>();
×
942
      }
943
      this.expand.addAll(elements);
×
944
      return this;
×
945
    }
946

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

960
    /**
961
     * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
962
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
963
     * See {@link PaymentMethodCreateParams#extraParams} for the field documentation.
964
     */
965
    public Builder putAllExtraParam(Map<String, Object> map) {
966
      if (this.extraParams == null) {
×
967
        this.extraParams = new HashMap<>();
×
968
      }
969
      this.extraParams.putAll(map);
×
970
      return this;
×
971
    }
972

973
    /**
974
     * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
975
     * method.
976
     */
977
    public Builder setFpx(PaymentMethodCreateParams.Fpx fpx) {
978
      this.fpx = fpx;
×
979
      return this;
×
980
    }
981

982
    /**
983
     * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
984
     * payment method.
985
     */
986
    public Builder setGiropay(PaymentMethodCreateParams.Giropay giropay) {
987
      this.giropay = giropay;
×
988
      return this;
×
989
    }
990

991
    /**
992
     * If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment method.
993
     */
994
    public Builder setGopay(PaymentMethodCreateParams.Gopay gopay) {
995
      this.gopay = gopay;
×
996
      return this;
×
997
    }
998

999
    /**
1000
     * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
1001
     * payment method.
1002
     */
1003
    public Builder setGrabpay(PaymentMethodCreateParams.Grabpay grabpay) {
1004
      this.grabpay = grabpay;
×
1005
      return this;
×
1006
    }
1007

1008
    /**
1009
     * If this is an {@code IdBankTransfer} PaymentMethod, this hash contains details about the
1010
     * IdBankTransfer payment method.
1011
     */
1012
    public Builder setIdBankTransfer(PaymentMethodCreateParams.IdBankTransfer idBankTransfer) {
NEW
1013
      this.idBankTransfer = idBankTransfer;
×
NEW
1014
      return this;
×
1015
    }
1016

1017
    /**
1018
     * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment
1019
     * method.
1020
     */
1021
    public Builder setIdeal(PaymentMethodCreateParams.Ideal ideal) {
1022
      this.ideal = ideal;
×
1023
      return this;
×
1024
    }
1025

1026
    /**
1027
     * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
1028
     * Interac Present payment method.
1029
     */
1030
    public Builder setInteracPresent(PaymentMethodCreateParams.InteracPresent interacPresent) {
1031
      this.interacPresent = interacPresent;
×
1032
      return this;
×
1033
    }
1034

1035
    /**
1036
     * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
1037
     * payment method.
1038
     */
1039
    public Builder setKakaoPay(PaymentMethodCreateParams.KakaoPay kakaoPay) {
1040
      this.kakaoPay = kakaoPay;
×
1041
      return this;
×
1042
    }
1043

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

1053
    /**
1054
     * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
1055
     * payment method.
1056
     */
1057
    public Builder setKonbini(PaymentMethodCreateParams.Konbini konbini) {
1058
      this.konbini = konbini;
×
1059
      return this;
×
1060
    }
1061

1062
    /**
1063
     * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
1064
     * payment method.
1065
     */
1066
    public Builder setKrCard(PaymentMethodCreateParams.KrCard krCard) {
1067
      this.krCard = krCard;
×
1068
      return this;
×
1069
    }
1070

1071
    /**
1072
     * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
1073
     * method.
1074
     */
1075
    public Builder setLink(PaymentMethodCreateParams.Link link) {
1076
      this.link = link;
×
1077
      return this;
×
1078
    }
1079

1080
    /**
1081
     * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
1082
     * method.
1083
     */
1084
    public Builder setMbWay(PaymentMethodCreateParams.MbWay mbWay) {
1085
      this.mbWay = mbWay;
×
1086
      return this;
×
1087
    }
1088

1089
    /**
1090
     * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call,
1091
     * and subsequent calls add additional key/value pairs to the original map. See {@link
1092
     * PaymentMethodCreateParams#metadata} for the field documentation.
1093
     */
1094
    public Builder putMetadata(String key, String value) {
1095
      if (this.metadata == null) {
×
1096
        this.metadata = new HashMap<>();
×
1097
      }
1098
      this.metadata.put(key, value);
×
1099
      return this;
×
1100
    }
1101

1102
    /**
1103
     * Add all map key/value pairs to `metadata` map. A map is initialized for the first
1104
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1105
     * See {@link PaymentMethodCreateParams#metadata} for the field documentation.
1106
     */
1107
    public Builder putAllMetadata(Map<String, String> map) {
1108
      if (this.metadata == null) {
×
1109
        this.metadata = new HashMap<>();
×
1110
      }
1111
      this.metadata.putAll(map);
×
1112
      return this;
×
1113
    }
1114

1115
    /**
1116
     * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the MobilePay
1117
     * payment method.
1118
     */
1119
    public Builder setMobilepay(PaymentMethodCreateParams.Mobilepay mobilepay) {
1120
      this.mobilepay = mobilepay;
×
1121
      return this;
×
1122
    }
1123

1124
    /**
1125
     * If this is a {@code multibanco} PaymentMethod, this hash contains details about the
1126
     * Multibanco payment method.
1127
     */
1128
    public Builder setMultibanco(PaymentMethodCreateParams.Multibanco multibanco) {
1129
      this.multibanco = multibanco;
×
1130
      return this;
×
1131
    }
1132

1133
    /**
1134
     * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
1135
     * payment method.
1136
     */
1137
    public Builder setNaverPay(PaymentMethodCreateParams.NaverPay naverPay) {
1138
      this.naverPay = naverPay;
×
1139
      return this;
×
1140
    }
1141

1142
    /**
1143
     * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
1144
     * method.
1145
     */
1146
    public Builder setOxxo(PaymentMethodCreateParams.Oxxo oxxo) {
1147
      this.oxxo = oxxo;
×
1148
      return this;
×
1149
    }
1150

1151
    /**
1152
     * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
1153
     * method.
1154
     */
1155
    public Builder setP24(PaymentMethodCreateParams.P24 p24) {
1156
      this.p24 = p24;
×
1157
      return this;
×
1158
    }
1159

1160
    /**
1161
     * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
1162
     * method.
1163
     */
1164
    public Builder setPayco(PaymentMethodCreateParams.Payco payco) {
1165
      this.payco = payco;
×
1166
      return this;
×
1167
    }
1168

1169
    /** The PaymentMethod to share. */
1170
    public Builder setPaymentMethod(String paymentMethod) {
1171
      this.paymentMethod = paymentMethod;
×
1172
      return this;
×
1173
    }
1174

1175
    /**
1176
     * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
1177
     * payment method.
1178
     */
1179
    public Builder setPaynow(PaymentMethodCreateParams.Paynow paynow) {
1180
      this.paynow = paynow;
×
1181
      return this;
×
1182
    }
1183

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

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

1202
    /**
1203
     * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
1204
     * method.
1205
     */
1206
    public Builder setPix(PaymentMethodCreateParams.Pix pix) {
1207
      this.pix = pix;
×
1208
      return this;
×
1209
    }
1210

1211
    /**
1212
     * If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
1213
     * payment method.
1214
     */
1215
    public Builder setPromptpay(PaymentMethodCreateParams.Promptpay promptpay) {
1216
      this.promptpay = promptpay;
×
1217
      return this;
×
1218
    }
1219

1220
    /**
1221
     * If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
1222
     * method.
1223
     */
1224
    public Builder setQris(PaymentMethodCreateParams.Qris qris) {
1225
      this.qris = qris;
×
1226
      return this;
×
1227
    }
1228

1229
    /**
1230
     * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
1231
     * Session</a> for more information.
1232
     */
1233
    public Builder setRadarOptions(PaymentMethodCreateParams.RadarOptions radarOptions) {
1234
      this.radarOptions = radarOptions;
×
1235
      return this;
×
1236
    }
1237

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

1247
    /**
1248
     * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
1249
     * Pay payment method.
1250
     */
1251
    public Builder setRevolutPay(PaymentMethodCreateParams.RevolutPay revolutPay) {
1252
      this.revolutPay = revolutPay;
×
1253
      return this;
×
1254
    }
1255

1256
    /**
1257
     * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
1258
     * SamsungPay payment method.
1259
     */
1260
    public Builder setSamsungPay(PaymentMethodCreateParams.SamsungPay samsungPay) {
1261
      this.samsungPay = samsungPay;
×
1262
      return this;
×
1263
    }
1264

1265
    /**
1266
     * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
1267
     * debit bank account.
1268
     */
1269
    public Builder setSepaDebit(PaymentMethodCreateParams.SepaDebit sepaDebit) {
1270
      this.sepaDebit = sepaDebit;
×
1271
      return this;
×
1272
    }
1273

1274
    /**
1275
     * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment
1276
     * method.
1277
     */
1278
    public Builder setShopeepay(PaymentMethodCreateParams.Shopeepay shopeepay) {
1279
      this.shopeepay = shopeepay;
×
1280
      return this;
×
1281
    }
1282

1283
    /**
1284
     * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
1285
     * payment method.
1286
     */
1287
    public Builder setSofort(PaymentMethodCreateParams.Sofort sofort) {
1288
      this.sofort = sofort;
×
1289
      return this;
×
1290
    }
1291

1292
    /**
1293
     * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
1294
     * method.
1295
     */
1296
    public Builder setSwish(PaymentMethodCreateParams.Swish swish) {
1297
      this.swish = swish;
×
1298
      return this;
×
1299
    }
1300

1301
    /**
1302
     * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
1303
     */
1304
    public Builder setTwint(PaymentMethodCreateParams.Twint twint) {
1305
      this.twint = twint;
×
1306
      return this;
×
1307
    }
1308

1309
    /**
1310
     * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a
1311
     * name matching this value. It contains additional information specific to the PaymentMethod
1312
     * type.
1313
     */
1314
    public Builder setType(PaymentMethodCreateParams.Type type) {
1315
      this.type = type;
×
1316
      return this;
×
1317
    }
1318

1319
    /**
1320
     * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
1321
     * bank account payment method.
1322
     */
1323
    public Builder setUsBankAccount(PaymentMethodCreateParams.UsBankAccount usBankAccount) {
1324
      this.usBankAccount = usBankAccount;
×
1325
      return this;
×
1326
    }
1327

1328
    /**
1329
     * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
1330
     * wechat_pay payment method.
1331
     */
1332
    public Builder setWechatPay(PaymentMethodCreateParams.WechatPay wechatPay) {
1333
      this.wechatPay = wechatPay;
×
1334
      return this;
×
1335
    }
1336

1337
    /**
1338
     * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
1339
     * method.
1340
     */
1341
    public Builder setZip(PaymentMethodCreateParams.Zip zip) {
1342
      this.zip = zip;
×
1343
      return this;
×
1344
    }
1345
  }
1346

1347
  @Getter
1348
  public static class AcssDebit {
1349
    /** <strong>Required.</strong> Customer's bank account number. */
1350
    @SerializedName("account_number")
1351
    String accountNumber;
1352

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

1362
    /** <strong>Required.</strong> Institution number of the customer's bank. */
1363
    @SerializedName("institution_number")
1364
    String institutionNumber;
1365

1366
    /** <strong>Required.</strong> Transit number of the customer's bank. */
1367
    @SerializedName("transit_number")
1368
    String transitNumber;
1369

1370
    private AcssDebit(
1371
        String accountNumber,
1372
        Map<String, Object> extraParams,
1373
        String institutionNumber,
1374
        String transitNumber) {
×
1375
      this.accountNumber = accountNumber;
×
1376
      this.extraParams = extraParams;
×
1377
      this.institutionNumber = institutionNumber;
×
1378
      this.transitNumber = transitNumber;
×
1379
    }
×
1380

1381
    public static Builder builder() {
1382
      return new Builder();
×
1383
    }
1384

1385
    public static class Builder {
×
1386
      private String accountNumber;
1387

1388
      private Map<String, Object> extraParams;
1389

1390
      private String institutionNumber;
1391

1392
      private String transitNumber;
1393

1394
      /** Finalize and obtain parameter instance from this builder. */
1395
      public PaymentMethodCreateParams.AcssDebit build() {
1396
        return new PaymentMethodCreateParams.AcssDebit(
×
1397
            this.accountNumber, this.extraParams, this.institutionNumber, this.transitNumber);
1398
      }
1399

1400
      /** <strong>Required.</strong> Customer's bank account number. */
1401
      public Builder setAccountNumber(String accountNumber) {
1402
        this.accountNumber = accountNumber;
×
1403
        return this;
×
1404
      }
1405

1406
      /**
1407
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1408
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1409
       * PaymentMethodCreateParams.AcssDebit#extraParams} for the field documentation.
1410
       */
1411
      public Builder putExtraParam(String key, Object value) {
1412
        if (this.extraParams == null) {
×
1413
          this.extraParams = new HashMap<>();
×
1414
        }
1415
        this.extraParams.put(key, value);
×
1416
        return this;
×
1417
      }
1418

1419
      /**
1420
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1421
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1422
       * See {@link PaymentMethodCreateParams.AcssDebit#extraParams} for the field documentation.
1423
       */
1424
      public Builder putAllExtraParam(Map<String, Object> map) {
1425
        if (this.extraParams == null) {
×
1426
          this.extraParams = new HashMap<>();
×
1427
        }
1428
        this.extraParams.putAll(map);
×
1429
        return this;
×
1430
      }
1431

1432
      /** <strong>Required.</strong> Institution number of the customer's bank. */
1433
      public Builder setInstitutionNumber(String institutionNumber) {
1434
        this.institutionNumber = institutionNumber;
×
1435
        return this;
×
1436
      }
1437

1438
      /** <strong>Required.</strong> Transit number of the customer's bank. */
1439
      public Builder setTransitNumber(String transitNumber) {
1440
        this.transitNumber = transitNumber;
×
1441
        return this;
×
1442
      }
1443
    }
1444
  }
1445

1446
  @Getter
1447
  public static class Affirm {
1448
    /**
1449
     * Map of extra parameters for custom features not available in this client library. The content
1450
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1451
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1452
     * param object. Effectively, this map is flattened to its parent instance.
1453
     */
1454
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1455
    Map<String, Object> extraParams;
1456

1457
    private Affirm(Map<String, Object> extraParams) {
×
1458
      this.extraParams = extraParams;
×
1459
    }
×
1460

1461
    public static Builder builder() {
1462
      return new Builder();
×
1463
    }
1464

1465
    public static class Builder {
×
1466
      private Map<String, Object> extraParams;
1467

1468
      /** Finalize and obtain parameter instance from this builder. */
1469
      public PaymentMethodCreateParams.Affirm build() {
1470
        return new PaymentMethodCreateParams.Affirm(this.extraParams);
×
1471
      }
1472

1473
      /**
1474
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1475
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1476
       * PaymentMethodCreateParams.Affirm#extraParams} for the field documentation.
1477
       */
1478
      public Builder putExtraParam(String key, Object value) {
1479
        if (this.extraParams == null) {
×
1480
          this.extraParams = new HashMap<>();
×
1481
        }
1482
        this.extraParams.put(key, value);
×
1483
        return this;
×
1484
      }
1485

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

1501
  @Getter
1502
  public static class AfterpayClearpay {
1503
    /**
1504
     * Map of extra parameters for custom features not available in this client library. The content
1505
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1506
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1507
     * param object. Effectively, this map is flattened to its parent instance.
1508
     */
1509
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1510
    Map<String, Object> extraParams;
1511

1512
    private AfterpayClearpay(Map<String, Object> extraParams) {
×
1513
      this.extraParams = extraParams;
×
1514
    }
×
1515

1516
    public static Builder builder() {
1517
      return new Builder();
×
1518
    }
1519

1520
    public static class Builder {
×
1521
      private Map<String, Object> extraParams;
1522

1523
      /** Finalize and obtain parameter instance from this builder. */
1524
      public PaymentMethodCreateParams.AfterpayClearpay build() {
1525
        return new PaymentMethodCreateParams.AfterpayClearpay(this.extraParams);
×
1526
      }
1527

1528
      /**
1529
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1530
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1531
       * PaymentMethodCreateParams.AfterpayClearpay#extraParams} for the field documentation.
1532
       */
1533
      public Builder putExtraParam(String key, Object value) {
1534
        if (this.extraParams == null) {
×
1535
          this.extraParams = new HashMap<>();
×
1536
        }
1537
        this.extraParams.put(key, value);
×
1538
        return this;
×
1539
      }
1540

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

1557
  @Getter
1558
  public static class Alipay {
1559
    /**
1560
     * Map of extra parameters for custom features not available in this client library. The content
1561
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1562
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1563
     * param object. Effectively, this map is flattened to its parent instance.
1564
     */
1565
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1566
    Map<String, Object> extraParams;
1567

1568
    private Alipay(Map<String, Object> extraParams) {
×
1569
      this.extraParams = extraParams;
×
1570
    }
×
1571

1572
    public static Builder builder() {
1573
      return new Builder();
×
1574
    }
1575

1576
    public static class Builder {
×
1577
      private Map<String, Object> extraParams;
1578

1579
      /** Finalize and obtain parameter instance from this builder. */
1580
      public PaymentMethodCreateParams.Alipay build() {
1581
        return new PaymentMethodCreateParams.Alipay(this.extraParams);
×
1582
      }
1583

1584
      /**
1585
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1586
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1587
       * PaymentMethodCreateParams.Alipay#extraParams} for the field documentation.
1588
       */
1589
      public Builder putExtraParam(String key, Object value) {
1590
        if (this.extraParams == null) {
×
1591
          this.extraParams = new HashMap<>();
×
1592
        }
1593
        this.extraParams.put(key, value);
×
1594
        return this;
×
1595
      }
1596

1597
      /**
1598
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1599
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1600
       * See {@link PaymentMethodCreateParams.Alipay#extraParams} for the field documentation.
1601
       */
1602
      public Builder putAllExtraParam(Map<String, Object> map) {
1603
        if (this.extraParams == null) {
×
1604
          this.extraParams = new HashMap<>();
×
1605
        }
1606
        this.extraParams.putAll(map);
×
1607
        return this;
×
1608
      }
1609
    }
1610
  }
1611

1612
  @Getter
1613
  public static class Alma {
1614
    /**
1615
     * Map of extra parameters for custom features not available in this client library. The content
1616
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1617
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1618
     * param object. Effectively, this map is flattened to its parent instance.
1619
     */
1620
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1621
    Map<String, Object> extraParams;
1622

1623
    private Alma(Map<String, Object> extraParams) {
×
1624
      this.extraParams = extraParams;
×
1625
    }
×
1626

1627
    public static Builder builder() {
1628
      return new Builder();
×
1629
    }
1630

1631
    public static class Builder {
×
1632
      private Map<String, Object> extraParams;
1633

1634
      /** Finalize and obtain parameter instance from this builder. */
1635
      public PaymentMethodCreateParams.Alma build() {
1636
        return new PaymentMethodCreateParams.Alma(this.extraParams);
×
1637
      }
1638

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

1652
      /**
1653
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1654
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1655
       * See {@link PaymentMethodCreateParams.Alma#extraParams} for the field documentation.
1656
       */
1657
      public Builder putAllExtraParam(Map<String, Object> map) {
1658
        if (this.extraParams == null) {
×
1659
          this.extraParams = new HashMap<>();
×
1660
        }
1661
        this.extraParams.putAll(map);
×
1662
        return this;
×
1663
      }
1664
    }
1665
  }
1666

1667
  @Getter
1668
  public static class AmazonPay {
1669
    /**
1670
     * Map of extra parameters for custom features not available in this client library. The content
1671
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1672
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1673
     * param object. Effectively, this map is flattened to its parent instance.
1674
     */
1675
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1676
    Map<String, Object> extraParams;
1677

1678
    private AmazonPay(Map<String, Object> extraParams) {
×
1679
      this.extraParams = extraParams;
×
1680
    }
×
1681

1682
    public static Builder builder() {
1683
      return new Builder();
×
1684
    }
1685

1686
    public static class Builder {
×
1687
      private Map<String, Object> extraParams;
1688

1689
      /** Finalize and obtain parameter instance from this builder. */
1690
      public PaymentMethodCreateParams.AmazonPay build() {
1691
        return new PaymentMethodCreateParams.AmazonPay(this.extraParams);
×
1692
      }
1693

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

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

1722
  @Getter
1723
  public static class AuBecsDebit {
1724
    /** <strong>Required.</strong> The account number for the bank account. */
1725
    @SerializedName("account_number")
1726
    String accountNumber;
1727

1728
    /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1729
    @SerializedName("bsb_number")
1730
    String bsbNumber;
1731

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

1741
    private AuBecsDebit(String accountNumber, String bsbNumber, Map<String, Object> extraParams) {
×
1742
      this.accountNumber = accountNumber;
×
1743
      this.bsbNumber = bsbNumber;
×
1744
      this.extraParams = extraParams;
×
1745
    }
×
1746

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

1751
    public static class Builder {
×
1752
      private String accountNumber;
1753

1754
      private String bsbNumber;
1755

1756
      private Map<String, Object> extraParams;
1757

1758
      /** Finalize and obtain parameter instance from this builder. */
1759
      public PaymentMethodCreateParams.AuBecsDebit build() {
1760
        return new PaymentMethodCreateParams.AuBecsDebit(
×
1761
            this.accountNumber, this.bsbNumber, this.extraParams);
1762
      }
1763

1764
      /** <strong>Required.</strong> The account number for the bank account. */
1765
      public Builder setAccountNumber(String accountNumber) {
1766
        this.accountNumber = accountNumber;
×
1767
        return this;
×
1768
      }
1769

1770
      /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1771
      public Builder setBsbNumber(String bsbNumber) {
1772
        this.bsbNumber = bsbNumber;
×
1773
        return this;
×
1774
      }
1775

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

1789
      /**
1790
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1791
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1792
       * See {@link PaymentMethodCreateParams.AuBecsDebit#extraParams} for the field documentation.
1793
       */
1794
      public Builder putAllExtraParam(Map<String, Object> map) {
1795
        if (this.extraParams == null) {
×
1796
          this.extraParams = new HashMap<>();
×
1797
        }
1798
        this.extraParams.putAll(map);
×
1799
        return this;
×
1800
      }
1801
    }
1802
  }
1803

1804
  @Getter
1805
  public static class BacsDebit {
1806
    /** Account number of the bank account that the funds will be debited from. */
1807
    @SerializedName("account_number")
1808
    String accountNumber;
1809

1810
    /**
1811
     * Map of extra parameters for custom features not available in this client library. The content
1812
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1813
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1814
     * param object. Effectively, this map is flattened to its parent instance.
1815
     */
1816
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1817
    Map<String, Object> extraParams;
1818

1819
    /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1820
    @SerializedName("sort_code")
1821
    String sortCode;
1822

1823
    private BacsDebit(String accountNumber, Map<String, Object> extraParams, String sortCode) {
×
1824
      this.accountNumber = accountNumber;
×
1825
      this.extraParams = extraParams;
×
1826
      this.sortCode = sortCode;
×
1827
    }
×
1828

1829
    public static Builder builder() {
1830
      return new Builder();
×
1831
    }
1832

1833
    public static class Builder {
×
1834
      private String accountNumber;
1835

1836
      private Map<String, Object> extraParams;
1837

1838
      private String sortCode;
1839

1840
      /** Finalize and obtain parameter instance from this builder. */
1841
      public PaymentMethodCreateParams.BacsDebit build() {
1842
        return new PaymentMethodCreateParams.BacsDebit(
×
1843
            this.accountNumber, this.extraParams, this.sortCode);
1844
      }
1845

1846
      /** Account number of the bank account that the funds will be debited from. */
1847
      public Builder setAccountNumber(String accountNumber) {
1848
        this.accountNumber = accountNumber;
×
1849
        return this;
×
1850
      }
1851

1852
      /**
1853
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1854
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1855
       * PaymentMethodCreateParams.BacsDebit#extraParams} for the field documentation.
1856
       */
1857
      public Builder putExtraParam(String key, Object value) {
1858
        if (this.extraParams == null) {
×
1859
          this.extraParams = new HashMap<>();
×
1860
        }
1861
        this.extraParams.put(key, value);
×
1862
        return this;
×
1863
      }
1864

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

1878
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1879
      public Builder setSortCode(String sortCode) {
1880
        this.sortCode = sortCode;
×
1881
        return this;
×
1882
      }
1883
    }
1884
  }
1885

1886
  @Getter
1887
  public static class Bancontact {
1888
    /**
1889
     * Map of extra parameters for custom features not available in this client library. The content
1890
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1891
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1892
     * param object. Effectively, this map is flattened to its parent instance.
1893
     */
1894
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1895
    Map<String, Object> extraParams;
1896

1897
    private Bancontact(Map<String, Object> extraParams) {
×
1898
      this.extraParams = extraParams;
×
1899
    }
×
1900

1901
    public static Builder builder() {
1902
      return new Builder();
×
1903
    }
1904

1905
    public static class Builder {
×
1906
      private Map<String, Object> extraParams;
1907

1908
      /** Finalize and obtain parameter instance from this builder. */
1909
      public PaymentMethodCreateParams.Bancontact build() {
1910
        return new PaymentMethodCreateParams.Bancontact(this.extraParams);
×
1911
      }
1912

1913
      /**
1914
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1915
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1916
       * PaymentMethodCreateParams.Bancontact#extraParams} for the field documentation.
1917
       */
1918
      public Builder putExtraParam(String key, Object value) {
1919
        if (this.extraParams == null) {
×
1920
          this.extraParams = new HashMap<>();
×
1921
        }
1922
        this.extraParams.put(key, value);
×
1923
        return this;
×
1924
      }
1925

1926
      /**
1927
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1928
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1929
       * See {@link PaymentMethodCreateParams.Bancontact#extraParams} for the field documentation.
1930
       */
1931
      public Builder putAllExtraParam(Map<String, Object> map) {
1932
        if (this.extraParams == null) {
×
1933
          this.extraParams = new HashMap<>();
×
1934
        }
1935
        this.extraParams.putAll(map);
×
1936
        return this;
×
1937
      }
1938
    }
1939
  }
1940

1941
  @Getter
1942
  public static class BillingDetails {
1943
    /** Billing address. */
1944
    @SerializedName("address")
1945
    Object address;
1946

1947
    /** Email address. */
1948
    @SerializedName("email")
1949
    Object email;
1950

1951
    /**
1952
     * Map of extra parameters for custom features not available in this client library. The content
1953
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1954
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1955
     * param object. Effectively, this map is flattened to its parent instance.
1956
     */
1957
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1958
    Map<String, Object> extraParams;
1959

1960
    /** Full name. */
1961
    @SerializedName("name")
1962
    Object name;
1963

1964
    /** Billing phone number (including extension). */
1965
    @SerializedName("phone")
1966
    Object phone;
1967

1968
    private BillingDetails(
1969
        Object address, Object email, Map<String, Object> extraParams, Object name, Object phone) {
×
1970
      this.address = address;
×
1971
      this.email = email;
×
1972
      this.extraParams = extraParams;
×
1973
      this.name = name;
×
1974
      this.phone = phone;
×
1975
    }
×
1976

1977
    public static Builder builder() {
1978
      return new Builder();
×
1979
    }
1980

1981
    public static class Builder {
×
1982
      private Object address;
1983

1984
      private Object email;
1985

1986
      private Map<String, Object> extraParams;
1987

1988
      private Object name;
1989

1990
      private Object phone;
1991

1992
      /** Finalize and obtain parameter instance from this builder. */
1993
      public PaymentMethodCreateParams.BillingDetails build() {
1994
        return new PaymentMethodCreateParams.BillingDetails(
×
1995
            this.address, this.email, this.extraParams, this.name, this.phone);
1996
      }
1997

1998
      /** Billing address. */
1999
      public Builder setAddress(PaymentMethodCreateParams.BillingDetails.Address address) {
2000
        this.address = address;
×
2001
        return this;
×
2002
      }
2003

2004
      /** Billing address. */
2005
      public Builder setAddress(EmptyParam address) {
2006
        this.address = address;
×
2007
        return this;
×
2008
      }
2009

2010
      /** Email address. */
2011
      public Builder setEmail(String email) {
2012
        this.email = email;
×
2013
        return this;
×
2014
      }
2015

2016
      /** Email address. */
2017
      public Builder setEmail(EmptyParam email) {
2018
        this.email = email;
×
2019
        return this;
×
2020
      }
2021

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

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

2049
      /** Full name. */
2050
      public Builder setName(String name) {
2051
        this.name = name;
×
2052
        return this;
×
2053
      }
2054

2055
      /** Full name. */
2056
      public Builder setName(EmptyParam name) {
2057
        this.name = name;
×
2058
        return this;
×
2059
      }
2060

2061
      /** Billing phone number (including extension). */
2062
      public Builder setPhone(String phone) {
2063
        this.phone = phone;
×
2064
        return this;
×
2065
      }
2066

2067
      /** Billing phone number (including extension). */
2068
      public Builder setPhone(EmptyParam phone) {
2069
        this.phone = phone;
×
2070
        return this;
×
2071
      }
2072
    }
2073

2074
    @Getter
2075
    public static class Address {
2076
      /** City, district, suburb, town, or village. */
2077
      @SerializedName("city")
2078
      String city;
2079

2080
      /**
2081
       * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2082
       * 3166-1 alpha-2</a>).
2083
       */
2084
      @SerializedName("country")
2085
      String country;
2086

2087
      /**
2088
       * Map of extra parameters for custom features not available in this client library. The
2089
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2090
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2091
       * name in this param object. Effectively, this map is flattened to its parent instance.
2092
       */
2093
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2094
      Map<String, Object> extraParams;
2095

2096
      /** Address line 1 (e.g., street, PO Box, or company name). */
2097
      @SerializedName("line1")
2098
      String line1;
2099

2100
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
2101
      @SerializedName("line2")
2102
      String line2;
2103

2104
      /** ZIP or postal code. */
2105
      @SerializedName("postal_code")
2106
      String postalCode;
2107

2108
      /** State, county, province, or region. */
2109
      @SerializedName("state")
2110
      String state;
2111

2112
      private Address(
2113
          String city,
2114
          String country,
2115
          Map<String, Object> extraParams,
2116
          String line1,
2117
          String line2,
2118
          String postalCode,
2119
          String state) {
×
2120
        this.city = city;
×
2121
        this.country = country;
×
2122
        this.extraParams = extraParams;
×
2123
        this.line1 = line1;
×
2124
        this.line2 = line2;
×
2125
        this.postalCode = postalCode;
×
2126
        this.state = state;
×
2127
      }
×
2128

2129
      public static Builder builder() {
2130
        return new Builder();
×
2131
      }
2132

2133
      public static class Builder {
×
2134
        private String city;
2135

2136
        private String country;
2137

2138
        private Map<String, Object> extraParams;
2139

2140
        private String line1;
2141

2142
        private String line2;
2143

2144
        private String postalCode;
2145

2146
        private String state;
2147

2148
        /** Finalize and obtain parameter instance from this builder. */
2149
        public PaymentMethodCreateParams.BillingDetails.Address build() {
2150
          return new PaymentMethodCreateParams.BillingDetails.Address(
×
2151
              this.city,
2152
              this.country,
2153
              this.extraParams,
2154
              this.line1,
2155
              this.line2,
2156
              this.postalCode,
2157
              this.state);
2158
        }
2159

2160
        /** City, district, suburb, town, or village. */
2161
        public Builder setCity(String city) {
2162
          this.city = city;
×
2163
          return this;
×
2164
        }
2165

2166
        /**
2167
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2168
         * 3166-1 alpha-2</a>).
2169
         */
2170
        public Builder setCountry(String country) {
2171
          this.country = country;
×
2172
          return this;
×
2173
        }
2174

2175
        /**
2176
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2177
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2178
         * map. See {@link PaymentMethodCreateParams.BillingDetails.Address#extraParams} for the
2179
         * field documentation.
2180
         */
2181
        public Builder putExtraParam(String key, Object value) {
2182
          if (this.extraParams == null) {
×
2183
            this.extraParams = new HashMap<>();
×
2184
          }
2185
          this.extraParams.put(key, value);
×
2186
          return this;
×
2187
        }
2188

2189
        /**
2190
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2191
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2192
         * map. See {@link PaymentMethodCreateParams.BillingDetails.Address#extraParams} for the
2193
         * field documentation.
2194
         */
2195
        public Builder putAllExtraParam(Map<String, Object> map) {
2196
          if (this.extraParams == null) {
×
2197
            this.extraParams = new HashMap<>();
×
2198
          }
2199
          this.extraParams.putAll(map);
×
2200
          return this;
×
2201
        }
2202

2203
        /** Address line 1 (e.g., street, PO Box, or company name). */
2204
        public Builder setLine1(String line1) {
2205
          this.line1 = line1;
×
2206
          return this;
×
2207
        }
2208

2209
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
2210
        public Builder setLine2(String line2) {
2211
          this.line2 = line2;
×
2212
          return this;
×
2213
        }
2214

2215
        /** ZIP or postal code. */
2216
        public Builder setPostalCode(String postalCode) {
2217
          this.postalCode = postalCode;
×
2218
          return this;
×
2219
        }
2220

2221
        /** State, county, province, or region. */
2222
        public Builder setState(String state) {
2223
          this.state = state;
×
2224
          return this;
×
2225
        }
2226
      }
2227
    }
2228
  }
2229

2230
  @Getter
2231
  public static class Blik {
2232
    /**
2233
     * Map of extra parameters for custom features not available in this client library. The content
2234
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2235
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2236
     * param object. Effectively, this map is flattened to its parent instance.
2237
     */
2238
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2239
    Map<String, Object> extraParams;
2240

2241
    private Blik(Map<String, Object> extraParams) {
×
2242
      this.extraParams = extraParams;
×
2243
    }
×
2244

2245
    public static Builder builder() {
2246
      return new Builder();
×
2247
    }
2248

2249
    public static class Builder {
×
2250
      private Map<String, Object> extraParams;
2251

2252
      /** Finalize and obtain parameter instance from this builder. */
2253
      public PaymentMethodCreateParams.Blik build() {
2254
        return new PaymentMethodCreateParams.Blik(this.extraParams);
×
2255
      }
2256

2257
      /**
2258
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2259
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2260
       * PaymentMethodCreateParams.Blik#extraParams} for the field documentation.
2261
       */
2262
      public Builder putExtraParam(String key, Object value) {
2263
        if (this.extraParams == null) {
×
2264
          this.extraParams = new HashMap<>();
×
2265
        }
2266
        this.extraParams.put(key, value);
×
2267
        return this;
×
2268
      }
2269

2270
      /**
2271
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2272
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2273
       * See {@link PaymentMethodCreateParams.Blik#extraParams} for the field documentation.
2274
       */
2275
      public Builder putAllExtraParam(Map<String, Object> map) {
2276
        if (this.extraParams == null) {
×
2277
          this.extraParams = new HashMap<>();
×
2278
        }
2279
        this.extraParams.putAll(map);
×
2280
        return this;
×
2281
      }
2282
    }
2283
  }
2284

2285
  @Getter
2286
  public static class Boleto {
2287
    /**
2288
     * Map of extra parameters for custom features not available in this client library. The content
2289
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2290
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2291
     * param object. Effectively, this map is flattened to its parent instance.
2292
     */
2293
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2294
    Map<String, Object> extraParams;
2295

2296
    /**
2297
     * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2298
     * for businesses consumers)
2299
     */
2300
    @SerializedName("tax_id")
2301
    String taxId;
2302

2303
    private Boleto(Map<String, Object> extraParams, String taxId) {
×
2304
      this.extraParams = extraParams;
×
2305
      this.taxId = taxId;
×
2306
    }
×
2307

2308
    public static Builder builder() {
2309
      return new Builder();
×
2310
    }
2311

2312
    public static class Builder {
×
2313
      private Map<String, Object> extraParams;
2314

2315
      private String taxId;
2316

2317
      /** Finalize and obtain parameter instance from this builder. */
2318
      public PaymentMethodCreateParams.Boleto build() {
2319
        return new PaymentMethodCreateParams.Boleto(this.extraParams, this.taxId);
×
2320
      }
2321

2322
      /**
2323
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2324
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2325
       * PaymentMethodCreateParams.Boleto#extraParams} for the field documentation.
2326
       */
2327
      public Builder putExtraParam(String key, Object value) {
2328
        if (this.extraParams == null) {
×
2329
          this.extraParams = new HashMap<>();
×
2330
        }
2331
        this.extraParams.put(key, value);
×
2332
        return this;
×
2333
      }
2334

2335
      /**
2336
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2337
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2338
       * See {@link PaymentMethodCreateParams.Boleto#extraParams} for the field documentation.
2339
       */
2340
      public Builder putAllExtraParam(Map<String, Object> map) {
2341
        if (this.extraParams == null) {
×
2342
          this.extraParams = new HashMap<>();
×
2343
        }
2344
        this.extraParams.putAll(map);
×
2345
        return this;
×
2346
      }
2347

2348
      /**
2349
       * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2350
       * for businesses consumers)
2351
       */
2352
      public Builder setTaxId(String taxId) {
2353
        this.taxId = taxId;
×
2354
        return this;
×
2355
      }
2356
    }
2357
  }
2358

2359
  @Getter
2360
  public static class CardDetails {
2361
    /** The card's CVC. It is highly recommended to always include this value. */
2362
    @SerializedName("cvc")
2363
    String cvc;
2364

2365
    /** Two-digit number representing the card's expiration month. */
2366
    @SerializedName("exp_month")
2367
    Long expMonth;
2368

2369
    /** Four-digit number representing the card's expiration year. */
2370
    @SerializedName("exp_year")
2371
    Long expYear;
2372

2373
    /**
2374
     * Map of extra parameters for custom features not available in this client library. The content
2375
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2376
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2377
     * param object. Effectively, this map is flattened to its parent instance.
2378
     */
2379
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2380
    Map<String, Object> extraParams;
2381

2382
    /** Contains information about card networks used to process the payment. */
2383
    @SerializedName("networks")
2384
    Networks networks;
2385

2386
    /** The card number, as a string without any separators. */
2387
    @SerializedName("number")
2388
    String number;
2389

2390
    private CardDetails(
2391
        String cvc,
2392
        Long expMonth,
2393
        Long expYear,
2394
        Map<String, Object> extraParams,
2395
        Networks networks,
2396
        String number) {
×
2397
      this.cvc = cvc;
×
2398
      this.expMonth = expMonth;
×
2399
      this.expYear = expYear;
×
2400
      this.extraParams = extraParams;
×
2401
      this.networks = networks;
×
2402
      this.number = number;
×
2403
    }
×
2404

2405
    public static Builder builder() {
2406
      return new Builder();
×
2407
    }
2408

2409
    public static class Builder {
×
2410
      private String cvc;
2411

2412
      private Long expMonth;
2413

2414
      private Long expYear;
2415

2416
      private Map<String, Object> extraParams;
2417

2418
      private Networks networks;
2419

2420
      private String number;
2421

2422
      /** Finalize and obtain parameter instance from this builder. */
2423
      public PaymentMethodCreateParams.CardDetails build() {
2424
        return new PaymentMethodCreateParams.CardDetails(
×
2425
            this.cvc, this.expMonth, this.expYear, this.extraParams, this.networks, this.number);
2426
      }
2427

2428
      /** The card's CVC. It is highly recommended to always include this value. */
2429
      public Builder setCvc(String cvc) {
2430
        this.cvc = cvc;
×
2431
        return this;
×
2432
      }
2433

2434
      /** Two-digit number representing the card's expiration month. */
2435
      public Builder setExpMonth(Long expMonth) {
2436
        this.expMonth = expMonth;
×
2437
        return this;
×
2438
      }
2439

2440
      /** Four-digit number representing the card's expiration year. */
2441
      public Builder setExpYear(Long expYear) {
2442
        this.expYear = expYear;
×
2443
        return this;
×
2444
      }
2445

2446
      /**
2447
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2448
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2449
       * PaymentMethodCreateParams.CardDetails#extraParams} for the field documentation.
2450
       */
2451
      public Builder putExtraParam(String key, Object value) {
2452
        if (this.extraParams == null) {
×
2453
          this.extraParams = new HashMap<>();
×
2454
        }
2455
        this.extraParams.put(key, value);
×
2456
        return this;
×
2457
      }
2458

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

2472
      /** Contains information about card networks used to process the payment. */
2473
      public Builder setNetworks(PaymentMethodCreateParams.CardDetails.Networks networks) {
2474
        this.networks = networks;
×
2475
        return this;
×
2476
      }
2477

2478
      /** The card number, as a string without any separators. */
2479
      public Builder setNumber(String number) {
2480
        this.number = number;
×
2481
        return this;
×
2482
      }
2483
    }
2484

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

2496
      /**
2497
       * The customer's preferred card network for co-branded cards. Supports {@code
2498
       * cartes_bancaires}, {@code mastercard}, or {@code visa}. Selection of a network that does
2499
       * not apply to the card will be stored as {@code invalid_preference} on the card.
2500
       */
2501
      @SerializedName("preferred")
2502
      Preferred preferred;
2503

2504
      private Networks(Map<String, Object> extraParams, Preferred preferred) {
×
2505
        this.extraParams = extraParams;
×
2506
        this.preferred = preferred;
×
2507
      }
×
2508

2509
      public static Builder builder() {
2510
        return new Builder();
×
2511
      }
2512

2513
      public static class Builder {
×
2514
        private Map<String, Object> extraParams;
2515

2516
        private Preferred preferred;
2517

2518
        /** Finalize and obtain parameter instance from this builder. */
2519
        public PaymentMethodCreateParams.CardDetails.Networks build() {
2520
          return new PaymentMethodCreateParams.CardDetails.Networks(
×
2521
              this.extraParams, this.preferred);
2522
        }
2523

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

2538
        /**
2539
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2540
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2541
         * map. See {@link PaymentMethodCreateParams.CardDetails.Networks#extraParams} for the field
2542
         * documentation.
2543
         */
2544
        public Builder putAllExtraParam(Map<String, Object> map) {
2545
          if (this.extraParams == null) {
×
2546
            this.extraParams = new HashMap<>();
×
2547
          }
2548
          this.extraParams.putAll(map);
×
2549
          return this;
×
2550
        }
2551

2552
        /**
2553
         * The customer's preferred card network for co-branded cards. Supports {@code
2554
         * cartes_bancaires}, {@code mastercard}, or {@code visa}. Selection of a network that does
2555
         * not apply to the card will be stored as {@code invalid_preference} on the card.
2556
         */
2557
        public Builder setPreferred(
2558
            PaymentMethodCreateParams.CardDetails.Networks.Preferred preferred) {
2559
          this.preferred = preferred;
×
2560
          return this;
×
2561
        }
2562
      }
2563

2564
      public enum Preferred implements ApiRequestParams.EnumParam {
×
2565
        @SerializedName("cartes_bancaires")
×
2566
        CARTES_BANCAIRES("cartes_bancaires"),
2567

2568
        @SerializedName("mastercard")
×
2569
        MASTERCARD("mastercard"),
2570

2571
        @SerializedName("visa")
×
2572
        VISA("visa");
2573

2574
        @Getter(onMethod_ = {@Override})
2575
        private final String value;
2576

2577
        Preferred(String value) {
×
2578
          this.value = value;
×
2579
        }
×
2580
      }
2581
    }
2582
  }
2583

2584
  @Getter
2585
  public static class Cashapp {
2586
    /**
2587
     * Map of extra parameters for custom features not available in this client library. The content
2588
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2589
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2590
     * param object. Effectively, this map is flattened to its parent instance.
2591
     */
2592
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2593
    Map<String, Object> extraParams;
2594

2595
    private Cashapp(Map<String, Object> extraParams) {
×
2596
      this.extraParams = extraParams;
×
2597
    }
×
2598

2599
    public static Builder builder() {
2600
      return new Builder();
×
2601
    }
2602

2603
    public static class Builder {
×
2604
      private Map<String, Object> extraParams;
2605

2606
      /** Finalize and obtain parameter instance from this builder. */
2607
      public PaymentMethodCreateParams.Cashapp build() {
2608
        return new PaymentMethodCreateParams.Cashapp(this.extraParams);
×
2609
      }
2610

2611
      /**
2612
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2613
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2614
       * PaymentMethodCreateParams.Cashapp#extraParams} for the field documentation.
2615
       */
2616
      public Builder putExtraParam(String key, Object value) {
2617
        if (this.extraParams == null) {
×
2618
          this.extraParams = new HashMap<>();
×
2619
        }
2620
        this.extraParams.put(key, value);
×
2621
        return this;
×
2622
      }
2623

2624
      /**
2625
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2626
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2627
       * See {@link PaymentMethodCreateParams.Cashapp#extraParams} for the field documentation.
2628
       */
2629
      public Builder putAllExtraParam(Map<String, Object> map) {
2630
        if (this.extraParams == null) {
×
2631
          this.extraParams = new HashMap<>();
×
2632
        }
2633
        this.extraParams.putAll(map);
×
2634
        return this;
×
2635
      }
2636
    }
2637
  }
2638

2639
  @Getter
2640
  public static class CustomerBalance {
2641
    /**
2642
     * Map of extra parameters for custom features not available in this client library. The content
2643
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2644
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2645
     * param object. Effectively, this map is flattened to its parent instance.
2646
     */
2647
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2648
    Map<String, Object> extraParams;
2649

2650
    private CustomerBalance(Map<String, Object> extraParams) {
×
2651
      this.extraParams = extraParams;
×
2652
    }
×
2653

2654
    public static Builder builder() {
2655
      return new Builder();
×
2656
    }
2657

2658
    public static class Builder {
×
2659
      private Map<String, Object> extraParams;
2660

2661
      /** Finalize and obtain parameter instance from this builder. */
2662
      public PaymentMethodCreateParams.CustomerBalance build() {
2663
        return new PaymentMethodCreateParams.CustomerBalance(this.extraParams);
×
2664
      }
2665

2666
      /**
2667
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2668
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2669
       * PaymentMethodCreateParams.CustomerBalance#extraParams} for the field documentation.
2670
       */
2671
      public Builder putExtraParam(String key, Object value) {
2672
        if (this.extraParams == null) {
×
2673
          this.extraParams = new HashMap<>();
×
2674
        }
2675
        this.extraParams.put(key, value);
×
2676
        return this;
×
2677
      }
2678

2679
      /**
2680
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2681
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2682
       * See {@link PaymentMethodCreateParams.CustomerBalance#extraParams} for the field
2683
       * documentation.
2684
       */
2685
      public Builder putAllExtraParam(Map<String, Object> map) {
2686
        if (this.extraParams == null) {
×
2687
          this.extraParams = new HashMap<>();
×
2688
        }
2689
        this.extraParams.putAll(map);
×
2690
        return this;
×
2691
      }
2692
    }
2693
  }
2694

2695
  @Getter
2696
  public static class Eps {
2697
    /** The customer's bank. */
2698
    @SerializedName("bank")
2699
    Bank bank;
2700

2701
    /**
2702
     * Map of extra parameters for custom features not available in this client library. The content
2703
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2704
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2705
     * param object. Effectively, this map is flattened to its parent instance.
2706
     */
2707
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2708
    Map<String, Object> extraParams;
2709

2710
    private Eps(Bank bank, Map<String, Object> extraParams) {
×
2711
      this.bank = bank;
×
2712
      this.extraParams = extraParams;
×
2713
    }
×
2714

2715
    public static Builder builder() {
2716
      return new Builder();
×
2717
    }
2718

2719
    public static class Builder {
×
2720
      private Bank bank;
2721

2722
      private Map<String, Object> extraParams;
2723

2724
      /** Finalize and obtain parameter instance from this builder. */
2725
      public PaymentMethodCreateParams.Eps build() {
2726
        return new PaymentMethodCreateParams.Eps(this.bank, this.extraParams);
×
2727
      }
2728

2729
      /** The customer's bank. */
2730
      public Builder setBank(PaymentMethodCreateParams.Eps.Bank bank) {
2731
        this.bank = bank;
×
2732
        return this;
×
2733
      }
2734

2735
      /**
2736
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2737
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2738
       * PaymentMethodCreateParams.Eps#extraParams} for the field documentation.
2739
       */
2740
      public Builder putExtraParam(String key, Object value) {
2741
        if (this.extraParams == null) {
×
2742
          this.extraParams = new HashMap<>();
×
2743
        }
2744
        this.extraParams.put(key, value);
×
2745
        return this;
×
2746
      }
2747

2748
      /**
2749
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2750
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2751
       * See {@link PaymentMethodCreateParams.Eps#extraParams} for the field documentation.
2752
       */
2753
      public Builder putAllExtraParam(Map<String, Object> map) {
2754
        if (this.extraParams == null) {
×
2755
          this.extraParams = new HashMap<>();
×
2756
        }
2757
        this.extraParams.putAll(map);
×
2758
        return this;
×
2759
      }
2760
    }
2761

2762
    public enum Bank implements ApiRequestParams.EnumParam {
×
2763
      @SerializedName("arzte_und_apotheker_bank")
×
2764
      ARZTE_UND_APOTHEKER_BANK("arzte_und_apotheker_bank"),
2765

2766
      @SerializedName("austrian_anadi_bank_ag")
×
2767
      AUSTRIAN_ANADI_BANK_AG("austrian_anadi_bank_ag"),
2768

2769
      @SerializedName("bank_austria")
×
2770
      BANK_AUSTRIA("bank_austria"),
2771

2772
      @SerializedName("bankhaus_carl_spangler")
×
2773
      BANKHAUS_CARL_SPANGLER("bankhaus_carl_spangler"),
2774

2775
      @SerializedName("bankhaus_schelhammer_und_schattera_ag")
×
2776
      BANKHAUS_SCHELHAMMER_UND_SCHATTERA_AG("bankhaus_schelhammer_und_schattera_ag"),
2777

2778
      @SerializedName("bawag_psk_ag")
×
2779
      BAWAG_PSK_AG("bawag_psk_ag"),
2780

2781
      @SerializedName("bks_bank_ag")
×
2782
      BKS_BANK_AG("bks_bank_ag"),
2783

2784
      @SerializedName("brull_kallmus_bank_ag")
×
2785
      BRULL_KALLMUS_BANK_AG("brull_kallmus_bank_ag"),
2786

2787
      @SerializedName("btv_vier_lander_bank")
×
2788
      BTV_VIER_LANDER_BANK("btv_vier_lander_bank"),
2789

2790
      @SerializedName("capital_bank_grawe_gruppe_ag")
×
2791
      CAPITAL_BANK_GRAWE_GRUPPE_AG("capital_bank_grawe_gruppe_ag"),
2792

2793
      @SerializedName("deutsche_bank_ag")
×
2794
      DEUTSCHE_BANK_AG("deutsche_bank_ag"),
2795

2796
      @SerializedName("dolomitenbank")
×
2797
      DOLOMITENBANK("dolomitenbank"),
2798

2799
      @SerializedName("easybank_ag")
×
2800
      EASYBANK_AG("easybank_ag"),
2801

2802
      @SerializedName("erste_bank_und_sparkassen")
×
2803
      ERSTE_BANK_UND_SPARKASSEN("erste_bank_und_sparkassen"),
2804

2805
      @SerializedName("hypo_alpeadriabank_international_ag")
×
2806
      HYPO_ALPEADRIABANK_INTERNATIONAL_AG("hypo_alpeadriabank_international_ag"),
2807

2808
      @SerializedName("hypo_bank_burgenland_aktiengesellschaft")
×
2809
      HYPO_BANK_BURGENLAND_AKTIENGESELLSCHAFT("hypo_bank_burgenland_aktiengesellschaft"),
2810

2811
      @SerializedName("hypo_noe_lb_fur_niederosterreich_u_wien")
×
2812
      HYPO_NOE_LB_FUR_NIEDEROSTERREICH_U_WIEN("hypo_noe_lb_fur_niederosterreich_u_wien"),
2813

2814
      @SerializedName("hypo_oberosterreich_salzburg_steiermark")
×
2815
      HYPO_OBEROSTERREICH_SALZBURG_STEIERMARK("hypo_oberosterreich_salzburg_steiermark"),
2816

2817
      @SerializedName("hypo_tirol_bank_ag")
×
2818
      HYPO_TIROL_BANK_AG("hypo_tirol_bank_ag"),
2819

2820
      @SerializedName("hypo_vorarlberg_bank_ag")
×
2821
      HYPO_VORARLBERG_BANK_AG("hypo_vorarlberg_bank_ag"),
2822

2823
      @SerializedName("marchfelder_bank")
×
2824
      MARCHFELDER_BANK("marchfelder_bank"),
2825

2826
      @SerializedName("oberbank_ag")
×
2827
      OBERBANK_AG("oberbank_ag"),
2828

2829
      @SerializedName("raiffeisen_bankengruppe_osterreich")
×
2830
      RAIFFEISEN_BANKENGRUPPE_OSTERREICH("raiffeisen_bankengruppe_osterreich"),
2831

2832
      @SerializedName("schoellerbank_ag")
×
2833
      SCHOELLERBANK_AG("schoellerbank_ag"),
2834

2835
      @SerializedName("sparda_bank_wien")
×
2836
      SPARDA_BANK_WIEN("sparda_bank_wien"),
2837

2838
      @SerializedName("volksbank_gruppe")
×
2839
      VOLKSBANK_GRUPPE("volksbank_gruppe"),
2840

2841
      @SerializedName("volkskreditbank_ag")
×
2842
      VOLKSKREDITBANK_AG("volkskreditbank_ag"),
2843

2844
      @SerializedName("vr_bank_braunau")
×
2845
      VR_BANK_BRAUNAU("vr_bank_braunau");
2846

2847
      @Getter(onMethod_ = {@Override})
2848
      private final String value;
2849

2850
      Bank(String value) {
×
2851
        this.value = value;
×
2852
      }
×
2853
    }
2854
  }
2855

2856
  @Getter
2857
  public static class Fpx {
2858
    /** Account holder type for FPX transaction. */
2859
    @SerializedName("account_holder_type")
2860
    AccountHolderType accountHolderType;
2861

2862
    /** <strong>Required.</strong> The customer's bank. */
2863
    @SerializedName("bank")
2864
    Bank bank;
2865

2866
    /**
2867
     * Map of extra parameters for custom features not available in this client library. The content
2868
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
2869
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
2870
     * param object. Effectively, this map is flattened to its parent instance.
2871
     */
2872
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2873
    Map<String, Object> extraParams;
2874

2875
    private Fpx(AccountHolderType accountHolderType, Bank bank, Map<String, Object> extraParams) {
×
2876
      this.accountHolderType = accountHolderType;
×
2877
      this.bank = bank;
×
2878
      this.extraParams = extraParams;
×
2879
    }
×
2880

2881
    public static Builder builder() {
2882
      return new Builder();
×
2883
    }
2884

2885
    public static class Builder {
×
2886
      private AccountHolderType accountHolderType;
2887

2888
      private Bank bank;
2889

2890
      private Map<String, Object> extraParams;
2891

2892
      /** Finalize and obtain parameter instance from this builder. */
2893
      public PaymentMethodCreateParams.Fpx build() {
2894
        return new PaymentMethodCreateParams.Fpx(
×
2895
            this.accountHolderType, this.bank, this.extraParams);
2896
      }
2897

2898
      /** Account holder type for FPX transaction. */
2899
      public Builder setAccountHolderType(
2900
          PaymentMethodCreateParams.Fpx.AccountHolderType accountHolderType) {
2901
        this.accountHolderType = accountHolderType;
×
2902
        return this;
×
2903
      }
2904

2905
      /** <strong>Required.</strong> The customer's bank. */
2906
      public Builder setBank(PaymentMethodCreateParams.Fpx.Bank bank) {
2907
        this.bank = bank;
×
2908
        return this;
×
2909
      }
2910

2911
      /**
2912
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
2913
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
2914
       * PaymentMethodCreateParams.Fpx#extraParams} for the field documentation.
2915
       */
2916
      public Builder putExtraParam(String key, Object value) {
2917
        if (this.extraParams == null) {
×
2918
          this.extraParams = new HashMap<>();
×
2919
        }
2920
        this.extraParams.put(key, value);
×
2921
        return this;
×
2922
      }
2923

2924
      /**
2925
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2926
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
2927
       * See {@link PaymentMethodCreateParams.Fpx#extraParams} for the field documentation.
2928
       */
2929
      public Builder putAllExtraParam(Map<String, Object> map) {
2930
        if (this.extraParams == null) {
×
2931
          this.extraParams = new HashMap<>();
×
2932
        }
2933
        this.extraParams.putAll(map);
×
2934
        return this;
×
2935
      }
2936
    }
2937

2938
    public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
2939
      @SerializedName("company")
×
2940
      COMPANY("company"),
2941

2942
      @SerializedName("individual")
×
2943
      INDIVIDUAL("individual");
2944

2945
      @Getter(onMethod_ = {@Override})
2946
      private final String value;
2947

2948
      AccountHolderType(String value) {
×
2949
        this.value = value;
×
2950
      }
×
2951
    }
2952

2953
    public enum Bank implements ApiRequestParams.EnumParam {
×
2954
      @SerializedName("affin_bank")
×
2955
      AFFIN_BANK("affin_bank"),
2956

2957
      @SerializedName("agrobank")
×
2958
      AGROBANK("agrobank"),
2959

2960
      @SerializedName("alliance_bank")
×
2961
      ALLIANCE_BANK("alliance_bank"),
2962

2963
      @SerializedName("ambank")
×
2964
      AMBANK("ambank"),
2965

2966
      @SerializedName("bank_islam")
×
2967
      BANK_ISLAM("bank_islam"),
2968

2969
      @SerializedName("bank_muamalat")
×
2970
      BANK_MUAMALAT("bank_muamalat"),
2971

2972
      @SerializedName("bank_of_china")
×
2973
      BANK_OF_CHINA("bank_of_china"),
2974

2975
      @SerializedName("bank_rakyat")
×
2976
      BANK_RAKYAT("bank_rakyat"),
2977

2978
      @SerializedName("bsn")
×
2979
      BSN("bsn"),
2980

2981
      @SerializedName("cimb")
×
2982
      CIMB("cimb"),
2983

2984
      @SerializedName("deutsche_bank")
×
2985
      DEUTSCHE_BANK("deutsche_bank"),
2986

2987
      @SerializedName("hong_leong_bank")
×
2988
      HONG_LEONG_BANK("hong_leong_bank"),
2989

2990
      @SerializedName("hsbc")
×
2991
      HSBC("hsbc"),
2992

2993
      @SerializedName("kfh")
×
2994
      KFH("kfh"),
2995

2996
      @SerializedName("maybank2e")
×
2997
      MAYBANK2E("maybank2e"),
2998

2999
      @SerializedName("maybank2u")
×
3000
      MAYBANK2U("maybank2u"),
3001

3002
      @SerializedName("ocbc")
×
3003
      OCBC("ocbc"),
3004

3005
      @SerializedName("pb_enterprise")
×
3006
      PB_ENTERPRISE("pb_enterprise"),
3007

3008
      @SerializedName("public_bank")
×
3009
      PUBLIC_BANK("public_bank"),
3010

3011
      @SerializedName("rhb")
×
3012
      RHB("rhb"),
3013

3014
      @SerializedName("standard_chartered")
×
3015
      STANDARD_CHARTERED("standard_chartered"),
3016

3017
      @SerializedName("uob")
×
3018
      UOB("uob");
3019

3020
      @Getter(onMethod_ = {@Override})
3021
      private final String value;
3022

3023
      Bank(String value) {
×
3024
        this.value = value;
×
3025
      }
×
3026
    }
3027
  }
3028

3029
  @Getter
3030
  public static class Giropay {
3031
    /**
3032
     * Map of extra parameters for custom features not available in this client library. The content
3033
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3034
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3035
     * param object. Effectively, this map is flattened to its parent instance.
3036
     */
3037
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3038
    Map<String, Object> extraParams;
3039

3040
    private Giropay(Map<String, Object> extraParams) {
×
3041
      this.extraParams = extraParams;
×
3042
    }
×
3043

3044
    public static Builder builder() {
3045
      return new Builder();
×
3046
    }
3047

3048
    public static class Builder {
×
3049
      private Map<String, Object> extraParams;
3050

3051
      /** Finalize and obtain parameter instance from this builder. */
3052
      public PaymentMethodCreateParams.Giropay build() {
3053
        return new PaymentMethodCreateParams.Giropay(this.extraParams);
×
3054
      }
3055

3056
      /**
3057
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3058
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3059
       * PaymentMethodCreateParams.Giropay#extraParams} for the field documentation.
3060
       */
3061
      public Builder putExtraParam(String key, Object value) {
3062
        if (this.extraParams == null) {
×
3063
          this.extraParams = new HashMap<>();
×
3064
        }
3065
        this.extraParams.put(key, value);
×
3066
        return this;
×
3067
      }
3068

3069
      /**
3070
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3071
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3072
       * See {@link PaymentMethodCreateParams.Giropay#extraParams} for the field documentation.
3073
       */
3074
      public Builder putAllExtraParam(Map<String, Object> map) {
3075
        if (this.extraParams == null) {
×
3076
          this.extraParams = new HashMap<>();
×
3077
        }
3078
        this.extraParams.putAll(map);
×
3079
        return this;
×
3080
      }
3081
    }
3082
  }
3083

3084
  @Getter
3085
  public static class Gopay {
3086
    /**
3087
     * Map of extra parameters for custom features not available in this client library. The content
3088
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3089
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3090
     * param object. Effectively, this map is flattened to its parent instance.
3091
     */
3092
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3093
    Map<String, Object> extraParams;
3094

3095
    private Gopay(Map<String, Object> extraParams) {
×
3096
      this.extraParams = extraParams;
×
3097
    }
×
3098

3099
    public static Builder builder() {
3100
      return new Builder();
×
3101
    }
3102

3103
    public static class Builder {
×
3104
      private Map<String, Object> extraParams;
3105

3106
      /** Finalize and obtain parameter instance from this builder. */
3107
      public PaymentMethodCreateParams.Gopay build() {
3108
        return new PaymentMethodCreateParams.Gopay(this.extraParams);
×
3109
      }
3110

3111
      /**
3112
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3113
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3114
       * PaymentMethodCreateParams.Gopay#extraParams} for the field documentation.
3115
       */
3116
      public Builder putExtraParam(String key, Object value) {
3117
        if (this.extraParams == null) {
×
3118
          this.extraParams = new HashMap<>();
×
3119
        }
3120
        this.extraParams.put(key, value);
×
3121
        return this;
×
3122
      }
3123

3124
      /**
3125
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3126
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3127
       * See {@link PaymentMethodCreateParams.Gopay#extraParams} for the field documentation.
3128
       */
3129
      public Builder putAllExtraParam(Map<String, Object> map) {
3130
        if (this.extraParams == null) {
×
3131
          this.extraParams = new HashMap<>();
×
3132
        }
3133
        this.extraParams.putAll(map);
×
3134
        return this;
×
3135
      }
3136
    }
3137
  }
3138

3139
  @Getter
3140
  public static class Grabpay {
3141
    /**
3142
     * Map of extra parameters for custom features not available in this client library. The content
3143
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3144
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3145
     * param object. Effectively, this map is flattened to its parent instance.
3146
     */
3147
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3148
    Map<String, Object> extraParams;
3149

3150
    private Grabpay(Map<String, Object> extraParams) {
×
3151
      this.extraParams = extraParams;
×
3152
    }
×
3153

3154
    public static Builder builder() {
3155
      return new Builder();
×
3156
    }
3157

3158
    public static class Builder {
×
3159
      private Map<String, Object> extraParams;
3160

3161
      /** Finalize and obtain parameter instance from this builder. */
3162
      public PaymentMethodCreateParams.Grabpay build() {
3163
        return new PaymentMethodCreateParams.Grabpay(this.extraParams);
×
3164
      }
3165

3166
      /**
3167
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3168
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3169
       * PaymentMethodCreateParams.Grabpay#extraParams} for the field documentation.
3170
       */
3171
      public Builder putExtraParam(String key, Object value) {
3172
        if (this.extraParams == null) {
×
3173
          this.extraParams = new HashMap<>();
×
3174
        }
3175
        this.extraParams.put(key, value);
×
3176
        return this;
×
3177
      }
3178

3179
      /**
3180
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3181
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3182
       * See {@link PaymentMethodCreateParams.Grabpay#extraParams} for the field documentation.
3183
       */
3184
      public Builder putAllExtraParam(Map<String, Object> map) {
3185
        if (this.extraParams == null) {
×
3186
          this.extraParams = new HashMap<>();
×
3187
        }
3188
        this.extraParams.putAll(map);
×
3189
        return this;
×
3190
      }
3191
    }
3192
  }
3193

3194
  @Getter
3195
  public static class IdBankTransfer {
3196
    /** Bank where the account is held. */
3197
    @SerializedName("bank")
3198
    Bank bank;
3199

3200
    /**
3201
     * Map of extra parameters for custom features not available in this client library. The content
3202
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3203
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3204
     * param object. Effectively, this map is flattened to its parent instance.
3205
     */
3206
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3207
    Map<String, Object> extraParams;
3208

NEW
3209
    private IdBankTransfer(Bank bank, Map<String, Object> extraParams) {
×
NEW
3210
      this.bank = bank;
×
NEW
3211
      this.extraParams = extraParams;
×
NEW
3212
    }
×
3213

3214
    public static Builder builder() {
NEW
3215
      return new Builder();
×
3216
    }
3217

NEW
3218
    public static class Builder {
×
3219
      private Bank bank;
3220

3221
      private Map<String, Object> extraParams;
3222

3223
      /** Finalize and obtain parameter instance from this builder. */
3224
      public PaymentMethodCreateParams.IdBankTransfer build() {
NEW
3225
        return new PaymentMethodCreateParams.IdBankTransfer(this.bank, this.extraParams);
×
3226
      }
3227

3228
      /** Bank where the account is held. */
3229
      public Builder setBank(PaymentMethodCreateParams.IdBankTransfer.Bank bank) {
NEW
3230
        this.bank = bank;
×
NEW
3231
        return this;
×
3232
      }
3233

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

3247
      /**
3248
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3249
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3250
       * See {@link PaymentMethodCreateParams.IdBankTransfer#extraParams} for the field
3251
       * documentation.
3252
       */
3253
      public Builder putAllExtraParam(Map<String, Object> map) {
NEW
3254
        if (this.extraParams == null) {
×
NEW
3255
          this.extraParams = new HashMap<>();
×
3256
        }
NEW
3257
        this.extraParams.putAll(map);
×
NEW
3258
        return this;
×
3259
      }
3260
    }
3261

NEW
3262
    public enum Bank implements ApiRequestParams.EnumParam {
×
NEW
3263
      @SerializedName("bca")
×
3264
      BCA("bca"),
3265

NEW
3266
      @SerializedName("bni")
×
3267
      BNI("bni"),
3268

NEW
3269
      @SerializedName("bri")
×
3270
      BRI("bri"),
3271

NEW
3272
      @SerializedName("cimb")
×
3273
      CIMB("cimb"),
3274

NEW
3275
      @SerializedName("permata")
×
3276
      PERMATA("permata");
3277

3278
      @Getter(onMethod_ = {@Override})
3279
      private final String value;
3280

NEW
3281
      Bank(String value) {
×
NEW
3282
        this.value = value;
×
NEW
3283
      }
×
3284
    }
3285
  }
3286

3287
  @Getter
3288
  public static class Ideal {
3289
    /**
3290
     * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3291
     * customers.
3292
     */
3293
    @SerializedName("bank")
3294
    Bank bank;
3295

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

3305
    private Ideal(Bank bank, Map<String, Object> extraParams) {
×
3306
      this.bank = bank;
×
3307
      this.extraParams = extraParams;
×
3308
    }
×
3309

3310
    public static Builder builder() {
3311
      return new Builder();
×
3312
    }
3313

3314
    public static class Builder {
×
3315
      private Bank bank;
3316

3317
      private Map<String, Object> extraParams;
3318

3319
      /** Finalize and obtain parameter instance from this builder. */
3320
      public PaymentMethodCreateParams.Ideal build() {
3321
        return new PaymentMethodCreateParams.Ideal(this.bank, this.extraParams);
×
3322
      }
3323

3324
      /**
3325
       * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3326
       * customers.
3327
       */
3328
      public Builder setBank(PaymentMethodCreateParams.Ideal.Bank bank) {
3329
        this.bank = bank;
×
3330
        return this;
×
3331
      }
3332

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

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

3360
    public enum Bank implements ApiRequestParams.EnumParam {
×
3361
      @SerializedName("abn_amro")
×
3362
      ABN_AMRO("abn_amro"),
3363

3364
      @SerializedName("asn_bank")
×
3365
      ASN_BANK("asn_bank"),
3366

3367
      @SerializedName("bunq")
×
3368
      BUNQ("bunq"),
3369

3370
      @SerializedName("handelsbanken")
×
3371
      HANDELSBANKEN("handelsbanken"),
3372

3373
      @SerializedName("ing")
×
3374
      ING("ing"),
3375

3376
      @SerializedName("knab")
×
3377
      KNAB("knab"),
3378

3379
      @SerializedName("moneyou")
×
3380
      MONEYOU("moneyou"),
3381

3382
      @SerializedName("n26")
×
3383
      N26("n26"),
3384

3385
      @SerializedName("nn")
×
3386
      NN("nn"),
3387

3388
      @SerializedName("rabobank")
×
3389
      RABOBANK("rabobank"),
3390

3391
      @SerializedName("regiobank")
×
3392
      REGIOBANK("regiobank"),
3393

3394
      @SerializedName("revolut")
×
3395
      REVOLUT("revolut"),
3396

3397
      @SerializedName("sns_bank")
×
3398
      SNS_BANK("sns_bank"),
3399

3400
      @SerializedName("triodos_bank")
×
3401
      TRIODOS_BANK("triodos_bank"),
3402

3403
      @SerializedName("van_lanschot")
×
3404
      VAN_LANSCHOT("van_lanschot"),
3405

3406
      @SerializedName("yoursafe")
×
3407
      YOURSAFE("yoursafe");
3408

3409
      @Getter(onMethod_ = {@Override})
3410
      private final String value;
3411

3412
      Bank(String value) {
×
3413
        this.value = value;
×
3414
      }
×
3415
    }
3416
  }
3417

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

3429
    private InteracPresent(Map<String, Object> extraParams) {
×
3430
      this.extraParams = extraParams;
×
3431
    }
×
3432

3433
    public static Builder builder() {
3434
      return new Builder();
×
3435
    }
3436

3437
    public static class Builder {
×
3438
      private Map<String, Object> extraParams;
3439

3440
      /** Finalize and obtain parameter instance from this builder. */
3441
      public PaymentMethodCreateParams.InteracPresent build() {
3442
        return new PaymentMethodCreateParams.InteracPresent(this.extraParams);
×
3443
      }
3444

3445
      /**
3446
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3447
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3448
       * PaymentMethodCreateParams.InteracPresent#extraParams} for the field documentation.
3449
       */
3450
      public Builder putExtraParam(String key, Object value) {
3451
        if (this.extraParams == null) {
×
3452
          this.extraParams = new HashMap<>();
×
3453
        }
3454
        this.extraParams.put(key, value);
×
3455
        return this;
×
3456
      }
3457

3458
      /**
3459
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3460
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3461
       * See {@link PaymentMethodCreateParams.InteracPresent#extraParams} for the field
3462
       * documentation.
3463
       */
3464
      public Builder putAllExtraParam(Map<String, Object> map) {
3465
        if (this.extraParams == null) {
×
3466
          this.extraParams = new HashMap<>();
×
3467
        }
3468
        this.extraParams.putAll(map);
×
3469
        return this;
×
3470
      }
3471
    }
3472
  }
3473

3474
  @Getter
3475
  public static class KakaoPay {
3476
    /**
3477
     * Map of extra parameters for custom features not available in this client library. The content
3478
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3479
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3480
     * param object. Effectively, this map is flattened to its parent instance.
3481
     */
3482
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3483
    Map<String, Object> extraParams;
3484

3485
    private KakaoPay(Map<String, Object> extraParams) {
×
3486
      this.extraParams = extraParams;
×
3487
    }
×
3488

3489
    public static Builder builder() {
3490
      return new Builder();
×
3491
    }
3492

3493
    public static class Builder {
×
3494
      private Map<String, Object> extraParams;
3495

3496
      /** Finalize and obtain parameter instance from this builder. */
3497
      public PaymentMethodCreateParams.KakaoPay build() {
3498
        return new PaymentMethodCreateParams.KakaoPay(this.extraParams);
×
3499
      }
3500

3501
      /**
3502
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3503
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3504
       * PaymentMethodCreateParams.KakaoPay#extraParams} for the field documentation.
3505
       */
3506
      public Builder putExtraParam(String key, Object value) {
3507
        if (this.extraParams == null) {
×
3508
          this.extraParams = new HashMap<>();
×
3509
        }
3510
        this.extraParams.put(key, value);
×
3511
        return this;
×
3512
      }
3513

3514
      /**
3515
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3516
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3517
       * See {@link PaymentMethodCreateParams.KakaoPay#extraParams} for the field documentation.
3518
       */
3519
      public Builder putAllExtraParam(Map<String, Object> map) {
3520
        if (this.extraParams == null) {
×
3521
          this.extraParams = new HashMap<>();
×
3522
        }
3523
        this.extraParams.putAll(map);
×
3524
        return this;
×
3525
      }
3526
    }
3527
  }
3528

3529
  @Getter
3530
  public static class Klarna {
3531
    /** Customer's date of birth. */
3532
    @SerializedName("dob")
3533
    Dob dob;
3534

3535
    /**
3536
     * Map of extra parameters for custom features not available in this client library. The content
3537
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3538
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3539
     * param object. Effectively, this map is flattened to its parent instance.
3540
     */
3541
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3542
    Map<String, Object> extraParams;
3543

3544
    private Klarna(Dob dob, Map<String, Object> extraParams) {
×
3545
      this.dob = dob;
×
3546
      this.extraParams = extraParams;
×
3547
    }
×
3548

3549
    public static Builder builder() {
3550
      return new Builder();
×
3551
    }
3552

3553
    public static class Builder {
×
3554
      private Dob dob;
3555

3556
      private Map<String, Object> extraParams;
3557

3558
      /** Finalize and obtain parameter instance from this builder. */
3559
      public PaymentMethodCreateParams.Klarna build() {
3560
        return new PaymentMethodCreateParams.Klarna(this.dob, this.extraParams);
×
3561
      }
3562

3563
      /** Customer's date of birth. */
3564
      public Builder setDob(PaymentMethodCreateParams.Klarna.Dob dob) {
3565
        this.dob = dob;
×
3566
        return this;
×
3567
      }
3568

3569
      /**
3570
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3571
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3572
       * PaymentMethodCreateParams.Klarna#extraParams} for the field documentation.
3573
       */
3574
      public Builder putExtraParam(String key, Object value) {
3575
        if (this.extraParams == null) {
×
3576
          this.extraParams = new HashMap<>();
×
3577
        }
3578
        this.extraParams.put(key, value);
×
3579
        return this;
×
3580
      }
3581

3582
      /**
3583
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3584
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
3585
       * See {@link PaymentMethodCreateParams.Klarna#extraParams} for the field documentation.
3586
       */
3587
      public Builder putAllExtraParam(Map<String, Object> map) {
3588
        if (this.extraParams == null) {
×
3589
          this.extraParams = new HashMap<>();
×
3590
        }
3591
        this.extraParams.putAll(map);
×
3592
        return this;
×
3593
      }
3594
    }
3595

3596
    @Getter
3597
    public static class Dob {
3598
      /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3599
      @SerializedName("day")
3600
      Long day;
3601

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

3611
      /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3612
      @SerializedName("month")
3613
      Long month;
3614

3615
      /** <strong>Required.</strong> The four-digit year of birth. */
3616
      @SerializedName("year")
3617
      Long year;
3618

3619
      private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
3620
        this.day = day;
×
3621
        this.extraParams = extraParams;
×
3622
        this.month = month;
×
3623
        this.year = year;
×
3624
      }
×
3625

3626
      public static Builder builder() {
3627
        return new Builder();
×
3628
      }
3629

3630
      public static class Builder {
×
3631
        private Long day;
3632

3633
        private Map<String, Object> extraParams;
3634

3635
        private Long month;
3636

3637
        private Long year;
3638

3639
        /** Finalize and obtain parameter instance from this builder. */
3640
        public PaymentMethodCreateParams.Klarna.Dob build() {
3641
          return new PaymentMethodCreateParams.Klarna.Dob(
×
3642
              this.day, this.extraParams, this.month, this.year);
3643
        }
3644

3645
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3646
        public Builder setDay(Long day) {
3647
          this.day = day;
×
3648
          return this;
×
3649
        }
3650

3651
        /**
3652
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3653
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3654
         * map. See {@link PaymentMethodCreateParams.Klarna.Dob#extraParams} for the field
3655
         * documentation.
3656
         */
3657
        public Builder putExtraParam(String key, Object value) {
3658
          if (this.extraParams == null) {
×
3659
            this.extraParams = new HashMap<>();
×
3660
          }
3661
          this.extraParams.put(key, value);
×
3662
          return this;
×
3663
        }
3664

3665
        /**
3666
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3667
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3668
         * map. See {@link PaymentMethodCreateParams.Klarna.Dob#extraParams} for the field
3669
         * documentation.
3670
         */
3671
        public Builder putAllExtraParam(Map<String, Object> map) {
3672
          if (this.extraParams == null) {
×
3673
            this.extraParams = new HashMap<>();
×
3674
          }
3675
          this.extraParams.putAll(map);
×
3676
          return this;
×
3677
        }
3678

3679
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3680
        public Builder setMonth(Long month) {
3681
          this.month = month;
×
3682
          return this;
×
3683
        }
3684

3685
        /** <strong>Required.</strong> The four-digit year of birth. */
3686
        public Builder setYear(Long year) {
3687
          this.year = year;
×
3688
          return this;
×
3689
        }
3690
      }
3691
    }
3692
  }
3693

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

3705
    private Konbini(Map<String, Object> extraParams) {
×
3706
      this.extraParams = extraParams;
×
3707
    }
×
3708

3709
    public static Builder builder() {
3710
      return new Builder();
×
3711
    }
3712

3713
    public static class Builder {
×
3714
      private Map<String, Object> extraParams;
3715

3716
      /** Finalize and obtain parameter instance from this builder. */
3717
      public PaymentMethodCreateParams.Konbini build() {
3718
        return new PaymentMethodCreateParams.Konbini(this.extraParams);
×
3719
      }
3720

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

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

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

3760
    private KrCard(Map<String, Object> extraParams) {
×
3761
      this.extraParams = extraParams;
×
3762
    }
×
3763

3764
    public static Builder builder() {
3765
      return new Builder();
×
3766
    }
3767

3768
    public static class Builder {
×
3769
      private Map<String, Object> extraParams;
3770

3771
      /** Finalize and obtain parameter instance from this builder. */
3772
      public PaymentMethodCreateParams.KrCard build() {
3773
        return new PaymentMethodCreateParams.KrCard(this.extraParams);
×
3774
      }
3775

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

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

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

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

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

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

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

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

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

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

3870
    private MbWay(Map<String, Object> extraParams) {
×
3871
      this.extraParams = extraParams;
×
3872
    }
×
3873

3874
    public static Builder builder() {
3875
      return new Builder();
×
3876
    }
3877

3878
    public static class Builder {
×
3879
      private Map<String, Object> extraParams;
3880

3881
      /** Finalize and obtain parameter instance from this builder. */
3882
      public PaymentMethodCreateParams.MbWay build() {
3883
        return new PaymentMethodCreateParams.MbWay(this.extraParams);
×
3884
      }
3885

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

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

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

3925
    private Mobilepay(Map<String, Object> extraParams) {
×
3926
      this.extraParams = extraParams;
×
3927
    }
×
3928

3929
    public static Builder builder() {
3930
      return new Builder();
×
3931
    }
3932

3933
    public static class Builder {
×
3934
      private Map<String, Object> extraParams;
3935

3936
      /** Finalize and obtain parameter instance from this builder. */
3937
      public PaymentMethodCreateParams.Mobilepay build() {
3938
        return new PaymentMethodCreateParams.Mobilepay(this.extraParams);
×
3939
      }
3940

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

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

3969
  @Getter
3970
  public static class Multibanco {
3971
    /**
3972
     * Map of extra parameters for custom features not available in this client library. The content
3973
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
3974
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
3975
     * param object. Effectively, this map is flattened to its parent instance.
3976
     */
3977
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3978
    Map<String, Object> extraParams;
3979

3980
    private Multibanco(Map<String, Object> extraParams) {
×
3981
      this.extraParams = extraParams;
×
3982
    }
×
3983

3984
    public static Builder builder() {
3985
      return new Builder();
×
3986
    }
3987

3988
    public static class Builder {
×
3989
      private Map<String, Object> extraParams;
3990

3991
      /** Finalize and obtain parameter instance from this builder. */
3992
      public PaymentMethodCreateParams.Multibanco build() {
3993
        return new PaymentMethodCreateParams.Multibanco(this.extraParams);
×
3994
      }
3995

3996
      /**
3997
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
3998
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
3999
       * PaymentMethodCreateParams.Multibanco#extraParams} for the field documentation.
4000
       */
4001
      public Builder putExtraParam(String key, Object value) {
4002
        if (this.extraParams == null) {
×
4003
          this.extraParams = new HashMap<>();
×
4004
        }
4005
        this.extraParams.put(key, value);
×
4006
        return this;
×
4007
      }
4008

4009
      /**
4010
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4011
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4012
       * See {@link PaymentMethodCreateParams.Multibanco#extraParams} for the field documentation.
4013
       */
4014
      public Builder putAllExtraParam(Map<String, Object> map) {
4015
        if (this.extraParams == null) {
×
4016
          this.extraParams = new HashMap<>();
×
4017
        }
4018
        this.extraParams.putAll(map);
×
4019
        return this;
×
4020
      }
4021
    }
4022
  }
4023

4024
  @Getter
4025
  public static class NaverPay {
4026
    /**
4027
     * Map of extra parameters for custom features not available in this client library. The content
4028
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4029
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4030
     * param object. Effectively, this map is flattened to its parent instance.
4031
     */
4032
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4033
    Map<String, Object> extraParams;
4034

4035
    /**
4036
     * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
4037
     * defaults to {@code card}.
4038
     */
4039
    @SerializedName("funding")
4040
    Funding funding;
4041

4042
    private NaverPay(Map<String, Object> extraParams, Funding funding) {
×
4043
      this.extraParams = extraParams;
×
4044
      this.funding = funding;
×
4045
    }
×
4046

4047
    public static Builder builder() {
4048
      return new Builder();
×
4049
    }
4050

4051
    public static class Builder {
×
4052
      private Map<String, Object> extraParams;
4053

4054
      private Funding funding;
4055

4056
      /** Finalize and obtain parameter instance from this builder. */
4057
      public PaymentMethodCreateParams.NaverPay build() {
4058
        return new PaymentMethodCreateParams.NaverPay(this.extraParams, this.funding);
×
4059
      }
4060

4061
      /**
4062
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4063
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4064
       * PaymentMethodCreateParams.NaverPay#extraParams} for the field documentation.
4065
       */
4066
      public Builder putExtraParam(String key, Object value) {
4067
        if (this.extraParams == null) {
×
4068
          this.extraParams = new HashMap<>();
×
4069
        }
4070
        this.extraParams.put(key, value);
×
4071
        return this;
×
4072
      }
4073

4074
      /**
4075
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4076
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4077
       * See {@link PaymentMethodCreateParams.NaverPay#extraParams} for the field documentation.
4078
       */
4079
      public Builder putAllExtraParam(Map<String, Object> map) {
4080
        if (this.extraParams == null) {
×
4081
          this.extraParams = new HashMap<>();
×
4082
        }
4083
        this.extraParams.putAll(map);
×
4084
        return this;
×
4085
      }
4086

4087
      /**
4088
       * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
4089
       * defaults to {@code card}.
4090
       */
4091
      public Builder setFunding(PaymentMethodCreateParams.NaverPay.Funding funding) {
4092
        this.funding = funding;
×
4093
        return this;
×
4094
      }
4095
    }
4096

4097
    public enum Funding implements ApiRequestParams.EnumParam {
×
4098
      @SerializedName("card")
×
4099
      CARD("card"),
4100

4101
      @SerializedName("points")
×
4102
      POINTS("points");
4103

4104
      @Getter(onMethod_ = {@Override})
4105
      private final String value;
4106

4107
      Funding(String value) {
×
4108
        this.value = value;
×
4109
      }
×
4110
    }
4111
  }
4112

4113
  @Getter
4114
  public static class Oxxo {
4115
    /**
4116
     * Map of extra parameters for custom features not available in this client library. The content
4117
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4118
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4119
     * param object. Effectively, this map is flattened to its parent instance.
4120
     */
4121
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4122
    Map<String, Object> extraParams;
4123

4124
    private Oxxo(Map<String, Object> extraParams) {
×
4125
      this.extraParams = extraParams;
×
4126
    }
×
4127

4128
    public static Builder builder() {
4129
      return new Builder();
×
4130
    }
4131

4132
    public static class Builder {
×
4133
      private Map<String, Object> extraParams;
4134

4135
      /** Finalize and obtain parameter instance from this builder. */
4136
      public PaymentMethodCreateParams.Oxxo build() {
4137
        return new PaymentMethodCreateParams.Oxxo(this.extraParams);
×
4138
      }
4139

4140
      /**
4141
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4142
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4143
       * PaymentMethodCreateParams.Oxxo#extraParams} for the field documentation.
4144
       */
4145
      public Builder putExtraParam(String key, Object value) {
4146
        if (this.extraParams == null) {
×
4147
          this.extraParams = new HashMap<>();
×
4148
        }
4149
        this.extraParams.put(key, value);
×
4150
        return this;
×
4151
      }
4152

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

4168
  @Getter
4169
  public static class P24 {
4170
    /** The customer's bank. */
4171
    @SerializedName("bank")
4172
    Bank bank;
4173

4174
    /**
4175
     * Map of extra parameters for custom features not available in this client library. The content
4176
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4177
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4178
     * param object. Effectively, this map is flattened to its parent instance.
4179
     */
4180
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4181
    Map<String, Object> extraParams;
4182

4183
    private P24(Bank bank, Map<String, Object> extraParams) {
×
4184
      this.bank = bank;
×
4185
      this.extraParams = extraParams;
×
4186
    }
×
4187

4188
    public static Builder builder() {
4189
      return new Builder();
×
4190
    }
4191

4192
    public static class Builder {
×
4193
      private Bank bank;
4194

4195
      private Map<String, Object> extraParams;
4196

4197
      /** Finalize and obtain parameter instance from this builder. */
4198
      public PaymentMethodCreateParams.P24 build() {
4199
        return new PaymentMethodCreateParams.P24(this.bank, this.extraParams);
×
4200
      }
4201

4202
      /** The customer's bank. */
4203
      public Builder setBank(PaymentMethodCreateParams.P24.Bank bank) {
4204
        this.bank = bank;
×
4205
        return this;
×
4206
      }
4207

4208
      /**
4209
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4210
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4211
       * PaymentMethodCreateParams.P24#extraParams} for the field documentation.
4212
       */
4213
      public Builder putExtraParam(String key, Object value) {
4214
        if (this.extraParams == null) {
×
4215
          this.extraParams = new HashMap<>();
×
4216
        }
4217
        this.extraParams.put(key, value);
×
4218
        return this;
×
4219
      }
4220

4221
      /**
4222
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4223
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4224
       * See {@link PaymentMethodCreateParams.P24#extraParams} for the field documentation.
4225
       */
4226
      public Builder putAllExtraParam(Map<String, Object> map) {
4227
        if (this.extraParams == null) {
×
4228
          this.extraParams = new HashMap<>();
×
4229
        }
4230
        this.extraParams.putAll(map);
×
4231
        return this;
×
4232
      }
4233
    }
4234

4235
    public enum Bank implements ApiRequestParams.EnumParam {
×
4236
      @SerializedName("alior_bank")
×
4237
      ALIOR_BANK("alior_bank"),
4238

4239
      @SerializedName("bank_millennium")
×
4240
      BANK_MILLENNIUM("bank_millennium"),
4241

4242
      @SerializedName("bank_nowy_bfg_sa")
×
4243
      BANK_NOWY_BFG_SA("bank_nowy_bfg_sa"),
4244

4245
      @SerializedName("bank_pekao_sa")
×
4246
      BANK_PEKAO_SA("bank_pekao_sa"),
4247

4248
      @SerializedName("banki_spbdzielcze")
×
4249
      BANKI_SPBDZIELCZE("banki_spbdzielcze"),
4250

4251
      @SerializedName("blik")
×
4252
      BLIK("blik"),
4253

4254
      @SerializedName("bnp_paribas")
×
4255
      BNP_PARIBAS("bnp_paribas"),
4256

4257
      @SerializedName("boz")
×
4258
      BOZ("boz"),
4259

4260
      @SerializedName("citi_handlowy")
×
4261
      CITI_HANDLOWY("citi_handlowy"),
4262

4263
      @SerializedName("credit_agricole")
×
4264
      CREDIT_AGRICOLE("credit_agricole"),
4265

4266
      @SerializedName("envelobank")
×
4267
      ENVELOBANK("envelobank"),
4268

4269
      @SerializedName("etransfer_pocztowy24")
×
4270
      ETRANSFER_POCZTOWY24("etransfer_pocztowy24"),
4271

4272
      @SerializedName("getin_bank")
×
4273
      GETIN_BANK("getin_bank"),
4274

4275
      @SerializedName("ideabank")
×
4276
      IDEABANK("ideabank"),
4277

4278
      @SerializedName("ing")
×
4279
      ING("ing"),
4280

4281
      @SerializedName("inteligo")
×
4282
      INTELIGO("inteligo"),
4283

4284
      @SerializedName("mbank_mtransfer")
×
4285
      MBANK_MTRANSFER("mbank_mtransfer"),
4286

4287
      @SerializedName("nest_przelew")
×
4288
      NEST_PRZELEW("nest_przelew"),
4289

4290
      @SerializedName("noble_pay")
×
4291
      NOBLE_PAY("noble_pay"),
4292

4293
      @SerializedName("pbac_z_ipko")
×
4294
      PBAC_Z_IPKO("pbac_z_ipko"),
4295

4296
      @SerializedName("plus_bank")
×
4297
      PLUS_BANK("plus_bank"),
4298

4299
      @SerializedName("santander_przelew24")
×
4300
      SANTANDER_PRZELEW24("santander_przelew24"),
4301

4302
      @SerializedName("tmobile_usbugi_bankowe")
×
4303
      TMOBILE_USBUGI_BANKOWE("tmobile_usbugi_bankowe"),
4304

4305
      @SerializedName("toyota_bank")
×
4306
      TOYOTA_BANK("toyota_bank"),
4307

4308
      @SerializedName("velobank")
×
4309
      VELOBANK("velobank"),
4310

4311
      @SerializedName("volkswagen_bank")
×
4312
      VOLKSWAGEN_BANK("volkswagen_bank");
4313

4314
      @Getter(onMethod_ = {@Override})
4315
      private final String value;
4316

4317
      Bank(String value) {
×
4318
        this.value = value;
×
4319
      }
×
4320
    }
4321
  }
4322

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

4334
    private Payco(Map<String, Object> extraParams) {
×
4335
      this.extraParams = extraParams;
×
4336
    }
×
4337

4338
    public static Builder builder() {
4339
      return new Builder();
×
4340
    }
4341

4342
    public static class Builder {
×
4343
      private Map<String, Object> extraParams;
4344

4345
      /** Finalize and obtain parameter instance from this builder. */
4346
      public PaymentMethodCreateParams.Payco build() {
4347
        return new PaymentMethodCreateParams.Payco(this.extraParams);
×
4348
      }
4349

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

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

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

4389
    private Paynow(Map<String, Object> extraParams) {
×
4390
      this.extraParams = extraParams;
×
4391
    }
×
4392

4393
    public static Builder builder() {
4394
      return new Builder();
×
4395
    }
4396

4397
    public static class Builder {
×
4398
      private Map<String, Object> extraParams;
4399

4400
      /** Finalize and obtain parameter instance from this builder. */
4401
      public PaymentMethodCreateParams.Paynow build() {
4402
        return new PaymentMethodCreateParams.Paynow(this.extraParams);
×
4403
      }
4404

4405
      /**
4406
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4407
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4408
       * PaymentMethodCreateParams.Paynow#extraParams} for the field documentation.
4409
       */
4410
      public Builder putExtraParam(String key, Object value) {
4411
        if (this.extraParams == null) {
×
4412
          this.extraParams = new HashMap<>();
×
4413
        }
4414
        this.extraParams.put(key, value);
×
4415
        return this;
×
4416
      }
4417

4418
      /**
4419
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4420
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4421
       * See {@link PaymentMethodCreateParams.Paynow#extraParams} for the field documentation.
4422
       */
4423
      public Builder putAllExtraParam(Map<String, Object> map) {
4424
        if (this.extraParams == null) {
×
4425
          this.extraParams = new HashMap<>();
×
4426
        }
4427
        this.extraParams.putAll(map);
×
4428
        return this;
×
4429
      }
4430
    }
4431
  }
4432

4433
  @Getter
4434
  public static class Paypal {
4435
    /**
4436
     * Map of extra parameters for custom features not available in this client library. The content
4437
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4438
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4439
     * param object. Effectively, this map is flattened to its parent instance.
4440
     */
4441
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4442
    Map<String, Object> extraParams;
4443

4444
    private Paypal(Map<String, Object> extraParams) {
×
4445
      this.extraParams = extraParams;
×
4446
    }
×
4447

4448
    public static Builder builder() {
4449
      return new Builder();
×
4450
    }
4451

4452
    public static class Builder {
×
4453
      private Map<String, Object> extraParams;
4454

4455
      /** Finalize and obtain parameter instance from this builder. */
4456
      public PaymentMethodCreateParams.Paypal build() {
4457
        return new PaymentMethodCreateParams.Paypal(this.extraParams);
×
4458
      }
4459

4460
      /**
4461
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
4462
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
4463
       * PaymentMethodCreateParams.Paypal#extraParams} for the field documentation.
4464
       */
4465
      public Builder putExtraParam(String key, Object value) {
4466
        if (this.extraParams == null) {
×
4467
          this.extraParams = new HashMap<>();
×
4468
        }
4469
        this.extraParams.put(key, value);
×
4470
        return this;
×
4471
      }
4472

4473
      /**
4474
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4475
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4476
       * See {@link PaymentMethodCreateParams.Paypal#extraParams} for the field documentation.
4477
       */
4478
      public Builder putAllExtraParam(Map<String, Object> map) {
4479
        if (this.extraParams == null) {
×
4480
          this.extraParams = new HashMap<>();
×
4481
        }
4482
        this.extraParams.putAll(map);
×
4483
        return this;
×
4484
      }
4485
    }
4486
  }
4487

4488
  @Getter
4489
  public static class Payto {
4490
    /** The account number for the bank account. */
4491
    @SerializedName("account_number")
4492
    String accountNumber;
4493

4494
    /** Bank-State-Branch number of the bank account. */
4495
    @SerializedName("bsb_number")
4496
    String bsbNumber;
4497

4498
    /**
4499
     * Map of extra parameters for custom features not available in this client library. The content
4500
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4501
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4502
     * param object. Effectively, this map is flattened to its parent instance.
4503
     */
4504
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4505
    Map<String, Object> extraParams;
4506

4507
    /** The PayID alias for the bank account. */
4508
    @SerializedName("pay_id")
4509
    String payId;
4510

4511
    private Payto(
4512
        String accountNumber, String bsbNumber, Map<String, Object> extraParams, String payId) {
×
4513
      this.accountNumber = accountNumber;
×
4514
      this.bsbNumber = bsbNumber;
×
4515
      this.extraParams = extraParams;
×
4516
      this.payId = payId;
×
4517
    }
×
4518

4519
    public static Builder builder() {
4520
      return new Builder();
×
4521
    }
4522

4523
    public static class Builder {
×
4524
      private String accountNumber;
4525

4526
      private String bsbNumber;
4527

4528
      private Map<String, Object> extraParams;
4529

4530
      private String payId;
4531

4532
      /** Finalize and obtain parameter instance from this builder. */
4533
      public PaymentMethodCreateParams.Payto build() {
4534
        return new PaymentMethodCreateParams.Payto(
×
4535
            this.accountNumber, this.bsbNumber, this.extraParams, this.payId);
4536
      }
4537

4538
      /** The account number for the bank account. */
4539
      public Builder setAccountNumber(String accountNumber) {
4540
        this.accountNumber = accountNumber;
×
4541
        return this;
×
4542
      }
4543

4544
      /** Bank-State-Branch number of the bank account. */
4545
      public Builder setBsbNumber(String bsbNumber) {
4546
        this.bsbNumber = bsbNumber;
×
4547
        return this;
×
4548
      }
4549

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

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

4576
      /** The PayID alias for the bank account. */
4577
      public Builder setPayId(String payId) {
4578
        this.payId = payId;
×
4579
        return this;
×
4580
      }
4581
    }
4582
  }
4583

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

4595
    private Pix(Map<String, Object> extraParams) {
×
4596
      this.extraParams = extraParams;
×
4597
    }
×
4598

4599
    public static Builder builder() {
4600
      return new Builder();
×
4601
    }
4602

4603
    public static class Builder {
×
4604
      private Map<String, Object> extraParams;
4605

4606
      /** Finalize and obtain parameter instance from this builder. */
4607
      public PaymentMethodCreateParams.Pix build() {
4608
        return new PaymentMethodCreateParams.Pix(this.extraParams);
×
4609
      }
4610

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

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

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

4650
    private Promptpay(Map<String, Object> extraParams) {
×
4651
      this.extraParams = extraParams;
×
4652
    }
×
4653

4654
    public static Builder builder() {
4655
      return new Builder();
×
4656
    }
4657

4658
    public static class Builder {
×
4659
      private Map<String, Object> extraParams;
4660

4661
      /** Finalize and obtain parameter instance from this builder. */
4662
      public PaymentMethodCreateParams.Promptpay build() {
4663
        return new PaymentMethodCreateParams.Promptpay(this.extraParams);
×
4664
      }
4665

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

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

4694
  @Getter
4695
  public static class Qris {
4696
    /**
4697
     * Map of extra parameters for custom features not available in this client library. The content
4698
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4699
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4700
     * param object. Effectively, this map is flattened to its parent instance.
4701
     */
4702
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4703
    Map<String, Object> extraParams;
4704

4705
    private Qris(Map<String, Object> extraParams) {
×
4706
      this.extraParams = extraParams;
×
4707
    }
×
4708

4709
    public static Builder builder() {
4710
      return new Builder();
×
4711
    }
4712

4713
    public static class Builder {
×
4714
      private Map<String, Object> extraParams;
4715

4716
      /** Finalize and obtain parameter instance from this builder. */
4717
      public PaymentMethodCreateParams.Qris build() {
4718
        return new PaymentMethodCreateParams.Qris(this.extraParams);
×
4719
      }
4720

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

4734
      /**
4735
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4736
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4737
       * See {@link PaymentMethodCreateParams.Qris#extraParams} for the field documentation.
4738
       */
4739
      public Builder putAllExtraParam(Map<String, Object> map) {
4740
        if (this.extraParams == null) {
×
4741
          this.extraParams = new HashMap<>();
×
4742
        }
4743
        this.extraParams.putAll(map);
×
4744
        return this;
×
4745
      }
4746
    }
4747
  }
4748

4749
  @Getter
4750
  public static class RadarOptions {
4751
    /**
4752
     * Map of extra parameters for custom features not available in this client library. The content
4753
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4754
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4755
     * param object. Effectively, this map is flattened to its parent instance.
4756
     */
4757
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4758
    Map<String, Object> extraParams;
4759

4760
    /**
4761
     * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4762
     * the browser metadata and device details that help Radar make more accurate predictions on
4763
     * your payments.
4764
     */
4765
    @SerializedName("session")
4766
    String session;
4767

4768
    private RadarOptions(Map<String, Object> extraParams, String session) {
×
4769
      this.extraParams = extraParams;
×
4770
      this.session = session;
×
4771
    }
×
4772

4773
    public static Builder builder() {
4774
      return new Builder();
×
4775
    }
4776

4777
    public static class Builder {
×
4778
      private Map<String, Object> extraParams;
4779

4780
      private String session;
4781

4782
      /** Finalize and obtain parameter instance from this builder. */
4783
      public PaymentMethodCreateParams.RadarOptions build() {
4784
        return new PaymentMethodCreateParams.RadarOptions(this.extraParams, this.session);
×
4785
      }
4786

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

4800
      /**
4801
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4802
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4803
       * See {@link PaymentMethodCreateParams.RadarOptions#extraParams} for the field documentation.
4804
       */
4805
      public Builder putAllExtraParam(Map<String, Object> map) {
4806
        if (this.extraParams == null) {
×
4807
          this.extraParams = new HashMap<>();
×
4808
        }
4809
        this.extraParams.putAll(map);
×
4810
        return this;
×
4811
      }
4812

4813
      /**
4814
       * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4815
       * the browser metadata and device details that help Radar make more accurate predictions on
4816
       * your payments.
4817
       */
4818
      public Builder setSession(String session) {
4819
        this.session = session;
×
4820
        return this;
×
4821
      }
4822
    }
4823
  }
4824

4825
  @Getter
4826
  public static class Rechnung {
4827
    /** <strong>Required.</strong> Customer's date of birth */
4828
    @SerializedName("dob")
4829
    Dob dob;
4830

4831
    /**
4832
     * Map of extra parameters for custom features not available in this client library. The content
4833
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
4834
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
4835
     * param object. Effectively, this map is flattened to its parent instance.
4836
     */
4837
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4838
    Map<String, Object> extraParams;
4839

4840
    private Rechnung(Dob dob, Map<String, Object> extraParams) {
×
4841
      this.dob = dob;
×
4842
      this.extraParams = extraParams;
×
4843
    }
×
4844

4845
    public static Builder builder() {
4846
      return new Builder();
×
4847
    }
4848

4849
    public static class Builder {
×
4850
      private Dob dob;
4851

4852
      private Map<String, Object> extraParams;
4853

4854
      /** Finalize and obtain parameter instance from this builder. */
4855
      public PaymentMethodCreateParams.Rechnung build() {
4856
        return new PaymentMethodCreateParams.Rechnung(this.dob, this.extraParams);
×
4857
      }
4858

4859
      /** <strong>Required.</strong> Customer's date of birth */
4860
      public Builder setDob(PaymentMethodCreateParams.Rechnung.Dob dob) {
4861
        this.dob = dob;
×
4862
        return this;
×
4863
      }
4864

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

4878
      /**
4879
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4880
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
4881
       * See {@link PaymentMethodCreateParams.Rechnung#extraParams} for the field documentation.
4882
       */
4883
      public Builder putAllExtraParam(Map<String, Object> map) {
4884
        if (this.extraParams == null) {
×
4885
          this.extraParams = new HashMap<>();
×
4886
        }
4887
        this.extraParams.putAll(map);
×
4888
        return this;
×
4889
      }
4890
    }
4891

4892
    @Getter
4893
    public static class Dob {
4894
      /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4895
      @SerializedName("day")
4896
      Long day;
4897

4898
      /**
4899
       * Map of extra parameters for custom features not available in this client library. The
4900
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4901
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4902
       * name in this param object. Effectively, this map is flattened to its parent instance.
4903
       */
4904
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4905
      Map<String, Object> extraParams;
4906

4907
      /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4908
      @SerializedName("month")
4909
      Long month;
4910

4911
      /** <strong>Required.</strong> The four-digit year of birth. */
4912
      @SerializedName("year")
4913
      Long year;
4914

4915
      private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
4916
        this.day = day;
×
4917
        this.extraParams = extraParams;
×
4918
        this.month = month;
×
4919
        this.year = year;
×
4920
      }
×
4921

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

4926
      public static class Builder {
×
4927
        private Long day;
4928

4929
        private Map<String, Object> extraParams;
4930

4931
        private Long month;
4932

4933
        private Long year;
4934

4935
        /** Finalize and obtain parameter instance from this builder. */
4936
        public PaymentMethodCreateParams.Rechnung.Dob build() {
4937
          return new PaymentMethodCreateParams.Rechnung.Dob(
×
4938
              this.day, this.extraParams, this.month, this.year);
4939
        }
4940

4941
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4942
        public Builder setDay(Long day) {
4943
          this.day = day;
×
4944
          return this;
×
4945
        }
4946

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

4961
        /**
4962
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4963
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4964
         * map. See {@link PaymentMethodCreateParams.Rechnung.Dob#extraParams} for the field
4965
         * documentation.
4966
         */
4967
        public Builder putAllExtraParam(Map<String, Object> map) {
4968
          if (this.extraParams == null) {
×
4969
            this.extraParams = new HashMap<>();
×
4970
          }
4971
          this.extraParams.putAll(map);
×
4972
          return this;
×
4973
        }
4974

4975
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4976
        public Builder setMonth(Long month) {
4977
          this.month = month;
×
4978
          return this;
×
4979
        }
4980

4981
        /** <strong>Required.</strong> The four-digit year of birth. */
4982
        public Builder setYear(Long year) {
4983
          this.year = year;
×
4984
          return this;
×
4985
        }
4986
      }
4987
    }
4988
  }
4989

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

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

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

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

5012
      /** Finalize and obtain parameter instance from this builder. */
5013
      public PaymentMethodCreateParams.RevolutPay build() {
5014
        return new PaymentMethodCreateParams.RevolutPay(this.extraParams);
×
5015
      }
5016

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

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

5045
  @Getter
5046
  public static class SamsungPay {
5047
    /**
5048
     * Map of extra parameters for custom features not available in this client library. The content
5049
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5050
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5051
     * param object. Effectively, this map is flattened to its parent instance.
5052
     */
5053
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5054
    Map<String, Object> extraParams;
5055

5056
    private SamsungPay(Map<String, Object> extraParams) {
×
5057
      this.extraParams = extraParams;
×
5058
    }
×
5059

5060
    public static Builder builder() {
5061
      return new Builder();
×
5062
    }
5063

5064
    public static class Builder {
×
5065
      private Map<String, Object> extraParams;
5066

5067
      /** Finalize and obtain parameter instance from this builder. */
5068
      public PaymentMethodCreateParams.SamsungPay build() {
5069
        return new PaymentMethodCreateParams.SamsungPay(this.extraParams);
×
5070
      }
5071

5072
      /**
5073
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5074
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5075
       * PaymentMethodCreateParams.SamsungPay#extraParams} for the field documentation.
5076
       */
5077
      public Builder putExtraParam(String key, Object value) {
5078
        if (this.extraParams == null) {
×
5079
          this.extraParams = new HashMap<>();
×
5080
        }
5081
        this.extraParams.put(key, value);
×
5082
        return this;
×
5083
      }
5084

5085
      /**
5086
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5087
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5088
       * See {@link PaymentMethodCreateParams.SamsungPay#extraParams} for the field documentation.
5089
       */
5090
      public Builder putAllExtraParam(Map<String, Object> map) {
5091
        if (this.extraParams == null) {
×
5092
          this.extraParams = new HashMap<>();
×
5093
        }
5094
        this.extraParams.putAll(map);
×
5095
        return this;
×
5096
      }
5097
    }
5098
  }
5099

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

5111
    /** <strong>Required.</strong> IBAN of the bank account. */
5112
    @SerializedName("iban")
5113
    String iban;
5114

5115
    private SepaDebit(Map<String, Object> extraParams, String iban) {
×
5116
      this.extraParams = extraParams;
×
5117
      this.iban = iban;
×
5118
    }
×
5119

5120
    public static Builder builder() {
5121
      return new Builder();
×
5122
    }
5123

5124
    public static class Builder {
×
5125
      private Map<String, Object> extraParams;
5126

5127
      private String iban;
5128

5129
      /** Finalize and obtain parameter instance from this builder. */
5130
      public PaymentMethodCreateParams.SepaDebit build() {
5131
        return new PaymentMethodCreateParams.SepaDebit(this.extraParams, this.iban);
×
5132
      }
5133

5134
      /**
5135
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5136
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5137
       * PaymentMethodCreateParams.SepaDebit#extraParams} for the field documentation.
5138
       */
5139
      public Builder putExtraParam(String key, Object value) {
5140
        if (this.extraParams == null) {
×
5141
          this.extraParams = new HashMap<>();
×
5142
        }
5143
        this.extraParams.put(key, value);
×
5144
        return this;
×
5145
      }
5146

5147
      /**
5148
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5149
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5150
       * See {@link PaymentMethodCreateParams.SepaDebit#extraParams} for the field documentation.
5151
       */
5152
      public Builder putAllExtraParam(Map<String, Object> map) {
5153
        if (this.extraParams == null) {
×
5154
          this.extraParams = new HashMap<>();
×
5155
        }
5156
        this.extraParams.putAll(map);
×
5157
        return this;
×
5158
      }
5159

5160
      /** <strong>Required.</strong> IBAN of the bank account. */
5161
      public Builder setIban(String iban) {
5162
        this.iban = iban;
×
5163
        return this;
×
5164
      }
5165
    }
5166
  }
5167

5168
  @Getter
5169
  public static class Shopeepay {
5170
    /**
5171
     * Map of extra parameters for custom features not available in this client library. The content
5172
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5173
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5174
     * param object. Effectively, this map is flattened to its parent instance.
5175
     */
5176
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5177
    Map<String, Object> extraParams;
5178

5179
    private Shopeepay(Map<String, Object> extraParams) {
×
5180
      this.extraParams = extraParams;
×
5181
    }
×
5182

5183
    public static Builder builder() {
5184
      return new Builder();
×
5185
    }
5186

5187
    public static class Builder {
×
5188
      private Map<String, Object> extraParams;
5189

5190
      /** Finalize and obtain parameter instance from this builder. */
5191
      public PaymentMethodCreateParams.Shopeepay build() {
5192
        return new PaymentMethodCreateParams.Shopeepay(this.extraParams);
×
5193
      }
5194

5195
      /**
5196
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5197
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5198
       * PaymentMethodCreateParams.Shopeepay#extraParams} for the field documentation.
5199
       */
5200
      public Builder putExtraParam(String key, Object value) {
5201
        if (this.extraParams == null) {
×
5202
          this.extraParams = new HashMap<>();
×
5203
        }
5204
        this.extraParams.put(key, value);
×
5205
        return this;
×
5206
      }
5207

5208
      /**
5209
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5210
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5211
       * See {@link PaymentMethodCreateParams.Shopeepay#extraParams} for the field documentation.
5212
       */
5213
      public Builder putAllExtraParam(Map<String, Object> map) {
5214
        if (this.extraParams == null) {
×
5215
          this.extraParams = new HashMap<>();
×
5216
        }
5217
        this.extraParams.putAll(map);
×
5218
        return this;
×
5219
      }
5220
    }
5221
  }
5222

5223
  @Getter
5224
  public static class Sofort {
5225
    /**
5226
     * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
5227
     * located in.
5228
     */
5229
    @SerializedName("country")
5230
    Country country;
5231

5232
    /**
5233
     * Map of extra parameters for custom features not available in this client library. The content
5234
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5235
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5236
     * param object. Effectively, this map is flattened to its parent instance.
5237
     */
5238
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5239
    Map<String, Object> extraParams;
5240

5241
    private Sofort(Country country, Map<String, Object> extraParams) {
×
5242
      this.country = country;
×
5243
      this.extraParams = extraParams;
×
5244
    }
×
5245

5246
    public static Builder builder() {
5247
      return new Builder();
×
5248
    }
5249

5250
    public static class Builder {
×
5251
      private Country country;
5252

5253
      private Map<String, Object> extraParams;
5254

5255
      /** Finalize and obtain parameter instance from this builder. */
5256
      public PaymentMethodCreateParams.Sofort build() {
5257
        return new PaymentMethodCreateParams.Sofort(this.country, this.extraParams);
×
5258
      }
5259

5260
      /**
5261
       * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
5262
       * located in.
5263
       */
5264
      public Builder setCountry(PaymentMethodCreateParams.Sofort.Country country) {
5265
        this.country = country;
×
5266
        return this;
×
5267
      }
5268

5269
      /**
5270
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5271
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5272
       * PaymentMethodCreateParams.Sofort#extraParams} for the field documentation.
5273
       */
5274
      public Builder putExtraParam(String key, Object value) {
5275
        if (this.extraParams == null) {
×
5276
          this.extraParams = new HashMap<>();
×
5277
        }
5278
        this.extraParams.put(key, value);
×
5279
        return this;
×
5280
      }
5281

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

5296
    public enum Country implements ApiRequestParams.EnumParam {
×
5297
      @SerializedName("AT")
×
5298
      AT("AT"),
5299

5300
      @SerializedName("BE")
×
5301
      BE("BE"),
5302

5303
      @SerializedName("DE")
×
5304
      DE("DE"),
5305

5306
      @SerializedName("ES")
×
5307
      ES("ES"),
5308

5309
      @SerializedName("IT")
×
5310
      IT("IT"),
5311

5312
      @SerializedName("NL")
×
5313
      NL("NL");
5314

5315
      @Getter(onMethod_ = {@Override})
5316
      private final String value;
5317

5318
      Country(String value) {
×
5319
        this.value = value;
×
5320
      }
×
5321
    }
5322
  }
5323

5324
  @Getter
5325
  public static class Swish {
5326
    /**
5327
     * Map of extra parameters for custom features not available in this client library. The content
5328
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5329
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5330
     * param object. Effectively, this map is flattened to its parent instance.
5331
     */
5332
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5333
    Map<String, Object> extraParams;
5334

5335
    private Swish(Map<String, Object> extraParams) {
×
5336
      this.extraParams = extraParams;
×
5337
    }
×
5338

5339
    public static Builder builder() {
5340
      return new Builder();
×
5341
    }
5342

5343
    public static class Builder {
×
5344
      private Map<String, Object> extraParams;
5345

5346
      /** Finalize and obtain parameter instance from this builder. */
5347
      public PaymentMethodCreateParams.Swish build() {
5348
        return new PaymentMethodCreateParams.Swish(this.extraParams);
×
5349
      }
5350

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

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

5379
  @Getter
5380
  public static class Token {
5381
    /**
5382
     * Map of extra parameters for custom features not available in this client library. The content
5383
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5384
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5385
     * param object. Effectively, this map is flattened to its parent instance.
5386
     */
5387
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5388
    Map<String, Object> extraParams;
5389

5390
    /**
5391
     * For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple
5392
     * Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card: {token:
5393
     * &quot;tok_visa&quot;}.
5394
     */
5395
    @SerializedName("token")
5396
    String token;
5397

5398
    private Token(Map<String, Object> extraParams, String token) {
×
5399
      this.extraParams = extraParams;
×
5400
      this.token = token;
×
5401
    }
×
5402

5403
    public static Builder builder() {
5404
      return new Builder();
×
5405
    }
5406

5407
    public static class Builder {
×
5408
      private Map<String, Object> extraParams;
5409

5410
      private String token;
5411

5412
      /** Finalize and obtain parameter instance from this builder. */
5413
      public PaymentMethodCreateParams.Token build() {
5414
        return new PaymentMethodCreateParams.Token(this.extraParams, this.token);
×
5415
      }
5416

5417
      /**
5418
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5419
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5420
       * PaymentMethodCreateParams.Token#extraParams} for the field documentation.
5421
       */
5422
      public Builder putExtraParam(String key, Object value) {
5423
        if (this.extraParams == null) {
×
5424
          this.extraParams = new HashMap<>();
×
5425
        }
5426
        this.extraParams.put(key, value);
×
5427
        return this;
×
5428
      }
5429

5430
      /**
5431
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5432
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5433
       * See {@link PaymentMethodCreateParams.Token#extraParams} for the field documentation.
5434
       */
5435
      public Builder putAllExtraParam(Map<String, Object> map) {
5436
        if (this.extraParams == null) {
×
5437
          this.extraParams = new HashMap<>();
×
5438
        }
5439
        this.extraParams.putAll(map);
×
5440
        return this;
×
5441
      }
5442

5443
      /**
5444
       * For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple
5445
       * Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card:
5446
       * {token: &quot;tok_visa&quot;}.
5447
       */
5448
      public Builder setToken(String token) {
5449
        this.token = token;
×
5450
        return this;
×
5451
      }
5452
    }
5453
  }
5454

5455
  @Getter
5456
  public static class Twint {
5457
    /**
5458
     * Map of extra parameters for custom features not available in this client library. The content
5459
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5460
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5461
     * param object. Effectively, this map is flattened to its parent instance.
5462
     */
5463
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5464
    Map<String, Object> extraParams;
5465

5466
    private Twint(Map<String, Object> extraParams) {
×
5467
      this.extraParams = extraParams;
×
5468
    }
×
5469

5470
    public static Builder builder() {
5471
      return new Builder();
×
5472
    }
5473

5474
    public static class Builder {
×
5475
      private Map<String, Object> extraParams;
5476

5477
      /** Finalize and obtain parameter instance from this builder. */
5478
      public PaymentMethodCreateParams.Twint build() {
5479
        return new PaymentMethodCreateParams.Twint(this.extraParams);
×
5480
      }
5481

5482
      /**
5483
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5484
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5485
       * PaymentMethodCreateParams.Twint#extraParams} for the field documentation.
5486
       */
5487
      public Builder putExtraParam(String key, Object value) {
5488
        if (this.extraParams == null) {
×
5489
          this.extraParams = new HashMap<>();
×
5490
        }
5491
        this.extraParams.put(key, value);
×
5492
        return this;
×
5493
      }
5494

5495
      /**
5496
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5497
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5498
       * See {@link PaymentMethodCreateParams.Twint#extraParams} for the field documentation.
5499
       */
5500
      public Builder putAllExtraParam(Map<String, Object> map) {
5501
        if (this.extraParams == null) {
×
5502
          this.extraParams = new HashMap<>();
×
5503
        }
5504
        this.extraParams.putAll(map);
×
5505
        return this;
×
5506
      }
5507
    }
5508
  }
5509

5510
  @Getter
5511
  public static class UsBankAccount {
5512
    /** Account holder type: individual or company. */
5513
    @SerializedName("account_holder_type")
5514
    AccountHolderType accountHolderType;
5515

5516
    /** Account number of the bank account. */
5517
    @SerializedName("account_number")
5518
    String accountNumber;
5519

5520
    /** Account type: checkings or savings. Defaults to checking if omitted. */
5521
    @SerializedName("account_type")
5522
    AccountType accountType;
5523

5524
    /**
5525
     * Map of extra parameters for custom features not available in this client library. The content
5526
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5527
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5528
     * param object. Effectively, this map is flattened to its parent instance.
5529
     */
5530
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5531
    Map<String, Object> extraParams;
5532

5533
    /** The ID of a Financial Connections Account to use as a payment method. */
5534
    @SerializedName("financial_connections_account")
5535
    String financialConnectionsAccount;
5536

5537
    /** Routing number of the bank account. */
5538
    @SerializedName("routing_number")
5539
    String routingNumber;
5540

5541
    private UsBankAccount(
5542
        AccountHolderType accountHolderType,
5543
        String accountNumber,
5544
        AccountType accountType,
5545
        Map<String, Object> extraParams,
5546
        String financialConnectionsAccount,
5547
        String routingNumber) {
×
5548
      this.accountHolderType = accountHolderType;
×
5549
      this.accountNumber = accountNumber;
×
5550
      this.accountType = accountType;
×
5551
      this.extraParams = extraParams;
×
5552
      this.financialConnectionsAccount = financialConnectionsAccount;
×
5553
      this.routingNumber = routingNumber;
×
5554
    }
×
5555

5556
    public static Builder builder() {
5557
      return new Builder();
×
5558
    }
5559

5560
    public static class Builder {
×
5561
      private AccountHolderType accountHolderType;
5562

5563
      private String accountNumber;
5564

5565
      private AccountType accountType;
5566

5567
      private Map<String, Object> extraParams;
5568

5569
      private String financialConnectionsAccount;
5570

5571
      private String routingNumber;
5572

5573
      /** Finalize and obtain parameter instance from this builder. */
5574
      public PaymentMethodCreateParams.UsBankAccount build() {
5575
        return new PaymentMethodCreateParams.UsBankAccount(
×
5576
            this.accountHolderType,
5577
            this.accountNumber,
5578
            this.accountType,
5579
            this.extraParams,
5580
            this.financialConnectionsAccount,
5581
            this.routingNumber);
5582
      }
5583

5584
      /** Account holder type: individual or company. */
5585
      public Builder setAccountHolderType(
5586
          PaymentMethodCreateParams.UsBankAccount.AccountHolderType accountHolderType) {
5587
        this.accountHolderType = accountHolderType;
×
5588
        return this;
×
5589
      }
5590

5591
      /** Account number of the bank account. */
5592
      public Builder setAccountNumber(String accountNumber) {
5593
        this.accountNumber = accountNumber;
×
5594
        return this;
×
5595
      }
5596

5597
      /** Account type: checkings or savings. Defaults to checking if omitted. */
5598
      public Builder setAccountType(
5599
          PaymentMethodCreateParams.UsBankAccount.AccountType accountType) {
5600
        this.accountType = accountType;
×
5601
        return this;
×
5602
      }
5603

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

5617
      /**
5618
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5619
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5620
       * See {@link PaymentMethodCreateParams.UsBankAccount#extraParams} for the field
5621
       * documentation.
5622
       */
5623
      public Builder putAllExtraParam(Map<String, Object> map) {
5624
        if (this.extraParams == null) {
×
5625
          this.extraParams = new HashMap<>();
×
5626
        }
5627
        this.extraParams.putAll(map);
×
5628
        return this;
×
5629
      }
5630

5631
      /** The ID of a Financial Connections Account to use as a payment method. */
5632
      public Builder setFinancialConnectionsAccount(String financialConnectionsAccount) {
5633
        this.financialConnectionsAccount = financialConnectionsAccount;
×
5634
        return this;
×
5635
      }
5636

5637
      /** Routing number of the bank account. */
5638
      public Builder setRoutingNumber(String routingNumber) {
5639
        this.routingNumber = routingNumber;
×
5640
        return this;
×
5641
      }
5642
    }
5643

5644
    public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
5645
      @SerializedName("company")
×
5646
      COMPANY("company"),
5647

5648
      @SerializedName("individual")
×
5649
      INDIVIDUAL("individual");
5650

5651
      @Getter(onMethod_ = {@Override})
5652
      private final String value;
5653

5654
      AccountHolderType(String value) {
×
5655
        this.value = value;
×
5656
      }
×
5657
    }
5658

5659
    public enum AccountType implements ApiRequestParams.EnumParam {
×
5660
      @SerializedName("checking")
×
5661
      CHECKING("checking"),
5662

5663
      @SerializedName("savings")
×
5664
      SAVINGS("savings");
5665

5666
      @Getter(onMethod_ = {@Override})
5667
      private final String value;
5668

5669
      AccountType(String value) {
×
5670
        this.value = value;
×
5671
      }
×
5672
    }
5673
  }
5674

5675
  @Getter
5676
  public static class WechatPay {
5677
    /**
5678
     * Map of extra parameters for custom features not available in this client library. The content
5679
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5680
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5681
     * param object. Effectively, this map is flattened to its parent instance.
5682
     */
5683
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5684
    Map<String, Object> extraParams;
5685

5686
    private WechatPay(Map<String, Object> extraParams) {
×
5687
      this.extraParams = extraParams;
×
5688
    }
×
5689

5690
    public static Builder builder() {
5691
      return new Builder();
×
5692
    }
5693

5694
    public static class Builder {
×
5695
      private Map<String, Object> extraParams;
5696

5697
      /** Finalize and obtain parameter instance from this builder. */
5698
      public PaymentMethodCreateParams.WechatPay build() {
5699
        return new PaymentMethodCreateParams.WechatPay(this.extraParams);
×
5700
      }
5701

5702
      /**
5703
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5704
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5705
       * PaymentMethodCreateParams.WechatPay#extraParams} for the field documentation.
5706
       */
5707
      public Builder putExtraParam(String key, Object value) {
5708
        if (this.extraParams == null) {
×
5709
          this.extraParams = new HashMap<>();
×
5710
        }
5711
        this.extraParams.put(key, value);
×
5712
        return this;
×
5713
      }
5714

5715
      /**
5716
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5717
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5718
       * See {@link PaymentMethodCreateParams.WechatPay#extraParams} for the field documentation.
5719
       */
5720
      public Builder putAllExtraParam(Map<String, Object> map) {
5721
        if (this.extraParams == null) {
×
5722
          this.extraParams = new HashMap<>();
×
5723
        }
5724
        this.extraParams.putAll(map);
×
5725
        return this;
×
5726
      }
5727
    }
5728
  }
5729

5730
  @Getter
5731
  public static class Zip {
5732
    /**
5733
     * Map of extra parameters for custom features not available in this client library. The content
5734
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5735
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5736
     * param object. Effectively, this map is flattened to its parent instance.
5737
     */
5738
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5739
    Map<String, Object> extraParams;
5740

5741
    private Zip(Map<String, Object> extraParams) {
×
5742
      this.extraParams = extraParams;
×
5743
    }
×
5744

5745
    public static Builder builder() {
5746
      return new Builder();
×
5747
    }
5748

5749
    public static class Builder {
×
5750
      private Map<String, Object> extraParams;
5751

5752
      /** Finalize and obtain parameter instance from this builder. */
5753
      public PaymentMethodCreateParams.Zip build() {
5754
        return new PaymentMethodCreateParams.Zip(this.extraParams);
×
5755
      }
5756

5757
      /**
5758
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5759
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5760
       * PaymentMethodCreateParams.Zip#extraParams} for the field documentation.
5761
       */
5762
      public Builder putExtraParam(String key, Object value) {
5763
        if (this.extraParams == null) {
×
5764
          this.extraParams = new HashMap<>();
×
5765
        }
5766
        this.extraParams.put(key, value);
×
5767
        return this;
×
5768
      }
5769

5770
      /**
5771
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5772
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5773
       * See {@link PaymentMethodCreateParams.Zip#extraParams} for the field documentation.
5774
       */
5775
      public Builder putAllExtraParam(Map<String, Object> map) {
5776
        if (this.extraParams == null) {
×
5777
          this.extraParams = new HashMap<>();
×
5778
        }
5779
        this.extraParams.putAll(map);
×
5780
        return this;
×
5781
      }
5782
    }
5783
  }
5784

5785
  public enum AllowRedisplay implements ApiRequestParams.EnumParam {
×
5786
    @SerializedName("always")
×
5787
    ALWAYS("always"),
5788

5789
    @SerializedName("limited")
×
5790
    LIMITED("limited"),
5791

5792
    @SerializedName("unspecified")
×
5793
    UNSPECIFIED("unspecified");
5794

5795
    @Getter(onMethod_ = {@Override})
5796
    private final String value;
5797

5798
    AllowRedisplay(String value) {
×
5799
      this.value = value;
×
5800
    }
×
5801
  }
5802

5803
  public enum Type implements ApiRequestParams.EnumParam {
×
5804
    @SerializedName("acss_debit")
×
5805
    ACSS_DEBIT("acss_debit"),
5806

5807
    @SerializedName("affirm")
×
5808
    AFFIRM("affirm"),
5809

5810
    @SerializedName("afterpay_clearpay")
×
5811
    AFTERPAY_CLEARPAY("afterpay_clearpay"),
5812

5813
    @SerializedName("alipay")
×
5814
    ALIPAY("alipay"),
5815

5816
    @SerializedName("alma")
×
5817
    ALMA("alma"),
5818

5819
    @SerializedName("amazon_pay")
×
5820
    AMAZON_PAY("amazon_pay"),
5821

5822
    @SerializedName("au_becs_debit")
×
5823
    AU_BECS_DEBIT("au_becs_debit"),
5824

5825
    @SerializedName("bacs_debit")
×
5826
    BACS_DEBIT("bacs_debit"),
5827

5828
    @SerializedName("bancontact")
×
5829
    BANCONTACT("bancontact"),
5830

5831
    @SerializedName("blik")
×
5832
    BLIK("blik"),
5833

5834
    @SerializedName("boleto")
×
5835
    BOLETO("boleto"),
5836

5837
    @SerializedName("card")
×
5838
    CARD("card"),
5839

5840
    @SerializedName("cashapp")
×
5841
    CASHAPP("cashapp"),
5842

5843
    @SerializedName("customer_balance")
×
5844
    CUSTOMER_BALANCE("customer_balance"),
5845

5846
    @SerializedName("eps")
×
5847
    EPS("eps"),
5848

5849
    @SerializedName("fpx")
×
5850
    FPX("fpx"),
5851

5852
    @SerializedName("giropay")
×
5853
    GIROPAY("giropay"),
5854

5855
    @SerializedName("gopay")
×
5856
    GOPAY("gopay"),
5857

5858
    @SerializedName("grabpay")
×
5859
    GRABPAY("grabpay"),
5860

NEW
5861
    @SerializedName("id_bank_transfer")
×
5862
    ID_BANK_TRANSFER("id_bank_transfer"),
5863

UNCOV
5864
    @SerializedName("ideal")
×
5865
    IDEAL("ideal"),
5866

5867
    @SerializedName("kakao_pay")
×
5868
    KAKAO_PAY("kakao_pay"),
5869

5870
    @SerializedName("klarna")
×
5871
    KLARNA("klarna"),
5872

5873
    @SerializedName("konbini")
×
5874
    KONBINI("konbini"),
5875

5876
    @SerializedName("kr_card")
×
5877
    KR_CARD("kr_card"),
5878

5879
    @SerializedName("link")
×
5880
    LINK("link"),
5881

5882
    @SerializedName("mb_way")
×
5883
    MB_WAY("mb_way"),
5884

5885
    @SerializedName("mobilepay")
×
5886
    MOBILEPAY("mobilepay"),
5887

5888
    @SerializedName("multibanco")
×
5889
    MULTIBANCO("multibanco"),
5890

5891
    @SerializedName("naver_pay")
×
5892
    NAVER_PAY("naver_pay"),
5893

5894
    @SerializedName("oxxo")
×
5895
    OXXO("oxxo"),
5896

5897
    @SerializedName("p24")
×
5898
    P24("p24"),
5899

5900
    @SerializedName("payco")
×
5901
    PAYCO("payco"),
5902

5903
    @SerializedName("paynow")
×
5904
    PAYNOW("paynow"),
5905

5906
    @SerializedName("paypal")
×
5907
    PAYPAL("paypal"),
5908

5909
    @SerializedName("payto")
×
5910
    PAYTO("payto"),
5911

5912
    @SerializedName("pix")
×
5913
    PIX("pix"),
5914

5915
    @SerializedName("promptpay")
×
5916
    PROMPTPAY("promptpay"),
5917

5918
    @SerializedName("qris")
×
5919
    QRIS("qris"),
5920

5921
    @SerializedName("rechnung")
×
5922
    RECHNUNG("rechnung"),
5923

5924
    @SerializedName("revolut_pay")
×
5925
    REVOLUT_PAY("revolut_pay"),
5926

5927
    @SerializedName("samsung_pay")
×
5928
    SAMSUNG_PAY("samsung_pay"),
5929

5930
    @SerializedName("sepa_debit")
×
5931
    SEPA_DEBIT("sepa_debit"),
5932

5933
    @SerializedName("shopeepay")
×
5934
    SHOPEEPAY("shopeepay"),
5935

5936
    @SerializedName("sofort")
×
5937
    SOFORT("sofort"),
5938

5939
    @SerializedName("swish")
×
5940
    SWISH("swish"),
5941

5942
    @SerializedName("twint")
×
5943
    TWINT("twint"),
5944

5945
    @SerializedName("us_bank_account")
×
5946
    US_BANK_ACCOUNT("us_bank_account"),
5947

5948
    @SerializedName("wechat_pay")
×
5949
    WECHAT_PAY("wechat_pay"),
5950

5951
    @SerializedName("zip")
×
5952
    ZIP("zip");
5953

5954
    @Getter(onMethod_ = {@Override})
5955
    private final String value;
5956

5957
    Type(String value) {
×
5958
      this.value = value;
×
5959
    }
×
5960
  }
5961
}
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