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

stripe / stripe-java / #16562

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

push

github

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

Update generated code for beta

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

68 existing lines in 20 files now uncovered.

18798 of 149026 relevant lines covered (12.61%)

0.13 hits per line

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

0.0
/src/main/java/com/stripe/param/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 ideal} PaymentMethod, this hash contains details about the iDEAL payment
349
     * method.
350
     */
351
    @SerializedName("ideal")
352
    Ideal ideal;
353

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

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

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

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

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

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

396
    /**
397
     * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
398
     * method.
399
     */
400
    @SerializedName("mb_way")
401
    MbWay mbWay;
402

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

412
    /**
413
     * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the MobilePay
414
     * payment method.
415
     */
416
    @SerializedName("mobilepay")
417
    Mobilepay mobilepay;
418

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

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

433
    /**
434
     * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
435
     * method.
436
     */
437
    @SerializedName("oxxo")
438
    Oxxo oxxo;
439

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

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

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

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

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

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

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

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

496
    /**
497
     * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
498
     * Session</a> for more information.
499
     */
500
    @SerializedName("radar_options")
501
    RadarOptions radarOptions;
502

503
    /**
504
     * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
505
     * payment method.
506
     */
507
    @SerializedName("rechnung")
508
    Rechnung rechnung;
509

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

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

524
    /**
525
     * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
526
     * debit bank account.
527
     */
528
    @SerializedName("sepa_debit")
529
    SepaDebit sepaDebit;
530

531
    /**
532
     * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment
533
     * method.
534
     */
535
    @SerializedName("shopeepay")
536
    Shopeepay shopeepay;
537

538
    /**
539
     * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
540
     * payment method.
541
     */
542
    @SerializedName("sofort")
543
    Sofort sofort;
544

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

552
    /**
553
     * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
554
     */
555
    @SerializedName("twint")
556
    Twint twint;
557

558
    /**
559
     * <strong>Required.</strong> The type of the PaymentMethod. An additional hash is included on
560
     * the PaymentMethod with a name matching this value. It contains additional information
561
     * specific to the PaymentMethod type.
562
     */
563
    @SerializedName("type")
564
    Type type;
565

566
    /**
567
     * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
568
     * bank account payment method.
569
     */
570
    @SerializedName("us_bank_account")
571
    UsBankAccount usBankAccount;
572

573
    /**
574
     * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
575
     * wechat_pay payment method.
576
     */
577
    @SerializedName("wechat_pay")
578
    WechatPay wechatPay;
579

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

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

700
    public static Builder builder() {
701
      return new Builder();
×
702
    }
703

704
    public static class Builder {
×
705
      private AcssDebit acssDebit;
706

707
      private Affirm affirm;
708

709
      private AfterpayClearpay afterpayClearpay;
710

711
      private Alipay alipay;
712

713
      private AllowRedisplay allowRedisplay;
714

715
      private Alma alma;
716

717
      private AmazonPay amazonPay;
718

719
      private AuBecsDebit auBecsDebit;
720

721
      private BacsDebit bacsDebit;
722

723
      private Bancontact bancontact;
724

725
      private BillingDetails billingDetails;
726

727
      private Blik blik;
728

729
      private Boleto boleto;
730

731
      private Cashapp cashapp;
732

733
      private CustomerBalance customerBalance;
734

735
      private Eps eps;
736

737
      private Map<String, Object> extraParams;
738

739
      private Fpx fpx;
740

741
      private Giropay giropay;
742

743
      private Gopay gopay;
744

745
      private Grabpay grabpay;
746

747
      private Ideal ideal;
748

749
      private InteracPresent interacPresent;
750

751
      private KakaoPay kakaoPay;
752

753
      private Klarna klarna;
754

755
      private Konbini konbini;
756

757
      private KrCard krCard;
758

759
      private Link link;
760

761
      private MbWay mbWay;
762

763
      private Map<String, String> metadata;
764

765
      private Mobilepay mobilepay;
766

767
      private Multibanco multibanco;
768

769
      private NaverPay naverPay;
770

771
      private Oxxo oxxo;
772

773
      private P24 p24;
774

775
      private Payco payco;
776

777
      private Paynow paynow;
778

779
      private Paypal paypal;
780

781
      private Payto payto;
782

783
      private Pix pix;
784

785
      private Promptpay promptpay;
786

787
      private Qris qris;
788

789
      private RadarOptions radarOptions;
790

791
      private Rechnung rechnung;
792

793
      private RevolutPay revolutPay;
794

795
      private SamsungPay samsungPay;
796

797
      private SepaDebit sepaDebit;
798

799
      private Shopeepay shopeepay;
800

801
      private Sofort sofort;
802

803
      private Swish swish;
804

805
      private Twint twint;
806

807
      private Type type;
808

809
      private UsBankAccount usBankAccount;
810

811
      private WechatPay wechatPay;
812

813
      private Zip zip;
814

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

875
      /**
876
       * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
877
       * Debit payment method.
878
       */
879
      public Builder setAcssDebit(
880
          ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit acssDebit) {
881
        this.acssDebit = acssDebit;
×
882
        return this;
×
883
      }
884

885
      /**
886
       * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
887
       * payment method.
888
       */
889
      public Builder setAffirm(ConfirmationTokenCreateParams.PaymentMethodData.Affirm affirm) {
890
        this.affirm = affirm;
×
891
        return this;
×
892
      }
893

894
      /**
895
       * If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
896
       * AfterpayClearpay payment method.
897
       */
898
      public Builder setAfterpayClearpay(
899
          ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay afterpayClearpay) {
900
        this.afterpayClearpay = afterpayClearpay;
×
901
        return this;
×
902
      }
903

904
      /**
905
       * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
906
       * payment method.
907
       */
908
      public Builder setAlipay(ConfirmationTokenCreateParams.PaymentMethodData.Alipay alipay) {
909
        this.alipay = alipay;
×
910
        return this;
×
911
      }
912

913
      /**
914
       * This field indicates whether this payment method can be shown again to its customer in a
915
       * checkout flow. Stripe products such as Checkout and Elements use this field to determine
916
       * whether a payment method can be shown as a saved payment method in a checkout flow. The
917
       * field defaults to {@code unspecified}.
918
       */
919
      public Builder setAllowRedisplay(
920
          ConfirmationTokenCreateParams.PaymentMethodData.AllowRedisplay allowRedisplay) {
921
        this.allowRedisplay = allowRedisplay;
×
922
        return this;
×
923
      }
924

925
      /**
926
       * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
927
       */
928
      public Builder setAlma(ConfirmationTokenCreateParams.PaymentMethodData.Alma alma) {
NEW
929
        this.alma = alma;
×
NEW
930
        return this;
×
931
      }
932

933
      /**
934
       * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay
935
       * payment method.
936
       */
937
      public Builder setAmazonPay(
938
          ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay amazonPay) {
939
        this.amazonPay = amazonPay;
×
940
        return this;
×
941
      }
942

943
      /**
944
       * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the
945
       * bank account.
946
       */
947
      public Builder setAuBecsDebit(
948
          ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit auBecsDebit) {
949
        this.auBecsDebit = auBecsDebit;
×
950
        return this;
×
951
      }
952

953
      /**
954
       * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
955
       * Direct Debit bank account.
956
       */
957
      public Builder setBacsDebit(
958
          ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit bacsDebit) {
959
        this.bacsDebit = bacsDebit;
×
960
        return this;
×
961
      }
962

963
      /**
964
       * If this is a {@code bancontact} PaymentMethod, this hash contains details about the
965
       * Bancontact payment method.
966
       */
967
      public Builder setBancontact(
968
          ConfirmationTokenCreateParams.PaymentMethodData.Bancontact bancontact) {
969
        this.bancontact = bancontact;
×
970
        return this;
×
971
      }
972

973
      /**
974
       * Billing information associated with the PaymentMethod that may be used or required by
975
       * particular types of payment methods.
976
       */
977
      public Builder setBillingDetails(
978
          ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails billingDetails) {
979
        this.billingDetails = billingDetails;
×
980
        return this;
×
981
      }
982

983
      /**
984
       * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
985
       * method.
986
       */
987
      public Builder setBlik(ConfirmationTokenCreateParams.PaymentMethodData.Blik blik) {
988
        this.blik = blik;
×
989
        return this;
×
990
      }
991

992
      /**
993
       * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
994
       * payment method.
995
       */
996
      public Builder setBoleto(ConfirmationTokenCreateParams.PaymentMethodData.Boleto boleto) {
997
        this.boleto = boleto;
×
998
        return this;
×
999
      }
1000

1001
      /**
1002
       * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App
1003
       * Pay payment method.
1004
       */
1005
      public Builder setCashapp(ConfirmationTokenCreateParams.PaymentMethodData.Cashapp cashapp) {
1006
        this.cashapp = cashapp;
×
1007
        return this;
×
1008
      }
1009

1010
      /**
1011
       * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
1012
       * CustomerBalance payment method.
1013
       */
1014
      public Builder setCustomerBalance(
1015
          ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance customerBalance) {
1016
        this.customerBalance = customerBalance;
×
1017
        return this;
×
1018
      }
1019

1020
      /**
1021
       * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
1022
       * method.
1023
       */
1024
      public Builder setEps(ConfirmationTokenCreateParams.PaymentMethodData.Eps eps) {
1025
        this.eps = eps;
×
1026
        return this;
×
1027
      }
1028

1029
      /**
1030
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1031
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1032
       * ConfirmationTokenCreateParams.PaymentMethodData#extraParams} for the field documentation.
1033
       */
1034
      public Builder putExtraParam(String key, Object value) {
1035
        if (this.extraParams == null) {
×
1036
          this.extraParams = new HashMap<>();
×
1037
        }
1038
        this.extraParams.put(key, value);
×
1039
        return this;
×
1040
      }
1041

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

1056
      /**
1057
       * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
1058
       * method.
1059
       */
1060
      public Builder setFpx(ConfirmationTokenCreateParams.PaymentMethodData.Fpx fpx) {
1061
        this.fpx = fpx;
×
1062
        return this;
×
1063
      }
1064

1065
      /**
1066
       * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
1067
       * payment method.
1068
       */
1069
      public Builder setGiropay(ConfirmationTokenCreateParams.PaymentMethodData.Giropay giropay) {
1070
        this.giropay = giropay;
×
1071
        return this;
×
1072
      }
1073

1074
      /**
1075
       * If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment
1076
       * method.
1077
       */
1078
      public Builder setGopay(ConfirmationTokenCreateParams.PaymentMethodData.Gopay gopay) {
NEW
1079
        this.gopay = gopay;
×
NEW
1080
        return this;
×
1081
      }
1082

1083
      /**
1084
       * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
1085
       * payment method.
1086
       */
1087
      public Builder setGrabpay(ConfirmationTokenCreateParams.PaymentMethodData.Grabpay grabpay) {
1088
        this.grabpay = grabpay;
×
1089
        return this;
×
1090
      }
1091

1092
      /**
1093
       * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL
1094
       * payment method.
1095
       */
1096
      public Builder setIdeal(ConfirmationTokenCreateParams.PaymentMethodData.Ideal ideal) {
1097
        this.ideal = ideal;
×
1098
        return this;
×
1099
      }
1100

1101
      /**
1102
       * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
1103
       * Interac Present payment method.
1104
       */
1105
      public Builder setInteracPresent(
1106
          ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent interacPresent) {
1107
        this.interacPresent = interacPresent;
×
1108
        return this;
×
1109
      }
1110

1111
      /**
1112
       * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao
1113
       * Pay payment method.
1114
       */
1115
      public Builder setKakaoPay(
1116
          ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay kakaoPay) {
1117
        this.kakaoPay = kakaoPay;
×
1118
        return this;
×
1119
      }
1120

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

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

1139
      /**
1140
       * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean
1141
       * Card payment method.
1142
       */
1143
      public Builder setKrCard(ConfirmationTokenCreateParams.PaymentMethodData.KrCard krCard) {
1144
        this.krCard = krCard;
×
1145
        return this;
×
1146
      }
1147

1148
      /**
1149
       * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
1150
       * method.
1151
       */
1152
      public Builder setLink(ConfirmationTokenCreateParams.PaymentMethodData.Link link) {
1153
        this.link = link;
×
1154
        return this;
×
1155
      }
1156

1157
      /**
1158
       * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
1159
       * method.
1160
       */
1161
      public Builder setMbWay(ConfirmationTokenCreateParams.PaymentMethodData.MbWay mbWay) {
1162
        this.mbWay = mbWay;
×
1163
        return this;
×
1164
      }
1165

1166
      /**
1167
       * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll`
1168
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1169
       * ConfirmationTokenCreateParams.PaymentMethodData#metadata} for the field documentation.
1170
       */
1171
      public Builder putMetadata(String key, String value) {
1172
        if (this.metadata == null) {
×
1173
          this.metadata = new HashMap<>();
×
1174
        }
1175
        this.metadata.put(key, value);
×
1176
        return this;
×
1177
      }
1178

1179
      /**
1180
       * Add all map key/value pairs to `metadata` map. A map is initialized for the first
1181
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1182
       * See {@link ConfirmationTokenCreateParams.PaymentMethodData#metadata} for the field
1183
       * documentation.
1184
       */
1185
      public Builder putAllMetadata(Map<String, String> map) {
1186
        if (this.metadata == null) {
×
1187
          this.metadata = new HashMap<>();
×
1188
        }
1189
        this.metadata.putAll(map);
×
1190
        return this;
×
1191
      }
1192

1193
      /**
1194
       * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the
1195
       * MobilePay payment method.
1196
       */
1197
      public Builder setMobilepay(
1198
          ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay mobilepay) {
1199
        this.mobilepay = mobilepay;
×
1200
        return this;
×
1201
      }
1202

1203
      /**
1204
       * If this is a {@code multibanco} PaymentMethod, this hash contains details about the
1205
       * Multibanco payment method.
1206
       */
1207
      public Builder setMultibanco(
1208
          ConfirmationTokenCreateParams.PaymentMethodData.Multibanco multibanco) {
1209
        this.multibanco = multibanco;
×
1210
        return this;
×
1211
      }
1212

1213
      /**
1214
       * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver
1215
       * Pay payment method.
1216
       */
1217
      public Builder setNaverPay(
1218
          ConfirmationTokenCreateParams.PaymentMethodData.NaverPay naverPay) {
1219
        this.naverPay = naverPay;
×
1220
        return this;
×
1221
      }
1222

1223
      /**
1224
       * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
1225
       * method.
1226
       */
1227
      public Builder setOxxo(ConfirmationTokenCreateParams.PaymentMethodData.Oxxo oxxo) {
1228
        this.oxxo = oxxo;
×
1229
        return this;
×
1230
      }
1231

1232
      /**
1233
       * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
1234
       * method.
1235
       */
1236
      public Builder setP24(ConfirmationTokenCreateParams.PaymentMethodData.P24 p24) {
1237
        this.p24 = p24;
×
1238
        return this;
×
1239
      }
1240

1241
      /**
1242
       * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO
1243
       * payment method.
1244
       */
1245
      public Builder setPayco(ConfirmationTokenCreateParams.PaymentMethodData.Payco payco) {
1246
        this.payco = payco;
×
1247
        return this;
×
1248
      }
1249

1250
      /**
1251
       * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
1252
       * payment method.
1253
       */
1254
      public Builder setPaynow(ConfirmationTokenCreateParams.PaymentMethodData.Paynow paynow) {
1255
        this.paynow = paynow;
×
1256
        return this;
×
1257
      }
1258

1259
      /**
1260
       * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
1261
       * payment method.
1262
       */
1263
      public Builder setPaypal(ConfirmationTokenCreateParams.PaymentMethodData.Paypal paypal) {
1264
        this.paypal = paypal;
×
1265
        return this;
×
1266
      }
1267

1268
      /**
1269
       * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo
1270
       * payment method.
1271
       */
1272
      public Builder setPayto(ConfirmationTokenCreateParams.PaymentMethodData.Payto payto) {
1273
        this.payto = payto;
×
1274
        return this;
×
1275
      }
1276

1277
      /**
1278
       * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
1279
       * method.
1280
       */
1281
      public Builder setPix(ConfirmationTokenCreateParams.PaymentMethodData.Pix pix) {
1282
        this.pix = pix;
×
1283
        return this;
×
1284
      }
1285

1286
      /**
1287
       * If this is a {@code promptpay} PaymentMethod, this hash contains details about the
1288
       * PromptPay payment method.
1289
       */
1290
      public Builder setPromptpay(
1291
          ConfirmationTokenCreateParams.PaymentMethodData.Promptpay promptpay) {
1292
        this.promptpay = promptpay;
×
1293
        return this;
×
1294
      }
1295

1296
      /**
1297
       * If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
1298
       * method.
1299
       */
1300
      public Builder setQris(ConfirmationTokenCreateParams.PaymentMethodData.Qris qris) {
NEW
1301
        this.qris = qris;
×
NEW
1302
        return this;
×
1303
      }
1304

1305
      /**
1306
       * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
1307
       * Session</a> for more information.
1308
       */
1309
      public Builder setRadarOptions(
1310
          ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions radarOptions) {
1311
        this.radarOptions = radarOptions;
×
1312
        return this;
×
1313
      }
1314

1315
      /**
1316
       * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
1317
       * payment method.
1318
       */
1319
      public Builder setRechnung(
1320
          ConfirmationTokenCreateParams.PaymentMethodData.Rechnung rechnung) {
1321
        this.rechnung = rechnung;
×
1322
        return this;
×
1323
      }
1324

1325
      /**
1326
       * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the
1327
       * Revolut Pay payment method.
1328
       */
1329
      public Builder setRevolutPay(
1330
          ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay revolutPay) {
1331
        this.revolutPay = revolutPay;
×
1332
        return this;
×
1333
      }
1334

1335
      /**
1336
       * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
1337
       * SamsungPay payment method.
1338
       */
1339
      public Builder setSamsungPay(
1340
          ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay samsungPay) {
1341
        this.samsungPay = samsungPay;
×
1342
        return this;
×
1343
      }
1344

1345
      /**
1346
       * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
1347
       * debit bank account.
1348
       */
1349
      public Builder setSepaDebit(
1350
          ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit sepaDebit) {
1351
        this.sepaDebit = sepaDebit;
×
1352
        return this;
×
1353
      }
1354

1355
      /**
1356
       * If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay
1357
       * payment method.
1358
       */
1359
      public Builder setShopeepay(
1360
          ConfirmationTokenCreateParams.PaymentMethodData.Shopeepay shopeepay) {
NEW
1361
        this.shopeepay = shopeepay;
×
NEW
1362
        return this;
×
1363
      }
1364

1365
      /**
1366
       * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
1367
       * payment method.
1368
       */
1369
      public Builder setSofort(ConfirmationTokenCreateParams.PaymentMethodData.Sofort sofort) {
1370
        this.sofort = sofort;
×
1371
        return this;
×
1372
      }
1373

1374
      /**
1375
       * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish
1376
       * payment method.
1377
       */
1378
      public Builder setSwish(ConfirmationTokenCreateParams.PaymentMethodData.Swish swish) {
1379
        this.swish = swish;
×
1380
        return this;
×
1381
      }
1382

1383
      /**
1384
       * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment
1385
       * method.
1386
       */
1387
      public Builder setTwint(ConfirmationTokenCreateParams.PaymentMethodData.Twint twint) {
1388
        this.twint = twint;
×
1389
        return this;
×
1390
      }
1391

1392
      /**
1393
       * <strong>Required.</strong> The type of the PaymentMethod. An additional hash is included on
1394
       * the PaymentMethod with a name matching this value. It contains additional information
1395
       * specific to the PaymentMethod type.
1396
       */
1397
      public Builder setType(ConfirmationTokenCreateParams.PaymentMethodData.Type type) {
1398
        this.type = type;
×
1399
        return this;
×
1400
      }
1401

1402
      /**
1403
       * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the
1404
       * US bank account payment method.
1405
       */
1406
      public Builder setUsBankAccount(
1407
          ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount usBankAccount) {
1408
        this.usBankAccount = usBankAccount;
×
1409
        return this;
×
1410
      }
1411

1412
      /**
1413
       * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
1414
       * wechat_pay payment method.
1415
       */
1416
      public Builder setWechatPay(
1417
          ConfirmationTokenCreateParams.PaymentMethodData.WechatPay wechatPay) {
1418
        this.wechatPay = wechatPay;
×
1419
        return this;
×
1420
      }
1421

1422
      /**
1423
       * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
1424
       * method.
1425
       */
1426
      public Builder setZip(ConfirmationTokenCreateParams.PaymentMethodData.Zip zip) {
1427
        this.zip = zip;
×
1428
        return this;
×
1429
      }
1430
    }
