• 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/ConfirmationTokenCreateParams.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 ConfirmationTokenCreateParams extends ApiRequestParams {
15
  /** Specifies which fields in the response should be expanded. */
16
  @SerializedName("expand")
17
  List<String> expand;
18

19
  /**
20
   * Map of extra parameters for custom features not available in this client library. The content
21
   * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
22
   * key/value pair is serialized as if the key is a root-level field (serialized) name in this
23
   * param object. Effectively, this map is flattened to its parent instance.
24
   */
25
  @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
26
  Map<String, Object> extraParams;
27

28
  /** ID of an existing PaymentMethod. */
29
  @SerializedName("payment_method")
30
  String paymentMethod;
31

32
  /** If provided, this hash will be used to create a PaymentMethod. */
33
  @SerializedName("payment_method_data")
34
  PaymentMethodData paymentMethodData;
35

36
  /** Return URL used to confirm the Intent. */
37
  @SerializedName("return_url")
38
  String returnUrl;
39

40
  /**
41
   * Indicates that you intend to make future payments with this ConfirmationToken's payment method.
42
   *
43
   * <p>The presence of this property will <a
44
   * href="https://stripe.com/docs/payments/save-during-payment">attach the payment method</a> to
45
   * the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required
46
   * actions from the user are complete.
47
   */
48
  @SerializedName("setup_future_usage")
49
  SetupFutureUsage setupFutureUsage;
50

51
  /** Shipping information for this ConfirmationToken. */
52
  @SerializedName("shipping")
53
  Shipping shipping;
54

55
  private ConfirmationTokenCreateParams(
56
      List<String> expand,
57
      Map<String, Object> extraParams,
58
      String paymentMethod,
59
      PaymentMethodData paymentMethodData,
60
      String returnUrl,
61
      SetupFutureUsage setupFutureUsage,
62
      Shipping shipping) {
×
63
    this.expand = expand;
×
64
    this.extraParams = extraParams;
×
65
    this.paymentMethod = paymentMethod;
×
66
    this.paymentMethodData = paymentMethodData;
×
67
    this.returnUrl = returnUrl;
×
68
    this.setupFutureUsage = setupFutureUsage;
×
69
    this.shipping = shipping;
×
70
  }
×
71

72
  public static Builder builder() {
73
    return new Builder();
×
74
  }
75

76
  public static class Builder {
×
77
    private List<String> expand;
78

79
    private Map<String, Object> extraParams;
80

81
    private String paymentMethod;
82

83
    private PaymentMethodData paymentMethodData;
84

85
    private String returnUrl;
86

87
    private SetupFutureUsage setupFutureUsage;
88

89
    private Shipping shipping;
90

91
    /** Finalize and obtain parameter instance from this builder. */
92
    public ConfirmationTokenCreateParams build() {
93
      return new ConfirmationTokenCreateParams(
×
94
          this.expand,
95
          this.extraParams,
96
          this.paymentMethod,
97
          this.paymentMethodData,
98
          this.returnUrl,
99
          this.setupFutureUsage,
100
          this.shipping);
101
    }
102

103
    /**
104
     * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and
105
     * subsequent calls adds additional elements to the original list. See {@link
106
     * ConfirmationTokenCreateParams#expand} for the field documentation.
107
     */
108
    public Builder addExpand(String element) {
109
      if (this.expand == null) {
×
110
        this.expand = new ArrayList<>();
×
111
      }
112
      this.expand.add(element);
×
113
      return this;
×
114
    }
115

116
    /**
117
     * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and
118
     * subsequent calls adds additional elements to the original list. See {@link
119
     * ConfirmationTokenCreateParams#expand} for the field documentation.
120
     */
121
    public Builder addAllExpand(List<String> elements) {
122
      if (this.expand == null) {
×
123
        this.expand = new ArrayList<>();
×
124
      }
125
      this.expand.addAll(elements);
×
126
      return this;
×
127
    }
128

129
    /**
130
     * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
131
     * call, and subsequent calls add additional key/value pairs to the original map. See {@link
132
     * ConfirmationTokenCreateParams#extraParams} for the field documentation.
133
     */
134
    public Builder putExtraParam(String key, Object value) {
135
      if (this.extraParams == null) {
×
136
        this.extraParams = new HashMap<>();
×
137
      }
138
      this.extraParams.put(key, value);
×
139
      return this;
×
140
    }
141

142
    /**
143
     * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
144
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
145
     * See {@link ConfirmationTokenCreateParams#extraParams} for the field documentation.
146
     */
147
    public Builder putAllExtraParam(Map<String, Object> map) {
148
      if (this.extraParams == null) {
×
149
        this.extraParams = new HashMap<>();
×
150
      }
151
      this.extraParams.putAll(map);
×
152
      return this;
×
153
    }
154

155
    /** ID of an existing PaymentMethod. */
156
    public Builder setPaymentMethod(String paymentMethod) {
157
      this.paymentMethod = paymentMethod;
×
158
      return this;
×
159
    }
160

161
    /** If provided, this hash will be used to create a PaymentMethod. */
162
    public Builder setPaymentMethodData(
163
        ConfirmationTokenCreateParams.PaymentMethodData paymentMethodData) {
164
      this.paymentMethodData = paymentMethodData;
×
165
      return this;
×
166
    }
167

168
    /** Return URL used to confirm the Intent. */
169
    public Builder setReturnUrl(String returnUrl) {
170
      this.returnUrl = returnUrl;
×
171
      return this;
×
172
    }
173

174
    /**
175
     * Indicates that you intend to make future payments with this ConfirmationToken's payment
176
     * method.
177
     *
178
     * <p>The presence of this property will <a
179
     * href="https://stripe.com/docs/payments/save-during-payment">attach the payment method</a> to
180
     * the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any
181
     * required actions from the user are complete.
182
     */
183
    public Builder setSetupFutureUsage(
184
        ConfirmationTokenCreateParams.SetupFutureUsage setupFutureUsage) {
185
      this.setupFutureUsage = setupFutureUsage;
×
186
      return this;
×
187
    }
188

189
    /** Shipping information for this ConfirmationToken. */
190
    public Builder setShipping(ConfirmationTokenCreateParams.Shipping shipping) {
191
      this.shipping = shipping;
×
192
      return this;
×
193
    }
194
  }
195

196
  @Getter
197
  public static class PaymentMethodData {
198
    /**
199
     * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
200
     * Debit payment method.
201
     */
202
    @SerializedName("acss_debit")
203
    AcssDebit acssDebit;
204

205
    /**
206
     * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
207
     * payment method.
208
     */
209
    @SerializedName("affirm")
210
    Affirm affirm;
211

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

219
    /**
220
     * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
221
     * payment method.
222
     */
223
    @SerializedName("alipay")
224
    Alipay alipay;
225

226
    /**
227
     * This field indicates whether this payment method can be shown again to its customer in a
228
     * checkout flow. Stripe products such as Checkout and Elements use this field to determine
229
     * whether a payment method can be shown as a saved payment method in a checkout flow. The field
230
     * defaults to {@code unspecified}.
231
     */
232
    @SerializedName("allow_redisplay")
233
    AllowRedisplay allowRedisplay;
234

235
    /**
236
     * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
237
     */
238
    @SerializedName("alma")
239
    Alma alma;
240

241
    /**
242
     * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
243
     * method.
244
     */
245
    @SerializedName("amazon_pay")
246
    AmazonPay amazonPay;
247

248
    /**
249
     * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank
250
     * account.
251
     */
252
    @SerializedName("au_becs_debit")
253
    AuBecsDebit auBecsDebit;
254

255
    /**
256
     * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
257
     * Direct Debit bank account.
258
     */
259
    @SerializedName("bacs_debit")
260
    BacsDebit bacsDebit;
261

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

269
    /**
270
     * Billing information associated with the PaymentMethod that may be used or required by
271
     * particular types of payment methods.
272
     */
273
    @SerializedName("billing_details")
274
    BillingDetails billingDetails;
275

276
    /**
277
     * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
278
     * method.
279
     */
280
    @SerializedName("blik")
281
    Blik blik;
282

283
    /**
284
     * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
285
     * payment method.
286
     */
287
    @SerializedName("boleto")
288
    Boleto boleto;
289

290
    /**
291
     * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App Pay
292
     * payment method.
293
     */
294
    @SerializedName("cashapp")
295
    Cashapp cashapp;
296

297
    /**
298
     * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
299
     * CustomerBalance payment method.
300
     */
301
    @SerializedName("customer_balance")
302
    CustomerBalance customerBalance;
303

304
    /**
305
     * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
306
     * method.
307
     */
308
    @SerializedName("eps")
309
    Eps eps;
310

311
    /**
312
     * Map of extra parameters for custom features not available in this client library. The content
313
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
314
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
315
     * param object. Effectively, this map is flattened to its parent instance.
316
     */
317
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
318
    Map<String, Object> extraParams;
319

320
    /**
321
     * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
322
     * method.
323
     */
324
    @SerializedName("fpx")
325
    Fpx fpx;
326

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

334
    /**
335
     * If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment method.
336
     */
337
    @SerializedName("gopay")
338
    Gopay gopay;
339

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

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

354
    /**
355
     * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment
356
     * method.
357
     */
358
    @SerializedName("ideal")
359
    Ideal ideal;
360

361
    /**
362
     * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
363
     * Interac Present payment method.
364
     */
365
    @SerializedName("interac_present")
366
    InteracPresent interacPresent;
367

368
    /**
369
     * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
370
     * payment method.
371
     */
372
    @SerializedName("kakao_pay")
373
    KakaoPay kakaoPay;
374

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

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

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

396
    /**
397
     * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
398
     * method.
399
     */
400
    @SerializedName("link")
401
    Link link;
402

403
    /**
404
     * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
405
     * method.
406
     */
407
    @SerializedName("mb_way")
408
    MbWay mbWay;
409

410
    /**
411
     * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
412
     * to an object. This can be useful for storing additional information about the object in a
413
     * structured format. Individual keys can be unset by posting an empty value to them. All keys
414
     * can be unset by posting an empty value to {@code metadata}.
415
     */
416
    @SerializedName("metadata")
417
    Map<String, String> metadata;
418

419
    /**
420
     * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the MobilePay
421
     * payment method.
422
     */
423
    @SerializedName("mobilepay")
424
    Mobilepay mobilepay;
425

426
    /**
427
     * If this is a {@code multibanco} PaymentMethod, this hash contains details about the
428
     * Multibanco payment method.
429
     */
430
    @SerializedName("multibanco")
431
    Multibanco multibanco;
432

433
    /**
434
     * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
435
     * payment method.
436
     */
437
    @SerializedName("naver_pay")
438
    NaverPay naverPay;
439

440
    /**
441
     * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
442
     * method.
443
     */
444
    @SerializedName("oxxo")
445
    Oxxo oxxo;
446

447
    /**
448
     * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
449
     * method.
450
     */
451
    @SerializedName("p24")
452
    P24 p24;
453

454
    /**
455
     * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
456
     * method.
457
     */
458
    @SerializedName("payco")
459
    Payco payco;
460

461
    /**
462
     * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
463
     * payment method.
464
     */
465
    @SerializedName("paynow")
466
    Paynow paynow;
467

468
    /**
469
     * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
470
     * payment method.
471
     */
472
    @SerializedName("paypal")
473
    Paypal paypal;
474

475
    /**
476
     * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo payment
477
     * method.
478
     */
479
    @SerializedName("payto")
480
    Payto payto;
481

482
    /**
483
     * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
484
     * method.
485
     */
486
    @SerializedName("pix")
487
    Pix pix;
488

489
    /**
490
     * If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
491
     * payment method.
492
     */
493
    @SerializedName("promptpay")
494
    Promptpay promptpay;
495

496
    /**
497
     * If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
498
     * method.
499
     */
500
    @SerializedName("qris")
501
    Qris qris;
502

503
    /**
504
     * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
505
     * Session</a> for more information.
506
     */
507
    @SerializedName("radar_options")
508
    RadarOptions radarOptions;
509

510
    /**
511
     * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
512
     * payment method.
513
     */
514
    @SerializedName("rechnung")
515
    Rechnung rechnung;
516

517
    /**
518
     * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
519
     * Pay payment method.
520
     */
521
    @SerializedName("revolut_pay")
522
    RevolutPay revolutPay;
523

524
    /**
525
     * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
526
     * SamsungPay payment method.
527
     */
528
    @SerializedName("samsung_pay")
529
    SamsungPay samsungPay;
530

531
    /**
532
     * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
533
     * debit bank account.
534
     */
535
    @SerializedName("sepa_debit")
536
    SepaDebit sepaDebit;
537

538
    /**
539
     * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment
540
     * method.
541
     */
542
    @SerializedName("shopeepay")
543
    Shopeepay shopeepay;
544

545
    /**
546
     * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
547
     * payment method.
548
     */
549
    @SerializedName("sofort")
550
    Sofort sofort;
551

552
    /**
553
     * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
554
     * method.
555
     */
556
    @SerializedName("swish")
557
    Swish swish;
558

559
    /**
560
     * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
561
     */
562
    @SerializedName("twint")
563
    Twint twint;
564

565
    /**
566
     * <strong>Required.</strong> The type of the PaymentMethod. An additional hash is included on
567
     * the PaymentMethod with a name matching this value. It contains additional information
568
     * specific to the PaymentMethod type.
569
     */
570
    @SerializedName("type")
571
    Type type;
572

573
    /**
574
     * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
575
     * bank account payment method.
576
     */
577
    @SerializedName("us_bank_account")
578
    UsBankAccount usBankAccount;
579

580
    /**
581
     * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
582
     * wechat_pay payment method.
583
     */
584
    @SerializedName("wechat_pay")
585
    WechatPay wechatPay;
586

587
    /**
588
     * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
589
     * method.
590
     */
591
    @SerializedName("zip")
592
    Zip zip;
593

594
    private PaymentMethodData(
595
        AcssDebit acssDebit,
596
        Affirm affirm,
597
        AfterpayClearpay afterpayClearpay,
598
        Alipay alipay,
599
        AllowRedisplay allowRedisplay,
600
        Alma alma,
601
        AmazonPay amazonPay,
602
        AuBecsDebit auBecsDebit,
603
        BacsDebit bacsDebit,
604
        Bancontact bancontact,
605
        BillingDetails billingDetails,
606
        Blik blik,
607
        Boleto boleto,
608
        Cashapp cashapp,
609
        CustomerBalance customerBalance,
610
        Eps eps,
611
        Map<String, Object> extraParams,
612
        Fpx fpx,
613
        Giropay giropay,
614
        Gopay gopay,
615
        Grabpay grabpay,
616
        IdBankTransfer idBankTransfer,
617
        Ideal ideal,
618
        InteracPresent interacPresent,
619
        KakaoPay kakaoPay,
620
        Klarna klarna,
621
        Konbini konbini,
622
        KrCard krCard,
623
        Link link,
624
        MbWay mbWay,
625
        Map<String, String> metadata,
626
        Mobilepay mobilepay,
627
        Multibanco multibanco,
628
        NaverPay naverPay,
629
        Oxxo oxxo,
630
        P24 p24,
631
        Payco payco,
632
        Paynow paynow,
633
        Paypal paypal,
634
        Payto payto,
635
        Pix pix,
636
        Promptpay promptpay,
637
        Qris qris,
638
        RadarOptions radarOptions,
639
        Rechnung rechnung,
640
        RevolutPay revolutPay,
641
        SamsungPay samsungPay,
642
        SepaDebit sepaDebit,
643
        Shopeepay shopeepay,
644
        Sofort sofort,
645
        Swish swish,
646
        Twint twint,
647
        Type type,
648
        UsBankAccount usBankAccount,
649
        WechatPay wechatPay,
650
        Zip zip) {
×
651
      this.acssDebit = acssDebit;
×
652
      this.affirm = affirm;
×
653
      this.afterpayClearpay = afterpayClearpay;
×
654
      this.alipay = alipay;
×
655
      this.allowRedisplay = allowRedisplay;
×
656
      this.alma = alma;
×
657
      this.amazonPay = amazonPay;
×
658
      this.auBecsDebit = auBecsDebit;
×
659
      this.bacsDebit = bacsDebit;
×
660
      this.bancontact = bancontact;
×
661
      this.billingDetails = billingDetails;
×
662
      this.blik = blik;
×
663
      this.boleto = boleto;
×
664
      this.cashapp = cashapp;
×
665
      this.customerBalance = customerBalance;
×
666
      this.eps = eps;
×
667
      this.extraParams = extraParams;
×
668
      this.fpx = fpx;
×
669
      this.giropay = giropay;
×
670
      this.gopay = gopay;
×
671
      this.grabpay = grabpay;
×
NEW
672
      this.idBankTransfer = idBankTransfer;
×
673
      this.ideal = ideal;
×
674
      this.interacPresent = interacPresent;
×
675
      this.kakaoPay = kakaoPay;
×
676
      this.klarna = klarna;
×
677
      this.konbini = konbini;
×
678
      this.krCard = krCard;
×
679
      this.link = link;
×
680
      this.mbWay = mbWay;
×
681
      this.metadata = metadata;
×
682
      this.mobilepay = mobilepay;
×
683
      this.multibanco = multibanco;
×
684
      this.naverPay = naverPay;
×
685
      this.oxxo = oxxo;
×
686
      this.p24 = p24;
×
687
      this.payco = payco;
×
688
      this.paynow = paynow;
×
689
      this.paypal = paypal;
×
690
      this.payto = payto;
×
691
      this.pix = pix;
×
692
      this.promptpay = promptpay;
×
693
      this.qris = qris;
×
694
      this.radarOptions = radarOptions;
×
695
      this.rechnung = rechnung;
×
696
      this.revolutPay = revolutPay;
×
697
      this.samsungPay = samsungPay;
×
698
      this.sepaDebit = sepaDebit;
×
699
      this.shopeepay = shopeepay;
×
700
      this.sofort = sofort;
×
701
      this.swish = swish;
×
702
      this.twint = twint;
×
703
      this.type = type;
×
704
      this.usBankAccount = usBankAccount;
×
705
      this.wechatPay = wechatPay;
×
706
      this.zip = zip;
×
707
    }
×
708

709
    public static Builder builder() {
710
      return new Builder();
×
711
    }
712

713
    public static class Builder {
×
714
      private AcssDebit acssDebit;
715

716
      private Affirm affirm;
717

718
      private AfterpayClearpay afterpayClearpay;
719

720
      private Alipay alipay;
721

722
      private AllowRedisplay allowRedisplay;
723

724
      private Alma alma;
725

726
      private AmazonPay amazonPay;
727

728
      private AuBecsDebit auBecsDebit;
729

730
      private BacsDebit bacsDebit;
731

732
      private Bancontact bancontact;
733

734
      private BillingDetails billingDetails;
735

736
      private Blik blik;
737

738
      private Boleto boleto;
739

740
      private Cashapp cashapp;
741

742
      private CustomerBalance customerBalance;
743

744
      private Eps eps;
745

746
      private Map<String, Object> extraParams;
747

748
      private Fpx fpx;
749

750
      private Giropay giropay;
751

752
      private Gopay gopay;
753

754
      private Grabpay grabpay;
755

756
      private IdBankTransfer idBankTransfer;
757

758
      private Ideal ideal;
759

760
      private InteracPresent interacPresent;
761

762
      private KakaoPay kakaoPay;
763

764
      private Klarna klarna;
765

766
      private Konbini konbini;
767

768
      private KrCard krCard;
769

770
      private Link link;
771

772
      private MbWay mbWay;
773

774
      private Map<String, String> metadata;
775

776
      private Mobilepay mobilepay;
777

778
      private Multibanco multibanco;
779

780
      private NaverPay naverPay;
781

782
      private Oxxo oxxo;
783

784
      private P24 p24;
785

786
      private Payco payco;
787

788
      private Paynow paynow;
789

790
      private Paypal paypal;
791

792
      private Payto payto;
793

794
      private Pix pix;
795

796
      private Promptpay promptpay;
797

798
      private Qris qris;
799

800
      private RadarOptions radarOptions;
801

802
      private Rechnung rechnung;
803

804
      private RevolutPay revolutPay;
805

806
      private SamsungPay samsungPay;
807

808
      private SepaDebit sepaDebit;
809

810
      private Shopeepay shopeepay;
811

812
      private Sofort sofort;
813

814
      private Swish swish;
815

816
      private Twint twint;
817

818
      private Type type;
819

820
      private UsBankAccount usBankAccount;
821

822
      private WechatPay wechatPay;
823

824
      private Zip zip;
825

826
      /** Finalize and obtain parameter instance from this builder. */
827
      public ConfirmationTokenCreateParams.PaymentMethodData build() {
828
        return new ConfirmationTokenCreateParams.PaymentMethodData(
×
829
            this.acssDebit,
830
            this.affirm,
831
            this.afterpayClearpay,
832
            this.alipay,
833
            this.allowRedisplay,
834
            this.alma,
835
            this.amazonPay,
836
            this.auBecsDebit,
837
            this.bacsDebit,
838
            this.bancontact,
839
            this.billingDetails,
840
            this.blik,
841
            this.boleto,
842
            this.cashapp,
843
            this.customerBalance,
844
            this.eps,
845
            this.extraParams,
846
            this.fpx,
847
            this.giropay,
848
            this.gopay,
849
            this.grabpay,
850
            this.idBankTransfer,
851
            this.ideal,
852
            this.interacPresent,
853
            this.kakaoPay,
854
            this.klarna,
855
            this.konbini,
856
            this.krCard,
857
            this.link,
858
            this.mbWay,
859
            this.metadata,
860
            this.mobilepay,
861
            this.multibanco,
862
            this.naverPay,
863
            this.oxxo,
864
            this.p24,
865
            this.payco,
866
            this.paynow,
867
            this.paypal,
868
            this.payto,
869
            this.pix,
870
            this.promptpay,
871
            this.qris,
872
            this.radarOptions,
873
            this.rechnung,
874
            this.revolutPay,
875
            this.samsungPay,
876
            this.sepaDebit,
877
            this.shopeepay,
878
            this.sofort,
879
            this.swish,
880
            this.twint,
881
            this.type,
882
            this.usBankAccount,
883
            this.wechatPay,
884
            this.zip);
885
      }
886

887
      /**
888
       * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
889
       * Debit payment method.
890
       */
891
      public Builder setAcssDebit(
892
          ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit acssDebit) {
893
        this.acssDebit = acssDebit;
×
894
        return this;
×
895
      }
896

897
      /**
898
       * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
899
       * payment method.
900
       */
901
      public Builder setAffirm(ConfirmationTokenCreateParams.PaymentMethodData.Affirm affirm) {
902
        this.affirm = affirm;
×
903
        return this;
×
904
      }
905

906
      /**
907
       * If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
908
       * AfterpayClearpay payment method.
909
       */
910
      public Builder setAfterpayClearpay(
911
          ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay afterpayClearpay) {
912
        this.afterpayClearpay = afterpayClearpay;
×
913
        return this;
×
914
      }
915

916
      /**
917
       * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
918
       * payment method.
919
       */
920
      public Builder setAlipay(ConfirmationTokenCreateParams.PaymentMethodData.Alipay alipay) {
921
        this.alipay = alipay;
×
922
        return this;
×
923
      }
924

925
      /**
926
       * This field indicates whether this payment method can be shown again to its customer in a
927
       * checkout flow. Stripe products such as Checkout and Elements use this field to determine
928
       * whether a payment method can be shown as a saved payment method in a checkout flow. The
929
       * field defaults to {@code unspecified}.
930
       */
931
      public Builder setAllowRedisplay(
932
          ConfirmationTokenCreateParams.PaymentMethodData.AllowRedisplay allowRedisplay) {
933
        this.allowRedisplay = allowRedisplay;
×
934
        return this;
×
935
      }
936

937
      /**
938
       * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
939
       */
940
      public Builder setAlma(ConfirmationTokenCreateParams.PaymentMethodData.Alma alma) {
941
        this.alma = alma;
×
942
        return this;
×
943
      }
944

945
      /**
946
       * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay
947
       * payment method.
948
       */
949
      public Builder setAmazonPay(
950
          ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay amazonPay) {
951
        this.amazonPay = amazonPay;
×
952
        return this;
×
953
      }
954

955
      /**
956
       * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the
957
       * bank account.
958
       */
959
      public Builder setAuBecsDebit(
960
          ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit auBecsDebit) {
961
        this.auBecsDebit = auBecsDebit;
×
962
        return this;
×
963
      }
964

965
      /**
966
       * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
967
       * Direct Debit bank account.
968
       */
969
      public Builder setBacsDebit(
970
          ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit bacsDebit) {
971
        this.bacsDebit = bacsDebit;
×
972
        return this;
×
973
      }
974

975
      /**
976
       * If this is a {@code bancontact} PaymentMethod, this hash contains details about the
977
       * Bancontact payment method.
978
       */
979
      public Builder setBancontact(
980
          ConfirmationTokenCreateParams.PaymentMethodData.Bancontact bancontact) {
981
        this.bancontact = bancontact;
×
982
        return this;
×
983
      }
984

985
      /**
986
       * Billing information associated with the PaymentMethod that may be used or required by
987
       * particular types of payment methods.
988
       */
989
      public Builder setBillingDetails(
990
          ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails billingDetails) {
991
        this.billingDetails = billingDetails;
×
992
        return this;
×
993
      }
994

995
      /**
996
       * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
997
       * method.
998
       */
999
      public Builder setBlik(ConfirmationTokenCreateParams.PaymentMethodData.Blik blik) {
1000
        this.blik = blik;
×
1001
        return this;
×
1002
      }
1003

1004
      /**
1005
       * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
1006
       * payment method.
1007
       */
1008
      public Builder setBoleto(ConfirmationTokenCreateParams.PaymentMethodData.Boleto boleto) {
1009
        this.boleto = boleto;
×
1010
        return this;
×
1011
      }
1012

1013
      /**
1014
       * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App
1015
       * Pay payment method.
1016
       */
1017
      public Builder setCashapp(ConfirmationTokenCreateParams.PaymentMethodData.Cashapp cashapp) {
1018
        this.cashapp = cashapp;
×
1019
        return this;
×
1020
      }
1021

1022
      /**
1023
       * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
1024
       * CustomerBalance payment method.
1025
       */
1026
      public Builder setCustomerBalance(
1027
          ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance customerBalance) {
1028
        this.customerBalance = customerBalance;
×
1029
        return this;
×
1030
      }
1031

1032
      /**
1033
       * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
1034
       * method.
1035
       */
1036
      public Builder setEps(ConfirmationTokenCreateParams.PaymentMethodData.Eps eps) {
1037
        this.eps = eps;
×
1038
        return this;
×
1039
      }
1040

1041
      /**
1042
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1043
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1044
       * ConfirmationTokenCreateParams.PaymentMethodData#extraParams} for the field documentation.
1045
       */
1046
      public Builder putExtraParam(String key, Object value) {
1047
        if (this.extraParams == null) {
×
1048
          this.extraParams = new HashMap<>();
×
1049
        }
1050
        this.extraParams.put(key, value);
×
1051
        return this;
×
1052
      }
1053

1054
      /**
1055
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1056
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1057
       * See {@link ConfirmationTokenCreateParams.PaymentMethodData#extraParams} for the field
1058
       * documentation.
1059
       */
1060
      public Builder putAllExtraParam(Map<String, Object> map) {
1061
        if (this.extraParams == null) {
×
1062
          this.extraParams = new HashMap<>();
×
1063
        }
1064
        this.extraParams.putAll(map);
×
1065
        return this;
×
1066
      }
1067

1068
      /**
1069
       * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
1070
       * method.
1071
       */
1072
      public Builder setFpx(ConfirmationTokenCreateParams.PaymentMethodData.Fpx fpx) {
1073
        this.fpx = fpx;
×
1074
        return this;
×
1075
      }
1076

1077
      /**
1078
       * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
1079
       * payment method.
1080
       */
1081
      public Builder setGiropay(ConfirmationTokenCreateParams.PaymentMethodData.Giropay giropay) {
1082
        this.giropay = giropay;
×
1083
        return this;
×
1084
      }
1085

1086
      /**
1087
       * If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment
1088
       * method.
1089
       */
1090
      public Builder setGopay(ConfirmationTokenCreateParams.PaymentMethodData.Gopay gopay) {
1091
        this.gopay = gopay;
×
1092
        return this;
×
1093
      }
1094

1095
      /**
1096
       * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
1097
       * payment method.
1098
       */
1099
      public Builder setGrabpay(ConfirmationTokenCreateParams.PaymentMethodData.Grabpay grabpay) {
1100
        this.grabpay = grabpay;
×
1101
        return this;
×
1102
      }
1103

1104
      /**
1105
       * If this is an {@code IdBankTransfer} PaymentMethod, this hash contains details about the
1106
       * IdBankTransfer payment method.
1107
       */
1108
      public Builder setIdBankTransfer(
1109
          ConfirmationTokenCreateParams.PaymentMethodData.IdBankTransfer idBankTransfer) {
NEW
1110
        this.idBankTransfer = idBankTransfer;
×
NEW
1111
        return this;
×
1112
      }
1113

1114
      /**
1115
       * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL
1116
       * payment method.
1117
       */
1118
      public Builder setIdeal(ConfirmationTokenCreateParams.PaymentMethodData.Ideal ideal) {
1119
        this.ideal = ideal;
×
1120
        return this;
×
1121
      }
1122

1123
      /**
1124
       * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
1125
       * Interac Present payment method.
1126
       */
1127
      public Builder setInteracPresent(
1128
          ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent interacPresent) {
1129
        this.interacPresent = interacPresent;
×
1130
        return this;
×
1131
      }
1132

1133
      /**
1134
       * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao
1135
       * Pay payment method.
1136
       */
1137
      public Builder setKakaoPay(
1138
          ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay kakaoPay) {
1139
        this.kakaoPay = kakaoPay;
×
1140
        return this;
×
1141
      }
1142

1143
      /**
1144
       * If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna
1145
       * payment method.
1146
       */
1147
      public Builder setKlarna(ConfirmationTokenCreateParams.PaymentMethodData.Klarna klarna) {
1148
        this.klarna = klarna;
×
1149
        return this;
×
1150
      }
1151

1152
      /**
1153
       * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
1154
       * payment method.
1155
       */
1156
      public Builder setKonbini(ConfirmationTokenCreateParams.PaymentMethodData.Konbini konbini) {
1157
        this.konbini = konbini;
×
1158
        return this;
×
1159
      }
1160

1161
      /**
1162
       * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean
1163
       * Card payment method.
1164
       */
1165
      public Builder setKrCard(ConfirmationTokenCreateParams.PaymentMethodData.KrCard krCard) {
1166
        this.krCard = krCard;
×
1167
        return this;
×
1168
      }
1169

1170
      /**
1171
       * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
1172
       * method.
1173
       */
1174
      public Builder setLink(ConfirmationTokenCreateParams.PaymentMethodData.Link link) {
1175
        this.link = link;
×
1176
        return this;
×
1177
      }
1178

1179
      /**
1180
       * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
1181
       * method.
1182
       */
1183
      public Builder setMbWay(ConfirmationTokenCreateParams.PaymentMethodData.MbWay mbWay) {
1184
        this.mbWay = mbWay;
×
1185
        return this;
×
1186
      }
1187

1188
      /**
1189
       * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll`
1190
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1191
       * ConfirmationTokenCreateParams.PaymentMethodData#metadata} for the field documentation.
1192
       */
1193
      public Builder putMetadata(String key, String value) {
1194
        if (this.metadata == null) {
×
1195
          this.metadata = new HashMap<>();
×
1196
        }
1197
        this.metadata.put(key, value);
×
1198
        return this;
×
1199
      }
1200

1201
      /**
1202
       * Add all map key/value pairs to `metadata` map. A map is initialized for the first
1203
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1204
       * See {@link ConfirmationTokenCreateParams.PaymentMethodData#metadata} for the field
1205
       * documentation.
1206
       */
1207
      public Builder putAllMetadata(Map<String, String> map) {
1208
        if (this.metadata == null) {
×
1209
          this.metadata = new HashMap<>();
×
1210
        }
1211
        this.metadata.putAll(map);
×
1212
        return this;
×
1213
      }
1214

1215
      /**
1216
       * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the
1217
       * MobilePay payment method.
1218
       */
1219
      public Builder setMobilepay(
1220
          ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay mobilepay) {
1221
        this.mobilepay = mobilepay;
×
1222
        return this;
×
1223
      }
1224

1225
      /**
1226
       * If this is a {@code multibanco} PaymentMethod, this hash contains details about the
1227
       * Multibanco payment method.
1228
       */
1229
      public Builder setMultibanco(
1230
          ConfirmationTokenCreateParams.PaymentMethodData.Multibanco multibanco) {
1231
        this.multibanco = multibanco;
×
1232
        return this;
×
1233
      }
1234

1235
      /**
1236
       * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver
1237
       * Pay payment method.
1238
       */
1239
      public Builder setNaverPay(
1240
          ConfirmationTokenCreateParams.PaymentMethodData.NaverPay naverPay) {
1241
        this.naverPay = naverPay;
×
1242
        return this;
×
1243
      }
1244

1245
      /**
1246
       * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
1247
       * method.
1248
       */
1249
      public Builder setOxxo(ConfirmationTokenCreateParams.PaymentMethodData.Oxxo oxxo) {
1250
        this.oxxo = oxxo;
×
1251
        return this;
×
1252
      }
1253

1254
      /**
1255
       * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
1256
       * method.
1257
       */
1258
      public Builder setP24(ConfirmationTokenCreateParams.PaymentMethodData.P24 p24) {
1259
        this.p24 = p24;
×
1260
        return this;
×
1261
      }
1262

1263
      /**
1264
       * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO
1265
       * payment method.
1266
       */
1267
      public Builder setPayco(ConfirmationTokenCreateParams.PaymentMethodData.Payco payco) {
1268
        this.payco = payco;
×
1269
        return this;
×
1270
      }
1271

1272
      /**
1273
       * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
1274
       * payment method.
1275
       */
1276
      public Builder setPaynow(ConfirmationTokenCreateParams.PaymentMethodData.Paynow paynow) {
1277
        this.paynow = paynow;
×
1278
        return this;
×
1279
      }
1280

1281
      /**
1282
       * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
1283
       * payment method.
1284
       */
1285
      public Builder setPaypal(ConfirmationTokenCreateParams.PaymentMethodData.Paypal paypal) {
1286
        this.paypal = paypal;
×
1287
        return this;
×
1288
      }
1289

1290
      /**
1291
       * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo
1292
       * payment method.
1293
       */
1294
      public Builder setPayto(ConfirmationTokenCreateParams.PaymentMethodData.Payto payto) {
1295
        this.payto = payto;
×
1296
        return this;
×
1297
      }
1298

1299
      /**
1300
       * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
1301
       * method.
1302
       */
1303
      public Builder setPix(ConfirmationTokenCreateParams.PaymentMethodData.Pix pix) {
1304
        this.pix = pix;
×
1305
        return this;
×
1306
      }
1307

1308
      /**
1309
       * If this is a {@code promptpay} PaymentMethod, this hash contains details about the
1310
       * PromptPay payment method.
1311
       */
1312
      public Builder setPromptpay(
1313
          ConfirmationTokenCreateParams.PaymentMethodData.Promptpay promptpay) {
1314
        this.promptpay = promptpay;
×
1315
        return this;
×
1316
      }
1317

1318
      /**
1319
       * If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
1320
       * method.
1321
       */
1322
      public Builder setQris(ConfirmationTokenCreateParams.PaymentMethodData.Qris qris) {
1323
        this.qris = qris;
×
1324
        return this;
×
1325
      }
1326

1327
      /**
1328
       * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
1329
       * Session</a> for more information.
1330
       */
1331
      public Builder setRadarOptions(
1332
          ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions radarOptions) {
1333
        this.radarOptions = radarOptions;
×
1334
        return this;
×
1335
      }
1336

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

1347
      /**
1348
       * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the
1349
       * Revolut Pay payment method.
1350
       */
1351
      public Builder setRevolutPay(
1352
          ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay revolutPay) {
1353
        this.revolutPay = revolutPay;
×
1354
        return this;
×
1355
      }
1356

1357
      /**
1358
       * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
1359
       * SamsungPay payment method.
1360
       */
1361
      public Builder setSamsungPay(
1362
          ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay samsungPay) {
1363
        this.samsungPay = samsungPay;
×
1364
        return this;
×
1365
      }
1366

1367
      /**
1368
       * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
1369
       * debit bank account.
1370
       */
1371
      public Builder setSepaDebit(
1372
          ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit sepaDebit) {
1373
        this.sepaDebit = sepaDebit;
×
1374
        return this;
×
1375
      }
1376

1377
      /**
1378
       * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay
1379
       * payment method.
1380
       */
1381
      public Builder setShopeepay(
1382
          ConfirmationTokenCreateParams.PaymentMethodData.Shopeepay shopeepay) {
1383
        this.shopeepay = shopeepay;
×
1384
        return this;
×
1385
      }
1386

1387
      /**
1388
       * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
1389
       * payment method.
1390
       */
1391
      public Builder setSofort(ConfirmationTokenCreateParams.PaymentMethodData.Sofort sofort) {
1392
        this.sofort = sofort;
×
1393
        return this;
×
1394
      }
1395

1396
      /**
1397
       * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish
1398
       * payment method.
1399
       */
1400
      public Builder setSwish(ConfirmationTokenCreateParams.PaymentMethodData.Swish swish) {
1401
        this.swish = swish;
×
1402
        return this;
×
1403
      }
1404

1405
      /**
1406
       * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment
1407
       * method.
1408
       */
1409
      public Builder setTwint(ConfirmationTokenCreateParams.PaymentMethodData.Twint twint) {
1410
        this.twint = twint;
×
1411
        return this;
×
1412
      }
1413

1414
      /**
1415
       * <strong>Required.</strong> The type of the PaymentMethod. An additional hash is included on
1416
       * the PaymentMethod with a name matching this value. It contains additional information
1417
       * specific to the PaymentMethod type.
1418
       */
1419
      public Builder setType(ConfirmationTokenCreateParams.PaymentMethodData.Type type) {
1420
        this.type = type;
×
1421
        return this;
×
1422
      }
1423

1424
      /**
1425
       * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the
1426
       * US bank account payment method.
1427
       */
1428
      public Builder setUsBankAccount(
1429
          ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount usBankAccount) {
1430
        this.usBankAccount = usBankAccount;
×
1431
        return this;
×
1432
      }
1433

1434
      /**
1435
       * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
1436
       * wechat_pay payment method.
1437
       */
1438
      public Builder setWechatPay(
1439
          ConfirmationTokenCreateParams.PaymentMethodData.WechatPay wechatPay) {
1440
        this.wechatPay = wechatPay;
×
1441
        return this;
×
1442
      }
1443

1444
      /**
1445
       * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
1446
       * method.
1447
       */
1448
      public Builder setZip(ConfirmationTokenCreateParams.PaymentMethodData.Zip zip) {
1449
        this.zip = zip;
×
1450
        return this;
×
1451
      }
1452
    }
1453

1454
    @Getter
1455
    public static class AcssDebit {
1456
      /** <strong>Required.</strong> Customer's bank account number. */
1457
      @SerializedName("account_number")
1458
      String accountNumber;
1459

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

1469
      /** <strong>Required.</strong> Institution number of the customer's bank. */
1470
      @SerializedName("institution_number")
1471
      String institutionNumber;
1472

1473
      /** <strong>Required.</strong> Transit number of the customer's bank. */
1474
      @SerializedName("transit_number")
1475
      String transitNumber;
1476

1477
      private AcssDebit(
1478
          String accountNumber,
1479
          Map<String, Object> extraParams,
1480
          String institutionNumber,
1481
          String transitNumber) {
×
1482
        this.accountNumber = accountNumber;
×
1483
        this.extraParams = extraParams;
×
1484
        this.institutionNumber = institutionNumber;
×
1485
        this.transitNumber = transitNumber;
×
1486
      }
×
1487

1488
      public static Builder builder() {
1489
        return new Builder();
×
1490
      }
1491

1492
      public static class Builder {
×
1493
        private String accountNumber;
1494

1495
        private Map<String, Object> extraParams;
1496

1497
        private String institutionNumber;
1498

1499
        private String transitNumber;
1500

1501
        /** Finalize and obtain parameter instance from this builder. */
1502
        public ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit build() {
1503
          return new ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit(
×
1504
              this.accountNumber, this.extraParams, this.institutionNumber, this.transitNumber);
1505
        }
1506

1507
        /** <strong>Required.</strong> Customer's bank account number. */
1508
        public Builder setAccountNumber(String accountNumber) {
1509
          this.accountNumber = accountNumber;
×
1510
          return this;
×
1511
        }
1512

1513
        /**
1514
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1515
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1516
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit#extraParams}
1517
         * for the field documentation.
1518
         */
1519
        public Builder putExtraParam(String key, Object value) {
1520
          if (this.extraParams == null) {
×
1521
            this.extraParams = new HashMap<>();
×
1522
          }
1523
          this.extraParams.put(key, value);
×
1524
          return this;
×
1525
        }
1526

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

1541
        /** <strong>Required.</strong> Institution number of the customer's bank. */
1542
        public Builder setInstitutionNumber(String institutionNumber) {
1543
          this.institutionNumber = institutionNumber;
×
1544
          return this;
×
1545
        }
1546

1547
        /** <strong>Required.</strong> Transit number of the customer's bank. */
1548
        public Builder setTransitNumber(String transitNumber) {
1549
          this.transitNumber = transitNumber;
×
1550
          return this;
×
1551
        }
1552
      }
1553
    }
1554

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

1566
      private Affirm(Map<String, Object> extraParams) {
×
1567
        this.extraParams = extraParams;
×
1568
      }
×
1569

1570
      public static Builder builder() {
1571
        return new Builder();
×
1572
      }
1573

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

1577
        /** Finalize and obtain parameter instance from this builder. */
1578
        public ConfirmationTokenCreateParams.PaymentMethodData.Affirm build() {
1579
          return new ConfirmationTokenCreateParams.PaymentMethodData.Affirm(this.extraParams);
×
1580
        }
1581

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

1596
        /**
1597
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1598
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1599
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Affirm#extraParams} for
1600
         * 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 AfterpayClearpay {
1614
      /**
1615
       * Map of extra parameters for custom features not available in this client library. The
1616
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1617
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1618
       * name in this 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 AfterpayClearpay(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 ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay build() {
1636
          return new ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay(
×
1637
              this.extraParams);
1638
        }
1639

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

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

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

1683
      private Alipay(Map<String, Object> extraParams) {
×
1684
        this.extraParams = extraParams;
×
1685
      }
×
1686

1687
      public static Builder builder() {
1688
        return new Builder();
×
1689
      }
1690

1691
      public static class Builder {
×
1692
        private Map<String, Object> extraParams;
1693

1694
        /** Finalize and obtain parameter instance from this builder. */
1695
        public ConfirmationTokenCreateParams.PaymentMethodData.Alipay build() {
1696
          return new ConfirmationTokenCreateParams.PaymentMethodData.Alipay(this.extraParams);
×
1697
        }
1698

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

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

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

1740
      private Alma(Map<String, Object> extraParams) {
×
1741
        this.extraParams = extraParams;
×
1742
      }
×
1743

1744
      public static Builder builder() {
1745
        return new Builder();
×
1746
      }
1747

1748
      public static class Builder {
×
1749
        private Map<String, Object> extraParams;
1750

1751
        /** Finalize and obtain parameter instance from this builder. */
1752
        public ConfirmationTokenCreateParams.PaymentMethodData.Alma build() {
1753
          return new ConfirmationTokenCreateParams.PaymentMethodData.Alma(this.extraParams);
×
1754
        }
1755

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

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

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

1797
      private AmazonPay(Map<String, Object> extraParams) {
×
1798
        this.extraParams = extraParams;
×
1799
      }
×
1800

1801
      public static Builder builder() {
1802
        return new Builder();
×
1803
      }
1804

1805
      public static class Builder {
×
1806
        private Map<String, Object> extraParams;
1807

1808
        /** Finalize and obtain parameter instance from this builder. */
1809
        public ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay build() {
1810
          return new ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay(this.extraParams);
×
1811
        }
1812

1813
        /**
1814
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1815
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1816
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay#extraParams}
1817
         * for the field documentation.
1818
         */
1819
        public Builder putExtraParam(String key, Object value) {
1820
          if (this.extraParams == null) {
×
1821
            this.extraParams = new HashMap<>();
×
1822
          }
1823
          this.extraParams.put(key, value);
×
1824
          return this;
×
1825
        }
1826

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

1843
    @Getter
1844
    public static class AuBecsDebit {
1845
      /** <strong>Required.</strong> The account number for the bank account. */
1846
      @SerializedName("account_number")
1847
      String accountNumber;
1848

1849
      /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1850
      @SerializedName("bsb_number")
1851
      String bsbNumber;
1852

1853
      /**
1854
       * Map of extra parameters for custom features not available in this client library. The
1855
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1856
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1857
       * name in this param object. Effectively, this map is flattened to its parent instance.
1858
       */
1859
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1860
      Map<String, Object> extraParams;
1861

1862
      private AuBecsDebit(String accountNumber, String bsbNumber, Map<String, Object> extraParams) {
×
1863
        this.accountNumber = accountNumber;
×
1864
        this.bsbNumber = bsbNumber;
×
1865
        this.extraParams = extraParams;
×
1866
      }
×
1867

1868
      public static Builder builder() {
1869
        return new Builder();
×
1870
      }
1871

1872
      public static class Builder {
×
1873
        private String accountNumber;
1874

1875
        private String bsbNumber;
1876

1877
        private Map<String, Object> extraParams;
1878

1879
        /** Finalize and obtain parameter instance from this builder. */
1880
        public ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit build() {
1881
          return new ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit(
×
1882
              this.accountNumber, this.bsbNumber, this.extraParams);
1883
        }
1884

1885
        /** <strong>Required.</strong> The account number for the bank account. */
1886
        public Builder setAccountNumber(String accountNumber) {
1887
          this.accountNumber = accountNumber;
×
1888
          return this;
×
1889
        }
1890

1891
        /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1892
        public Builder setBsbNumber(String bsbNumber) {
1893
          this.bsbNumber = bsbNumber;
×
1894
          return this;
×
1895
        }
1896

1897
        /**
1898
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1899
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1900
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit#extraParams}
1901
         * for the field documentation.
1902
         */
1903
        public Builder putExtraParam(String key, Object value) {
1904
          if (this.extraParams == null) {
×
1905
            this.extraParams = new HashMap<>();
×
1906
          }
1907
          this.extraParams.put(key, value);
×
1908
          return this;
×
1909
        }
1910

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

1927
    @Getter
1928
    public static class BacsDebit {
1929
      /** Account number of the bank account that the funds will be debited from. */
1930
      @SerializedName("account_number")
1931
      String accountNumber;
1932

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

1942
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1943
      @SerializedName("sort_code")
1944
      String sortCode;
1945

1946
      private BacsDebit(String accountNumber, Map<String, Object> extraParams, String sortCode) {
×
1947
        this.accountNumber = accountNumber;
×
1948
        this.extraParams = extraParams;
×
1949
        this.sortCode = sortCode;
×
1950
      }
×
1951

1952
      public static Builder builder() {
1953
        return new Builder();
×
1954
      }
1955

1956
      public static class Builder {
×
1957
        private String accountNumber;
1958

1959
        private Map<String, Object> extraParams;
1960

1961
        private String sortCode;
1962

1963
        /** Finalize and obtain parameter instance from this builder. */
1964
        public ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit build() {
1965
          return new ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit(
×
1966
              this.accountNumber, this.extraParams, this.sortCode);
1967
        }
1968

1969
        /** Account number of the bank account that the funds will be debited from. */
1970
        public Builder setAccountNumber(String accountNumber) {
1971
          this.accountNumber = accountNumber;
×
1972
          return this;
×
1973
        }
1974

1975
        /**
1976
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1977
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1978
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit#extraParams}
1979
         * for the field documentation.
1980
         */
1981
        public Builder putExtraParam(String key, Object value) {
1982
          if (this.extraParams == null) {
×
1983
            this.extraParams = new HashMap<>();
×
1984
          }
1985
          this.extraParams.put(key, value);
×
1986
          return this;
×
1987
        }
1988

1989
        /**
1990
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1991
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1992
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit#extraParams}
1993
         * for the field documentation.
1994
         */
1995
        public Builder putAllExtraParam(Map<String, Object> map) {
1996
          if (this.extraParams == null) {
×
1997
            this.extraParams = new HashMap<>();
×
1998
          }
1999
          this.extraParams.putAll(map);
×
2000
          return this;
×
2001
        }
2002

2003
        /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
2004
        public Builder setSortCode(String sortCode) {
2005
          this.sortCode = sortCode;
×
2006
          return this;
×
2007
        }
2008
      }
2009
    }
2010

2011
    @Getter
2012
    public static class Bancontact {
2013
      /**
2014
       * Map of extra parameters for custom features not available in this client library. The
2015
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2016
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2017
       * name in this param object. Effectively, this map is flattened to its parent instance.
2018
       */
2019
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2020
      Map<String, Object> extraParams;
2021

2022
      private Bancontact(Map<String, Object> extraParams) {
×
2023
        this.extraParams = extraParams;
×
2024
      }
×
2025

2026
      public static Builder builder() {
2027
        return new Builder();
×
2028
      }
2029

2030
      public static class Builder {
×
2031
        private Map<String, Object> extraParams;
2032

2033
        /** Finalize and obtain parameter instance from this builder. */
2034
        public ConfirmationTokenCreateParams.PaymentMethodData.Bancontact build() {
2035
          return new ConfirmationTokenCreateParams.PaymentMethodData.Bancontact(this.extraParams);
×
2036
        }
2037

2038
        /**
2039
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2040
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2041
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Bancontact#extraParams}
2042
         * for the field documentation.
2043
         */
2044
        public Builder putExtraParam(String key, Object value) {
2045
          if (this.extraParams == null) {
×
2046
            this.extraParams = new HashMap<>();
×
2047
          }
2048
          this.extraParams.put(key, value);
×
2049
          return this;
×
2050
        }
2051

2052
        /**
2053
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2054
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2055
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Bancontact#extraParams}
2056
         * for the field documentation.
2057
         */
2058
        public Builder putAllExtraParam(Map<String, Object> map) {
2059
          if (this.extraParams == null) {
×
2060
            this.extraParams = new HashMap<>();
×
2061
          }
2062
          this.extraParams.putAll(map);
×
2063
          return this;
×
2064
        }
2065
      }
2066
    }
2067

2068
    @Getter
2069
    public static class BillingDetails {
2070
      /** Billing address. */
2071
      @SerializedName("address")
2072
      Object address;
2073

2074
      /** Email address. */
2075
      @SerializedName("email")
2076
      Object email;
2077

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

2087
      /** Full name. */
2088
      @SerializedName("name")
2089
      Object name;
2090

2091
      /** Billing phone number (including extension). */
2092
      @SerializedName("phone")
2093
      Object phone;
2094

2095
      private BillingDetails(
2096
          Object address,
2097
          Object email,
2098
          Map<String, Object> extraParams,
2099
          Object name,
2100
          Object phone) {
×
2101
        this.address = address;
×
2102
        this.email = email;
×
2103
        this.extraParams = extraParams;
×
2104
        this.name = name;
×
2105
        this.phone = phone;
×
2106
      }
×
2107

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

2112
      public static class Builder {
×
2113
        private Object address;
2114

2115
        private Object email;
2116

2117
        private Map<String, Object> extraParams;
2118

2119
        private Object name;
2120

2121
        private Object phone;
2122

2123
        /** Finalize and obtain parameter instance from this builder. */
2124
        public ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails build() {
2125
          return new ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails(
×
2126
              this.address, this.email, this.extraParams, this.name, this.phone);
2127
        }
2128

2129
        /** Billing address. */
2130
        public Builder setAddress(
2131
            ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address address) {
2132
          this.address = address;
×
2133
          return this;
×
2134
        }
2135

2136
        /** Billing address. */
2137
        public Builder setAddress(EmptyParam address) {
2138
          this.address = address;
×
2139
          return this;
×
2140
        }
2141

2142
        /** Email address. */
2143
        public Builder setEmail(String email) {
2144
          this.email = email;
×
2145
          return this;
×
2146
        }
2147

2148
        /** Email address. */
2149
        public Builder setEmail(EmptyParam email) {
2150
          this.email = email;
×
2151
          return this;
×
2152
        }
2153

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

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

2184
        /** Full name. */
2185
        public Builder setName(String name) {
2186
          this.name = name;
×
2187
          return this;
×
2188
        }
2189

2190
        /** Full name. */
2191
        public Builder setName(EmptyParam name) {
2192
          this.name = name;
×
2193
          return this;
×
2194
        }
2195

2196
        /** Billing phone number (including extension). */
2197
        public Builder setPhone(String phone) {
2198
          this.phone = phone;
×
2199
          return this;
×
2200
        }
2201

2202
        /** Billing phone number (including extension). */
2203
        public Builder setPhone(EmptyParam phone) {
2204
          this.phone = phone;
×
2205
          return this;
×
2206
        }
2207
      }
2208

2209
      @Getter
2210
      public static class Address {
2211
        /** City, district, suburb, town, or village. */
2212
        @SerializedName("city")
2213
        String city;
2214

2215
        /**
2216
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2217
         * 3166-1 alpha-2</a>).
2218
         */
2219
        @SerializedName("country")
2220
        String country;
2221

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

2232
        /** Address line 1 (e.g., street, PO Box, or company name). */
2233
        @SerializedName("line1")
2234
        String line1;
2235

2236
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
2237
        @SerializedName("line2")
2238
        String line2;
2239

2240
        /** ZIP or postal code. */
2241
        @SerializedName("postal_code")
2242
        String postalCode;
2243

2244
        /** State, county, province, or region. */
2245
        @SerializedName("state")
2246
        String state;
2247

2248
        private Address(
2249
            String city,
2250
            String country,
2251
            Map<String, Object> extraParams,
2252
            String line1,
2253
            String line2,
2254
            String postalCode,
2255
            String state) {
×
2256
          this.city = city;
×
2257
          this.country = country;
×
2258
          this.extraParams = extraParams;
×
2259
          this.line1 = line1;
×
2260
          this.line2 = line2;
×
2261
          this.postalCode = postalCode;
×
2262
          this.state = state;
×
2263
        }
×
2264

2265
        public static Builder builder() {
2266
          return new Builder();
×
2267
        }
2268

2269
        public static class Builder {
×
2270
          private String city;
2271

2272
          private String country;
2273

2274
          private Map<String, Object> extraParams;
2275

2276
          private String line1;
2277

2278
          private String line2;
2279

2280
          private String postalCode;
2281

2282
          private String state;
2283

2284
          /** Finalize and obtain parameter instance from this builder. */
2285
          public ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address build() {
2286
            return new ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address(
×
2287
                this.city,
2288
                this.country,
2289
                this.extraParams,
2290
                this.line1,
2291
                this.line2,
2292
                this.postalCode,
2293
                this.state);
2294
          }
2295

2296
          /** City, district, suburb, town, or village. */
2297
          public Builder setCity(String city) {
2298
            this.city = city;
×
2299
            return this;
×
2300
          }
2301

2302
          /**
2303
           * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2304
           * 3166-1 alpha-2</a>).
2305
           */
2306
          public Builder setCountry(String country) {
2307
            this.country = country;
×
2308
            return this;
×
2309
          }
2310

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

2326
          /**
2327
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2328
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2329
           * map. See {@link
2330
           * ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address#extraParams} for
2331
           * the field documentation.
2332
           */
2333
          public Builder putAllExtraParam(Map<String, Object> map) {
2334
            if (this.extraParams == null) {
×
2335
              this.extraParams = new HashMap<>();
×
2336
            }
2337
            this.extraParams.putAll(map);
×
2338
            return this;
×
2339
          }
2340

2341
          /** Address line 1 (e.g., street, PO Box, or company name). */
2342
          public Builder setLine1(String line1) {
2343
            this.line1 = line1;
×
2344
            return this;
×
2345
          }
2346

2347
          /** Address line 2 (e.g., apartment, suite, unit, or building). */
2348
          public Builder setLine2(String line2) {
2349
            this.line2 = line2;
×
2350
            return this;
×
2351
          }
2352

2353
          /** ZIP or postal code. */
2354
          public Builder setPostalCode(String postalCode) {
2355
            this.postalCode = postalCode;
×
2356
            return this;
×
2357
          }
2358

2359
          /** State, county, province, or region. */
2360
          public Builder setState(String state) {
2361
            this.state = state;
×
2362
            return this;
×
2363
          }
2364
        }
2365
      }
2366
    }
2367

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

2379
      private Blik(Map<String, Object> extraParams) {
×
2380
        this.extraParams = extraParams;
×
2381
      }
×
2382

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

2387
      public static class Builder {
×
2388
        private Map<String, Object> extraParams;
2389

2390
        /** Finalize and obtain parameter instance from this builder. */
2391
        public ConfirmationTokenCreateParams.PaymentMethodData.Blik build() {
2392
          return new ConfirmationTokenCreateParams.PaymentMethodData.Blik(this.extraParams);
×
2393
        }
2394

2395
        /**
2396
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2397
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2398
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Blik#extraParams} for the
2399
         * field documentation.
2400
         */
2401
        public Builder putExtraParam(String key, Object value) {
2402
          if (this.extraParams == null) {
×
2403
            this.extraParams = new HashMap<>();
×
2404
          }
2405
          this.extraParams.put(key, value);
×
2406
          return this;
×
2407
        }
2408

2409
        /**
2410
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2411
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2412
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Blik#extraParams} for the
2413
         * field documentation.
2414
         */
2415
        public Builder putAllExtraParam(Map<String, Object> map) {
2416
          if (this.extraParams == null) {
×
2417
            this.extraParams = new HashMap<>();
×
2418
          }
2419
          this.extraParams.putAll(map);
×
2420
          return this;
×
2421
        }
2422
      }
2423
    }
2424

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

2436
      /**
2437
       * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2438
       * for businesses consumers)
2439
       */
2440
      @SerializedName("tax_id")
2441
      String taxId;
2442

2443
      private Boleto(Map<String, Object> extraParams, String taxId) {
×
2444
        this.extraParams = extraParams;
×
2445
        this.taxId = taxId;
×
2446
      }
×
2447

2448
      public static Builder builder() {
2449
        return new Builder();
×
2450
      }
2451

2452
      public static class Builder {
×
2453
        private Map<String, Object> extraParams;
2454

2455
        private String taxId;
2456

2457
        /** Finalize and obtain parameter instance from this builder. */
2458
        public ConfirmationTokenCreateParams.PaymentMethodData.Boleto build() {
2459
          return new ConfirmationTokenCreateParams.PaymentMethodData.Boleto(
×
2460
              this.extraParams, this.taxId);
2461
        }
2462

2463
        /**
2464
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2465
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2466
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Boleto#extraParams} for
2467
         * the field documentation.
2468
         */
2469
        public Builder putExtraParam(String key, Object value) {
2470
          if (this.extraParams == null) {
×
2471
            this.extraParams = new HashMap<>();
×
2472
          }
2473
          this.extraParams.put(key, value);
×
2474
          return this;
×
2475
        }
2476

2477
        /**
2478
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2479
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2480
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Boleto#extraParams} for
2481
         * the field documentation.
2482
         */
2483
        public Builder putAllExtraParam(Map<String, Object> map) {
2484
          if (this.extraParams == null) {
×
2485
            this.extraParams = new HashMap<>();
×
2486
          }
2487
          this.extraParams.putAll(map);
×
2488
          return this;
×
2489
        }
2490

2491
        /**
2492
         * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or
2493
         * CNPJ for businesses consumers)
2494
         */
2495
        public Builder setTaxId(String taxId) {
2496
          this.taxId = taxId;
×
2497
          return this;
×
2498
        }
2499
      }
2500
    }
2501

2502
    @Getter
2503
    public static class Cashapp {
2504
      /**
2505
       * Map of extra parameters for custom features not available in this client library. The
2506
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2507
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2508
       * name in this param object. Effectively, this map is flattened to its parent instance.
2509
       */
2510
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2511
      Map<String, Object> extraParams;
2512

2513
      private Cashapp(Map<String, Object> extraParams) {
×
2514
        this.extraParams = extraParams;
×
2515
      }
×
2516

2517
      public static Builder builder() {
2518
        return new Builder();
×
2519
      }
2520

2521
      public static class Builder {
×
2522
        private Map<String, Object> extraParams;
2523

2524
        /** Finalize and obtain parameter instance from this builder. */
2525
        public ConfirmationTokenCreateParams.PaymentMethodData.Cashapp build() {
2526
          return new ConfirmationTokenCreateParams.PaymentMethodData.Cashapp(this.extraParams);
×
2527
        }
2528

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

2543
        /**
2544
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2545
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2546
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Cashapp#extraParams} for
2547
         * the field documentation.
2548
         */
2549
        public Builder putAllExtraParam(Map<String, Object> map) {
2550
          if (this.extraParams == null) {
×
2551
            this.extraParams = new HashMap<>();
×
2552
          }
2553
          this.extraParams.putAll(map);
×
2554
          return this;
×
2555
        }
2556
      }
2557
    }
2558

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

2570
      private CustomerBalance(Map<String, Object> extraParams) {
×
2571
        this.extraParams = extraParams;
×
2572
      }
×
2573

2574
      public static Builder builder() {
2575
        return new Builder();
×
2576
      }
2577

2578
      public static class Builder {
×
2579
        private Map<String, Object> extraParams;
2580

2581
        /** Finalize and obtain parameter instance from this builder. */
2582
        public ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance build() {
2583
          return new ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance(
×
2584
              this.extraParams);
2585
        }
2586

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

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

2619
    @Getter
2620
    public static class Eps {
2621
      /** The customer's bank. */
2622
      @SerializedName("bank")
2623
      Bank bank;
2624

2625
      /**
2626
       * Map of extra parameters for custom features not available in this client library. The
2627
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2628
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2629
       * name in this param object. Effectively, this map is flattened to its parent instance.
2630
       */
2631
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2632
      Map<String, Object> extraParams;
2633

2634
      private Eps(Bank bank, Map<String, Object> extraParams) {
×
2635
        this.bank = bank;
×
2636
        this.extraParams = extraParams;
×
2637
      }
×
2638

2639
      public static Builder builder() {
2640
        return new Builder();
×
2641
      }
2642

2643
      public static class Builder {
×
2644
        private Bank bank;
2645

2646
        private Map<String, Object> extraParams;
2647

2648
        /** Finalize and obtain parameter instance from this builder. */
2649
        public ConfirmationTokenCreateParams.PaymentMethodData.Eps build() {
2650
          return new ConfirmationTokenCreateParams.PaymentMethodData.Eps(
×
2651
              this.bank, this.extraParams);
2652
        }
2653

2654
        /** The customer's bank. */
2655
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Eps.Bank bank) {
2656
          this.bank = bank;
×
2657
          return this;
×
2658
        }
2659

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

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

2689
      public enum Bank implements ApiRequestParams.EnumParam {
×
2690
        @SerializedName("arzte_und_apotheker_bank")
×
2691
        ARZTE_UND_APOTHEKER_BANK("arzte_und_apotheker_bank"),
2692

2693
        @SerializedName("austrian_anadi_bank_ag")
×
2694
        AUSTRIAN_ANADI_BANK_AG("austrian_anadi_bank_ag"),
2695

2696
        @SerializedName("bank_austria")
×
2697
        BANK_AUSTRIA("bank_austria"),
2698

2699
        @SerializedName("bankhaus_carl_spangler")
×
2700
        BANKHAUS_CARL_SPANGLER("bankhaus_carl_spangler"),
2701

2702
        @SerializedName("bankhaus_schelhammer_und_schattera_ag")
×
2703
        BANKHAUS_SCHELHAMMER_UND_SCHATTERA_AG("bankhaus_schelhammer_und_schattera_ag"),
2704

2705
        @SerializedName("bawag_psk_ag")
×
2706
        BAWAG_PSK_AG("bawag_psk_ag"),
2707

2708
        @SerializedName("bks_bank_ag")
×
2709
        BKS_BANK_AG("bks_bank_ag"),
2710

2711
        @SerializedName("brull_kallmus_bank_ag")
×
2712
        BRULL_KALLMUS_BANK_AG("brull_kallmus_bank_ag"),
2713

2714
        @SerializedName("btv_vier_lander_bank")
×
2715
        BTV_VIER_LANDER_BANK("btv_vier_lander_bank"),
2716

2717
        @SerializedName("capital_bank_grawe_gruppe_ag")
×
2718
        CAPITAL_BANK_GRAWE_GRUPPE_AG("capital_bank_grawe_gruppe_ag"),
2719

2720
        @SerializedName("deutsche_bank_ag")
×
2721
        DEUTSCHE_BANK_AG("deutsche_bank_ag"),
2722

2723
        @SerializedName("dolomitenbank")
×
2724
        DOLOMITENBANK("dolomitenbank"),
2725

2726
        @SerializedName("easybank_ag")
×
2727
        EASYBANK_AG("easybank_ag"),
2728

2729
        @SerializedName("erste_bank_und_sparkassen")
×
2730
        ERSTE_BANK_UND_SPARKASSEN("erste_bank_und_sparkassen"),
2731

2732
        @SerializedName("hypo_alpeadriabank_international_ag")
×
2733
        HYPO_ALPEADRIABANK_INTERNATIONAL_AG("hypo_alpeadriabank_international_ag"),
2734

2735
        @SerializedName("hypo_bank_burgenland_aktiengesellschaft")
×
2736
        HYPO_BANK_BURGENLAND_AKTIENGESELLSCHAFT("hypo_bank_burgenland_aktiengesellschaft"),
2737

2738
        @SerializedName("hypo_noe_lb_fur_niederosterreich_u_wien")
×
2739
        HYPO_NOE_LB_FUR_NIEDEROSTERREICH_U_WIEN("hypo_noe_lb_fur_niederosterreich_u_wien"),
2740

2741
        @SerializedName("hypo_oberosterreich_salzburg_steiermark")
×
2742
        HYPO_OBEROSTERREICH_SALZBURG_STEIERMARK("hypo_oberosterreich_salzburg_steiermark"),
2743

2744
        @SerializedName("hypo_tirol_bank_ag")
×
2745
        HYPO_TIROL_BANK_AG("hypo_tirol_bank_ag"),
2746

2747
        @SerializedName("hypo_vorarlberg_bank_ag")
×
2748
        HYPO_VORARLBERG_BANK_AG("hypo_vorarlberg_bank_ag"),
2749

2750
        @SerializedName("marchfelder_bank")
×
2751
        MARCHFELDER_BANK("marchfelder_bank"),
2752

2753
        @SerializedName("oberbank_ag")
×
2754
        OBERBANK_AG("oberbank_ag"),
2755

2756
        @SerializedName("raiffeisen_bankengruppe_osterreich")
×
2757
        RAIFFEISEN_BANKENGRUPPE_OSTERREICH("raiffeisen_bankengruppe_osterreich"),
2758

2759
        @SerializedName("schoellerbank_ag")
×
2760
        SCHOELLERBANK_AG("schoellerbank_ag"),
2761

2762
        @SerializedName("sparda_bank_wien")
×
2763
        SPARDA_BANK_WIEN("sparda_bank_wien"),
2764

2765
        @SerializedName("volksbank_gruppe")
×
2766
        VOLKSBANK_GRUPPE("volksbank_gruppe"),
2767

2768
        @SerializedName("volkskreditbank_ag")
×
2769
        VOLKSKREDITBANK_AG("volkskreditbank_ag"),
2770

2771
        @SerializedName("vr_bank_braunau")
×
2772
        VR_BANK_BRAUNAU("vr_bank_braunau");
2773

2774
        @Getter(onMethod_ = {@Override})
2775
        private final String value;
2776

2777
        Bank(String value) {
×
2778
          this.value = value;
×
2779
        }
×
2780
      }
2781
    }
2782

2783
    @Getter
2784
    public static class Fpx {
2785
      /** Account holder type for FPX transaction. */
2786
      @SerializedName("account_holder_type")
2787
      AccountHolderType accountHolderType;
2788

2789
      /** <strong>Required.</strong> The customer's bank. */
2790
      @SerializedName("bank")
2791
      Bank bank;
2792

2793
      /**
2794
       * Map of extra parameters for custom features not available in this client library. The
2795
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2796
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2797
       * name in this param object. Effectively, this map is flattened to its parent instance.
2798
       */
2799
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2800
      Map<String, Object> extraParams;
2801

2802
      private Fpx(AccountHolderType accountHolderType, Bank bank, Map<String, Object> extraParams) {
×
2803
        this.accountHolderType = accountHolderType;
×
2804
        this.bank = bank;
×
2805
        this.extraParams = extraParams;
×
2806
      }
×
2807

2808
      public static Builder builder() {
2809
        return new Builder();
×
2810
      }
2811

2812
      public static class Builder {
×
2813
        private AccountHolderType accountHolderType;
2814

2815
        private Bank bank;
2816

2817
        private Map<String, Object> extraParams;
2818

2819
        /** Finalize and obtain parameter instance from this builder. */
2820
        public ConfirmationTokenCreateParams.PaymentMethodData.Fpx build() {
2821
          return new ConfirmationTokenCreateParams.PaymentMethodData.Fpx(
×
2822
              this.accountHolderType, this.bank, this.extraParams);
2823
        }
2824

2825
        /** Account holder type for FPX transaction. */
2826
        public Builder setAccountHolderType(
2827
            ConfirmationTokenCreateParams.PaymentMethodData.Fpx.AccountHolderType
2828
                accountHolderType) {
2829
          this.accountHolderType = accountHolderType;
×
2830
          return this;
×
2831
        }
2832

2833
        /** <strong>Required.</strong> The customer's bank. */
2834
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Fpx.Bank bank) {
2835
          this.bank = bank;
×
2836
          return this;
×
2837
        }
2838

2839
        /**
2840
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2841
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2842
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Fpx#extraParams} for the
2843
         * field documentation.
2844
         */
2845
        public Builder putExtraParam(String key, Object value) {
2846
          if (this.extraParams == null) {
×
2847
            this.extraParams = new HashMap<>();
×
2848
          }
2849
          this.extraParams.put(key, value);
×
2850
          return this;
×
2851
        }
2852

2853
        /**
2854
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2855
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2856
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Fpx#extraParams} for the
2857
         * field documentation.
2858
         */
2859
        public Builder putAllExtraParam(Map<String, Object> map) {
2860
          if (this.extraParams == null) {
×
2861
            this.extraParams = new HashMap<>();
×
2862
          }
2863
          this.extraParams.putAll(map);
×
2864
          return this;
×
2865
        }
2866
      }
2867

2868
      public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
2869
        @SerializedName("company")
×
2870
        COMPANY("company"),
2871

2872
        @SerializedName("individual")
×
2873
        INDIVIDUAL("individual");
2874

2875
        @Getter(onMethod_ = {@Override})
2876
        private final String value;
2877

2878
        AccountHolderType(String value) {
×
2879
          this.value = value;
×
2880
        }
×
2881
      }
2882

2883
      public enum Bank implements ApiRequestParams.EnumParam {
×
2884
        @SerializedName("affin_bank")
×
2885
        AFFIN_BANK("affin_bank"),
2886

2887
        @SerializedName("agrobank")
×
2888
        AGROBANK("agrobank"),
2889

2890
        @SerializedName("alliance_bank")
×
2891
        ALLIANCE_BANK("alliance_bank"),
2892

2893
        @SerializedName("ambank")
×
2894
        AMBANK("ambank"),
2895

2896
        @SerializedName("bank_islam")
×
2897
        BANK_ISLAM("bank_islam"),
2898

2899
        @SerializedName("bank_muamalat")
×
2900
        BANK_MUAMALAT("bank_muamalat"),
2901

2902
        @SerializedName("bank_of_china")
×
2903
        BANK_OF_CHINA("bank_of_china"),
2904

2905
        @SerializedName("bank_rakyat")
×
2906
        BANK_RAKYAT("bank_rakyat"),
2907

2908
        @SerializedName("bsn")
×
2909
        BSN("bsn"),
2910

2911
        @SerializedName("cimb")
×
2912
        CIMB("cimb"),
2913

2914
        @SerializedName("deutsche_bank")
×
2915
        DEUTSCHE_BANK("deutsche_bank"),
2916

2917
        @SerializedName("hong_leong_bank")
×
2918
        HONG_LEONG_BANK("hong_leong_bank"),
2919

2920
        @SerializedName("hsbc")
×
2921
        HSBC("hsbc"),
2922

2923
        @SerializedName("kfh")
×
2924
        KFH("kfh"),
2925

2926
        @SerializedName("maybank2e")
×
2927
        MAYBANK2E("maybank2e"),
2928

2929
        @SerializedName("maybank2u")
×
2930
        MAYBANK2U("maybank2u"),
2931

2932
        @SerializedName("ocbc")
×
2933
        OCBC("ocbc"),
2934

2935
        @SerializedName("pb_enterprise")
×
2936
        PB_ENTERPRISE("pb_enterprise"),
2937

2938
        @SerializedName("public_bank")
×
2939
        PUBLIC_BANK("public_bank"),
2940

2941
        @SerializedName("rhb")
×
2942
        RHB("rhb"),
2943

2944
        @SerializedName("standard_chartered")
×
2945
        STANDARD_CHARTERED("standard_chartered"),
2946

2947
        @SerializedName("uob")
×
2948
        UOB("uob");
2949

2950
        @Getter(onMethod_ = {@Override})
2951
        private final String value;
2952

2953
        Bank(String value) {
×
2954
          this.value = value;
×
2955
        }
×
2956
      }
2957
    }
2958

2959
    @Getter
2960
    public static class Giropay {
2961
      /**
2962
       * Map of extra parameters for custom features not available in this client library. The
2963
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2964
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2965
       * name in this param object. Effectively, this map is flattened to its parent instance.
2966
       */
2967
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2968
      Map<String, Object> extraParams;
2969

2970
      private Giropay(Map<String, Object> extraParams) {
×
2971
        this.extraParams = extraParams;
×
2972
      }
×
2973

2974
      public static Builder builder() {
2975
        return new Builder();
×
2976
      }
2977

2978
      public static class Builder {
×
2979
        private Map<String, Object> extraParams;
2980

2981
        /** Finalize and obtain parameter instance from this builder. */
2982
        public ConfirmationTokenCreateParams.PaymentMethodData.Giropay build() {
2983
          return new ConfirmationTokenCreateParams.PaymentMethodData.Giropay(this.extraParams);
×
2984
        }
2985

2986
        /**
2987
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2988
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2989
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Giropay#extraParams} for
2990
         * the field documentation.
2991
         */
2992
        public Builder putExtraParam(String key, Object value) {
2993
          if (this.extraParams == null) {
×
2994
            this.extraParams = new HashMap<>();
×
2995
          }
2996
          this.extraParams.put(key, value);
×
2997
          return this;
×
2998
        }
2999

3000
        /**
3001
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3002
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3003
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Giropay#extraParams} for
3004
         * the field documentation.
3005
         */
3006
        public Builder putAllExtraParam(Map<String, Object> map) {
3007
          if (this.extraParams == null) {
×
3008
            this.extraParams = new HashMap<>();
×
3009
          }
3010
          this.extraParams.putAll(map);
×
3011
          return this;
×
3012
        }
3013
      }
3014
    }
3015

3016
    @Getter
3017
    public static class Gopay {
3018
      /**
3019
       * Map of extra parameters for custom features not available in this client library. The
3020
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3021
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3022
       * name in this param object. Effectively, this map is flattened to its parent instance.
3023
       */
3024
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3025
      Map<String, Object> extraParams;
3026

3027
      private Gopay(Map<String, Object> extraParams) {
×
3028
        this.extraParams = extraParams;
×
3029
      }
×
3030

3031
      public static Builder builder() {
3032
        return new Builder();
×
3033
      }
3034

3035
      public static class Builder {
×
3036
        private Map<String, Object> extraParams;
3037

3038
        /** Finalize and obtain parameter instance from this builder. */
3039
        public ConfirmationTokenCreateParams.PaymentMethodData.Gopay build() {
3040
          return new ConfirmationTokenCreateParams.PaymentMethodData.Gopay(this.extraParams);
×
3041
        }
3042

3043
        /**
3044
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3045
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3046
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Gopay#extraParams} for
3047
         * the field documentation.
3048
         */
3049
        public Builder putExtraParam(String key, Object value) {
3050
          if (this.extraParams == null) {
×
3051
            this.extraParams = new HashMap<>();
×
3052
          }
3053
          this.extraParams.put(key, value);
×
3054
          return this;
×
3055
        }
3056

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

3073
    @Getter
3074
    public static class Grabpay {
3075
      /**
3076
       * Map of extra parameters for custom features not available in this client library. The
3077
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3078
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3079
       * name in this param object. Effectively, this map is flattened to its parent instance.
3080
       */
3081
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3082
      Map<String, Object> extraParams;
3083

3084
      private Grabpay(Map<String, Object> extraParams) {
×
3085
        this.extraParams = extraParams;
×
3086
      }
×
3087

3088
      public static Builder builder() {
3089
        return new Builder();
×
3090
      }
3091

3092
      public static class Builder {
×
3093
        private Map<String, Object> extraParams;
3094

3095
        /** Finalize and obtain parameter instance from this builder. */
3096
        public ConfirmationTokenCreateParams.PaymentMethodData.Grabpay build() {
3097
          return new ConfirmationTokenCreateParams.PaymentMethodData.Grabpay(this.extraParams);
×
3098
        }
3099

3100
        /**
3101
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3102
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3103
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Grabpay#extraParams} for
3104
         * the field documentation.
3105
         */
3106
        public Builder putExtraParam(String key, Object value) {
3107
          if (this.extraParams == null) {
×
3108
            this.extraParams = new HashMap<>();
×
3109
          }
3110
          this.extraParams.put(key, value);
×
3111
          return this;
×
3112
        }
3113

3114
        /**
3115
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3116
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3117
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Grabpay#extraParams} for
3118
         * the field documentation.
3119
         */
3120
        public Builder putAllExtraParam(Map<String, Object> map) {
3121
          if (this.extraParams == null) {
×
3122
            this.extraParams = new HashMap<>();
×
3123
          }
3124
          this.extraParams.putAll(map);
×
3125
          return this;
×
3126
        }
3127
      }
3128
    }
3129

3130
    @Getter
3131
    public static class IdBankTransfer {
3132
      /** Bank where the account is held. */
3133
      @SerializedName("bank")
3134
      Bank bank;
3135

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

NEW
3145
      private IdBankTransfer(Bank bank, Map<String, Object> extraParams) {
×
NEW
3146
        this.bank = bank;
×
NEW
3147
        this.extraParams = extraParams;
×
NEW
3148
      }
×
3149

3150
      public static Builder builder() {
NEW
3151
        return new Builder();
×
3152
      }
3153

NEW
3154
      public static class Builder {
×
3155
        private Bank bank;
3156

3157
        private Map<String, Object> extraParams;
3158

3159
        /** Finalize and obtain parameter instance from this builder. */
3160
        public ConfirmationTokenCreateParams.PaymentMethodData.IdBankTransfer build() {
NEW
3161
          return new ConfirmationTokenCreateParams.PaymentMethodData.IdBankTransfer(
×
3162
              this.bank, this.extraParams);
3163
        }
3164

3165
        /** Bank where the account is held. */
3166
        public Builder setBank(
3167
            ConfirmationTokenCreateParams.PaymentMethodData.IdBankTransfer.Bank bank) {
NEW
3168
          this.bank = bank;
×
NEW
3169
          return this;
×
3170
        }
3171

3172
        /**
3173
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3174
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3175
         * map. See {@link
3176
         * ConfirmationTokenCreateParams.PaymentMethodData.IdBankTransfer#extraParams} for the field
3177
         * documentation.
3178
         */
3179
        public Builder putExtraParam(String key, Object value) {
NEW
3180
          if (this.extraParams == null) {
×
NEW
3181
            this.extraParams = new HashMap<>();
×
3182
          }
NEW
3183
          this.extraParams.put(key, value);
×
NEW
3184
          return this;
×
3185
        }
3186

3187
        /**
3188
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3189
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3190
         * map. See {@link
3191
         * ConfirmationTokenCreateParams.PaymentMethodData.IdBankTransfer#extraParams} for the field
3192
         * documentation.
3193
         */
3194
        public Builder putAllExtraParam(Map<String, Object> map) {
NEW
3195
          if (this.extraParams == null) {
×
NEW
3196
            this.extraParams = new HashMap<>();
×
3197
          }
NEW
3198
          this.extraParams.putAll(map);
×
NEW
3199
          return this;
×
3200
        }
3201
      }
3202

NEW
3203
      public enum Bank implements ApiRequestParams.EnumParam {
×
NEW
3204
        @SerializedName("bca")
×
3205
        BCA("bca"),
3206

NEW
3207
        @SerializedName("bni")
×
3208
        BNI("bni"),
3209

NEW
3210
        @SerializedName("bri")
×
3211
        BRI("bri"),
3212

NEW
3213
        @SerializedName("cimb")
×
3214
        CIMB("cimb"),
3215

NEW
3216
        @SerializedName("permata")
×
3217
        PERMATA("permata");
3218

3219
        @Getter(onMethod_ = {@Override})
3220
        private final String value;
3221

NEW
3222
        Bank(String value) {
×
NEW
3223
          this.value = value;
×
NEW
3224
        }
×
3225
      }
3226
    }
3227

3228
    @Getter
3229
    public static class Ideal {
3230
      /**
3231
       * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3232
       * customers.
3233
       */
3234
      @SerializedName("bank")
3235
      Bank bank;
3236

3237
      /**
3238
       * Map of extra parameters for custom features not available in this client library. The
3239
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3240
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3241
       * name in this param object. Effectively, this map is flattened to its parent instance.
3242
       */
3243
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3244
      Map<String, Object> extraParams;
3245

3246
      private Ideal(Bank bank, Map<String, Object> extraParams) {
×
3247
        this.bank = bank;
×
3248
        this.extraParams = extraParams;
×
3249
      }
×
3250

3251
      public static Builder builder() {
3252
        return new Builder();
×
3253
      }
3254

3255
      public static class Builder {
×
3256
        private Bank bank;
3257

3258
        private Map<String, Object> extraParams;
3259

3260
        /** Finalize and obtain parameter instance from this builder. */
3261
        public ConfirmationTokenCreateParams.PaymentMethodData.Ideal build() {
3262
          return new ConfirmationTokenCreateParams.PaymentMethodData.Ideal(
×
3263
              this.bank, this.extraParams);
3264
        }
3265

3266
        /**
3267
         * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3268
         * customers.
3269
         */
3270
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Ideal.Bank bank) {
3271
          this.bank = bank;
×
3272
          return this;
×
3273
        }
3274

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

3289
        /**
3290
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3291
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3292
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Ideal#extraParams} for
3293
         * the field documentation.
3294
         */
3295
        public Builder putAllExtraParam(Map<String, Object> map) {
3296
          if (this.extraParams == null) {
×
3297
            this.extraParams = new HashMap<>();
×
3298
          }
3299
          this.extraParams.putAll(map);
×
3300
          return this;
×
3301
        }
3302
      }
3303

3304
      public enum Bank implements ApiRequestParams.EnumParam {
×
3305
        @SerializedName("abn_amro")
×
3306
        ABN_AMRO("abn_amro"),
3307

3308
        @SerializedName("asn_bank")
×
3309
        ASN_BANK("asn_bank"),
3310

3311
        @SerializedName("bunq")
×
3312
        BUNQ("bunq"),
3313

3314
        @SerializedName("handelsbanken")
×
3315
        HANDELSBANKEN("handelsbanken"),
3316

3317
        @SerializedName("ing")
×
3318
        ING("ing"),
3319

3320
        @SerializedName("knab")
×
3321
        KNAB("knab"),
3322

3323
        @SerializedName("moneyou")
×
3324
        MONEYOU("moneyou"),
3325

3326
        @SerializedName("n26")
×
3327
        N26("n26"),
3328

3329
        @SerializedName("nn")
×
3330
        NN("nn"),
3331

3332
        @SerializedName("rabobank")
×
3333
        RABOBANK("rabobank"),
3334

3335
        @SerializedName("regiobank")
×
3336
        REGIOBANK("regiobank"),
3337

3338
        @SerializedName("revolut")
×
3339
        REVOLUT("revolut"),
3340

3341
        @SerializedName("sns_bank")
×
3342
        SNS_BANK("sns_bank"),
3343

3344
        @SerializedName("triodos_bank")
×
3345
        TRIODOS_BANK("triodos_bank"),
3346

3347
        @SerializedName("van_lanschot")
×
3348
        VAN_LANSCHOT("van_lanschot"),
3349

3350
        @SerializedName("yoursafe")
×
3351
        YOURSAFE("yoursafe");
3352

3353
        @Getter(onMethod_ = {@Override})
3354
        private final String value;
3355

3356
        Bank(String value) {
×
3357
          this.value = value;
×
3358
        }
×
3359
      }
3360
    }
3361

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

3373
      private InteracPresent(Map<String, Object> extraParams) {
×
3374
        this.extraParams = extraParams;
×
3375
      }
×
3376

3377
      public static Builder builder() {
3378
        return new Builder();
×
3379
      }
3380

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

3384
        /** Finalize and obtain parameter instance from this builder. */
3385
        public ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent build() {
3386
          return new ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent(
×
3387
              this.extraParams);
3388
        }
3389

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

3405
        /**
3406
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3407
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3408
         * map. See {@link
3409
         * ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent#extraParams} for the field
3410
         * documentation.
3411
         */
3412
        public Builder putAllExtraParam(Map<String, Object> map) {
3413
          if (this.extraParams == null) {
×
3414
            this.extraParams = new HashMap<>();
×
3415
          }
3416
          this.extraParams.putAll(map);
×
3417
          return this;
×
3418
        }
3419
      }
3420
    }
3421

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

3433
      private KakaoPay(Map<String, Object> extraParams) {
×
3434
        this.extraParams = extraParams;
×
3435
      }
×
3436

3437
      public static Builder builder() {
3438
        return new Builder();
×
3439
      }
3440

3441
      public static class Builder {
×
3442
        private Map<String, Object> extraParams;
3443

3444
        /** Finalize and obtain parameter instance from this builder. */
3445
        public ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay build() {
3446
          return new ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay(this.extraParams);
×
3447
        }
3448

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

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

3479
    @Getter
3480
    public static class Klarna {
3481
      /** Customer's date of birth. */
3482
      @SerializedName("dob")
3483
      Dob dob;
3484

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

3494
      private Klarna(Dob dob, Map<String, Object> extraParams) {
×
3495
        this.dob = dob;
×
3496
        this.extraParams = extraParams;
×
3497
      }
×
3498

3499
      public static Builder builder() {
3500
        return new Builder();
×
3501
      }
3502

3503
      public static class Builder {
×
3504
        private Dob dob;
3505

3506
        private Map<String, Object> extraParams;
3507

3508
        /** Finalize and obtain parameter instance from this builder. */
3509
        public ConfirmationTokenCreateParams.PaymentMethodData.Klarna build() {
3510
          return new ConfirmationTokenCreateParams.PaymentMethodData.Klarna(
×
3511
              this.dob, this.extraParams);
3512
        }
3513

3514
        /** Customer's date of birth. */
3515
        public Builder setDob(ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob dob) {
3516
          this.dob = dob;
×
3517
          return this;
×
3518
        }
3519

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

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

3549
      @Getter
3550
      public static class Dob {
3551
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3552
        @SerializedName("day")
3553
        Long day;
3554

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

3565
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3566
        @SerializedName("month")
3567
        Long month;
3568

3569
        /** <strong>Required.</strong> The four-digit year of birth. */
3570
        @SerializedName("year")
3571
        Long year;
3572

3573
        private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
3574
          this.day = day;
×
3575
          this.extraParams = extraParams;
×
3576
          this.month = month;
×
3577
          this.year = year;
×
3578
        }
×
3579

3580
        public static Builder builder() {
3581
          return new Builder();
×
3582
        }
3583

3584
        public static class Builder {
×
3585
          private Long day;
3586

3587
          private Map<String, Object> extraParams;
3588

3589
          private Long month;
3590

3591
          private Long year;
3592

3593
          /** Finalize and obtain parameter instance from this builder. */
3594
          public ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob build() {
3595
            return new ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob(
×
3596
                this.day, this.extraParams, this.month, this.year);
3597
          }
3598

3599
          /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3600
          public Builder setDay(Long day) {
3601
            this.day = day;
×
3602
            return this;
×
3603
          }
3604

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

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

3633
          /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3634
          public Builder setMonth(Long month) {
3635
            this.month = month;
×
3636
            return this;
×
3637
          }
3638

3639
          /** <strong>Required.</strong> The four-digit year of birth. */
3640
          public Builder setYear(Long year) {
3641
            this.year = year;
×
3642
            return this;
×
3643
          }
3644
        }
3645
      }
3646
    }
3647

3648
    @Getter
3649
    public static class Konbini {
3650
      /**
3651
       * Map of extra parameters for custom features not available in this client library. The
3652
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3653
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3654
       * name in this param object. Effectively, this map is flattened to its parent instance.
3655
       */
3656
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3657
      Map<String, Object> extraParams;
3658

3659
      private Konbini(Map<String, Object> extraParams) {
×
3660
        this.extraParams = extraParams;
×
3661
      }
×
3662

3663
      public static Builder builder() {
3664
        return new Builder();
×
3665
      }
3666

3667
      public static class Builder {
×
3668
        private Map<String, Object> extraParams;
3669

3670
        /** Finalize and obtain parameter instance from this builder. */
3671
        public ConfirmationTokenCreateParams.PaymentMethodData.Konbini build() {
3672
          return new ConfirmationTokenCreateParams.PaymentMethodData.Konbini(this.extraParams);
×
3673
        }
3674

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

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

3705
    @Getter
3706
    public static class KrCard {
3707
      /**
3708
       * Map of extra parameters for custom features not available in this client library. The
3709
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3710
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3711
       * name in this param object. Effectively, this map is flattened to its parent instance.
3712
       */
3713
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3714
      Map<String, Object> extraParams;
3715

3716
      private KrCard(Map<String, Object> extraParams) {
×
3717
        this.extraParams = extraParams;
×
3718
      }
×
3719

3720
      public static Builder builder() {
3721
        return new Builder();
×
3722
      }
3723

3724
      public static class Builder {
×
3725
        private Map<String, Object> extraParams;
3726

3727
        /** Finalize and obtain parameter instance from this builder. */
3728
        public ConfirmationTokenCreateParams.PaymentMethodData.KrCard build() {
3729
          return new ConfirmationTokenCreateParams.PaymentMethodData.KrCard(this.extraParams);
×
3730
        }
3731

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

3746
        /**
3747
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3748
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3749
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.KrCard#extraParams} for
3750
         * the field documentation.
3751
         */
3752
        public Builder putAllExtraParam(Map<String, Object> map) {
3753
          if (this.extraParams == null) {
×
3754
            this.extraParams = new HashMap<>();
×
3755
          }
3756
          this.extraParams.putAll(map);
×
3757
          return this;
×
3758
        }
3759
      }
3760
    }
3761

3762
    @Getter
3763
    public static class Link {
3764
      /**
3765
       * Map of extra parameters for custom features not available in this client library. The
3766
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3767
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3768
       * name in this param object. Effectively, this map is flattened to its parent instance.
3769
       */
3770
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3771
      Map<String, Object> extraParams;
3772

3773
      private Link(Map<String, Object> extraParams) {
×
3774
        this.extraParams = extraParams;
×
3775
      }
×
3776

3777
      public static Builder builder() {
3778
        return new Builder();
×
3779
      }
3780

3781
      public static class Builder {
×
3782
        private Map<String, Object> extraParams;
3783

3784
        /** Finalize and obtain parameter instance from this builder. */
3785
        public ConfirmationTokenCreateParams.PaymentMethodData.Link build() {
3786
          return new ConfirmationTokenCreateParams.PaymentMethodData.Link(this.extraParams);
×
3787
        }
3788

3789
        /**
3790
         * Add a key/value pair 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
3792
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Link#extraParams} for the
3793
         * field documentation.
3794
         */
3795
        public Builder putExtraParam(String key, Object value) {
3796
          if (this.extraParams == null) {
×
3797
            this.extraParams = new HashMap<>();
×
3798
          }
3799
          this.extraParams.put(key, value);
×
3800
          return this;
×
3801
        }
3802

3803
        /**
3804
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3805
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3806
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Link#extraParams} for the
3807
         * field documentation.
3808
         */
3809
        public Builder putAllExtraParam(Map<String, Object> map) {
3810
          if (this.extraParams == null) {
×
3811
            this.extraParams = new HashMap<>();
×
3812
          }
3813
          this.extraParams.putAll(map);
×
3814
          return this;
×
3815
        }
3816
      }
3817
    }
3818

3819
    @Getter
3820
    public static class MbWay {
3821
      /**
3822
       * Map of extra parameters for custom features not available in this client library. The
3823
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3824
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3825
       * name in this param object. Effectively, this map is flattened to its parent instance.
3826
       */
3827
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3828
      Map<String, Object> extraParams;
3829

3830
      private MbWay(Map<String, Object> extraParams) {
×
3831
        this.extraParams = extraParams;
×
3832
      }
×
3833

3834
      public static Builder builder() {
3835
        return new Builder();
×
3836
      }
3837

3838
      public static class Builder {
×
3839
        private Map<String, Object> extraParams;
3840

3841
        /** Finalize and obtain parameter instance from this builder. */
3842
        public ConfirmationTokenCreateParams.PaymentMethodData.MbWay build() {
3843
          return new ConfirmationTokenCreateParams.PaymentMethodData.MbWay(this.extraParams);
×
3844
        }
3845

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

3860
        /**
3861
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3862
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3863
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.MbWay#extraParams} for
3864
         * the field documentation.
3865
         */
3866
        public Builder putAllExtraParam(Map<String, Object> map) {
3867
          if (this.extraParams == null) {
×
3868
            this.extraParams = new HashMap<>();
×
3869
          }
3870
          this.extraParams.putAll(map);
×
3871
          return this;
×
3872
        }
3873
      }
3874
    }
3875

3876
    @Getter
3877
    public static class Mobilepay {
3878
      /**
3879
       * Map of extra parameters for custom features not available in this client library. The
3880
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3881
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3882
       * name in this param object. Effectively, this map is flattened to its parent instance.
3883
       */
3884
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3885
      Map<String, Object> extraParams;
3886

3887
      private Mobilepay(Map<String, Object> extraParams) {
×
3888
        this.extraParams = extraParams;
×
3889
      }
×
3890

3891
      public static Builder builder() {
3892
        return new Builder();
×
3893
      }
3894

3895
      public static class Builder {
×
3896
        private Map<String, Object> extraParams;
3897

3898
        /** Finalize and obtain parameter instance from this builder. */
3899
        public ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay build() {
3900
          return new ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay(this.extraParams);
×
3901
        }
3902

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

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

3933
    @Getter
3934
    public static class Multibanco {
3935
      /**
3936
       * Map of extra parameters for custom features not available in this client library. The
3937
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3938
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3939
       * name in this param object. Effectively, this map is flattened to its parent instance.
3940
       */
3941
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3942
      Map<String, Object> extraParams;
3943

3944
      private Multibanco(Map<String, Object> extraParams) {
×
3945
        this.extraParams = extraParams;
×
3946
      }
×
3947

3948
      public static Builder builder() {
3949
        return new Builder();
×
3950
      }
3951

3952
      public static class Builder {
×
3953
        private Map<String, Object> extraParams;
3954

3955
        /** Finalize and obtain parameter instance from this builder. */
3956
        public ConfirmationTokenCreateParams.PaymentMethodData.Multibanco build() {
3957
          return new ConfirmationTokenCreateParams.PaymentMethodData.Multibanco(this.extraParams);
×
3958
        }
3959

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

3974
        /**
3975
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3976
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3977
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Multibanco#extraParams}
3978
         * for the field documentation.
3979
         */
3980
        public Builder putAllExtraParam(Map<String, Object> map) {
3981
          if (this.extraParams == null) {
×
3982
            this.extraParams = new HashMap<>();
×
3983
          }
3984
          this.extraParams.putAll(map);
×
3985
          return this;
×
3986
        }
3987
      }
3988
    }
3989

3990
    @Getter
3991
    public static class NaverPay {
3992
      /**
3993
       * Map of extra parameters for custom features not available in this client library. The
3994
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3995
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3996
       * name in this param object. Effectively, this map is flattened to its parent instance.
3997
       */
3998
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3999
      Map<String, Object> extraParams;
4000

4001
      /**
4002
       * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
4003
       * defaults to {@code card}.
4004
       */
4005
      @SerializedName("funding")
4006
      Funding funding;
4007

4008
      private NaverPay(Map<String, Object> extraParams, Funding funding) {
×
4009
        this.extraParams = extraParams;
×
4010
        this.funding = funding;
×
4011
      }
×
4012

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

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

4020
        private Funding funding;
4021

4022
        /** Finalize and obtain parameter instance from this builder. */
4023
        public ConfirmationTokenCreateParams.PaymentMethodData.NaverPay build() {
4024
          return new ConfirmationTokenCreateParams.PaymentMethodData.NaverPay(
×
4025
              this.extraParams, this.funding);
4026
        }
4027

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

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

4056
        /**
4057
         * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
4058
         * defaults to {@code card}.
4059
         */
4060
        public Builder setFunding(
4061
            ConfirmationTokenCreateParams.PaymentMethodData.NaverPay.Funding funding) {
4062
          this.funding = funding;
×
4063
          return this;
×
4064
        }
4065
      }
4066

4067
      public enum Funding implements ApiRequestParams.EnumParam {
×
4068
        @SerializedName("card")
×
4069
        CARD("card"),
4070

4071
        @SerializedName("points")
×
4072
        POINTS("points");
4073

4074
        @Getter(onMethod_ = {@Override})
4075
        private final String value;
4076

4077
        Funding(String value) {
×
4078
          this.value = value;
×
4079
        }
×
4080
      }
4081
    }
4082

4083
    @Getter
4084
    public static class Oxxo {
4085
      /**
4086
       * Map of extra parameters for custom features not available in this client library. The
4087
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4088
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4089
       * name in this param object. Effectively, this map is flattened to its parent instance.
4090
       */
4091
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4092
      Map<String, Object> extraParams;
4093

4094
      private Oxxo(Map<String, Object> extraParams) {
×
4095
        this.extraParams = extraParams;
×
4096
      }
×
4097

4098
      public static Builder builder() {
4099
        return new Builder();
×
4100
      }
4101

4102
      public static class Builder {
×
4103
        private Map<String, Object> extraParams;
4104

4105
        /** Finalize and obtain parameter instance from this builder. */
4106
        public ConfirmationTokenCreateParams.PaymentMethodData.Oxxo build() {
4107
          return new ConfirmationTokenCreateParams.PaymentMethodData.Oxxo(this.extraParams);
×
4108
        }
4109

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

4124
        /**
4125
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4126
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4127
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Oxxo#extraParams} for the
4128
         * field documentation.
4129
         */
4130
        public Builder putAllExtraParam(Map<String, Object> map) {
4131
          if (this.extraParams == null) {
×
4132
            this.extraParams = new HashMap<>();
×
4133
          }
4134
          this.extraParams.putAll(map);
×
4135
          return this;
×
4136
        }
4137
      }
4138
    }
4139

4140
    @Getter
4141
    public static class P24 {
4142
      /** The customer's bank. */
4143
      @SerializedName("bank")
4144
      Bank bank;
4145

4146
      /**
4147
       * Map of extra parameters for custom features not available in this client library. The
4148
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4149
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4150
       * name in this param object. Effectively, this map is flattened to its parent instance.
4151
       */
4152
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4153
      Map<String, Object> extraParams;
4154

4155
      private P24(Bank bank, Map<String, Object> extraParams) {
×
4156
        this.bank = bank;
×
4157
        this.extraParams = extraParams;
×
4158
      }
×
4159

4160
      public static Builder builder() {
4161
        return new Builder();
×
4162
      }
4163

4164
      public static class Builder {
×
4165
        private Bank bank;
4166

4167
        private Map<String, Object> extraParams;
4168

4169
        /** Finalize and obtain parameter instance from this builder. */
4170
        public ConfirmationTokenCreateParams.PaymentMethodData.P24 build() {
4171
          return new ConfirmationTokenCreateParams.PaymentMethodData.P24(
×
4172
              this.bank, this.extraParams);
4173
        }
4174

4175
        /** The customer's bank. */
4176
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.P24.Bank bank) {
4177
          this.bank = bank;
×
4178
          return this;
×
4179
        }
4180

4181
        /**
4182
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4183
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4184
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.P24#extraParams} for the
4185
         * field documentation.
4186
         */
4187
        public Builder putExtraParam(String key, Object value) {
4188
          if (this.extraParams == null) {
×
4189
            this.extraParams = new HashMap<>();
×
4190
          }
4191
          this.extraParams.put(key, value);
×
4192
          return this;
×
4193
        }
4194

4195
        /**
4196
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4197
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4198
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.P24#extraParams} for the
4199
         * field documentation.
4200
         */
4201
        public Builder putAllExtraParam(Map<String, Object> map) {
4202
          if (this.extraParams == null) {
×
4203
            this.extraParams = new HashMap<>();
×
4204
          }
4205
          this.extraParams.putAll(map);
×
4206
          return this;
×
4207
        }
4208
      }
4209

4210
      public enum Bank implements ApiRequestParams.EnumParam {
×
4211
        @SerializedName("alior_bank")
×
4212
        ALIOR_BANK("alior_bank"),
4213

4214
        @SerializedName("bank_millennium")
×
4215
        BANK_MILLENNIUM("bank_millennium"),
4216

4217
        @SerializedName("bank_nowy_bfg_sa")
×
4218
        BANK_NOWY_BFG_SA("bank_nowy_bfg_sa"),
4219

4220
        @SerializedName("bank_pekao_sa")
×
4221
        BANK_PEKAO_SA("bank_pekao_sa"),
4222

4223
        @SerializedName("banki_spbdzielcze")
×
4224
        BANKI_SPBDZIELCZE("banki_spbdzielcze"),
4225

4226
        @SerializedName("blik")
×
4227
        BLIK("blik"),
4228

4229
        @SerializedName("bnp_paribas")
×
4230
        BNP_PARIBAS("bnp_paribas"),
4231

4232
        @SerializedName("boz")
×
4233
        BOZ("boz"),
4234

4235
        @SerializedName("citi_handlowy")
×
4236
        CITI_HANDLOWY("citi_handlowy"),
4237

4238
        @SerializedName("credit_agricole")
×
4239
        CREDIT_AGRICOLE("credit_agricole"),
4240

4241
        @SerializedName("envelobank")
×
4242
        ENVELOBANK("envelobank"),
4243

4244
        @SerializedName("etransfer_pocztowy24")
×
4245
        ETRANSFER_POCZTOWY24("etransfer_pocztowy24"),
4246

4247
        @SerializedName("getin_bank")
×
4248
        GETIN_BANK("getin_bank"),
4249

4250
        @SerializedName("ideabank")
×
4251
        IDEABANK("ideabank"),
4252

4253
        @SerializedName("ing")
×
4254
        ING("ing"),
4255

4256
        @SerializedName("inteligo")
×
4257
        INTELIGO("inteligo"),
4258

4259
        @SerializedName("mbank_mtransfer")
×
4260
        MBANK_MTRANSFER("mbank_mtransfer"),
4261

4262
        @SerializedName("nest_przelew")
×
4263
        NEST_PRZELEW("nest_przelew"),
4264

4265
        @SerializedName("noble_pay")
×
4266
        NOBLE_PAY("noble_pay"),
4267

4268
        @SerializedName("pbac_z_ipko")
×
4269
        PBAC_Z_IPKO("pbac_z_ipko"),
4270

4271
        @SerializedName("plus_bank")
×
4272
        PLUS_BANK("plus_bank"),
4273

4274
        @SerializedName("santander_przelew24")
×
4275
        SANTANDER_PRZELEW24("santander_przelew24"),
4276

4277
        @SerializedName("tmobile_usbugi_bankowe")
×
4278
        TMOBILE_USBUGI_BANKOWE("tmobile_usbugi_bankowe"),
4279

4280
        @SerializedName("toyota_bank")
×
4281
        TOYOTA_BANK("toyota_bank"),
4282

4283
        @SerializedName("velobank")
×
4284
        VELOBANK("velobank"),
4285

4286
        @SerializedName("volkswagen_bank")
×
4287
        VOLKSWAGEN_BANK("volkswagen_bank");
4288

4289
        @Getter(onMethod_ = {@Override})
4290
        private final String value;
4291

4292
        Bank(String value) {
×
4293
          this.value = value;
×
4294
        }
×
4295
      }
4296
    }
4297

4298
    @Getter
4299
    public static class Payco {
4300
      /**
4301
       * Map of extra parameters for custom features not available in this client library. The
4302
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4303
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4304
       * name in this param object. Effectively, this map is flattened to its parent instance.
4305
       */
4306
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4307
      Map<String, Object> extraParams;
4308

4309
      private Payco(Map<String, Object> extraParams) {
×
4310
        this.extraParams = extraParams;
×
4311
      }
×
4312

4313
      public static Builder builder() {
4314
        return new Builder();
×
4315
      }
4316

4317
      public static class Builder {
×
4318
        private Map<String, Object> extraParams;
4319

4320
        /** Finalize and obtain parameter instance from this builder. */
4321
        public ConfirmationTokenCreateParams.PaymentMethodData.Payco build() {
4322
          return new ConfirmationTokenCreateParams.PaymentMethodData.Payco(this.extraParams);
×
4323
        }
4324

4325
        /**
4326
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4327
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4328
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Payco#extraParams} for
4329
         * the field documentation.
4330
         */
4331
        public Builder putExtraParam(String key, Object value) {
4332
          if (this.extraParams == null) {
×
4333
            this.extraParams = new HashMap<>();
×
4334
          }
4335
          this.extraParams.put(key, value);
×
4336
          return this;
×
4337
        }
4338

4339
        /**
4340
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4341
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4342
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Payco#extraParams} for
4343
         * the field documentation.
4344
         */
4345
        public Builder putAllExtraParam(Map<String, Object> map) {
4346
          if (this.extraParams == null) {
×
4347
            this.extraParams = new HashMap<>();
×
4348
          }
4349
          this.extraParams.putAll(map);
×
4350
          return this;
×
4351
        }
4352
      }
4353
    }
4354

4355
    @Getter
4356
    public static class Paynow {
4357
      /**
4358
       * Map of extra parameters for custom features not available in this client library. The
4359
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4360
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4361
       * name in this param object. Effectively, this map is flattened to its parent instance.
4362
       */
4363
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4364
      Map<String, Object> extraParams;
4365

4366
      private Paynow(Map<String, Object> extraParams) {
×
4367
        this.extraParams = extraParams;
×
4368
      }
×
4369

4370
      public static Builder builder() {
4371
        return new Builder();
×
4372
      }
4373

4374
      public static class Builder {
×
4375
        private Map<String, Object> extraParams;
4376

4377
        /** Finalize and obtain parameter instance from this builder. */
4378
        public ConfirmationTokenCreateParams.PaymentMethodData.Paynow build() {
4379
          return new ConfirmationTokenCreateParams.PaymentMethodData.Paynow(this.extraParams);
×
4380
        }
4381

4382
        /**
4383
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4384
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4385
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Paynow#extraParams} for
4386
         * the field documentation.
4387
         */
4388
        public Builder putExtraParam(String key, Object value) {
4389
          if (this.extraParams == null) {
×
4390
            this.extraParams = new HashMap<>();
×
4391
          }
4392
          this.extraParams.put(key, value);
×
4393
          return this;
×
4394
        }
4395

4396
        /**
4397
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4398
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4399
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Paynow#extraParams} for
4400
         * the field documentation.
4401
         */
4402
        public Builder putAllExtraParam(Map<String, Object> map) {
4403
          if (this.extraParams == null) {
×
4404
            this.extraParams = new HashMap<>();
×
4405
          }
4406
          this.extraParams.putAll(map);
×
4407
          return this;
×
4408
        }
4409
      }
4410
    }
4411

4412
    @Getter
4413
    public static class Paypal {
4414
      /**
4415
       * Map of extra parameters for custom features not available in this client library. The
4416
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4417
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4418
       * name in this param object. Effectively, this map is flattened to its parent instance.
4419
       */
4420
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4421
      Map<String, Object> extraParams;
4422

4423
      private Paypal(Map<String, Object> extraParams) {
×
4424
        this.extraParams = extraParams;
×
4425
      }
×
4426

4427
      public static Builder builder() {
4428
        return new Builder();
×
4429
      }
4430

4431
      public static class Builder {
×
4432
        private Map<String, Object> extraParams;
4433

4434
        /** Finalize and obtain parameter instance from this builder. */
4435
        public ConfirmationTokenCreateParams.PaymentMethodData.Paypal build() {
4436
          return new ConfirmationTokenCreateParams.PaymentMethodData.Paypal(this.extraParams);
×
4437
        }
4438

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

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

4469
    @Getter
4470
    public static class Payto {
4471
      /** The account number for the bank account. */
4472
      @SerializedName("account_number")
4473
      String accountNumber;
4474

4475
      /** Bank-State-Branch number of the bank account. */
4476
      @SerializedName("bsb_number")
4477
      String bsbNumber;
4478

4479
      /**
4480
       * Map of extra parameters for custom features not available in this client library. The
4481
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4482
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4483
       * name in this param object. Effectively, this map is flattened to its parent instance.
4484
       */
4485
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4486
      Map<String, Object> extraParams;
4487

4488
      /** The PayID alias for the bank account. */
4489
      @SerializedName("pay_id")
4490
      String payId;
4491

4492
      private Payto(
4493
          String accountNumber, String bsbNumber, Map<String, Object> extraParams, String payId) {
×
4494
        this.accountNumber = accountNumber;
×
4495
        this.bsbNumber = bsbNumber;
×
4496
        this.extraParams = extraParams;
×
4497
        this.payId = payId;
×
4498
      }
×
4499

4500
      public static Builder builder() {
4501
        return new Builder();
×
4502
      }
4503

4504
      public static class Builder {
×
4505
        private String accountNumber;
4506

4507
        private String bsbNumber;
4508

4509
        private Map<String, Object> extraParams;
4510

4511
        private String payId;
4512

4513
        /** Finalize and obtain parameter instance from this builder. */
4514
        public ConfirmationTokenCreateParams.PaymentMethodData.Payto build() {
4515
          return new ConfirmationTokenCreateParams.PaymentMethodData.Payto(
×
4516
              this.accountNumber, this.bsbNumber, this.extraParams, this.payId);
4517
        }
4518

4519
        /** The account number for the bank account. */
4520
        public Builder setAccountNumber(String accountNumber) {
4521
          this.accountNumber = accountNumber;
×
4522
          return this;
×
4523
        }
4524

4525
        /** Bank-State-Branch number of the bank account. */
4526
        public Builder setBsbNumber(String bsbNumber) {
4527
          this.bsbNumber = bsbNumber;
×
4528
          return this;
×
4529
        }
4530

4531
        /**
4532
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4533
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4534
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Payto#extraParams} for
4535
         * the field documentation.
4536
         */
4537
        public Builder putExtraParam(String key, Object value) {
4538
          if (this.extraParams == null) {
×
4539
            this.extraParams = new HashMap<>();
×
4540
          }
4541
          this.extraParams.put(key, value);
×
4542
          return this;
×
4543
        }
4544

4545
        /**
4546
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4547
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4548
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Payto#extraParams} for
4549
         * the field documentation.
4550
         */
4551
        public Builder putAllExtraParam(Map<String, Object> map) {
4552
          if (this.extraParams == null) {
×
4553
            this.extraParams = new HashMap<>();
×
4554
          }
4555
          this.extraParams.putAll(map);
×
4556
          return this;
×
4557
        }
4558

4559
        /** The PayID alias for the bank account. */
4560
        public Builder setPayId(String payId) {
4561
          this.payId = payId;
×
4562
          return this;
×
4563
        }
4564
      }
4565
    }
4566

4567
    @Getter
4568
    public static class Pix {
4569
      /**
4570
       * Map of extra parameters for custom features not available in this client library. The
4571
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4572
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4573
       * name in this param object. Effectively, this map is flattened to its parent instance.
4574
       */
4575
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4576
      Map<String, Object> extraParams;
4577

4578
      private Pix(Map<String, Object> extraParams) {
×
4579
        this.extraParams = extraParams;
×
4580
      }
×
4581

4582
      public static Builder builder() {
4583
        return new Builder();
×
4584
      }
4585

4586
      public static class Builder {
×
4587
        private Map<String, Object> extraParams;
4588

4589
        /** Finalize and obtain parameter instance from this builder. */
4590
        public ConfirmationTokenCreateParams.PaymentMethodData.Pix build() {
4591
          return new ConfirmationTokenCreateParams.PaymentMethodData.Pix(this.extraParams);
×
4592
        }
4593

4594
        /**
4595
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4596
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4597
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Pix#extraParams} for the
4598
         * field documentation.
4599
         */
4600
        public Builder putExtraParam(String key, Object value) {
4601
          if (this.extraParams == null) {
×
4602
            this.extraParams = new HashMap<>();
×
4603
          }
4604
          this.extraParams.put(key, value);
×
4605
          return this;
×
4606
        }
4607

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

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

4635
      private Promptpay(Map<String, Object> extraParams) {
×
4636
        this.extraParams = extraParams;
×
4637
      }
×
4638

4639
      public static Builder builder() {
4640
        return new Builder();
×
4641
      }
4642

4643
      public static class Builder {
×
4644
        private Map<String, Object> extraParams;
4645

4646
        /** Finalize and obtain parameter instance from this builder. */
4647
        public ConfirmationTokenCreateParams.PaymentMethodData.Promptpay build() {
4648
          return new ConfirmationTokenCreateParams.PaymentMethodData.Promptpay(this.extraParams);
×
4649
        }
4650

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

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

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

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

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

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

4703
        /** Finalize and obtain parameter instance from this builder. */
4704
        public ConfirmationTokenCreateParams.PaymentMethodData.Qris build() {
4705
          return new ConfirmationTokenCreateParams.PaymentMethodData.Qris(this.extraParams);
×
4706
        }
4707

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

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

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

4749
      /**
4750
       * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4751
       * the browser metadata and device details that help Radar make more accurate predictions on
4752
       * your payments.
4753
       */
4754
      @SerializedName("session")
4755
      String session;
4756

4757
      private RadarOptions(Map<String, Object> extraParams, String session) {
×
4758
        this.extraParams = extraParams;
×
4759
        this.session = session;
×
4760
      }
×
4761

4762
      public static Builder builder() {
4763
        return new Builder();
×
4764
      }
4765

4766
      public static class Builder {
×
4767
        private Map<String, Object> extraParams;
4768

4769
        private String session;
4770

4771
        /** Finalize and obtain parameter instance from this builder. */
4772
        public ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions build() {
4773
          return new ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions(
×
4774
              this.extraParams, this.session);
4775
        }
4776

4777
        /**
4778
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4779
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4780
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions#extraParams}
4781
         * for the field documentation.
4782
         */
4783
        public Builder putExtraParam(String key, Object value) {
4784
          if (this.extraParams == null) {
×
4785
            this.extraParams = new HashMap<>();
×
4786
          }
4787
          this.extraParams.put(key, value);
×
4788
          return this;
×
4789
        }
4790

4791
        /**
4792
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4793
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4794
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions#extraParams}
4795
         * for the field documentation.
4796
         */
4797
        public Builder putAllExtraParam(Map<String, Object> map) {
4798
          if (this.extraParams == null) {
×
4799
            this.extraParams = new HashMap<>();
×
4800
          }
4801
          this.extraParams.putAll(map);
×
4802
          return this;
×
4803
        }
4804

4805
        /**
4806
         * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot
4807
         * of the browser metadata and device details that help Radar make more accurate predictions
4808
         * on your payments.
4809
         */
4810
        public Builder setSession(String session) {
4811
          this.session = session;
×
4812
          return this;
×
4813
        }
4814
      }
4815
    }
4816

4817
    @Getter
4818
    public static class Rechnung {
4819
      /** <strong>Required.</strong> Customer's date of birth */
4820
      @SerializedName("dob")
4821
      Dob dob;
4822

4823
      /**
4824
       * Map of extra parameters for custom features not available in this client library. The
4825
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4826
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4827
       * name in this param object. Effectively, this map is flattened to its parent instance.
4828
       */
4829
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4830
      Map<String, Object> extraParams;
4831

4832
      private Rechnung(Dob dob, Map<String, Object> extraParams) {
×
4833
        this.dob = dob;
×
4834
        this.extraParams = extraParams;
×
4835
      }
×
4836

4837
      public static Builder builder() {
4838
        return new Builder();
×
4839
      }
4840

4841
      public static class Builder {
×
4842
        private Dob dob;
4843

4844
        private Map<String, Object> extraParams;
4845

4846
        /** Finalize and obtain parameter instance from this builder. */
4847
        public ConfirmationTokenCreateParams.PaymentMethodData.Rechnung build() {
4848
          return new ConfirmationTokenCreateParams.PaymentMethodData.Rechnung(
×
4849
              this.dob, this.extraParams);
4850
        }
4851

4852
        /** <strong>Required.</strong> Customer's date of birth */
4853
        public Builder setDob(ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob dob) {
4854
          this.dob = dob;
×
4855
          return this;
×
4856
        }
4857

4858
        /**
4859
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4860
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4861
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Rechnung#extraParams} for
4862
         * the field documentation.
4863
         */
4864
        public Builder putExtraParam(String key, Object value) {
4865
          if (this.extraParams == null) {
×
4866
            this.extraParams = new HashMap<>();
×
4867
          }
4868
          this.extraParams.put(key, value);
×
4869
          return this;
×
4870
        }
4871

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

4887
      @Getter
4888
      public static class Dob {
4889
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4890
        @SerializedName("day")
4891
        Long day;
4892

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

4903
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4904
        @SerializedName("month")
4905
        Long month;
4906

4907
        /** <strong>Required.</strong> The four-digit year of birth. */
4908
        @SerializedName("year")
4909
        Long year;
4910

4911
        private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
4912
          this.day = day;
×
4913
          this.extraParams = extraParams;
×
4914
          this.month = month;
×
4915
          this.year = year;
×
4916
        }
×
4917

4918
        public static Builder builder() {
4919
          return new Builder();
×
4920
        }
4921

4922
        public static class Builder {
×
4923
          private Long day;
4924

4925
          private Map<String, Object> extraParams;
4926

4927
          private Long month;
4928

4929
          private Long year;
4930

4931
          /** Finalize and obtain parameter instance from this builder. */
4932
          public ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob build() {
4933
            return new ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob(
×
4934
                this.day, this.extraParams, this.month, this.year);
4935
          }
4936

4937
          /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4938
          public Builder setDay(Long day) {
4939
            this.day = day;
×
4940
            return this;
×
4941
          }
4942

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

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

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

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

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

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

5003
      public static Builder builder() {
5004
        return new Builder();
×
5005
      }
5006

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

5010
        /** Finalize and obtain parameter instance from this builder. */
5011
        public ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay build() {
5012
          return new ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay(this.extraParams);
×
5013
        }
5014

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

5029
        /**
5030
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5031
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5032
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay#extraParams}
5033
         * 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
5049
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5050
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5051
       * name in this 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 ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay build() {
5069
          return new ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay(this.extraParams);
×
5070
        }
5071

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

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

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

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

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

5122
      public static Builder builder() {
5123
        return new Builder();
×
5124
      }
5125

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

5129
        private String iban;
5130

5131
        /** Finalize and obtain parameter instance from this builder. */
5132
        public ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit build() {
5133
          return new ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit(
×
5134
              this.extraParams, this.iban);
5135
        }
5136

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

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

5165
        /** <strong>Required.</strong> IBAN of the bank account. */
5166
        public Builder setIban(String iban) {
5167
          this.iban = iban;
×
5168
          return this;
×
5169
        }
5170
      }
5171
    }
5172

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

5184
      private Shopeepay(Map<String, Object> extraParams) {
×
5185
        this.extraParams = extraParams;
×
5186
      }
×
5187

5188
      public static Builder builder() {
5189
        return new Builder();
×
5190
      }
5191

5192
      public static class Builder {
×
5193
        private Map<String, Object> extraParams;
5194

5195
        /** Finalize and obtain parameter instance from this builder. */
5196
        public ConfirmationTokenCreateParams.PaymentMethodData.Shopeepay build() {
5197
          return new ConfirmationTokenCreateParams.PaymentMethodData.Shopeepay(this.extraParams);
×
5198
        }
5199

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

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

5230
    @Getter
5231
    public static class Sofort {
5232
      /**
5233
       * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
5234
       * located in.
5235
       */
5236
      @SerializedName("country")
5237
      Country country;
5238

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

5248
      private Sofort(Country country, Map<String, Object> extraParams) {
×
5249
        this.country = country;
×
5250
        this.extraParams = extraParams;
×
5251
      }
×
5252

5253
      public static Builder builder() {
5254
        return new Builder();
×
5255
      }
5256

5257
      public static class Builder {
×
5258
        private Country country;
5259

5260
        private Map<String, Object> extraParams;
5261

5262
        /** Finalize and obtain parameter instance from this builder. */
5263
        public ConfirmationTokenCreateParams.PaymentMethodData.Sofort build() {
5264
          return new ConfirmationTokenCreateParams.PaymentMethodData.Sofort(
×
5265
              this.country, this.extraParams);
5266
        }
5267

5268
        /**
5269
         * <strong>Required.</strong> Two-letter ISO code representing the country the bank account
5270
         * is located in.
5271
         */
5272
        public Builder setCountry(
5273
            ConfirmationTokenCreateParams.PaymentMethodData.Sofort.Country country) {
5274
          this.country = country;
×
5275
          return this;
×
5276
        }
5277

5278
        /**
5279
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
5280
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5281
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Sofort#extraParams} for
5282
         * the field documentation.
5283
         */
5284
        public Builder putExtraParam(String key, Object value) {
5285
          if (this.extraParams == null) {
×
5286
            this.extraParams = new HashMap<>();
×
5287
          }
5288
          this.extraParams.put(key, value);
×
5289
          return this;
×
5290
        }
5291

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

5307
      public enum Country implements ApiRequestParams.EnumParam {
×
5308
        @SerializedName("AT")
×
5309
        AT("AT"),
5310

5311
        @SerializedName("BE")
×
5312
        BE("BE"),
5313

5314
        @SerializedName("DE")
×
5315
        DE("DE"),
5316

5317
        @SerializedName("ES")
×
5318
        ES("ES"),
5319

5320
        @SerializedName("IT")
×
5321
        IT("IT"),
5322

5323
        @SerializedName("NL")
×
5324
        NL("NL");
5325

5326
        @Getter(onMethod_ = {@Override})
5327
        private final String value;
5328

5329
        Country(String value) {
×
5330
          this.value = value;
×
5331
        }
×
5332
      }
5333
    }
5334

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

5346
      private Swish(Map<String, Object> extraParams) {
×
5347
        this.extraParams = extraParams;
×
5348
      }
×
5349

5350
      public static Builder builder() {
5351
        return new Builder();
×
5352
      }
5353

5354
      public static class Builder {
×
5355
        private Map<String, Object> extraParams;
5356

5357
        /** Finalize and obtain parameter instance from this builder. */
5358
        public ConfirmationTokenCreateParams.PaymentMethodData.Swish build() {
5359
          return new ConfirmationTokenCreateParams.PaymentMethodData.Swish(this.extraParams);
×
5360
        }
5361

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

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

5392
    @Getter
5393
    public static class Twint {
5394
      /**
5395
       * Map of extra parameters for custom features not available in this client library. The
5396
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5397
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5398
       * name in this param object. Effectively, this map is flattened to its parent instance.
5399
       */
5400
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5401
      Map<String, Object> extraParams;
5402

5403
      private Twint(Map<String, Object> extraParams) {
×
5404
        this.extraParams = extraParams;
×
5405
      }
×
5406

5407
      public static Builder builder() {
5408
        return new Builder();
×
5409
      }
5410

5411
      public static class Builder {
×
5412
        private Map<String, Object> extraParams;
5413

5414
        /** Finalize and obtain parameter instance from this builder. */
5415
        public ConfirmationTokenCreateParams.PaymentMethodData.Twint build() {
5416
          return new ConfirmationTokenCreateParams.PaymentMethodData.Twint(this.extraParams);
×
5417
        }
5418

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

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

5449
    @Getter
5450
    public static class UsBankAccount {
5451
      /** Account holder type: individual or company. */
5452
      @SerializedName("account_holder_type")
5453
      AccountHolderType accountHolderType;
5454

5455
      /** Account number of the bank account. */
5456
      @SerializedName("account_number")
5457
      String accountNumber;
5458

5459
      /** Account type: checkings or savings. Defaults to checking if omitted. */
5460
      @SerializedName("account_type")
5461
      AccountType accountType;
5462

5463
      /**
5464
       * Map of extra parameters for custom features not available in this client library. The
5465
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5466
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5467
       * name in this param object. Effectively, this map is flattened to its parent instance.
5468
       */
5469
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5470
      Map<String, Object> extraParams;
5471

5472
      /** The ID of a Financial Connections Account to use as a payment method. */
5473
      @SerializedName("financial_connections_account")
5474
      String financialConnectionsAccount;
5475

5476
      /** Routing number of the bank account. */
5477
      @SerializedName("routing_number")
5478
      String routingNumber;
5479

5480
      private UsBankAccount(
5481
          AccountHolderType accountHolderType,
5482
          String accountNumber,
5483
          AccountType accountType,
5484
          Map<String, Object> extraParams,
5485
          String financialConnectionsAccount,
5486
          String routingNumber) {
×
5487
        this.accountHolderType = accountHolderType;
×
5488
        this.accountNumber = accountNumber;
×
5489
        this.accountType = accountType;
×
5490
        this.extraParams = extraParams;
×
5491
        this.financialConnectionsAccount = financialConnectionsAccount;
×
5492
        this.routingNumber = routingNumber;
×
5493
      }
×
5494

5495
      public static Builder builder() {
5496
        return new Builder();
×
5497
      }
5498

5499
      public static class Builder {
×
5500
        private AccountHolderType accountHolderType;
5501

5502
        private String accountNumber;
5503

5504
        private AccountType accountType;
5505

5506
        private Map<String, Object> extraParams;
5507

5508
        private String financialConnectionsAccount;
5509

5510
        private String routingNumber;
5511

5512
        /** Finalize and obtain parameter instance from this builder. */
5513
        public ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount build() {
5514
          return new ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount(
×
5515
              this.accountHolderType,
5516
              this.accountNumber,
5517
              this.accountType,
5518
              this.extraParams,
5519
              this.financialConnectionsAccount,
5520
              this.routingNumber);
5521
        }
5522

5523
        /** Account holder type: individual or company. */
5524
        public Builder setAccountHolderType(
5525
            ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount.AccountHolderType
5526
                accountHolderType) {
5527
          this.accountHolderType = accountHolderType;
×
5528
          return this;
×
5529
        }
5530

5531
        /** Account number of the bank account. */
5532
        public Builder setAccountNumber(String accountNumber) {
5533
          this.accountNumber = accountNumber;
×
5534
          return this;
×
5535
        }
5536

5537
        /** Account type: checkings or savings. Defaults to checking if omitted. */
5538
        public Builder setAccountType(
5539
            ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount.AccountType accountType) {
5540
          this.accountType = accountType;
×
5541
          return this;
×
5542
        }
5543

5544
        /**
5545
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
5546
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5547
         * map. See {@link
5548
         * ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount#extraParams} for the field
5549
         * documentation.
5550
         */
5551
        public Builder putExtraParam(String key, Object value) {
5552
          if (this.extraParams == null) {
×
5553
            this.extraParams = new HashMap<>();
×
5554
          }
5555
          this.extraParams.put(key, value);
×
5556
          return this;
×
5557
        }
5558

5559
        /**
5560
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5561
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5562
         * map. See {@link
5563
         * ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount#extraParams} for the field
5564
         * documentation.
5565
         */
5566
        public Builder putAllExtraParam(Map<String, Object> map) {
5567
          if (this.extraParams == null) {
×
5568
            this.extraParams = new HashMap<>();
×
5569
          }
5570
          this.extraParams.putAll(map);
×
5571
          return this;
×
5572
        }
5573

5574
        /** The ID of a Financial Connections Account to use as a payment method. */
5575
        public Builder setFinancialConnectionsAccount(String financialConnectionsAccount) {
5576
          this.financialConnectionsAccount = financialConnectionsAccount;
×
5577
          return this;
×
5578
        }
5579

5580
        /** Routing number of the bank account. */
5581
        public Builder setRoutingNumber(String routingNumber) {
5582
          this.routingNumber = routingNumber;
×
5583
          return this;
×
5584
        }
5585
      }
5586

5587
      public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
5588
        @SerializedName("company")
×
5589
        COMPANY("company"),
5590

5591
        @SerializedName("individual")
×
5592
        INDIVIDUAL("individual");
5593

5594
        @Getter(onMethod_ = {@Override})
5595
        private final String value;
5596

5597
        AccountHolderType(String value) {
×
5598
          this.value = value;
×
5599
        }
×
5600
      }
5601

5602
      public enum AccountType implements ApiRequestParams.EnumParam {
×
5603
        @SerializedName("checking")
×
5604
        CHECKING("checking"),
5605

5606
        @SerializedName("savings")
×
5607
        SAVINGS("savings");
5608

5609
        @Getter(onMethod_ = {@Override})
5610
        private final String value;
5611

5612
        AccountType(String value) {
×
5613
          this.value = value;
×
5614
        }
×
5615
      }
5616
    }
5617

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

5629
      private WechatPay(Map<String, Object> extraParams) {
×
5630
        this.extraParams = extraParams;
×
5631
      }
×
5632

5633
      public static Builder builder() {
5634
        return new Builder();
×
5635
      }
5636

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

5640
        /** Finalize and obtain parameter instance from this builder. */
5641
        public ConfirmationTokenCreateParams.PaymentMethodData.WechatPay build() {
5642
          return new ConfirmationTokenCreateParams.PaymentMethodData.WechatPay(this.extraParams);
×
5643
        }
5644

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

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

5675
    @Getter
5676
    public static class Zip {
5677
      /**
5678
       * Map of extra parameters for custom features not available in this client library. The
5679
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5680
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5681
       * name in this 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 Zip(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 ConfirmationTokenCreateParams.PaymentMethodData.Zip build() {
5699
          return new ConfirmationTokenCreateParams.PaymentMethodData.Zip(this.extraParams);
×
5700
        }
5701

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

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

5732
    public enum AllowRedisplay implements ApiRequestParams.EnumParam {
×
5733
      @SerializedName("always")
×
5734
      ALWAYS("always"),
5735

5736
      @SerializedName("limited")
×
5737
      LIMITED("limited"),
5738

5739
      @SerializedName("unspecified")
×
5740
      UNSPECIFIED("unspecified");
5741

5742
      @Getter(onMethod_ = {@Override})
5743
      private final String value;
5744

5745
      AllowRedisplay(String value) {
×
5746
        this.value = value;
×
5747
      }
×
5748
    }
5749

5750
    public enum Type implements ApiRequestParams.EnumParam {
×
5751
      @SerializedName("acss_debit")
×
5752
      ACSS_DEBIT("acss_debit"),
5753

5754
      @SerializedName("affirm")
×
5755
      AFFIRM("affirm"),
5756

5757
      @SerializedName("afterpay_clearpay")
×
5758
      AFTERPAY_CLEARPAY("afterpay_clearpay"),
5759

5760
      @SerializedName("alipay")
×
5761
      ALIPAY("alipay"),
5762

5763
      @SerializedName("alma")
×
5764
      ALMA("alma"),
5765

5766
      @SerializedName("amazon_pay")
×
5767
      AMAZON_PAY("amazon_pay"),
5768

5769
      @SerializedName("au_becs_debit")
×
5770
      AU_BECS_DEBIT("au_becs_debit"),
5771

5772
      @SerializedName("bacs_debit")
×
5773
      BACS_DEBIT("bacs_debit"),
5774

5775
      @SerializedName("bancontact")
×
5776
      BANCONTACT("bancontact"),
5777

5778
      @SerializedName("blik")
×
5779
      BLIK("blik"),
5780

5781
      @SerializedName("boleto")
×
5782
      BOLETO("boleto"),
5783

5784
      @SerializedName("cashapp")
×
5785
      CASHAPP("cashapp"),
5786

5787
      @SerializedName("customer_balance")
×
5788
      CUSTOMER_BALANCE("customer_balance"),
5789

5790
      @SerializedName("eps")
×
5791
      EPS("eps"),
5792

5793
      @SerializedName("fpx")
×
5794
      FPX("fpx"),
5795

5796
      @SerializedName("giropay")
×
5797
      GIROPAY("giropay"),
5798

5799
      @SerializedName("gopay")
×
5800
      GOPAY("gopay"),
5801

5802
      @SerializedName("grabpay")
×
5803
      GRABPAY("grabpay"),
5804

NEW
5805
      @SerializedName("id_bank_transfer")
×
5806
      ID_BANK_TRANSFER("id_bank_transfer"),
5807

UNCOV
5808
      @SerializedName("ideal")
×
5809
      IDEAL("ideal"),
5810

5811
      @SerializedName("kakao_pay")
×
5812
      KAKAO_PAY("kakao_pay"),
5813

5814
      @SerializedName("klarna")
×
5815
      KLARNA("klarna"),
5816

5817
      @SerializedName("konbini")
×
5818
      KONBINI("konbini"),
5819

5820
      @SerializedName("kr_card")
×
5821
      KR_CARD("kr_card"),
5822

5823
      @SerializedName("link")
×
5824
      LINK("link"),
5825

5826
      @SerializedName("mb_way")
×
5827
      MB_WAY("mb_way"),
5828

5829
      @SerializedName("mobilepay")
×
5830
      MOBILEPAY("mobilepay"),
5831

5832
      @SerializedName("multibanco")
×
5833
      MULTIBANCO("multibanco"),
5834

5835
      @SerializedName("naver_pay")
×
5836
      NAVER_PAY("naver_pay"),
5837

5838
      @SerializedName("oxxo")
×
5839
      OXXO("oxxo"),
5840

5841
      @SerializedName("p24")
×
5842
      P24("p24"),
5843

5844
      @SerializedName("payco")
×
5845
      PAYCO("payco"),
5846

5847
      @SerializedName("paynow")
×
5848
      PAYNOW("paynow"),
5849

5850
      @SerializedName("paypal")
×
5851
      PAYPAL("paypal"),
5852

5853
      @SerializedName("payto")
×
5854
      PAYTO("payto"),
5855

5856
      @SerializedName("pix")
×
5857
      PIX("pix"),
5858

5859
      @SerializedName("promptpay")
×
5860
      PROMPTPAY("promptpay"),
5861

5862
      @SerializedName("qris")
×
5863
      QRIS("qris"),
5864

5865
      @SerializedName("rechnung")
×
5866
      RECHNUNG("rechnung"),
5867

5868
      @SerializedName("revolut_pay")
×
5869
      REVOLUT_PAY("revolut_pay"),
5870

5871
      @SerializedName("samsung_pay")
×
5872
      SAMSUNG_PAY("samsung_pay"),
5873

5874
      @SerializedName("sepa_debit")
×
5875
      SEPA_DEBIT("sepa_debit"),
5876

5877
      @SerializedName("shopeepay")
×
5878
      SHOPEEPAY("shopeepay"),
5879

5880
      @SerializedName("sofort")
×
5881
      SOFORT("sofort"),
5882

5883
      @SerializedName("swish")
×
5884
      SWISH("swish"),
5885

5886
      @SerializedName("twint")
×
5887
      TWINT("twint"),
5888

5889
      @SerializedName("us_bank_account")
×
5890
      US_BANK_ACCOUNT("us_bank_account"),
5891

5892
      @SerializedName("wechat_pay")
×
5893
      WECHAT_PAY("wechat_pay"),
5894

5895
      @SerializedName("zip")
×
5896
      ZIP("zip");
5897

5898
      @Getter(onMethod_ = {@Override})
5899
      private final String value;
5900

5901
      Type(String value) {
×
5902
        this.value = value;
×
5903
      }
×
5904
    }
5905
  }
5906

5907
  @Getter
5908
  public static class Shipping {
5909
    /** <strong>Required.</strong> Shipping address */
5910
    @SerializedName("address")
5911
    Address address;
5912

5913
    /**
5914
     * Map of extra parameters for custom features not available in this client library. The content
5915
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5916
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5917
     * param object. Effectively, this map is flattened to its parent instance.
5918
     */
5919
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5920
    Map<String, Object> extraParams;
5921

5922
    /** <strong>Required.</strong> Recipient name. */
5923
    @SerializedName("name")
5924
    String name;
5925

5926
    /** Recipient phone (including extension). */
5927
    @SerializedName("phone")
5928
    Object phone;
5929

5930
    private Shipping(Address address, Map<String, Object> extraParams, String name, Object phone) {
×
5931
      this.address = address;
×
5932
      this.extraParams = extraParams;
×
5933
      this.name = name;
×
5934
      this.phone = phone;
×
5935
    }
×
5936

5937
    public static Builder builder() {
5938
      return new Builder();
×
5939
    }
5940

5941
    public static class Builder {
×
5942
      private Address address;
5943

5944
      private Map<String, Object> extraParams;
5945

5946
      private String name;
5947

5948
      private Object phone;
5949

5950
      /** Finalize and obtain parameter instance from this builder. */
5951
      public ConfirmationTokenCreateParams.Shipping build() {
5952
        return new ConfirmationTokenCreateParams.Shipping(
×
5953
            this.address, this.extraParams, this.name, this.phone);
5954
      }
5955

5956
      /** <strong>Required.</strong> Shipping address */
5957
      public Builder setAddress(ConfirmationTokenCreateParams.Shipping.Address address) {
5958
        this.address = address;
×
5959
        return this;
×
5960
      }
5961

5962
      /**
5963
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5964
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5965
       * ConfirmationTokenCreateParams.Shipping#extraParams} for the field documentation.
5966
       */
5967
      public Builder putExtraParam(String key, Object value) {
5968
        if (this.extraParams == null) {
×
5969
          this.extraParams = new HashMap<>();
×
5970
        }
5971
        this.extraParams.put(key, value);
×
5972
        return this;
×
5973
      }
5974

5975
      /**
5976
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5977
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5978
       * See {@link ConfirmationTokenCreateParams.Shipping#extraParams} for the field documentation.
5979
       */
5980
      public Builder putAllExtraParam(Map<String, Object> map) {
5981
        if (this.extraParams == null) {
×
5982
          this.extraParams = new HashMap<>();
×
5983
        }
5984
        this.extraParams.putAll(map);
×
5985
        return this;
×
5986
      }
5987

5988
      /** <strong>Required.</strong> Recipient name. */
5989
      public Builder setName(String name) {
5990
        this.name = name;
×
5991
        return this;
×
5992
      }
5993

5994
      /** Recipient phone (including extension). */
5995
      public Builder setPhone(String phone) {
5996
        this.phone = phone;
×
5997
        return this;
×
5998
      }
5999

6000
      /** Recipient phone (including extension). */
6001
      public Builder setPhone(EmptyParam phone) {
6002
        this.phone = phone;
×
6003
        return this;
×
6004
      }
6005
    }
6006

6007
    @Getter
6008
    public static class Address {
6009
      /** City, district, suburb, town, or village. */
6010
      @SerializedName("city")
6011
      String city;
6012

6013
      /**
6014
       * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
6015
       * 3166-1 alpha-2</a>).
6016
       */
6017
      @SerializedName("country")
6018
      String country;
6019

6020
      /**
6021
       * Map of extra parameters for custom features not available in this client library. The
6022
       * content in this map is not serialized under this field's {@code @SerializedName} value.
6023
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
6024
       * name in this param object. Effectively, this map is flattened to its parent instance.
6025
       */
6026
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
6027
      Map<String, Object> extraParams;
6028

6029
      /** Address line 1 (e.g., street, PO Box, or company name). */
6030
      @SerializedName("line1")
6031
      String line1;
6032

6033
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
6034
      @SerializedName("line2")
6035
      String line2;
6036

6037
      /** ZIP or postal code. */
6038
      @SerializedName("postal_code")
6039
      String postalCode;
6040

6041
      /** State, county, province, or region. */
6042
      @SerializedName("state")
6043
      String state;
6044

6045
      private Address(
6046
          String city,
6047
          String country,
6048
          Map<String, Object> extraParams,
6049
          String line1,
6050
          String line2,
6051
          String postalCode,
6052
          String state) {
×
6053
        this.city = city;
×
6054
        this.country = country;
×
6055
        this.extraParams = extraParams;
×
6056
        this.line1 = line1;
×
6057
        this.line2 = line2;
×
6058
        this.postalCode = postalCode;
×
6059
        this.state = state;
×
6060
      }
×
6061

6062
      public static Builder builder() {
6063
        return new Builder();
×
6064
      }
6065

6066
      public static class Builder {
×
6067
        private String city;
6068

6069
        private String country;
6070

6071
        private Map<String, Object> extraParams;
6072

6073
        private String line1;
6074

6075
        private String line2;
6076

6077
        private String postalCode;
6078

6079
        private String state;
6080

6081
        /** Finalize and obtain parameter instance from this builder. */
6082
        public ConfirmationTokenCreateParams.Shipping.Address build() {
6083
          return new ConfirmationTokenCreateParams.Shipping.Address(
×
6084
              this.city,
6085
              this.country,
6086
              this.extraParams,
6087
              this.line1,
6088
              this.line2,
6089
              this.postalCode,
6090
              this.state);
6091
        }
6092

6093
        /** City, district, suburb, town, or village. */
6094
        public Builder setCity(String city) {
6095
          this.city = city;
×
6096
          return this;
×
6097
        }
6098

6099
        /**
6100
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
6101
         * 3166-1 alpha-2</a>).
6102
         */
6103
        public Builder setCountry(String country) {
6104
          this.country = country;
×
6105
          return this;
×
6106
        }
6107

6108
        /**
6109
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
6110
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
6111
         * map. See {@link ConfirmationTokenCreateParams.Shipping.Address#extraParams} for the field
6112
         * documentation.
6113
         */
6114
        public Builder putExtraParam(String key, Object value) {
6115
          if (this.extraParams == null) {
×
6116
            this.extraParams = new HashMap<>();
×
6117
          }
6118
          this.extraParams.put(key, value);
×
6119
          return this;
×
6120
        }
6121

6122
        /**
6123
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
6124
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
6125
         * map. See {@link ConfirmationTokenCreateParams.Shipping.Address#extraParams} for the field
6126
         * documentation.
6127
         */
6128
        public Builder putAllExtraParam(Map<String, Object> map) {
6129
          if (this.extraParams == null) {
×
6130
            this.extraParams = new HashMap<>();
×
6131
          }
6132
          this.extraParams.putAll(map);
×
6133
          return this;
×
6134
        }
6135

6136
        /** Address line 1 (e.g., street, PO Box, or company name). */
6137
        public Builder setLine1(String line1) {
6138
          this.line1 = line1;
×
6139
          return this;
×
6140
        }
6141

6142
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
6143
        public Builder setLine2(String line2) {
6144
          this.line2 = line2;
×
6145
          return this;
×
6146
        }
6147

6148
        /** ZIP or postal code. */
6149
        public Builder setPostalCode(String postalCode) {
6150
          this.postalCode = postalCode;
×
6151
          return this;
×
6152
        }
6153

6154
        /** State, county, province, or region. */
6155
        public Builder setState(String state) {
6156
          this.state = state;
×
6157
          return this;
×
6158
        }
6159
      }
6160
    }
6161
  }
6162

6163
  public enum SetupFutureUsage implements ApiRequestParams.EnumParam {
×
6164
    @SerializedName("off_session")
×
6165
    OFF_SESSION("off_session"),
6166

6167
    @SerializedName("on_session")
×
6168
    ON_SESSION("on_session");
6169

6170
    @Getter(onMethod_ = {@Override})
6171
    private final String value;
6172

6173
    SetupFutureUsage(String value) {
×
6174
      this.value = value;
×
6175
    }
×
6176
  }
6177
}
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