1431

1432
    @Getter
1433
    public static class AcssDebit {
1434
      /** <strong>Required.</strong> Customer's bank account number. */
1435
      @SerializedName("account_number")
1436
      String accountNumber;
1437

1438
      /**
1439
       * Map of extra parameters for custom features not available in this client library. The
1440
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1441
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1442
       * name in this param object. Effectively, this map is flattened to its parent instance.
1443
       */
1444
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1445
      Map<String, Object> extraParams;
1446

1447
      /** <strong>Required.</strong> Institution number of the customer's bank. */
1448
      @SerializedName("institution_number")
1449
      String institutionNumber;
1450

1451
      /** <strong>Required.</strong> Transit number of the customer's bank. */
1452
      @SerializedName("transit_number")
1453
      String transitNumber;
1454

1455
      private AcssDebit(
1456
          String accountNumber,
1457
          Map<String, Object> extraParams,
1458
          String institutionNumber,
1459
          String transitNumber) {
×
1460
        this.accountNumber = accountNumber;
×
1461
        this.extraParams = extraParams;
×
1462
        this.institutionNumber = institutionNumber;
×
1463
        this.transitNumber = transitNumber;
×
1464
      }
×
1465

1466
      public static Builder builder() {
1467
        return new Builder();
×
1468
      }
1469

1470
      public static class Builder {
×
1471
        private String accountNumber;
1472

1473
        private Map<String, Object> extraParams;
1474

1475
        private String institutionNumber;
1476

1477
        private String transitNumber;
1478

1479
        /** Finalize and obtain parameter instance from this builder. */
1480
        public ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit build() {
1481
          return new ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit(
×
1482
              this.accountNumber, this.extraParams, this.institutionNumber, this.transitNumber);
1483
        }
1484

1485
        /** <strong>Required.</strong> Customer's bank account number. */
1486
        public Builder setAccountNumber(String accountNumber) {
1487
          this.accountNumber = accountNumber;
×
1488
          return this;
×
1489
        }
1490

1491
        /**
1492
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1493
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1494
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit#extraParams}
1495
         * for the field documentation.
1496
         */
1497
        public Builder putExtraParam(String key, Object value) {
1498
          if (this.extraParams == null) {
×
1499
            this.extraParams = new HashMap<>();
×
1500
          }
1501
          this.extraParams.put(key, value);
×
1502
          return this;
×
1503
        }
1504

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

1519
        /** <strong>Required.</strong> Institution number of the customer's bank. */
1520
        public Builder setInstitutionNumber(String institutionNumber) {
1521
          this.institutionNumber = institutionNumber;
×
1522
          return this;
×
1523
        }
1524

1525
        /** <strong>Required.</strong> Transit number of the customer's bank. */
1526
        public Builder setTransitNumber(String transitNumber) {
1527
          this.transitNumber = transitNumber;
×
1528
          return this;
×
1529
        }
1530
      }
1531
    }
1532

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

1544
      private Affirm(Map<String, Object> extraParams) {
×
1545
        this.extraParams = extraParams;
×
1546
      }
×
1547

1548
      public static Builder builder() {
1549
        return new Builder();
×
1550
      }
1551

1552
      public static class Builder {
×
1553
        private Map<String, Object> extraParams;
1554

1555
        /** Finalize and obtain parameter instance from this builder. */
1556
        public ConfirmationTokenCreateParams.PaymentMethodData.Affirm build() {
1557
          return new ConfirmationTokenCreateParams.PaymentMethodData.Affirm(this.extraParams);
×
1558
        }
1559

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

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

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

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

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

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

1612
        /** Finalize and obtain parameter instance from this builder. */
1613
        public ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay build() {
1614
          return new ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay(
×
1615
              this.extraParams);
1616
        }
1617

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

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

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

1661
      private Alipay(Map<String, Object> extraParams) {
×
1662
        this.extraParams = extraParams;
×
1663
      }
×
1664

1665
      public static Builder builder() {
1666
        return new Builder();
×
1667
      }
1668

1669
      public static class Builder {
×
1670
        private Map<String, Object> extraParams;
1671

1672
        /** Finalize and obtain parameter instance from this builder. */
1673
        public ConfirmationTokenCreateParams.PaymentMethodData.Alipay build() {
1674
          return new ConfirmationTokenCreateParams.PaymentMethodData.Alipay(this.extraParams);
×
1675
        }
1676

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

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

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

NEW
1718
      private Alma(Map<String, Object> extraParams) {
×
NEW
1719
        this.extraParams = extraParams;
×
NEW
1720
      }
×
1721

1722
      public static Builder builder() {
NEW
1723
        return new Builder();
×
1724
      }
1725

NEW
1726
      public static class Builder {
×
1727
        private Map<String, Object> extraParams;
1728

1729
        /** Finalize and obtain parameter instance from this builder. */
1730
        public ConfirmationTokenCreateParams.PaymentMethodData.Alma build() {
NEW
1731
          return new ConfirmationTokenCreateParams.PaymentMethodData.Alma(this.extraParams);
×
1732
        }
1733

1734
        /**
1735
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1736
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1737
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Alma#extraParams} for the
1738
         * field documentation.
1739
         */
1740
        public Builder putExtraParam(String key, Object value) {
NEW
1741
          if (this.extraParams == null) {
×
NEW
1742
            this.extraParams = new HashMap<>();
×
1743
          }
NEW
1744
          this.extraParams.put(key, value);
×
NEW
1745
          return this;
×
1746
        }
1747

1748
        /**
1749
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1750
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1751
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Alma#extraParams} for the
1752
         * field documentation.
1753
         */
1754
        public Builder putAllExtraParam(Map<String, Object> map) {
NEW
1755
          if (this.extraParams == null) {
×
NEW
1756
            this.extraParams = new HashMap<>();
×
1757
          }
NEW
1758
          this.extraParams.putAll(map);
×
NEW
1759
          return this;
×
1760
        }
1761
      }
1762
    }
1763

1764
    @Getter
1765
    public static class AmazonPay {
1766
      /**
1767
       * Map of extra parameters for custom features not available in this client library. The
1768
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1769
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1770
       * name in this param object. Effectively, this map is flattened to its parent instance.
1771
       */
1772
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1773
      Map<String, Object> extraParams;
1774

1775
      private AmazonPay(Map<String, Object> extraParams) {
×
1776
        this.extraParams = extraParams;
×
1777
      }
×
1778

1779
      public static Builder builder() {
1780
        return new Builder();
×
1781
      }
1782

1783
      public static class Builder {
×
1784
        private Map<String, Object> extraParams;
1785

1786
        /** Finalize and obtain parameter instance from this builder. */
1787
        public ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay build() {
1788
          return new ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay(this.extraParams);
×
1789
        }
1790

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

1805
        /**
1806
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1807
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1808
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay#extraParams}
1809
         * for the field documentation.
1810
         */
1811
        public Builder putAllExtraParam(Map<String, Object> map) {
1812
          if (this.extraParams == null) {
×
1813
            this.extraParams = new HashMap<>();
×
1814
          }
1815
          this.extraParams.putAll(map);
×
1816
          return this;
×
1817
        }
1818
      }
1819
    }
1820

1821
    @Getter
1822
    public static class AuBecsDebit {
1823
      /** <strong>Required.</strong> The account number for the bank account. */
1824
      @SerializedName("account_number")
1825
      String accountNumber;
1826

1827
      /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1828
      @SerializedName("bsb_number")
1829
      String bsbNumber;
1830

1831
      /**
1832
       * Map of extra parameters for custom features not available in this client library. The
1833
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1834
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1835
       * name in this param object. Effectively, this map is flattened to its parent instance.
1836
       */
1837
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1838
      Map<String, Object> extraParams;
1839

1840
      private AuBecsDebit(String accountNumber, String bsbNumber, Map<String, Object> extraParams) {
×
1841
        this.accountNumber = accountNumber;
×
1842
        this.bsbNumber = bsbNumber;
×
1843
        this.extraParams = extraParams;
×
1844
      }
×
1845

1846
      public static Builder builder() {
1847
        return new Builder();
×
1848
      }
1849

1850
      public static class Builder {
×
1851
        private String accountNumber;
1852

1853
        private String bsbNumber;
1854

1855
        private Map<String, Object> extraParams;
1856

1857
        /** Finalize and obtain parameter instance from this builder. */
1858
        public ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit build() {
1859
          return new ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit(
×
1860
              this.accountNumber, this.bsbNumber, this.extraParams);
1861
        }
1862

1863
        /** <strong>Required.</strong> The account number for the bank account. */
1864
        public Builder setAccountNumber(String accountNumber) {
1865
          this.accountNumber = accountNumber;
×
1866
          return this;
×
1867
        }
1868

1869
        /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1870
        public Builder setBsbNumber(String bsbNumber) {
1871
          this.bsbNumber = bsbNumber;
×
1872
          return this;
×
1873
        }
1874

1875
        /**
1876
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1877
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1878
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit#extraParams}
1879
         * for the field documentation.
1880
         */
1881
        public Builder putExtraParam(String key, Object value) {
1882
          if (this.extraParams == null) {
×
1883
            this.extraParams = new HashMap<>();
×
1884
          }
1885
          this.extraParams.put(key, value);
×
1886
          return this;
×
1887
        }
1888

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

1905
    @Getter
1906
    public static class BacsDebit {
1907
      /** Account number of the bank account that the funds will be debited from. */
1908
      @SerializedName("account_number")
1909
      String accountNumber;
1910

1911
      /**
1912
       * Map of extra parameters for custom features not available in this client library. The
1913
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1914
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1915
       * name in this param object. Effectively, this map is flattened to its parent instance.
1916
       */
1917
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1918
      Map<String, Object> extraParams;
1919

1920
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1921
      @SerializedName("sort_code")
1922
      String sortCode;
1923

1924
      private BacsDebit(String accountNumber, Map<String, Object> extraParams, String sortCode) {
×
1925
        this.accountNumber = accountNumber;
×
1926
        this.extraParams = extraParams;
×
1927
        this.sortCode = sortCode;
×
1928
      }
×
1929

1930
      public static Builder builder() {
1931
        return new Builder();
×
1932
      }
1933

1934
      public static class Builder {
×
1935
        private String accountNumber;
1936

1937
        private Map<String, Object> extraParams;
1938

1939
        private String sortCode;
1940

1941
        /** Finalize and obtain parameter instance from this builder. */
1942
        public ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit build() {
1943
          return new ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit(
×
1944
              this.accountNumber, this.extraParams, this.sortCode);
1945
        }
1946

1947
        /** Account number of the bank account that the funds will be debited from. */
1948
        public Builder setAccountNumber(String accountNumber) {
1949
          this.accountNumber = accountNumber;
×
1950
          return this;
×
1951
        }
1952

1953
        /**
1954
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1955
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1956
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit#extraParams}
1957
         * for the field documentation.
1958
         */
1959
        public Builder putExtraParam(String key, Object value) {
1960
          if (this.extraParams == null) {
×
1961
            this.extraParams = new HashMap<>();
×
1962
          }
1963
          this.extraParams.put(key, value);
×
1964
          return this;
×
1965
        }
1966

1967
        /**
1968
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1969
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1970
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit#extraParams}
1971
         * for the field documentation.
1972
         */
1973
        public Builder putAllExtraParam(Map<String, Object> map) {
1974
          if (this.extraParams == null) {
×
1975
            this.extraParams = new HashMap<>();
×
1976
          }
1977
          this.extraParams.putAll(map);
×
1978
          return this;
×
1979
        }
1980

1981
        /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1982
        public Builder setSortCode(String sortCode) {
1983
          this.sortCode = sortCode;
×
1984
          return this;
×
1985
        }
1986
      }
1987
    }
1988

1989
    @Getter
1990
    public static class Bancontact {
1991
      /**
1992
       * Map of extra parameters for custom features not available in this client library. The
1993
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1994
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1995
       * name in this param object. Effectively, this map is flattened to its parent instance.
1996
       */
1997
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1998
      Map<String, Object> extraParams;
1999

2000
      private Bancontact(Map<String, Object> extraParams) {
×
2001
        this.extraParams = extraParams;
×
2002
      }
×
2003

2004
      public static Builder builder() {
2005
        return new Builder();
×
2006
      }
2007

2008
      public static class Builder {
×
2009
        private Map<String, Object> extraParams;
2010

2011
        /** Finalize and obtain parameter instance from this builder. */
2012
        public ConfirmationTokenCreateParams.PaymentMethodData.Bancontact build() {
2013
          return new ConfirmationTokenCreateParams.PaymentMethodData.Bancontact(this.extraParams);
×
2014
        }
2015

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

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

2046
    @Getter
2047
    public static class BillingDetails {
2048
      /** Billing address. */
2049
      @SerializedName("address")
2050
      Object address;
2051

2052
      /** Email address. */
2053
      @SerializedName("email")
2054
      Object email;
2055

2056
      /**
2057
       * Map of extra parameters for custom features not available in this client library. The
2058
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2059
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2060
       * name in this param object. Effectively, this map is flattened to its parent instance.
2061
       */
2062
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2063
      Map<String, Object> extraParams;
2064

2065
      /** Full name. */
2066
      @SerializedName("name")
2067
      Object name;
2068

2069
      /** Billing phone number (including extension). */
2070
      @SerializedName("phone")
2071
      Object phone;
2072

2073
      private BillingDetails(
2074
          Object address,
2075
          Object email,
2076
          Map<String, Object> extraParams,
2077
          Object name,
2078
          Object phone) {
×
2079
        this.address = address;
×
2080
        this.email = email;
×
2081
        this.extraParams = extraParams;
×
2082
        this.name = name;
×
2083
        this.phone = phone;
×
2084
      }
×
2085

2086
      public static Builder builder() {
2087
        return new Builder();
×
2088
      }
2089

2090
      public static class Builder {
×
2091
        private Object address;
2092

2093
        private Object email;
2094

2095
        private Map<String, Object> extraParams;
2096

2097
        private Object name;
2098

2099
        private Object phone;
2100

2101
        /** Finalize and obtain parameter instance from this builder. */
2102
        public ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails build() {
2103
          return new ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails(
×
2104
              this.address, this.email, this.extraParams, this.name, this.phone);
2105
        }
2106

2107
        /** Billing address. */
2108
        public Builder setAddress(
2109
            ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address address) {
2110
          this.address = address;
×
2111
          return this;
×
2112
        }
2113

2114
        /** Billing address. */
2115
        public Builder setAddress(EmptyParam address) {
2116
          this.address = address;
×
2117
          return this;
×
2118
        }
2119

2120
        /** Email address. */
2121
        public Builder setEmail(String email) {
2122
          this.email = email;
×
2123
          return this;
×
2124
        }
2125

2126
        /** Email address. */
2127
        public Builder setEmail(EmptyParam email) {
2128
          this.email = email;
×
2129
          return this;
×
2130
        }
2131

2132
        /**
2133
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2134
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2135
         * map. See {@link
2136
         * ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails#extraParams} for the field
2137
         * documentation.
2138
         */
2139
        public Builder putExtraParam(String key, Object value) {
2140
          if (this.extraParams == null) {
×
2141
            this.extraParams = new HashMap<>();
×
2142
          }
2143
          this.extraParams.put(key, value);
×
2144
          return this;
×
2145
        }
2146

2147
        /**
2148
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2149
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2150
         * map. See {@link
2151
         * ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails#extraParams} for the field
2152
         * documentation.
2153
         */
2154
        public Builder putAllExtraParam(Map<String, Object> map) {
2155
          if (this.extraParams == null) {
×
2156
            this.extraParams = new HashMap<>();
×
2157
          }
2158
          this.extraParams.putAll(map);
×
2159
          return this;
×
2160
        }
2161

2162
        /** Full name. */
2163
        public Builder setName(String name) {
2164
          this.name = name;
×
2165
          return this;
×
2166
        }
2167

2168
        /** Full name. */
2169
        public Builder setName(EmptyParam name) {
2170
          this.name = name;
×
2171
          return this;
×
2172
        }
2173

2174
        /** Billing phone number (including extension). */
2175
        public Builder setPhone(String phone) {
2176
          this.phone = phone;
×
2177
          return this;
×
2178
        }
2179

2180
        /** Billing phone number (including extension). */
2181
        public Builder setPhone(EmptyParam phone) {
2182
          this.phone = phone;
×
2183
          return this;
×
2184
        }
2185
      }
2186

2187
      @Getter
2188
      public static class Address {
2189
        /** City, district, suburb, town, or village. */
2190
        @SerializedName("city")
2191
        String city;
2192

2193
        /**
2194
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2195
         * 3166-1 alpha-2</a>).
2196
         */
2197
        @SerializedName("country")
2198
        String country;
2199

2200
        /**
2201
         * Map of extra parameters for custom features not available in this client library. The
2202
         * content in this map is not serialized under this field's {@code @SerializedName} value.
2203
         * Instead, each key/value pair is serialized as if the key is a root-level field
2204
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
2205
         * instance.
2206
         */
2207
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2208
        Map<String, Object> extraParams;
2209

2210
        /** Address line 1 (e.g., street, PO Box, or company name). */
2211
        @SerializedName("line1")
2212
        String line1;
2213

2214
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
2215
        @SerializedName("line2")
2216
        String line2;
2217

2218
        /** ZIP or postal code. */
2219
        @SerializedName("postal_code")
2220
        String postalCode;
2221

2222
        /** State, county, province, or region. */
2223
        @SerializedName("state")
2224
        String state;
2225

2226
        private Address(
2227
            String city,
2228
            String country,
2229
            Map<String, Object> extraParams,
2230
            String line1,
2231
            String line2,
2232
            String postalCode,
2233
            String state) {
×
2234
          this.city = city;
×
2235
          this.country = country;
×
2236
          this.extraParams = extraParams;
×
2237
          this.line1 = line1;
×
2238
          this.line2 = line2;
×
2239
          this.postalCode = postalCode;
×
2240
          this.state = state;
×
2241
        }
×
2242

2243
        public static Builder builder() {
2244
          return new Builder();
×
2245
        }
2246

2247
        public static class Builder {
×
2248
          private String city;
2249

2250
          private String country;
2251

2252
          private Map<String, Object> extraParams;
2253

2254
          private String line1;
2255

2256
          private String line2;
2257

2258
          private String postalCode;
2259

2260
          private String state;
2261

2262
          /** Finalize and obtain parameter instance from this builder. */
2263
          public ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address build() {
2264
            return new ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address(
×
2265
                this.city,
2266
                this.country,
2267
                this.extraParams,
2268
                this.line1,
2269
                this.line2,
2270
                this.postalCode,
2271
                this.state);
2272
          }
2273

2274
          /** City, district, suburb, town, or village. */
2275
          public Builder setCity(String city) {
2276
            this.city = city;
×
2277
            return this;
×
2278
          }
2279

2280
          /**
2281
           * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2282
           * 3166-1 alpha-2</a>).
2283
           */
2284
          public Builder setCountry(String country) {
2285
            this.country = country;
×
2286
            return this;
×
2287
          }
2288

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

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

2319
          /** Address line 1 (e.g., street, PO Box, or company name). */
2320
          public Builder setLine1(String line1) {
2321
            this.line1 = line1;
×
2322
            return this;
×
2323
          }
2324

2325
          /** Address line 2 (e.g., apartment, suite, unit, or building). */
2326
          public Builder setLine2(String line2) {
2327
            this.line2 = line2;
×
2328
            return this;
×
2329
          }
2330

2331
          /** ZIP or postal code. */
2332
          public Builder setPostalCode(String postalCode) {
2333
            this.postalCode = postalCode;
×
2334
            return this;
×
2335
          }
2336

2337
          /** State, county, province, or region. */
2338
          public Builder setState(String state) {
2339
            this.state = state;
×
2340
            return this;
×
2341
          }
2342
        }
2343
      }
2344
    }
2345

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

2357
      private Blik(Map<String, Object> extraParams) {
×
2358
        this.extraParams = extraParams;
×
2359
      }
×
2360

2361
      public static Builder builder() {
2362
        return new Builder();
×
2363
      }
2364

2365
      public static class Builder {
×
2366
        private Map<String, Object> extraParams;
2367

2368
        /** Finalize and obtain parameter instance from this builder. */
2369
        public ConfirmationTokenCreateParams.PaymentMethodData.Blik build() {
2370
          return new ConfirmationTokenCreateParams.PaymentMethodData.Blik(this.extraParams);
×
2371
        }
2372

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

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

2403
    @Getter
2404
    public static class Boleto {
2405
      /**
2406
       * Map of extra parameters for custom features not available in this client library. The
2407
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2408
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2409
       * name in this param object. Effectively, this map is flattened to its parent instance.
2410
       */
2411
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2412
      Map<String, Object> extraParams;
2413

2414
      /**
2415
       * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or CNPJ
2416
       * for businesses consumers)
2417
       */
2418
      @SerializedName("tax_id")
2419
      String taxId;
2420

2421
      private Boleto(Map<String, Object> extraParams, String taxId) {
×
2422
        this.extraParams = extraParams;
×
2423
        this.taxId = taxId;
×
2424
      }
×
2425

2426
      public static Builder builder() {
2427
        return new Builder();
×
2428
      }
2429

2430
      public static class Builder {
×
2431
        private Map<String, Object> extraParams;
2432

2433
        private String taxId;
2434

2435
        /** Finalize and obtain parameter instance from this builder. */
2436
        public ConfirmationTokenCreateParams.PaymentMethodData.Boleto build() {
2437
          return new ConfirmationTokenCreateParams.PaymentMethodData.Boleto(
×
2438
              this.extraParams, this.taxId);
2439
        }
2440

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

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

2469
        /**
2470
         * <strong>Required.</strong> The tax ID of the customer (CPF for individual consumers or
2471
         * CNPJ for businesses consumers)
2472
         */
2473
        public Builder setTaxId(String taxId) {
2474
          this.taxId = taxId;
×
2475
          return this;
×
2476
        }
2477
      }
2478
    }
2479

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

2491
      private Cashapp(Map<String, Object> extraParams) {
×
2492
        this.extraParams = extraParams;
×
2493
      }
×
2494

2495
      public static Builder builder() {
2496
        return new Builder();
×
2497
      }
2498

2499
      public static class Builder {
×
2500
        private Map<String, Object> extraParams;
2501

2502
        /** Finalize and obtain parameter instance from this builder. */
2503
        public ConfirmationTokenCreateParams.PaymentMethodData.Cashapp build() {
2504
          return new ConfirmationTokenCreateParams.PaymentMethodData.Cashapp(this.extraParams);
×
2505
        }
2506

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

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

2537
    @Getter
2538
    public static class CustomerBalance {
2539
      /**
2540
       * Map of extra parameters for custom features not available in this client library. The
2541
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2542
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2543
       * name in this param object. Effectively, this map is flattened to its parent instance.
2544
       */
2545
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2546
      Map<String, Object> extraParams;
2547

2548
      private CustomerBalance(Map<String, Object> extraParams) {
×
2549
        this.extraParams = extraParams;
×
2550
      }
×
2551

2552
      public static Builder builder() {
2553
        return new Builder();
×
2554
      }
2555

2556
      public static class Builder {
×
2557
        private Map<String, Object> extraParams;
2558

2559
        /** Finalize and obtain parameter instance from this builder. */
2560
        public ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance build() {
2561
          return new ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance(
×
2562
              this.extraParams);
2563
        }
2564

2565
        /**
2566
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2567
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2568
         * map. See {@link
2569
         * ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance#extraParams} for the
2570
         * field documentation.
2571
         */
2572
        public Builder putExtraParam(String key, Object value) {
2573
          if (this.extraParams == null) {
×
2574
            this.extraParams = new HashMap<>();
×
2575
          }
2576
          this.extraParams.put(key, value);
×
2577
          return this;
×
2578
        }
2579

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

2597
    @Getter
2598
    public static class Eps {
2599
      /** The customer's bank. */
2600
      @SerializedName("bank")
2601
      Bank bank;
2602

2603
      /**
2604
       * Map of extra parameters for custom features not available in this client library. The
2605
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2606
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2607
       * name in this param object. Effectively, this map is flattened to its parent instance.
2608
       */
2609
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2610
      Map<String, Object> extraParams;
2611

2612
      private Eps(Bank bank, Map<String, Object> extraParams) {
×
2613
        this.bank = bank;
×
2614
        this.extraParams = extraParams;
×
2615
      }
×
2616

2617
      public static Builder builder() {
2618
        return new Builder();
×
2619
      }
2620

2621
      public static class Builder {
×
2622
        private Bank bank;
2623

2624
        private Map<String, Object> extraParams;
2625

2626
        /** Finalize and obtain parameter instance from this builder. */
2627
        public ConfirmationTokenCreateParams.PaymentMethodData.Eps build() {
2628
          return new ConfirmationTokenCreateParams.PaymentMethodData.Eps(
×
2629
              this.bank, this.extraParams);
2630
        }
2631

2632
        /** The customer's bank. */
2633
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Eps.Bank bank) {
2634
          this.bank = bank;
×
2635
          return this;
×
2636
        }
2637

2638
        /**
2639
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2640
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2641
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Eps#extraParams} for the
2642
         * field documentation.
2643
         */
2644
        public Builder putExtraParam(String key, Object value) {
2645
          if (this.extraParams == null) {
×
2646
            this.extraParams = new HashMap<>();
×
2647
          }
2648
          this.extraParams.put(key, value);
×
2649
          return this;
×
2650
        }
2651

2652
        /**
2653
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2654
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2655
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Eps#extraParams} for the
2656
         * field documentation.
2657
         */
2658
        public Builder putAllExtraParam(Map<String, Object> map) {
2659
          if (this.extraParams == null) {
×
2660
            this.extraParams = new HashMap<>();
×
2661
          }
2662
          this.extraParams.putAll(map);
×
2663
          return this;
×
2664
        }
2665
      }
2666

2667
      public enum Bank implements ApiRequestParams.EnumParam {
×
2668
        @SerializedName("arzte_und_apotheker_bank")
×
2669
        ARZTE_UND_APOTHEKER_BANK("arzte_und_apotheker_bank"),
2670

2671
        @SerializedName("austrian_anadi_bank_ag")
×
2672
        AUSTRIAN_ANADI_BANK_AG("austrian_anadi_bank_ag"),
2673

2674
        @SerializedName("bank_austria")
×
2675
        BANK_AUSTRIA("bank_austria"),
2676

2677
        @SerializedName("bankhaus_carl_spangler")
×
2678
        BANKHAUS_CARL_SPANGLER("bankhaus_carl_spangler"),
2679

2680
        @SerializedName("bankhaus_schelhammer_und_schattera_ag")
×
2681
        BANKHAUS_SCHELHAMMER_UND_SCHATTERA_AG("bankhaus_schelhammer_und_schattera_ag"),
2682

2683
        @SerializedName("bawag_psk_ag")
×
2684
        BAWAG_PSK_AG("bawag_psk_ag"),
2685

2686
        @SerializedName("bks_bank_ag")
×
2687
        BKS_BANK_AG("bks_bank_ag"),
2688

2689
        @SerializedName("brull_kallmus_bank_ag")
×
2690
        BRULL_KALLMUS_BANK_AG("brull_kallmus_bank_ag"),
2691

2692
        @SerializedName("btv_vier_lander_bank")
×
2693
        BTV_VIER_LANDER_BANK("btv_vier_lander_bank"),
2694

2695
        @SerializedName("capital_bank_grawe_gruppe_ag")
×
2696
        CAPITAL_BANK_GRAWE_GRUPPE_AG("capital_bank_grawe_gruppe_ag"),
2697

2698
        @SerializedName("deutsche_bank_ag")
×
2699
        DEUTSCHE_BANK_AG("deutsche_bank_ag"),
2700

2701
        @SerializedName("dolomitenbank")
×
2702
        DOLOMITENBANK("dolomitenbank"),
2703

2704
        @SerializedName("easybank_ag")
×
2705
        EASYBANK_AG("easybank_ag"),
2706

2707
        @SerializedName("erste_bank_und_sparkassen")
×
2708
        ERSTE_BANK_UND_SPARKASSEN("erste_bank_und_sparkassen"),
2709

2710
        @SerializedName("hypo_alpeadriabank_international_ag")
×
2711
        HYPO_ALPEADRIABANK_INTERNATIONAL_AG("hypo_alpeadriabank_international_ag"),
2712

2713
        @SerializedName("hypo_bank_burgenland_aktiengesellschaft")
×
2714
        HYPO_BANK_BURGENLAND_AKTIENGESELLSCHAFT("hypo_bank_burgenland_aktiengesellschaft"),
2715

2716
        @SerializedName("hypo_noe_lb_fur_niederosterreich_u_wien")
×
2717
        HYPO_NOE_LB_FUR_NIEDEROSTERREICH_U_WIEN("hypo_noe_lb_fur_niederosterreich_u_wien"),
2718

2719
        @SerializedName("hypo_oberosterreich_salzburg_steiermark")
×
2720
        HYPO_OBEROSTERREICH_SALZBURG_STEIERMARK("hypo_oberosterreich_salzburg_steiermark"),
2721

2722
        @SerializedName("hypo_tirol_bank_ag")
×
2723
        HYPO_TIROL_BANK_AG("hypo_tirol_bank_ag"),
2724

2725
        @SerializedName("hypo_vorarlberg_bank_ag")
×
2726
        HYPO_VORARLBERG_BANK_AG("hypo_vorarlberg_bank_ag"),
2727

2728
        @SerializedName("marchfelder_bank")
×
2729
        MARCHFELDER_BANK("marchfelder_bank"),
2730

2731
        @SerializedName("oberbank_ag")
×
2732
        OBERBANK_AG("oberbank_ag"),
2733

2734
        @SerializedName("raiffeisen_bankengruppe_osterreich")
×
2735
        RAIFFEISEN_BANKENGRUPPE_OSTERREICH("raiffeisen_bankengruppe_osterreich"),
2736

2737
        @SerializedName("schoellerbank_ag")
×
2738
        SCHOELLERBANK_AG("schoellerbank_ag"),
2739

2740
        @SerializedName("sparda_bank_wien")
×
2741
        SPARDA_BANK_WIEN("sparda_bank_wien"),
2742

2743
        @SerializedName("volksbank_gruppe")
×
2744
        VOLKSBANK_GRUPPE("volksbank_gruppe"),
2745

2746
        @SerializedName("volkskreditbank_ag")
×
2747
        VOLKSKREDITBANK_AG("volkskreditbank_ag"),
2748

2749
        @SerializedName("vr_bank_braunau")
×
2750
        VR_BANK_BRAUNAU("vr_bank_braunau");
2751

2752
        @Getter(onMethod_ = {@Override})
2753
        private final String value;
2754

2755
        Bank(String value) {
×
2756
          this.value = value;
×
2757
        }
×
2758
      }
2759
    }
2760

2761
    @Getter
2762
    public static class Fpx {
2763
      /** Account holder type for FPX transaction. */
2764
      @SerializedName("account_holder_type")
2765
      AccountHolderType accountHolderType;
2766

2767
      /** <strong>Required.</strong> The customer's bank. */
2768
      @SerializedName("bank")
2769
      Bank bank;
2770

2771
      /**
2772
       * Map of extra parameters for custom features not available in this client library. The
2773
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2774
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2775
       * name in this param object. Effectively, this map is flattened to its parent instance.
2776
       */
2777
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2778
      Map<String, Object> extraParams;
2779

2780
      private Fpx(AccountHolderType accountHolderType, Bank bank, Map<String, Object> extraParams) {
×
2781
        this.accountHolderType = accountHolderType;
×
2782
        this.bank = bank;
×
2783
        this.extraParams = extraParams;
×
2784
      }
×
2785

2786
      public static Builder builder() {
2787
        return new Builder();
×
2788
      }
2789

2790
      public static class Builder {
×
2791
        private AccountHolderType accountHolderType;
2792

2793
        private Bank bank;
2794

2795
        private Map<String, Object> extraParams;
2796

2797
        /** Finalize and obtain parameter instance from this builder. */
2798
        public ConfirmationTokenCreateParams.PaymentMethodData.Fpx build() {
2799
          return new ConfirmationTokenCreateParams.PaymentMethodData.Fpx(
×
2800
              this.accountHolderType, this.bank, this.extraParams);
2801
        }
2802

2803
        /** Account holder type for FPX transaction. */
2804
        public Builder setAccountHolderType(
2805
            ConfirmationTokenCreateParams.PaymentMethodData.Fpx.AccountHolderType
2806
                accountHolderType) {
2807
          this.accountHolderType = accountHolderType;
×
2808
          return this;
×
2809
        }
2810

2811
        /** <strong>Required.</strong> The customer's bank. */
2812
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Fpx.Bank bank) {
2813
          this.bank = bank;
×
2814
          return this;
×
2815
        }
2816

2817
        /**
2818
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2819
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2820
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Fpx#extraParams} for the
2821
         * field documentation.
2822
         */
2823
        public Builder putExtraParam(String key, Object value) {
2824
          if (this.extraParams == null) {
×
2825
            this.extraParams = new HashMap<>();
×
2826
          }
2827
          this.extraParams.put(key, value);
×
2828
          return this;
×
2829
        }
2830

2831
        /**
2832
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2833
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2834
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Fpx#extraParams} for the
2835
         * field documentation.
2836
         */
2837
        public Builder putAllExtraParam(Map<String, Object> map) {
2838
          if (this.extraParams == null) {
×
2839
            this.extraParams = new HashMap<>();
×
2840
          }
2841
          this.extraParams.putAll(map);
×
2842
          return this;
×
2843
        }
2844
      }
2845

2846
      public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
2847
        @SerializedName("company")
×
2848
        COMPANY("company"),
2849

2850
        @SerializedName("individual")
×
2851
        INDIVIDUAL("individual");
2852

2853
        @Getter(onMethod_ = {@Override})
2854
        private final String value;
2855

2856
        AccountHolderType(String value) {
×
2857
          this.value = value;
×
2858
        }
×
2859
      }
2860

2861
      public enum Bank implements ApiRequestParams.EnumParam {
×
2862
        @SerializedName("affin_bank")
×
2863
        AFFIN_BANK("affin_bank"),
2864

2865
        @SerializedName("agrobank")
×
2866
        AGROBANK("agrobank"),
2867

2868
        @SerializedName("alliance_bank")
×
2869
        ALLIANCE_BANK("alliance_bank"),
2870

2871
        @SerializedName("ambank")
×
2872
        AMBANK("ambank"),
2873

2874
        @SerializedName("bank_islam")
×
2875
        BANK_ISLAM("bank_islam"),
2876

2877
        @SerializedName("bank_muamalat")
×
2878
        BANK_MUAMALAT("bank_muamalat"),
2879

2880
        @SerializedName("bank_of_china")
×
2881
        BANK_OF_CHINA("bank_of_china"),
2882

2883
        @SerializedName("bank_rakyat")
×
2884
        BANK_RAKYAT("bank_rakyat"),
2885

2886
        @SerializedName("bsn")
×
2887
        BSN("bsn"),
2888

2889
        @SerializedName("cimb")
×
2890
        CIMB("cimb"),
2891

2892
        @SerializedName("deutsche_bank")
×
2893
        DEUTSCHE_BANK("deutsche_bank"),
2894

2895
        @SerializedName("hong_leong_bank")
×
2896
        HONG_LEONG_BANK("hong_leong_bank"),
2897

2898
        @SerializedName("hsbc")
×
2899
        HSBC("hsbc"),
2900

2901
        @SerializedName("kfh")
×
2902
        KFH("kfh"),
2903

2904
        @SerializedName("maybank2e")
×
2905
        MAYBANK2E("maybank2e"),
2906

2907
        @SerializedName("maybank2u")
×
2908
        MAYBANK2U("maybank2u"),
2909

2910
        @SerializedName("ocbc")
×
2911
        OCBC("ocbc"),
2912

2913
        @SerializedName("pb_enterprise")
×
2914
        PB_ENTERPRISE("pb_enterprise"),
2915

2916
        @SerializedName("public_bank")
×
2917
        PUBLIC_BANK("public_bank"),
2918

2919
        @SerializedName("rhb")
×
2920
        RHB("rhb"),
2921

2922
        @SerializedName("standard_chartered")
×
2923
        STANDARD_CHARTERED("standard_chartered"),
2924

2925
        @SerializedName("uob")
×
2926
        UOB("uob");
2927

2928
        @Getter(onMethod_ = {@Override})
2929
        private final String value;
2930

2931
        Bank(String value) {
×
2932
          this.value = value;
×
2933
        }
×
2934
      }
2935
    }
2936

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

2948
      private Giropay(Map<String, Object> extraParams) {
×
2949
        this.extraParams = extraParams;
×
2950
      }
×
2951

2952
      public static Builder builder() {
2953
        return new Builder();
×
2954
      }
2955

2956
      public static class Builder {
×
2957
        private Map<String, Object> extraParams;
2958

2959
        /** Finalize and obtain parameter instance from this builder. */
2960
        public ConfirmationTokenCreateParams.PaymentMethodData.Giropay build() {
2961
          return new ConfirmationTokenCreateParams.PaymentMethodData.Giropay(this.extraParams);
×
2962
        }
2963

2964
        /**
2965
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2966
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2967
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Giropay#extraParams} for
2968
         * the field documentation.
2969
         */
2970
        public Builder putExtraParam(String key, Object value) {
2971
          if (this.extraParams == null) {
×
2972
            this.extraParams = new HashMap<>();
×
2973
          }
2974
          this.extraParams.put(key, value);
×
2975
          return this;
×
2976
        }
2977

2978
        /**
2979
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2980
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2981
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Giropay#extraParams} for
2982
         * the field documentation.
2983
         */
2984
        public Builder putAllExtraParam(Map<String, Object> map) {
2985
          if (this.extraParams == null) {
×
2986
            this.extraParams = new HashMap<>();
×
2987
          }
2988
          this.extraParams.putAll(map);
×
2989
          return this;
×
2990
        }
2991
      }
2992
    }
2993

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

NEW
3005
      private Gopay(Map<String, Object> extraParams) {
×
NEW
3006
        this.extraParams = extraParams;
×
NEW
3007
      }
×
3008

3009
      public static Builder builder() {
NEW
3010
        return new Builder();
×
3011
      }
3012

NEW
3013
      public static class Builder {
×
3014
        private Map<String, Object> extraParams;
3015

3016
        /** Finalize and obtain parameter instance from this builder. */
3017
        public ConfirmationTokenCreateParams.PaymentMethodData.Gopay build() {
NEW
3018
          return new ConfirmationTokenCreateParams.PaymentMethodData.Gopay(this.extraParams);
×
3019
        }
3020

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

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

3051
    @Getter
3052
    public static class Grabpay {
3053
      /**
3054
       * Map of extra parameters for custom features not available in this client library. The
3055
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3056
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3057
       * name in this param object. Effectively, this map is flattened to its parent instance.
3058
       */
3059
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3060
      Map<String, Object> extraParams;
3061

3062
      private Grabpay(Map<String, Object> extraParams) {
×
3063
        this.extraParams = extraParams;
×
3064
      }
×
3065

3066
      public static Builder builder() {
3067
        return new Builder();
×
3068
      }
3069

3070
      public static class Builder {
×
3071
        private Map<String, Object> extraParams;
3072

3073
        /** Finalize and obtain parameter instance from this builder. */
3074
        public ConfirmationTokenCreateParams.PaymentMethodData.Grabpay build() {
3075
          return new ConfirmationTokenCreateParams.PaymentMethodData.Grabpay(this.extraParams);
×
3076
        }
3077

3078
        /**
3079
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3080
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3081
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Grabpay#extraParams} for
3082
         * the field documentation.
3083
         */
3084
        public Builder putExtraParam(String key, Object value) {
3085
          if (this.extraParams == null) {
×
3086
            this.extraParams = new HashMap<>();
×
3087
          }
3088
          this.extraParams.put(key, value);
×
3089
          return this;
×
3090
        }
3091

3092
        /**
3093
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3094
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3095
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Grabpay#extraParams} for
3096
         * the field documentation.
3097
         */
3098
        public Builder putAllExtraParam(Map<String, Object> map) {
3099
          if (this.extraParams == null) {
×
3100
            this.extraParams = new HashMap<>();
×
3101
          }
3102
          this.extraParams.putAll(map);
×
3103
          return this;
×
3104
        }
3105
      }
3106
    }
3107

3108
    @Getter
3109
    public static class Ideal {
3110
      /**
3111
       * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3112
       * customers.
3113
       */
3114
      @SerializedName("bank")
3115
      Bank bank;
3116

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

3126
      private Ideal(Bank bank, Map<String, Object> extraParams) {
×
3127
        this.bank = bank;
×
3128
        this.extraParams = extraParams;
×
3129
      }
×
3130

3131
      public static Builder builder() {
3132
        return new Builder();
×
3133
      }
3134

3135
      public static class Builder {
×
3136
        private Bank bank;
3137

3138
        private Map<String, Object> extraParams;
3139

3140
        /** Finalize and obtain parameter instance from this builder. */
3141
        public ConfirmationTokenCreateParams.PaymentMethodData.Ideal build() {
3142
          return new ConfirmationTokenCreateParams.PaymentMethodData.Ideal(
×
3143
              this.bank, this.extraParams);
3144
        }
3145

3146
        /**
3147
         * The customer's bank. Only use this parameter for existing customers. Don't use it for new
3148
         * customers.
3149
         */
3150
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Ideal.Bank bank) {
3151
          this.bank = bank;
×
3152
          return this;
×
3153
        }
3154

3155
        /**
3156
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3157
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3158
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Ideal#extraParams} for
3159
         * the field documentation.
3160
         */
3161
        public Builder putExtraParam(String key, Object value) {
3162
          if (this.extraParams == null) {
×
3163
            this.extraParams = new HashMap<>();
×
3164
          }
3165
          this.extraParams.put(key, value);
×
3166
          return this;
×
3167
        }
3168

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

3184
      public enum Bank implements ApiRequestParams.EnumParam {
×
3185
        @SerializedName("abn_amro")
×
3186
        ABN_AMRO("abn_amro"),
3187

3188
        @SerializedName("asn_bank")
×
3189
        ASN_BANK("asn_bank"),
3190

3191
        @SerializedName("bunq")
×
3192
        BUNQ("bunq"),
3193

3194
        @SerializedName("handelsbanken")
×
3195
        HANDELSBANKEN("handelsbanken"),
3196

3197
        @SerializedName("ing")
×
3198
        ING("ing"),
3199

3200
        @SerializedName("knab")
×
3201
        KNAB("knab"),
3202

3203
        @SerializedName("moneyou")
×
3204
        MONEYOU("moneyou"),
3205

3206
        @SerializedName("n26")
×
3207
        N26("n26"),
3208

3209
        @SerializedName("nn")
×
3210
        NN("nn"),
3211

3212
        @SerializedName("rabobank")
×
3213
        RABOBANK("rabobank"),
3214

3215
        @SerializedName("regiobank")
×
3216
        REGIOBANK("regiobank"),
3217

3218
        @SerializedName("revolut")
×
3219
        REVOLUT("revolut"),
3220

3221
        @SerializedName("sns_bank")
×
3222
        SNS_BANK("sns_bank"),
3223

3224
        @SerializedName("triodos_bank")
×
3225
        TRIODOS_BANK("triodos_bank"),
3226

3227
        @SerializedName("van_lanschot")
×
3228
        VAN_LANSCHOT("van_lanschot"),
3229

3230
        @SerializedName("yoursafe")
×
3231
        YOURSAFE("yoursafe");
3232

3233
        @Getter(onMethod_ = {@Override})
3234
        private final String value;
3235

3236
        Bank(String value) {
×
3237
          this.value = value;
×
3238
        }
×
3239
      }
3240
    }
3241

3242
    @Getter
3243
    public static class InteracPresent {
3244
      /**
3245
       * Map of extra parameters for custom features not available in this client library. The
3246
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3247
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3248
       * name in this param object. Effectively, this map is flattened to its parent instance.
3249
       */
3250
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3251
      Map<String, Object> extraParams;
3252

3253
      private InteracPresent(Map<String, Object> extraParams) {
×
3254
        this.extraParams = extraParams;
×
3255
      }
×
3256

3257
      public static Builder builder() {
3258
        return new Builder();
×
3259
      }
3260

3261
      public static class Builder {
×
3262
        private Map<String, Object> extraParams;
3263

3264
        /** Finalize and obtain parameter instance from this builder. */
3265
        public ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent build() {
3266
          return new ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent(
×
3267
              this.extraParams);
3268
        }
3269

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

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

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

3313
      private KakaoPay(Map<String, Object> extraParams) {
×
3314
        this.extraParams = extraParams;
×
3315
      }
×
3316

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

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

3324
        /** Finalize and obtain parameter instance from this builder. */
3325
        public ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay build() {
3326
          return new ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay(this.extraParams);
×
3327
        }
3328

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

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

3359
    @Getter
3360
    public static class Klarna {
3361
      /** Customer's date of birth. */
3362
      @SerializedName("dob")
3363
      Dob dob;
3364

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

3374
      private Klarna(Dob dob, Map<String, Object> extraParams) {
×
3375
        this.dob = dob;
×
3376
        this.extraParams = extraParams;
×
3377
      }
×
3378

3379
      public static Builder builder() {
3380
        return new Builder();
×
3381
      }
3382

3383
      public static class Builder {
×
3384
        private Dob dob;
3385

3386
        private Map<String, Object> extraParams;
3387

3388
        /** Finalize and obtain parameter instance from this builder. */
3389
        public ConfirmationTokenCreateParams.PaymentMethodData.Klarna build() {
3390
          return new ConfirmationTokenCreateParams.PaymentMethodData.Klarna(
×
3391
              this.dob, this.extraParams);
3392
        }
3393

3394
        /** Customer's date of birth. */
3395
        public Builder setDob(ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob dob) {
3396
          this.dob = dob;
×
3397
          return this;
×
3398
        }
3399

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

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

3429
      @Getter
3430
      public static class Dob {
3431
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3432
        @SerializedName("day")
3433
        Long day;
3434

3435
        /**
3436
         * Map of extra parameters for custom features not available in this client library. The
3437
         * content in this map is not serialized under this field's {@code @SerializedName} value.
3438
         * Instead, each key/value pair is serialized as if the key is a root-level field
3439
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
3440
         * instance.
3441
         */
3442
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3443
        Map<String, Object> extraParams;
3444

3445
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3446
        @SerializedName("month")
3447
        Long month;
3448

3449
        /** <strong>Required.</strong> The four-digit year of birth. */
3450
        @SerializedName("year")
3451
        Long year;
3452

3453
        private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
3454
          this.day = day;
×
3455
          this.extraParams = extraParams;
×
3456
          this.month = month;
×
3457
          this.year = year;
×
3458
        }
×
3459

3460
        public static Builder builder() {
3461
          return new Builder();
×
3462
        }
3463

3464
        public static class Builder {
×
3465
          private Long day;
3466

3467
          private Map<String, Object> extraParams;
3468

3469
          private Long month;
3470

3471
          private Long year;
3472

3473
          /** Finalize and obtain parameter instance from this builder. */
3474
          public ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob build() {
3475
            return new ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob(
×
3476
                this.day, this.extraParams, this.month, this.year);
3477
          }
3478

3479
          /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3480
          public Builder setDay(Long day) {
3481
            this.day = day;
×
3482
            return this;
×
3483
          }
3484

3485
          /**
3486
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
3487
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3488
           * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob#extraParams}
3489
           * for the field documentation.
3490
           */
3491
          public Builder putExtraParam(String key, Object value) {
3492
            if (this.extraParams == null) {
×
3493
              this.extraParams = new HashMap<>();
×
3494
            }
3495
            this.extraParams.put(key, value);
×
3496
            return this;
×
3497
          }
3498

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

3513
          /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3514
          public Builder setMonth(Long month) {
3515
            this.month = month;
×
3516
            return this;
×
3517
          }
3518

3519
          /** <strong>Required.</strong> The four-digit year of birth. */
3520
          public Builder setYear(Long year) {
3521
            this.year = year;
×
3522
            return this;
×
3523
          }
3524
        }
3525
      }
3526
    }
3527

3528
    @Getter
3529
    public static class Konbini {
3530
      /**
3531
       * Map of extra parameters for custom features not available in this client library. The
3532
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3533
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3534
       * name in this param object. Effectively, this map is flattened to its parent instance.
3535
       */
3536
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3537
      Map<String, Object> extraParams;
3538

3539
      private Konbini(Map<String, Object> extraParams) {
×
3540
        this.extraParams = extraParams;
×
3541
      }
×
3542

3543
      public static Builder builder() {
3544
        return new Builder();
×
3545
      }
3546

3547
      public static class Builder {
×
3548
        private Map<String, Object> extraParams;
3549

3550
        /** Finalize and obtain parameter instance from this builder. */
3551
        public ConfirmationTokenCreateParams.PaymentMethodData.Konbini build() {
3552
          return new ConfirmationTokenCreateParams.PaymentMethodData.Konbini(this.extraParams);
×
3553
        }
3554

3555
        /**
3556
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3557
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3558
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Konbini#extraParams} for
3559
         * the field documentation.
3560
         */
3561
        public Builder putExtraParam(String key, Object value) {
3562
          if (this.extraParams == null) {
×
3563
            this.extraParams = new HashMap<>();
×
3564
          }
3565
          this.extraParams.put(key, value);
×
3566
          return this;
×
3567
        }
3568

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

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

3596
      private KrCard(Map<String, Object> extraParams) {
×
3597
        this.extraParams = extraParams;
×
3598
      }
×
3599

3600
      public static Builder builder() {
3601
        return new Builder();
×
3602
      }
3603

3604
      public static class Builder {
×
3605
        private Map<String, Object> extraParams;
3606

3607
        /** Finalize and obtain parameter instance from this builder. */
3608
        public ConfirmationTokenCreateParams.PaymentMethodData.KrCard build() {
3609
          return new ConfirmationTokenCreateParams.PaymentMethodData.KrCard(this.extraParams);
×
3610
        }
3611

3612
        /**
3613
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3614
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3615
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.KrCard#extraParams} for
3616
         * the field documentation.
3617
         */
3618
        public Builder putExtraParam(String key, Object value) {
3619
          if (this.extraParams == null) {
×
3620
            this.extraParams = new HashMap<>();
×
3621
          }
3622
          this.extraParams.put(key, value);
×
3623
          return this;
×
3624
        }
3625

3626
        /**
3627
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3628
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3629
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.KrCard#extraParams} for
3630
         * the field documentation.
3631
         */
3632
        public Builder putAllExtraParam(Map<String, Object> map) {
3633
          if (this.extraParams == null) {
×
3634
            this.extraParams = new HashMap<>();
×
3635
          }
3636
          this.extraParams.putAll(map);
×
3637
          return this;
×
3638
        }
3639
      }
3640
    }
3641

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

3653
      private Link(Map<String, Object> extraParams) {
×
3654
        this.extraParams = extraParams;
×
3655
      }
×
3656

3657
      public static Builder builder() {
3658
        return new Builder();
×
3659
      }
3660

3661
      public static class Builder {
×
3662
        private Map<String, Object> extraParams;
3663

3664
        /** Finalize and obtain parameter instance from this builder. */
3665
        public ConfirmationTokenCreateParams.PaymentMethodData.Link build() {
3666
          return new ConfirmationTokenCreateParams.PaymentMethodData.Link(this.extraParams);
×
3667
        }
3668

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

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

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

3710
      private MbWay(Map<String, Object> extraParams) {
×
3711
        this.extraParams = extraParams;
×
3712
      }
×
3713

3714
      public static Builder builder() {
3715
        return new Builder();
×
3716
      }
3717

3718
      public static class Builder {
×
3719
        private Map<String, Object> extraParams;
3720

3721
        /** Finalize and obtain parameter instance from this builder. */
3722
        public ConfirmationTokenCreateParams.PaymentMethodData.MbWay build() {
3723
          return new ConfirmationTokenCreateParams.PaymentMethodData.MbWay(this.extraParams);
×
3724
        }
3725

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

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

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

3767
      private Mobilepay(Map<String, Object> extraParams) {
×
3768
        this.extraParams = extraParams;
×
3769
      }
×
3770

3771
      public static Builder builder() {
3772
        return new Builder();
×
3773
      }
3774

3775
      public static class Builder {
×
3776
        private Map<String, Object> extraParams;
3777

3778
        /** Finalize and obtain parameter instance from this builder. */
3779
        public ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay build() {
3780
          return new ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay(this.extraParams);
×
3781
        }
3782

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

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

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

3824
      private Multibanco(Map<String, Object> extraParams) {
×
3825
        this.extraParams = extraParams;
×
3826
      }
×
3827

3828
      public static Builder builder() {
3829
        return new Builder();
×
3830
      }
3831

3832
      public static class Builder {
×
3833
        private Map<String, Object> extraParams;
3834

3835
        /** Finalize and obtain parameter instance from this builder. */
3836
        public ConfirmationTokenCreateParams.PaymentMethodData.Multibanco build() {
3837
          return new ConfirmationTokenCreateParams.PaymentMethodData.Multibanco(this.extraParams);
×
3838
        }
3839

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

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

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

3881
      /**
3882
       * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3883
       * defaults to {@code card}.
3884
       */
3885
      @SerializedName("funding")
3886
      Funding funding;
3887

3888
      private NaverPay(Map<String, Object> extraParams, Funding funding) {
×
3889
        this.extraParams = extraParams;
×
3890
        this.funding = funding;
×
3891
      }
×
3892

3893
      public static Builder builder() {
3894
        return new Builder();
×
3895
      }
3896

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

3900
        private Funding funding;
3901

3902
        /** Finalize and obtain parameter instance from this builder. */
3903
        public ConfirmationTokenCreateParams.PaymentMethodData.NaverPay build() {
3904
          return new ConfirmationTokenCreateParams.PaymentMethodData.NaverPay(
×
3905
              this.extraParams, this.funding);
3906
        }
3907

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

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

3936
        /**
3937
         * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3938
         * defaults to {@code card}.
3939
         */
3940
        public Builder setFunding(
3941
            ConfirmationTokenCreateParams.PaymentMethodData.NaverPay.Funding funding) {
3942
          this.funding = funding;
×
3943
          return this;
×
3944
        }
3945
      }
3946

3947
      public enum Funding implements ApiRequestParams.EnumParam {
×
3948
        @SerializedName("card")
×
3949
        CARD("card"),
3950

3951
        @SerializedName("points")
×
3952
        POINTS("points");
3953

3954
        @Getter(onMethod_ = {@Override})
3955
        private final String value;
3956

3957
        Funding(String value) {
×
3958
          this.value = value;
×
3959
        }
×
3960
      }
3961
    }
3962

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

3974
      private Oxxo(Map<String, Object> extraParams) {
×
3975
        this.extraParams = extraParams;
×
3976
      }
×
3977

3978
      public static Builder builder() {
3979
        return new Builder();
×
3980
      }
3981

3982
      public static class Builder {
×
3983
        private Map<String, Object> extraParams;
3984

3985
        /** Finalize and obtain parameter instance from this builder. */
3986
        public ConfirmationTokenCreateParams.PaymentMethodData.Oxxo build() {
3987
          return new ConfirmationTokenCreateParams.PaymentMethodData.Oxxo(this.extraParams);
×
3988
        }
3989

3990
        /**
3991
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3992
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3993
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Oxxo#extraParams} for the
3994
         * field documentation.
3995
         */
3996
        public Builder putExtraParam(String key, Object value) {
3997
          if (this.extraParams == null) {
×
3998
            this.extraParams = new HashMap<>();
×
3999
          }
4000
          this.extraParams.put(key, value);
×
4001
          return this;
×
4002
        }
4003

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

4020
    @Getter
4021
    public static class P24 {
4022
      /** The customer's bank. */
4023
      @SerializedName("bank")
4024
      Bank bank;
4025

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

4035
      private P24(Bank bank, Map<String, Object> extraParams) {
×
4036
        this.bank = bank;
×
4037
        this.extraParams = extraParams;
×
4038
      }
×
4039

4040
      public static Builder builder() {
4041
        return new Builder();
×
4042
      }
4043

4044
      public static class Builder {
×
4045
        private Bank bank;
4046

4047
        private Map<String, Object> extraParams;
4048

4049
        /** Finalize and obtain parameter instance from this builder. */
4050
        public ConfirmationTokenCreateParams.PaymentMethodData.P24 build() {
4051
          return new ConfirmationTokenCreateParams.PaymentMethodData.P24(
×
4052
              this.bank, this.extraParams);
4053
        }
4054

4055
        /** The customer's bank. */
4056
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.P24.Bank bank) {
4057
          this.bank = bank;
×
4058
          return this;
×
4059
        }
4060

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

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

4090
      public enum Bank implements ApiRequestParams.EnumParam {
×
4091
        @SerializedName("alior_bank")
×
4092
        ALIOR_BANK("alior_bank"),
4093

4094
        @SerializedName("bank_millennium")
×
4095
        BANK_MILLENNIUM("bank_millennium"),
4096

4097
        @SerializedName("bank_nowy_bfg_sa")
×
4098
        BANK_NOWY_BFG_SA("bank_nowy_bfg_sa"),
4099

4100
        @SerializedName("bank_pekao_sa")
×
4101
        BANK_PEKAO_SA("bank_pekao_sa"),
4102

4103
        @SerializedName("banki_spbdzielcze")
×
4104
        BANKI_SPBDZIELCZE("banki_spbdzielcze"),
4105

4106
        @SerializedName("blik")
×
4107
        BLIK("blik"),
4108

4109
        @SerializedName("bnp_paribas")
×
4110
        BNP_PARIBAS("bnp_paribas"),
4111

4112
        @SerializedName("boz")
×
4113
        BOZ("boz"),
4114

4115
        @SerializedName("citi_handlowy")
×
4116
        CITI_HANDLOWY("citi_handlowy"),
4117

4118
        @SerializedName("credit_agricole")
×
4119
        CREDIT_AGRICOLE("credit_agricole"),
4120

4121
        @SerializedName("envelobank")
×
4122
        ENVELOBANK("envelobank"),
4123

4124
        @SerializedName("etransfer_pocztowy24")
×
4125
        ETRANSFER_POCZTOWY24("etransfer_pocztowy24"),
4126

4127
        @SerializedName("getin_bank")
×
4128
        GETIN_BANK("getin_bank"),
4129

4130
        @SerializedName("ideabank")
×
4131
        IDEABANK("ideabank"),
4132

4133
        @SerializedName("ing")
×
4134
        ING("ing"),
4135

4136
        @SerializedName("inteligo")
×
4137
        INTELIGO("inteligo"),
4138

4139
        @SerializedName("mbank_mtransfer")
×
4140
        MBANK_MTRANSFER("mbank_mtransfer"),
4141

4142
        @SerializedName("nest_przelew")
×
4143
        NEST_PRZELEW("nest_przelew"),
4144

4145
        @SerializedName("noble_pay")
×
4146
        NOBLE_PAY("noble_pay"),
4147

4148
        @SerializedName("pbac_z_ipko")
×
4149
        PBAC_Z_IPKO("pbac_z_ipko"),
4150

4151
        @SerializedName("plus_bank")
×
4152
        PLUS_BANK("plus_bank"),
4153

4154
        @SerializedName("santander_przelew24")
×
4155
        SANTANDER_PRZELEW24("santander_przelew24"),
4156

4157
        @SerializedName("tmobile_usbugi_bankowe")
×
4158
        TMOBILE_USBUGI_BANKOWE("tmobile_usbugi_bankowe"),
4159

4160
        @SerializedName("toyota_bank")
×
4161
        TOYOTA_BANK("toyota_bank"),
4162

4163
        @SerializedName("velobank")
×
4164
        VELOBANK("velobank"),
4165

4166
        @SerializedName("volkswagen_bank")
×
4167
        VOLKSWAGEN_BANK("volkswagen_bank");
4168

4169
        @Getter(onMethod_ = {@Override})
4170
        private final String value;
4171

4172
        Bank(String value) {
×
4173
          this.value = value;
×
4174
        }
×
4175
      }
4176
    }
4177

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

4189
      private Payco(Map<String, Object> extraParams) {
×
4190
        this.extraParams = extraParams;
×
4191
      }
×
4192

4193
      public static Builder builder() {
4194
        return new Builder();
×
4195
      }
4196

4197
      public static class Builder {
×
4198
        private Map<String, Object> extraParams;
4199

4200
        /** Finalize and obtain parameter instance from this builder. */
4201
        public ConfirmationTokenCreateParams.PaymentMethodData.Payco build() {
4202
          return new ConfirmationTokenCreateParams.PaymentMethodData.Payco(this.extraParams);
×
4203
        }
4204

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

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

4235
    @Getter
4236
    public static class Paynow {
4237
      /**
4238
       * Map of extra parameters for custom features not available in this client library. The
4239
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4240
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4241
       * name in this param object. Effectively, this map is flattened to its parent instance.
4242
       */
4243
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4244
      Map<String, Object> extraParams;
4245

4246
      private Paynow(Map<String, Object> extraParams) {
×
4247
        this.extraParams = extraParams;
×
4248
      }
×
4249

4250
      public static Builder builder() {
4251
        return new Builder();
×
4252
      }
4253

4254
      public static class Builder {
×
4255
        private Map<String, Object> extraParams;
4256

4257
        /** Finalize and obtain parameter instance from this builder. */
4258
        public ConfirmationTokenCreateParams.PaymentMethodData.Paynow build() {
4259
          return new ConfirmationTokenCreateParams.PaymentMethodData.Paynow(this.extraParams);
×
4260
        }
4261

4262
        /**
4263
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4264
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4265
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Paynow#extraParams} for
4266
         * the field documentation.
4267
         */
4268
        public Builder putExtraParam(String key, Object value) {
4269
          if (this.extraParams == null) {
×
4270
            this.extraParams = new HashMap<>();
×
4271
          }
4272
          this.extraParams.put(key, value);
×
4273
          return this;
×
4274
        }
4275

4276
        /**
4277
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4278
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4279
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Paynow#extraParams} for
4280
         * the field documentation.
4281
         */
4282
        public Builder putAllExtraParam(Map<String, Object> map) {
4283
          if (this.extraParams == null) {
×
4284
            this.extraParams = new HashMap<>();
×
4285
          }
4286
          this.extraParams.putAll(map);
×
4287
          return this;
×
4288
        }
4289
      }
4290
    }
4291

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

4303
      private Paypal(Map<String, Object> extraParams) {
×
4304
        this.extraParams = extraParams;
×
4305
      }
×
4306

4307
      public static Builder builder() {
4308
        return new Builder();
×
4309
      }
4310

4311
      public static class Builder {
×
4312
        private Map<String, Object> extraParams;
4313

4314
        /** Finalize and obtain parameter instance from this builder. */
4315
        public ConfirmationTokenCreateParams.PaymentMethodData.Paypal build() {
4316
          return new ConfirmationTokenCreateParams.PaymentMethodData.Paypal(this.extraParams);
×
4317
        }
4318

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

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

4349
    @Getter
4350
    public static class Payto {
4351
      /** The account number for the bank account. */
4352
      @SerializedName("account_number")
4353
      String accountNumber;
4354

4355
      /** Bank-State-Branch number of the bank account. */
4356
      @SerializedName("bsb_number")
4357
      String bsbNumber;
4358

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

4368
      /** The PayID alias for the bank account. */
4369
      @SerializedName("pay_id")
4370
      String payId;
4371

4372
      private Payto(
4373
          String accountNumber, String bsbNumber, Map<String, Object> extraParams, String payId) {
×
4374
        this.accountNumber = accountNumber;
×
4375
        this.bsbNumber = bsbNumber;
×
4376
        this.extraParams = extraParams;
×
4377
        this.payId = payId;
×
4378
      }
×
4379

4380
      public static Builder builder() {
4381
        return new Builder();
×
4382
      }
4383

4384
      public static class Builder {
×
4385
        private String accountNumber;
4386

4387
        private String bsbNumber;
4388

4389
        private Map<String, Object> extraParams;
4390

4391
        private String payId;
4392

4393
        /** Finalize and obtain parameter instance from this builder. */
4394
        public ConfirmationTokenCreateParams.PaymentMethodData.Payto build() {
4395
          return new ConfirmationTokenCreateParams.PaymentMethodData.Payto(
×
4396
              this.accountNumber, this.bsbNumber, this.extraParams, this.payId);
4397
        }
4398

4399
        /** The account number for the bank account. */
4400
        public Builder setAccountNumber(String accountNumber) {
4401
          this.accountNumber = accountNumber;
×
4402
          return this;
×
4403
        }
4404

4405
        /** Bank-State-Branch number of the bank account. */
4406
        public Builder setBsbNumber(String bsbNumber) {
4407
          this.bsbNumber = bsbNumber;
×
4408
          return this;
×
4409
        }
4410

4411
        /**
4412
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4413
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4414
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Payto#extraParams} for
4415
         * the field documentation.
4416
         */
4417
        public Builder putExtraParam(String key, Object value) {
4418
          if (this.extraParams == null) {
×
4419
            this.extraParams = new HashMap<>();
×
4420
          }
4421
          this.extraParams.put(key, value);
×
4422
          return this;
×
4423
        }
4424

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

4439
        /** The PayID alias for the bank account. */
4440
        public Builder setPayId(String payId) {
4441
          this.payId = payId;
×
4442
          return this;
×
4443
        }
4444
      }
4445
    }
4446

4447
    @Getter
4448
    public static class Pix {
4449
      /**
4450
       * Map of extra parameters for custom features not available in this client library. The
4451
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4452
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4453
       * name in this param object. Effectively, this map is flattened to its parent instance.
4454
       */
4455
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4456
      Map<String, Object> extraParams;
4457

4458
      private Pix(Map<String, Object> extraParams) {
×
4459
        this.extraParams = extraParams;
×
4460
      }
×
4461

4462
      public static Builder builder() {
4463
        return new Builder();
×
4464
      }
4465

4466
      public static class Builder {
×
4467
        private Map<String, Object> extraParams;
4468

4469
        /** Finalize and obtain parameter instance from this builder. */
4470
        public ConfirmationTokenCreateParams.PaymentMethodData.Pix build() {
4471
          return new ConfirmationTokenCreateParams.PaymentMethodData.Pix(this.extraParams);
×
4472
        }
4473

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

4488
        /**
4489
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4490
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4491
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Pix#extraParams} for the
4492
         * field documentation.
4493
         */
4494
        public Builder putAllExtraParam(Map<String, Object> map) {
4495
          if (this.extraParams == null) {
×
4496
            this.extraParams = new HashMap<>();
×
4497
          }
4498
          this.extraParams.putAll(map);
×
4499
          return this;
×
4500
        }
4501
      }
4502
    }
4503

4504
    @Getter
4505
    public static class Promptpay {
4506
      /**
4507
       * Map of extra parameters for custom features not available in this client library. The
4508
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4509
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4510
       * name in this param object. Effectively, this map is flattened to its parent instance.
4511
       */
4512
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4513
      Map<String, Object> extraParams;
4514

4515
      private Promptpay(Map<String, Object> extraParams) {
×
4516
        this.extraParams = extraParams;
×
4517
      }
×
4518

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

4523
      public static class Builder {
×
4524
        private Map<String, Object> extraParams;
4525

4526
        /** Finalize and obtain parameter instance from this builder. */
4527
        public ConfirmationTokenCreateParams.PaymentMethodData.Promptpay build() {
4528
          return new ConfirmationTokenCreateParams.PaymentMethodData.Promptpay(this.extraParams);
×
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.Promptpay#extraParams}
4535
         * for 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.Promptpay#extraParams}
4549
         * for 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
    }
4560

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

NEW
4572
      private Qris(Map<String, Object> extraParams) {
×
NEW
4573
        this.extraParams = extraParams;
×
NEW
4574
      }
×
4575

4576
      public static Builder builder() {
NEW
4577
        return new Builder();
×
4578
      }
4579

NEW
4580
      public static class Builder {
×
4581
        private Map<String, Object> extraParams;
4582

4583
        /** Finalize and obtain parameter instance from this builder. */
4584
        public ConfirmationTokenCreateParams.PaymentMethodData.Qris build() {
NEW
4585
          return new ConfirmationTokenCreateParams.PaymentMethodData.Qris(this.extraParams);
×
4586
        }
4587

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

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

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

4629
      /**
4630
       * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4631
       * the browser metadata and device details that help Radar make more accurate predictions on
4632
       * your payments.
4633
       */
4634
      @SerializedName("session")
4635
      String session;
4636

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

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

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

4649
        private String session;
4650

4651
        /** Finalize and obtain parameter instance from this builder. */
4652
        public ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions build() {
4653
          return new ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions(
×
4654
              this.extraParams, this.session);
4655
        }
4656

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

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

4685
        /**
4686
         * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot
4687
         * of the browser metadata and device details that help Radar make more accurate predictions
4688
         * on your payments.
4689
         */
4690
        public Builder setSession(String session) {
4691
          this.session = session;
×
4692
          return this;
×
4693
        }
4694
      }
4695
    }
4696

4697
    @Getter
4698
    public static class Rechnung {
4699
      /** <strong>Required.</strong> Customer's date of birth */
4700
      @SerializedName("dob")
4701
      Dob dob;
4702

4703
      /**
4704
       * Map of extra parameters for custom features not available in this client library. The
4705
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4706
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4707
       * name in this param object. Effectively, this map is flattened to its parent instance.
4708
       */
4709
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4710
      Map<String, Object> extraParams;
4711

4712
      private Rechnung(Dob dob, Map<String, Object> extraParams) {
×
4713
        this.dob = dob;
×
4714
        this.extraParams = extraParams;
×
4715
      }
×
4716

4717
      public static Builder builder() {
4718
        return new Builder();
×
4719
      }
4720

4721
      public static class Builder {
×
4722
        private Dob dob;
4723

4724
        private Map<String, Object> extraParams;
4725

4726
        /** Finalize and obtain parameter instance from this builder. */
4727
        public ConfirmationTokenCreateParams.PaymentMethodData.Rechnung build() {
4728
          return new ConfirmationTokenCreateParams.PaymentMethodData.Rechnung(
×
4729
              this.dob, this.extraParams);
4730
        }
4731

4732
        /** <strong>Required.</strong> Customer's date of birth */
4733
        public Builder setDob(ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob dob) {
4734
          this.dob = dob;
×
4735
          return this;
×
4736
        }
4737

4738
        /**
4739
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4740
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4741
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Rechnung#extraParams} for
4742
         * the field documentation.
4743
         */
4744
        public Builder putExtraParam(String key, Object value) {
4745
          if (this.extraParams == null) {
×
4746
            this.extraParams = new HashMap<>();
×
4747
          }
4748
          this.extraParams.put(key, value);
×
4749
          return this;
×
4750
        }
4751

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

4767
      @Getter
4768
      public static class Dob {
4769
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4770
        @SerializedName("day")
4771
        Long day;
4772

4773
        /**
4774
         * Map of extra parameters for custom features not available in this client library. The
4775
         * content in this map is not serialized under this field's {@code @SerializedName} value.
4776
         * Instead, each key/value pair is serialized as if the key is a root-level field
4777
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
4778
         * instance.
4779
         */
4780
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4781
        Map<String, Object> extraParams;
4782

4783
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4784
        @SerializedName("month")
4785
        Long month;
4786

4787
        /** <strong>Required.</strong> The four-digit year of birth. */
4788
        @SerializedName("year")
4789
        Long year;
4790

4791
        private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
4792
          this.day = day;
×
4793
          this.extraParams = extraParams;
×
4794
          this.month = month;
×
4795
          this.year = year;
×
4796
        }
×
4797

4798
        public static Builder builder() {
4799
          return new Builder();
×
4800
        }
4801

4802
        public static class Builder {
×
4803
          private Long day;
4804

4805
          private Map<String, Object> extraParams;
4806

4807
          private Long month;
4808

4809
          private Long year;
4810

4811
          /** Finalize and obtain parameter instance from this builder. */
4812
          public ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob build() {
4813
            return new ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob(
×
4814
                this.day, this.extraParams, this.month, this.year);
4815
          }
4816

4817
          /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4818
          public Builder setDay(Long day) {
4819
            this.day = day;
×
4820
            return this;
×
4821
          }
4822

4823
          /**
4824
           * Add a key/value pair to `extraParams` map. A map is initialized for the first
4825
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4826
           * map. See {@link
4827
           * ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob#extraParams} for the field
4828
           * documentation.
4829
           */
4830
          public Builder putExtraParam(String key, Object value) {
4831
            if (this.extraParams == null) {
×
4832
              this.extraParams = new HashMap<>();
×
4833
            }
4834
            this.extraParams.put(key, value);
×
4835
            return this;
×
4836
          }
4837

4838
          /**
4839
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4840
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4841
           * map. See {@link
4842
           * ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob#extraParams} for the field
4843
           * documentation.
4844
           */
4845
          public Builder putAllExtraParam(Map<String, Object> map) {
4846
            if (this.extraParams == null) {
×
4847
              this.extraParams = new HashMap<>();
×
4848
            }
4849
            this.extraParams.putAll(map);
×
4850
            return this;
×
4851
          }
4852

4853
          /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4854
          public Builder setMonth(Long month) {
4855
            this.month = month;
×
4856
            return this;
×
4857
          }
4858

4859
          /** <strong>Required.</strong> The four-digit year of birth. */
4860
          public Builder setYear(Long year) {
4861
            this.year = year;
×
4862
            return this;
×
4863
          }
4864
        }
4865
      }
4866
    }
4867

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

4879
      private RevolutPay(Map<String, Object> extraParams) {
×
4880
        this.extraParams = extraParams;
×
4881
      }
×
4882

4883
      public static Builder builder() {
4884
        return new Builder();
×
4885
      }
4886

4887
      public static class Builder {
×
4888
        private Map<String, Object> extraParams;
4889

4890
        /** Finalize and obtain parameter instance from this builder. */
4891
        public ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay build() {
4892
          return new ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay(this.extraParams);
×
4893
        }
4894

4895
        /**
4896
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4897
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4898
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay#extraParams}
4899
         * for the field documentation.
4900
         */
4901
        public Builder putExtraParam(String key, Object value) {
4902
          if (this.extraParams == null) {
×
4903
            this.extraParams = new HashMap<>();
×
4904
          }
4905
          this.extraParams.put(key, value);
×
4906
          return this;
×
4907
        }
4908

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

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

4936
      private SamsungPay(Map<String, Object> extraParams) {
×
4937
        this.extraParams = extraParams;
×
4938
      }
×
4939

4940
      public static Builder builder() {
4941
        return new Builder();
×
4942
      }
4943

4944
      public static class Builder {
×
4945
        private Map<String, Object> extraParams;
4946

4947
        /** Finalize and obtain parameter instance from this builder. */
4948
        public ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay build() {
4949
          return new ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay(this.extraParams);
×
4950
        }
4951

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

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

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

4993
      /** <strong>Required.</strong> IBAN of the bank account. */
4994
      @SerializedName("iban")
4995
      String iban;
4996

4997
      private SepaDebit(Map<String, Object> extraParams, String iban) {
×
4998
        this.extraParams = extraParams;
×
4999
        this.iban = iban;
×
5000
      }
×
5001

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

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

5009
        private String iban;
5010

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5140
        private Map<String, Object> extraParams;
5141

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

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

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

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

5187
      public enum Country implements ApiRequestParams.EnumParam {
×
5188
        @SerializedName("AT")
×
5189
        AT("AT"),
5190

5191
        @SerializedName("BE")
×
5192
        BE("BE"),
5193

5194
        @SerializedName("DE")
×
5195
        DE("DE"),
5196

5197
        @SerializedName("ES")
×
5198
        ES("ES"),
5199

5200
        @SerializedName("IT")
×
5201
        IT("IT"),
5202

5203
        @SerializedName("NL")
×
5204
        NL("NL");
5205

5206
        @Getter(onMethod_ = {@Override})
5207
        private final String value;
5208

5209
        Country(String value) {
×
5210
          this.value = value;
×
5211
        }
×
5212
      }
5213
    }
5214

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

5226
      private Swish(Map<String, Object> extraParams) {
×
5227
        this.extraParams = extraParams;
×
5228
      }
×
5229

5230
      public static Builder builder() {
5231
        return new Builder();
×
5232
      }
5233

5234
      public static class Builder {
×
5235
        private Map<String, Object> extraParams;
5236

5237
        /** Finalize and obtain parameter instance from this builder. */
5238
        public ConfirmationTokenCreateParams.PaymentMethodData.Swish build() {
5239
          return new ConfirmationTokenCreateParams.PaymentMethodData.Swish(this.extraParams);
×
5240
        }
5241

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

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

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

5283
      private Twint(Map<String, Object> extraParams) {
×
5284
        this.extraParams = extraParams;
×
5285
      }
×
5286

5287
      public static Builder builder() {
5288
        return new Builder();
×
5289
      }
5290

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

5294
        /** Finalize and obtain parameter instance from this builder. */
5295
        public ConfirmationTokenCreateParams.PaymentMethodData.Twint build() {
5296
          return new ConfirmationTokenCreateParams.PaymentMethodData.Twint(this.extraParams);
×
5297
        }
5298

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

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

5329
    @Getter
5330
    public static class UsBankAccount {
5331
      /** Account holder type: individual or company. */
5332
      @SerializedName("account_holder_type")
5333
      AccountHolderType accountHolderType;
5334

5335
      /** Account number of the bank account. */
5336
      @SerializedName("account_number")
5337
      String accountNumber;
5338

5339
      /** Account type: checkings or savings. Defaults to checking if omitted. */
5340
      @SerializedName("account_type")
5341
      AccountType accountType;
5342

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

5352
      /** The ID of a Financial Connections Account to use as a payment method. */
5353
      @SerializedName("financial_connections_account")
5354
      String financialConnectionsAccount;
5355

5356
      /** Routing number of the bank account. */
5357
      @SerializedName("routing_number")
5358
      String routingNumber;
5359

5360
      private UsBankAccount(
5361
          AccountHolderType accountHolderType,
5362
          String accountNumber,
5363
          AccountType accountType,
5364
          Map<String, Object> extraParams,
5365
          String financialConnectionsAccount,
5366
          String routingNumber) {
×
5367
        this.accountHolderType = accountHolderType;
×
5368
        this.accountNumber = accountNumber;
×
5369
        this.accountType = accountType;
×
5370
        this.extraParams = extraParams;
×
5371
        this.financialConnectionsAccount = financialConnectionsAccount;
×
5372
        this.routingNumber = routingNumber;
×
5373
      }
×
5374

5375
      public static Builder builder() {
5376
        return new Builder();
×
5377
      }
5378

5379
      public static class Builder {
×
5380
        private AccountHolderType accountHolderType;
5381

5382
        private String accountNumber;
5383

5384
        private AccountType accountType;
5385

5386
        private Map<String, Object> extraParams;
5387

5388
        private String financialConnectionsAccount;
5389

5390
        private String routingNumber;
5391

5392
        /** Finalize and obtain parameter instance from this builder. */
5393
        public ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount build() {
5394
          return new ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount(
×
5395
              this.accountHolderType,
5396
              this.accountNumber,
5397
              this.accountType,
5398
              this.extraParams,
5399
              this.financialConnectionsAccount,
5400
              this.routingNumber);
5401
        }
5402

5403
        /** Account holder type: individual or company. */
5404
        public Builder setAccountHolderType(
5405
            ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount.AccountHolderType
5406
                accountHolderType) {
5407
          this.accountHolderType = accountHolderType;
×
5408
          return this;
×
5409
        }
5410

5411
        /** Account number of the bank account. */
5412
        public Builder setAccountNumber(String accountNumber) {
5413
          this.accountNumber = accountNumber;
×
5414
          return this;
×
5415
        }
5416

5417
        /** Account type: checkings or savings. Defaults to checking if omitted. */
5418
        public Builder setAccountType(
5419
            ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount.AccountType accountType) {
5420
          this.accountType = accountType;
×
5421
          return this;
×
5422
        }
5423

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

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

5454
        /** The ID of a Financial Connections Account to use as a payment method. */
5455
        public Builder setFinancialConnectionsAccount(String financialConnectionsAccount) {
5456
          this.financialConnectionsAccount = financialConnectionsAccount;
×
5457
          return this;
×
5458
        }
5459

5460
        /** Routing number of the bank account. */
5461
        public Builder setRoutingNumber(String routingNumber) {
5462
          this.routingNumber = routingNumber;
×
5463
          return this;
×
5464
        }
5465
      }
5466

5467
      public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
5468
        @SerializedName("company")
×
5469
        COMPANY("company"),
5470

5471
        @SerializedName("individual")
×
5472
        INDIVIDUAL("individual");
5473

5474
        @Getter(onMethod_ = {@Override})
5475
        private final String value;
5476

5477
        AccountHolderType(String value) {
×
5478
          this.value = value;
×
5479
        }
×
5480
      }
5481

5482
      public enum AccountType implements ApiRequestParams.EnumParam {
×
5483
        @SerializedName("checking")
×
5484
        CHECKING("checking"),
5485

5486
        @SerializedName("savings")
×
5487
        SAVINGS("savings");
5488

5489
        @Getter(onMethod_ = {@Override})
5490
        private final String value;
5491

5492
        AccountType(String value) {
×
5493
          this.value = value;
×
5494
        }
×
5495
      }
5496
    }
5497

5498
    @Getter
5499
    public static class WechatPay {
5500
      /**
5501
       * Map of extra parameters for custom features not available in this client library. The
5502
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5503
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5504
       * name in this param object. Effectively, this map is flattened to its parent instance.
5505
       */
5506
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5507
      Map<String, Object> extraParams;
5508

5509
      private WechatPay(Map<String, Object> extraParams) {
×
5510
        this.extraParams = extraParams;
×
5511
      }
×
5512

5513
      public static Builder builder() {
5514
        return new Builder();
×
5515
      }
5516

5517
      public static class Builder {
×
5518
        private Map<String, Object> extraParams;
5519

5520
        /** Finalize and obtain parameter instance from this builder. */
5521
        public ConfirmationTokenCreateParams.PaymentMethodData.WechatPay build() {
5522
          return new ConfirmationTokenCreateParams.PaymentMethodData.WechatPay(this.extraParams);
×
5523
        }
5524

5525
        /**
5526
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
5527
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5528
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.WechatPay#extraParams}
5529
         * for the field documentation.
5530
         */
5531
        public Builder putExtraParam(String key, Object value) {
5532
          if (this.extraParams == null) {
×
5533
            this.extraParams = new HashMap<>();
×
5534
          }
5535
          this.extraParams.put(key, value);
×
5536
          return this;
×
5537
        }
5538

5539
        /**
5540
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5541
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5542
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.WechatPay#extraParams}
5543
         * for the field documentation.
5544
         */
5545
        public Builder putAllExtraParam(Map<String, Object> map) {
5546
          if (this.extraParams == null) {
×
5547
            this.extraParams = new HashMap<>();
×
5548
          }
5549
          this.extraParams.putAll(map);
×
5550
          return this;
×
5551
        }
5552
      }
5553
    }
5554

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

5566
      private Zip(Map<String, Object> extraParams) {
×
5567
        this.extraParams = extraParams;
×
5568
      }
×
5569

5570
      public static Builder builder() {
5571
        return new Builder();
×
5572
      }
5573

5574
      public static class Builder {
×
5575
        private Map<String, Object> extraParams;
5576

5577
        /** Finalize and obtain parameter instance from this builder. */
5578
        public ConfirmationTokenCreateParams.PaymentMethodData.Zip build() {
5579
          return new ConfirmationTokenCreateParams.PaymentMethodData.Zip(this.extraParams);
×
5580
        }
5581

5582
        /**
5583
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
5584
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5585
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Zip#extraParams} for the
5586
         * field documentation.
5587
         */
5588
        public Builder putExtraParam(String key, Object value) {
5589
          if (this.extraParams == null) {
×
5590
            this.extraParams = new HashMap<>();
×
5591
          }
5592
          this.extraParams.put(key, value);
×
5593
          return this;
×
5594
        }
5595

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

5612
    public enum AllowRedisplay implements ApiRequestParams.EnumParam {
×
5613
      @SerializedName("always")
×
5614
      ALWAYS("always"),
5615

5616
      @SerializedName("limited")
×
5617
      LIMITED("limited"),
5618

5619
      @SerializedName("unspecified")
×
5620
      UNSPECIFIED("unspecified");
5621

5622
      @Getter(onMethod_ = {@Override})
5623
      private final String value;
5624

5625
      AllowRedisplay(String value) {
×
5626
        this.value = value;
×
5627
      }
×
5628
    }
5629

5630
    public enum Type implements ApiRequestParams.EnumParam {
×
5631
      @SerializedName("acss_debit")
×
5632
      ACSS_DEBIT("acss_debit"),
5633

5634
      @SerializedName("affirm")
×
5635
      AFFIRM("affirm"),
5636

5637
      @SerializedName("afterpay_clearpay")
×
5638
      AFTERPAY_CLEARPAY("afterpay_clearpay"),
5639

5640
      @SerializedName("alipay")
×
5641
      ALIPAY("alipay"),
5642

NEW
5643
      @SerializedName("alma")
×
5644
      ALMA("alma"),
5645

UNCOV
5646
      @SerializedName("amazon_pay")
×
5647
      AMAZON_PAY("amazon_pay"),
5648

5649
      @SerializedName("au_becs_debit")
×
5650
      AU_BECS_DEBIT("au_becs_debit"),
5651

5652
      @SerializedName("bacs_debit")
×
5653
      BACS_DEBIT("bacs_debit"),
5654

5655
      @SerializedName("bancontact")
×
5656
      BANCONTACT("bancontact"),
5657

5658
      @SerializedName("blik")
×
5659
      BLIK("blik"),
5660

5661
      @SerializedName("boleto")
×
5662
      BOLETO("boleto"),
5663

5664
      @SerializedName("cashapp")
×
5665
      CASHAPP("cashapp"),
5666

5667
      @SerializedName("customer_balance")
×
5668
      CUSTOMER_BALANCE("customer_balance"),
5669

5670
      @SerializedName("eps")
×
5671
      EPS("eps"),
5672

5673
      @SerializedName("fpx")
×
5674
      FPX("fpx"),
5675

5676
      @SerializedName("giropay")
×
5677
      GIROPAY("giropay"),
5678

NEW
5679
      @SerializedName("gopay")
×
5680
      GOPAY("gopay"),
5681

UNCOV
5682
      @SerializedName("grabpay")
×
5683
      GRABPAY("grabpay"),
5684

5685
      @SerializedName("ideal")
×
5686
      IDEAL("ideal"),
5687

5688
      @SerializedName("kakao_pay")
×
5689
      KAKAO_PAY("kakao_pay"),
5690

5691
      @SerializedName("klarna")
×
5692
      KLARNA("klarna"),
5693

5694
      @SerializedName("konbini")
×
5695
      KONBINI("konbini"),
5696

5697
      @SerializedName("kr_card")
×
5698
      KR_CARD("kr_card"),
5699

5700
      @SerializedName("link")
×
5701
      LINK("link"),
5702

5703
      @SerializedName("mb_way")
×
5704
      MB_WAY("mb_way"),
5705

5706
      @SerializedName("mobilepay")
×
5707
      MOBILEPAY("mobilepay"),
5708

5709
      @SerializedName("multibanco")
×
5710
      MULTIBANCO("multibanco"),
5711

5712
      @SerializedName("naver_pay")
×
5713
      NAVER_PAY("naver_pay"),
5714

5715
      @SerializedName("oxxo")
×
5716
      OXXO("oxxo"),
5717

5718
      @SerializedName("p24")
×
5719
      P24("p24"),
5720

5721
      @SerializedName("payco")
×
5722
      PAYCO("payco"),
5723

5724
      @SerializedName("paynow")
×
5725
      PAYNOW("paynow"),
5726

5727
      @SerializedName("paypal")
×
5728
      PAYPAL("paypal"),
5729

5730
      @SerializedName("payto")
×
5731
      PAYTO("payto"),
5732

5733
      @SerializedName("pix")
×
5734
      PIX("pix"),
5735

5736
      @SerializedName("promptpay")
×
5737
      PROMPTPAY("promptpay"),
5738

NEW
5739
      @SerializedName("qris")
×
5740
      QRIS("qris"),
5741

UNCOV
5742
      @SerializedName("rechnung")
×
5743
      RECHNUNG("rechnung"),
5744

5745
      @SerializedName("revolut_pay")
×
5746
      REVOLUT_PAY("revolut_pay"),
5747

5748
      @SerializedName("samsung_pay")
×
5749
      SAMSUNG_PAY("samsung_pay"),
5750

5751
      @SerializedName("sepa_debit")
×
5752
      SEPA_DEBIT("sepa_debit"),
5753

NEW
5754
      @SerializedName("shopeepay")
×
5755
      SHOPEEPAY("shopeepay"),
5756

UNCOV
5757
      @SerializedName("sofort")
×
5758
      SOFORT("sofort"),
5759

5760
      @SerializedName("swish")
×
5761
      SWISH("swish"),
5762

5763
      @SerializedName("twint")
×
5764
      TWINT("twint"),
5765

5766
      @SerializedName("us_bank_account")
×
5767
      US_BANK_ACCOUNT("us_bank_account"),
5768

5769
      @SerializedName("wechat_pay")
×
5770
      WECHAT_PAY("wechat_pay"),
5771

5772
      @SerializedName("zip")
×
5773
      ZIP("zip");
5774

5775
      @Getter(onMethod_ = {@Override})
5776
      private final String value;
5777

5778
      Type(String value) {
×
5779
        this.value = value;
×
5780
      }
×
5781
    }
5782
  }
5783

5784
  @Getter
5785
  public static class Shipping {
5786
    /** <strong>Required.</strong> Shipping address */
5787
    @SerializedName("address")
5788
    Address address;
5789

5790
    /**
5791
     * Map of extra parameters for custom features not available in this client library. The content
5792
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
5793
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
5794
     * param object. Effectively, this map is flattened to its parent instance.
5795
     */
5796
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5797
    Map<String, Object> extraParams;
5798

5799
    /** <strong>Required.</strong> Recipient name. */
5800
    @SerializedName("name")
5801
    String name;
5802

5803
    /** Recipient phone (including extension). */
5804
    @SerializedName("phone")
5805
    Object phone;
5806

5807
    private Shipping(Address address, Map<String, Object> extraParams, String name, Object phone) {
×
5808
      this.address = address;
×
5809
      this.extraParams = extraParams;
×
5810
      this.name = name;
×
5811
      this.phone = phone;
×
5812
    }
×
5813

5814
    public static Builder builder() {
5815
      return new Builder();
×
5816
    }
5817

5818
    public static class Builder {
×
5819
      private Address address;
5820

5821
      private Map<String, Object> extraParams;
5822

5823
      private String name;
5824

5825
      private Object phone;
5826

5827
      /** Finalize and obtain parameter instance from this builder. */
5828
      public ConfirmationTokenCreateParams.Shipping build() {
5829
        return new ConfirmationTokenCreateParams.Shipping(
×
5830
            this.address, this.extraParams, this.name, this.phone);
5831
      }
5832

5833
      /** <strong>Required.</strong> Shipping address */
5834
      public Builder setAddress(ConfirmationTokenCreateParams.Shipping.Address address) {
5835
        this.address = address;
×
5836
        return this;
×
5837
      }
5838

5839
      /**
5840
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5841
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5842
       * ConfirmationTokenCreateParams.Shipping#extraParams} for the field documentation.
5843
       */
5844
      public Builder putExtraParam(String key, Object value) {
5845
        if (this.extraParams == null) {
×
5846
          this.extraParams = new HashMap<>();
×
5847
        }
5848
        this.extraParams.put(key, value);
×
5849
        return this;
×
5850
      }
5851

5852
      /**
5853
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5854
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
5855
       * See {@link ConfirmationTokenCreateParams.Shipping#extraParams} for the field documentation.
5856
       */
5857
      public Builder putAllExtraParam(Map<String, Object> map) {
5858
        if (this.extraParams == null) {
×
5859
          this.extraParams = new HashMap<>();
×
5860
        }
5861
        this.extraParams.putAll(map);
×
5862
        return this;
×
5863
      }
5864

5865
      /** <strong>Required.</strong> Recipient name. */
5866
      public Builder setName(String name) {
5867
        this.name = name;
×
5868
        return this;
×
5869
      }
5870

5871
      /** Recipient phone (including extension). */
5872
      public Builder setPhone(String phone) {
5873
        this.phone = phone;
×
5874
        return this;
×
5875
      }
5876

5877
      /** Recipient phone (including extension). */
5878
      public Builder setPhone(EmptyParam phone) {
5879
        this.phone = phone;
×
5880
        return this;
×
5881
      }
5882
    }
5883

5884
    @Getter
5885
    public static class Address {
5886
      /** City, district, suburb, town, or village. */
5887
      @SerializedName("city")
5888
      String city;
5889

5890
      /**
5891
       * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
5892
       * 3166-1 alpha-2</a>).
5893
       */
5894
      @SerializedName("country")
5895
      String country;
5896

5897
      /**
5898
       * Map of extra parameters for custom features not available in this client library. The
5899
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5900
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5901
       * name in this param object. Effectively, this map is flattened to its parent instance.
5902
       */
5903
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5904
      Map<String, Object> extraParams;
5905

5906
      /** Address line 1 (e.g., street, PO Box, or company name). */
5907
      @SerializedName("line1")
5908
      String line1;
5909

5910
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
5911
      @SerializedName("line2")
5912
      String line2;
5913

5914
      /** ZIP or postal code. */
5915
      @SerializedName("postal_code")
5916
      String postalCode;
5917

5918
      /** State, county, province, or region. */
5919
      @SerializedName("state")
5920
      String state;
5921

5922
      private Address(
5923
          String city,
5924
          String country,
5925
          Map<String, Object> extraParams,
5926
          String line1,
5927
          String line2,
5928
          String postalCode,
5929
          String state) {
×
5930
        this.city = city;
×
5931
        this.country = country;
×
5932
        this.extraParams = extraParams;
×
5933
        this.line1 = line1;
×
5934
        this.line2 = line2;
×
5935
        this.postalCode = postalCode;
×
5936
        this.state = state;
×
5937
      }
×
5938

5939
      public static Builder builder() {
5940
        return new Builder();
×
5941
      }
5942

5943
      public static class Builder {
×
5944
        private String city;
5945

5946
        private String country;
5947

5948
        private Map<String, Object> extraParams;
5949

5950
        private String line1;
5951

5952
        private String line2;
5953

5954
        private String postalCode;
5955

5956
        private String state;
5957

5958
        /** Finalize and obtain parameter instance from this builder. */
5959
        public ConfirmationTokenCreateParams.Shipping.Address build() {
5960
          return new ConfirmationTokenCreateParams.Shipping.Address(
×
5961
              this.city,
5962
              this.country,
5963
              this.extraParams,
5964
              this.line1,
5965
              this.line2,
5966
              this.postalCode,
5967
              this.state);
5968
        }
5969

5970
        /** City, district, suburb, town, or village. */
5971
        public Builder setCity(String city) {
5972
          this.city = city;
×
5973
          return this;
×
5974
        }
5975

5976
        /**
5977
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
5978
         * 3166-1 alpha-2</a>).
5979
         */
5980
        public Builder setCountry(String country) {
5981
          this.country = country;
×
5982
          return this;
×
5983
        }
5984

5985
        /**
5986
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
5987
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5988
         * map. See {@link ConfirmationTokenCreateParams.Shipping.Address#extraParams} for the field
5989
         * documentation.
5990
         */
5991
        public Builder putExtraParam(String key, Object value) {
5992
          if (this.extraParams == null) {
×
5993
            this.extraParams = new HashMap<>();
×
5994
          }
5995
          this.extraParams.put(key, value);
×
5996
          return this;
×
5997
        }
5998

5999
        /**
6000
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
6001
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
6002
         * map. See {@link ConfirmationTokenCreateParams.Shipping.Address#extraParams} for the field
6003
         * documentation.
6004
         */
6005
        public Builder putAllExtraParam(Map<String, Object> map) {
6006
          if (this.extraParams == null) {
×
6007
            this.extraParams = new HashMap<>();
×
6008
          }
6009
          this.extraParams.putAll(map);
×
6010
          return this;
×
6011
        }
6012

6013
        /** Address line 1 (e.g., street, PO Box, or company name). */
6014
        public Builder setLine1(String line1) {
6015
          this.line1 = line1;
×
6016
          return this;
×
6017
        }
6018

6019
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
6020
        public Builder setLine2(String line2) {
6021
          this.line2 = line2;
×
6022
          return this;
×
6023
        }
6024

6025
        /** ZIP or postal code. */
6026
        public Builder setPostalCode(String postalCode) {
6027
          this.postalCode = postalCode;
×
6028
          return this;
×
6029
        }
6030

6031
        /** State, county, province, or region. */
6032
        public Builder setState(String state) {
6033
          this.state = state;
×
6034
          return this;
×
6035
        }
6036
      }
6037
    }
6038
  }
6039

6040
  public enum SetupFutureUsage implements ApiRequestParams.EnumParam {
×
6041
    @SerializedName("off_session")
×
6042
    OFF_SESSION("off_session"),
6043

6044
    @SerializedName("on_session")
×
6045
    ON_SESSION("on_session");
6046

6047
    @Getter(onMethod_ = {@Override})
6048
    private final String value;
6049

6050
    SetupFutureUsage(String value) {
×
6051
      this.value = value;
×
6052
    }
×
6053
  }
6054
}
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