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

stripe / stripe-java / #16517

08 Oct 2024 06:27PM UTC coverage: 12.74% (-0.2%) from 12.899%
#16517

push

github

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

Update generated code for beta

53 of 2404 new or added lines in 50 files covered. (2.2%)

91 existing lines in 27 files now uncovered.

18753 of 147196 relevant lines covered (12.74%)

0.13 hits per line

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

0.0
/src/main/java/com/stripe/param/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 AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
237
     * method.
238
     */
239
    @SerializedName("amazon_pay")
240
    AmazonPay amazonPay;
241

242
    /**
243
     * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank
244
     * account.
245
     */
246
    @SerializedName("au_becs_debit")
247
    AuBecsDebit auBecsDebit;
248

249
    /**
250
     * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
251
     * Direct Debit bank account.
252
     */
253
    @SerializedName("bacs_debit")
254
    BacsDebit bacsDebit;
255

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

263
    /**
264
     * Billing information associated with the PaymentMethod that may be used or required by
265
     * particular types of payment methods.
266
     */
267
    @SerializedName("billing_details")
268
    BillingDetails billingDetails;
269

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

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

284
    /**
285
     * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App Pay
286
     * payment method.
287
     */
288
    @SerializedName("cashapp")
289
    Cashapp cashapp;
290

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

298
    /**
299
     * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
300
     * method.
301
     */
302
    @SerializedName("eps")
303
    Eps eps;
304

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

314
    /**
315
     * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
316
     * method.
317
     */
318
    @SerializedName("fpx")
319
    Fpx fpx;
320

321
    /**
322
     * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay
323
     * payment method.
324
     */
325
    @SerializedName("giropay")
326
    Giropay giropay;
327

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

335
    /**
336
     * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment
337
     * method.
338
     */
339
    @SerializedName("ideal")
340
    Ideal ideal;
341

342
    /**
343
     * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
344
     * Interac Present payment method.
345
     */
346
    @SerializedName("interac_present")
347
    InteracPresent interacPresent;
348

349
    /**
350
     * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
351
     * payment method.
352
     */
353
    @SerializedName("kakao_pay")
354
    KakaoPay kakaoPay;
355

356
    /**
357
     * If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna
358
     * payment method.
359
     */
360
    @SerializedName("klarna")
361
    Klarna klarna;
362

363
    /**
364
     * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
365
     * payment method.
366
     */
367
    @SerializedName("konbini")
368
    Konbini konbini;
369

370
    /**
371
     * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
372
     * payment method.
373
     */
374
    @SerializedName("kr_card")
375
    KrCard krCard;
376

377
    /**
378
     * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
379
     * method.
380
     */
381
    @SerializedName("link")
382
    Link link;
383

384
    /**
385
     * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
386
     * method.
387
     */
388
    @SerializedName("mb_way")
389
    MbWay mbWay;
390

391
    /**
392
     * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
393
     * to an object. This can be useful for storing additional information about the object in a
394
     * structured format. Individual keys can be unset by posting an empty value to them. All keys
395
     * can be unset by posting an empty value to {@code metadata}.
396
     */
397
    @SerializedName("metadata")
398
    Map<String, String> metadata;
399

400
    /**
401
     * If this is a {@code mobilepay} PaymentMethod, this hash contains details about the MobilePay
402
     * payment method.
403
     */
404
    @SerializedName("mobilepay")
405
    Mobilepay mobilepay;
406

407
    /**
408
     * If this is a {@code multibanco} PaymentMethod, this hash contains details about the
409
     * Multibanco payment method.
410
     */
411
    @SerializedName("multibanco")
412
    Multibanco multibanco;
413

414
    /**
415
     * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
416
     * payment method.
417
     */
418
    @SerializedName("naver_pay")
419
    NaverPay naverPay;
420

421
    /**
422
     * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
423
     * method.
424
     */
425
    @SerializedName("oxxo")
426
    Oxxo oxxo;
427

428
    /**
429
     * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
430
     * method.
431
     */
432
    @SerializedName("p24")
433
    P24 p24;
434

435
    /**
436
     * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO payment
437
     * method.
438
     */
439
    @SerializedName("payco")
440
    Payco payco;
441

442
    /**
443
     * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
444
     * payment method.
445
     */
446
    @SerializedName("paynow")
447
    Paynow paynow;
448

449
    /**
450
     * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
451
     * payment method.
452
     */
453
    @SerializedName("paypal")
454
    Paypal paypal;
455

456
    /**
457
     * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo payment
458
     * method.
459
     */
460
    @SerializedName("payto")
461
    Payto payto;
462

463
    /**
464
     * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
465
     * method.
466
     */
467
    @SerializedName("pix")
468
    Pix pix;
469

470
    /**
471
     * If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
472
     * payment method.
473
     */
474
    @SerializedName("promptpay")
475
    Promptpay promptpay;
476

477
    /**
478
     * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
479
     * Session</a> for more information.
480
     */
481
    @SerializedName("radar_options")
482
    RadarOptions radarOptions;
483

484
    /**
485
     * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
486
     * payment method.
487
     */
488
    @SerializedName("rechnung")
489
    Rechnung rechnung;
490

491
    /**
492
     * If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
493
     * Pay payment method.
494
     */
495
    @SerializedName("revolut_pay")
496
    RevolutPay revolutPay;
497

498
    /**
499
     * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
500
     * SamsungPay payment method.
501
     */
502
    @SerializedName("samsung_pay")
503
    SamsungPay samsungPay;
504

505
    /**
506
     * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
507
     * debit bank account.
508
     */
509
    @SerializedName("sepa_debit")
510
    SepaDebit sepaDebit;
511

512
    /**
513
     * If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
514
     * payment method.
515
     */
516
    @SerializedName("sofort")
517
    Sofort sofort;
518

519
    /**
520
     * If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
521
     * method.
522
     */
523
    @SerializedName("swish")
524
    Swish swish;
525

526
    /**
527
     * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
528
     */
529
    @SerializedName("twint")
530
    Twint twint;
531

532
    /**
533
     * <strong>Required.</strong> The type of the PaymentMethod. An additional hash is included on
534
     * the PaymentMethod with a name matching this value. It contains additional information
535
     * specific to the PaymentMethod type.
536
     */
537
    @SerializedName("type")
538
    Type type;
539

540
    /**
541
     * If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
542
     * bank account payment method.
543
     */
544
    @SerializedName("us_bank_account")
545
    UsBankAccount usBankAccount;
546

547
    /**
548
     * If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
549
     * wechat_pay payment method.
550
     */
551
    @SerializedName("wechat_pay")
552
    WechatPay wechatPay;
553

554
    /**
555
     * If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
556
     * method.
557
     */
558
    @SerializedName("zip")
559
    Zip zip;
560

561
    private PaymentMethodData(
562
        AcssDebit acssDebit,
563
        Affirm affirm,
564
        AfterpayClearpay afterpayClearpay,
565
        Alipay alipay,
566
        AllowRedisplay allowRedisplay,
567
        AmazonPay amazonPay,
568
        AuBecsDebit auBecsDebit,
569
        BacsDebit bacsDebit,
570
        Bancontact bancontact,
571
        BillingDetails billingDetails,
572
        Blik blik,
573
        Boleto boleto,
574
        Cashapp cashapp,
575
        CustomerBalance customerBalance,
576
        Eps eps,
577
        Map<String, Object> extraParams,
578
        Fpx fpx,
579
        Giropay giropay,
580
        Grabpay grabpay,
581
        Ideal ideal,
582
        InteracPresent interacPresent,
583
        KakaoPay kakaoPay,
584
        Klarna klarna,
585
        Konbini konbini,
586
        KrCard krCard,
587
        Link link,
588
        MbWay mbWay,
589
        Map<String, String> metadata,
590
        Mobilepay mobilepay,
591
        Multibanco multibanco,
592
        NaverPay naverPay,
593
        Oxxo oxxo,
594
        P24 p24,
595
        Payco payco,
596
        Paynow paynow,
597
        Paypal paypal,
598
        Payto payto,
599
        Pix pix,
600
        Promptpay promptpay,
601
        RadarOptions radarOptions,
602
        Rechnung rechnung,
603
        RevolutPay revolutPay,
604
        SamsungPay samsungPay,
605
        SepaDebit sepaDebit,
606
        Sofort sofort,
607
        Swish swish,
608
        Twint twint,
609
        Type type,
610
        UsBankAccount usBankAccount,
611
        WechatPay wechatPay,
612
        Zip zip) {
×
613
      this.acssDebit = acssDebit;
×
614
      this.affirm = affirm;
×
615
      this.afterpayClearpay = afterpayClearpay;
×
616
      this.alipay = alipay;
×
617
      this.allowRedisplay = allowRedisplay;
×
618
      this.amazonPay = amazonPay;
×
619
      this.auBecsDebit = auBecsDebit;
×
620
      this.bacsDebit = bacsDebit;
×
621
      this.bancontact = bancontact;
×
622
      this.billingDetails = billingDetails;
×
623
      this.blik = blik;
×
624
      this.boleto = boleto;
×
625
      this.cashapp = cashapp;
×
626
      this.customerBalance = customerBalance;
×
627
      this.eps = eps;
×
628
      this.extraParams = extraParams;
×
629
      this.fpx = fpx;
×
630
      this.giropay = giropay;
×
631
      this.grabpay = grabpay;
×
632
      this.ideal = ideal;
×
633
      this.interacPresent = interacPresent;
×
NEW
634
      this.kakaoPay = kakaoPay;
×
635
      this.klarna = klarna;
×
636
      this.konbini = konbini;
×
NEW
637
      this.krCard = krCard;
×
638
      this.link = link;
×
639
      this.mbWay = mbWay;
×
640
      this.metadata = metadata;
×
641
      this.mobilepay = mobilepay;
×
642
      this.multibanco = multibanco;
×
NEW
643
      this.naverPay = naverPay;
×
644
      this.oxxo = oxxo;
×
645
      this.p24 = p24;
×
NEW
646
      this.payco = payco;
×
647
      this.paynow = paynow;
×
648
      this.paypal = paypal;
×
649
      this.payto = payto;
×
650
      this.pix = pix;
×
651
      this.promptpay = promptpay;
×
652
      this.radarOptions = radarOptions;
×
653
      this.rechnung = rechnung;
×
654
      this.revolutPay = revolutPay;
×
NEW
655
      this.samsungPay = samsungPay;
×
656
      this.sepaDebit = sepaDebit;
×
657
      this.sofort = sofort;
×
658
      this.swish = swish;
×
659
      this.twint = twint;
×
660
      this.type = type;
×
661
      this.usBankAccount = usBankAccount;
×
662
      this.wechatPay = wechatPay;
×
663
      this.zip = zip;
×
664
    }
×
665

666
    public static Builder builder() {
667
      return new Builder();
×
668
    }
669

670
    public static class Builder {
×
671
      private AcssDebit acssDebit;
672

673
      private Affirm affirm;
674

675
      private AfterpayClearpay afterpayClearpay;
676

677
      private Alipay alipay;
678

679
      private AllowRedisplay allowRedisplay;
680

681
      private AmazonPay amazonPay;
682

683
      private AuBecsDebit auBecsDebit;
684

685
      private BacsDebit bacsDebit;
686

687
      private Bancontact bancontact;
688

689
      private BillingDetails billingDetails;
690

691
      private Blik blik;
692

693
      private Boleto boleto;
694

695
      private Cashapp cashapp;
696

697
      private CustomerBalance customerBalance;
698

699
      private Eps eps;
700

701
      private Map<String, Object> extraParams;
702

703
      private Fpx fpx;
704

705
      private Giropay giropay;
706

707
      private Grabpay grabpay;
708

709
      private Ideal ideal;
710

711
      private InteracPresent interacPresent;
712

713
      private KakaoPay kakaoPay;
714

715
      private Klarna klarna;
716

717
      private Konbini konbini;
718

719
      private KrCard krCard;
720

721
      private Link link;
722

723
      private MbWay mbWay;
724

725
      private Map<String, String> metadata;
726

727
      private Mobilepay mobilepay;
728

729
      private Multibanco multibanco;
730

731
      private NaverPay naverPay;
732

733
      private Oxxo oxxo;
734

735
      private P24 p24;
736

737
      private Payco payco;
738

739
      private Paynow paynow;
740

741
      private Paypal paypal;
742

743
      private Payto payto;
744

745
      private Pix pix;
746

747
      private Promptpay promptpay;
748

749
      private RadarOptions radarOptions;
750

751
      private Rechnung rechnung;
752

753
      private RevolutPay revolutPay;
754

755
      private SamsungPay samsungPay;
756

757
      private SepaDebit sepaDebit;
758

759
      private Sofort sofort;
760

761
      private Swish swish;
762

763
      private Twint twint;
764

765
      private Type type;
766

767
      private UsBankAccount usBankAccount;
768

769
      private WechatPay wechatPay;
770

771
      private Zip zip;
772

773
      /** Finalize and obtain parameter instance from this builder. */
774
      public ConfirmationTokenCreateParams.PaymentMethodData build() {
775
        return new ConfirmationTokenCreateParams.PaymentMethodData(
×
776
            this.acssDebit,
777
            this.affirm,
778
            this.afterpayClearpay,
779
            this.alipay,
780
            this.allowRedisplay,
781
            this.amazonPay,
782
            this.auBecsDebit,
783
            this.bacsDebit,
784
            this.bancontact,
785
            this.billingDetails,
786
            this.blik,
787
            this.boleto,
788
            this.cashapp,
789
            this.customerBalance,
790
            this.eps,
791
            this.extraParams,
792
            this.fpx,
793
            this.giropay,
794
            this.grabpay,
795
            this.ideal,
796
            this.interacPresent,
797
            this.kakaoPay,
798
            this.klarna,
799
            this.konbini,
800
            this.krCard,
801
            this.link,
802
            this.mbWay,
803
            this.metadata,
804
            this.mobilepay,
805
            this.multibanco,
806
            this.naverPay,
807
            this.oxxo,
808
            this.p24,
809
            this.payco,
810
            this.paynow,
811
            this.paypal,
812
            this.payto,
813
            this.pix,
814
            this.promptpay,
815
            this.radarOptions,
816
            this.rechnung,
817
            this.revolutPay,
818
            this.samsungPay,
819
            this.sepaDebit,
820
            this.sofort,
821
            this.swish,
822
            this.twint,
823
            this.type,
824
            this.usBankAccount,
825
            this.wechatPay,
826
            this.zip);
827
      }
828

829
      /**
830
       * If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
831
       * Debit payment method.
832
       */
833
      public Builder setAcssDebit(
834
          ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit acssDebit) {
835
        this.acssDebit = acssDebit;
×
836
        return this;
×
837
      }
838

839
      /**
840
       * If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
841
       * payment method.
842
       */
843
      public Builder setAffirm(ConfirmationTokenCreateParams.PaymentMethodData.Affirm affirm) {
844
        this.affirm = affirm;
×
845
        return this;
×
846
      }
847

848
      /**
849
       * If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
850
       * AfterpayClearpay payment method.
851
       */
852
      public Builder setAfterpayClearpay(
853
          ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay afterpayClearpay) {
854
        this.afterpayClearpay = afterpayClearpay;
×
855
        return this;
×
856
      }
857

858
      /**
859
       * If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
860
       * payment method.
861
       */
862
      public Builder setAlipay(ConfirmationTokenCreateParams.PaymentMethodData.Alipay alipay) {
863
        this.alipay = alipay;
×
864
        return this;
×
865
      }
866

867
      /**
868
       * This field indicates whether this payment method can be shown again to its customer in a
869
       * checkout flow. Stripe products such as Checkout and Elements use this field to determine
870
       * whether a payment method can be shown as a saved payment method in a checkout flow. The
871
       * field defaults to {@code unspecified}.
872
       */
873
      public Builder setAllowRedisplay(
874
          ConfirmationTokenCreateParams.PaymentMethodData.AllowRedisplay allowRedisplay) {
875
        this.allowRedisplay = allowRedisplay;
×
876
        return this;
×
877
      }
878

879
      /**
880
       * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay
881
       * payment method.
882
       */
883
      public Builder setAmazonPay(
884
          ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay amazonPay) {
885
        this.amazonPay = amazonPay;
×
886
        return this;
×
887
      }
888

889
      /**
890
       * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the
891
       * bank account.
892
       */
893
      public Builder setAuBecsDebit(
894
          ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit auBecsDebit) {
895
        this.auBecsDebit = auBecsDebit;
×
896
        return this;
×
897
      }
898

899
      /**
900
       * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs
901
       * Direct Debit bank account.
902
       */
903
      public Builder setBacsDebit(
904
          ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit bacsDebit) {
905
        this.bacsDebit = bacsDebit;
×
906
        return this;
×
907
      }
908

909
      /**
910
       * If this is a {@code bancontact} PaymentMethod, this hash contains details about the
911
       * Bancontact payment method.
912
       */
913
      public Builder setBancontact(
914
          ConfirmationTokenCreateParams.PaymentMethodData.Bancontact bancontact) {
915
        this.bancontact = bancontact;
×
916
        return this;
×
917
      }
918

919
      /**
920
       * Billing information associated with the PaymentMethod that may be used or required by
921
       * particular types of payment methods.
922
       */
923
      public Builder setBillingDetails(
924
          ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails billingDetails) {
925
        this.billingDetails = billingDetails;
×
926
        return this;
×
927
      }
928

929
      /**
930
       * If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
931
       * method.
932
       */
933
      public Builder setBlik(ConfirmationTokenCreateParams.PaymentMethodData.Blik blik) {
934
        this.blik = blik;
×
935
        return this;
×
936
      }
937

938
      /**
939
       * If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
940
       * payment method.
941
       */
942
      public Builder setBoleto(ConfirmationTokenCreateParams.PaymentMethodData.Boleto boleto) {
943
        this.boleto = boleto;
×
944
        return this;
×
945
      }
946

947
      /**
948
       * If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App
949
       * Pay payment method.
950
       */
951
      public Builder setCashapp(ConfirmationTokenCreateParams.PaymentMethodData.Cashapp cashapp) {
952
        this.cashapp = cashapp;
×
953
        return this;
×
954
      }
955

956
      /**
957
       * If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
958
       * CustomerBalance payment method.
959
       */
960
      public Builder setCustomerBalance(
961
          ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance customerBalance) {
962
        this.customerBalance = customerBalance;
×
963
        return this;
×
964
      }
965

966
      /**
967
       * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
968
       * method.
969
       */
970
      public Builder setEps(ConfirmationTokenCreateParams.PaymentMethodData.Eps eps) {
971
        this.eps = eps;
×
972
        return this;
×
973
      }
974

975
      /**
976
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
977
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
978
       * ConfirmationTokenCreateParams.PaymentMethodData#extraParams} for the field documentation.
979
       */
980
      public Builder putExtraParam(String key, Object value) {
981
        if (this.extraParams == null) {
×
982
          this.extraParams = new HashMap<>();
×
983
        }
984
        this.extraParams.put(key, value);
×
985
        return this;
×
986
      }
987

988
      /**
989
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
990
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
991
       * See {@link ConfirmationTokenCreateParams.PaymentMethodData#extraParams} for the field
992
       * documentation.
993
       */
994
      public Builder putAllExtraParam(Map<String, Object> map) {
995
        if (this.extraParams == null) {
×
996
          this.extraParams = new HashMap<>();
×
997
        }
998
        this.extraParams.putAll(map);
×
999
        return this;
×
1000
      }
1001

1002
      /**
1003
       * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment
1004
       * method.
1005
       */
1006
      public Builder setFpx(ConfirmationTokenCreateParams.PaymentMethodData.Fpx fpx) {
1007
        this.fpx = fpx;
×
1008
        return this;
×
1009
      }
1010

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

1020
      /**
1021
       * If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
1022
       * payment method.
1023
       */
1024
      public Builder setGrabpay(ConfirmationTokenCreateParams.PaymentMethodData.Grabpay grabpay) {
1025
        this.grabpay = grabpay;
×
1026
        return this;
×
1027
      }
1028

1029
      /**
1030
       * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL
1031
       * payment method.
1032
       */
1033
      public Builder setIdeal(ConfirmationTokenCreateParams.PaymentMethodData.Ideal ideal) {
1034
        this.ideal = ideal;
×
1035
        return this;
×
1036
      }
1037

1038
      /**
1039
       * If this is an {@code interac_present} PaymentMethod, this hash contains details about the
1040
       * Interac Present payment method.
1041
       */
1042
      public Builder setInteracPresent(
1043
          ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent interacPresent) {
1044
        this.interacPresent = interacPresent;
×
1045
        return this;
×
1046
      }
1047

1048
      /**
1049
       * If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao
1050
       * Pay payment method.
1051
       */
1052
      public Builder setKakaoPay(
1053
          ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay kakaoPay) {
NEW
1054
        this.kakaoPay = kakaoPay;
×
NEW
1055
        return this;
×
1056
      }
1057

1058
      /**
1059
       * If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna
1060
       * payment method.
1061
       */
1062
      public Builder setKlarna(ConfirmationTokenCreateParams.PaymentMethodData.Klarna klarna) {
1063
        this.klarna = klarna;
×
1064
        return this;
×
1065
      }
1066

1067
      /**
1068
       * If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
1069
       * payment method.
1070
       */
1071
      public Builder setKonbini(ConfirmationTokenCreateParams.PaymentMethodData.Konbini konbini) {
1072
        this.konbini = konbini;
×
1073
        return this;
×
1074
      }
1075

1076
      /**
1077
       * If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean
1078
       * Card payment method.
1079
       */
1080
      public Builder setKrCard(ConfirmationTokenCreateParams.PaymentMethodData.KrCard krCard) {
NEW
1081
        this.krCard = krCard;
×
NEW
1082
        return this;
×
1083
      }
1084

1085
      /**
1086
       * If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
1087
       * method.
1088
       */
1089
      public Builder setLink(ConfirmationTokenCreateParams.PaymentMethodData.Link link) {
1090
        this.link = link;
×
1091
        return this;
×
1092
      }
1093

1094
      /**
1095
       * If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
1096
       * method.
1097
       */
1098
      public Builder setMbWay(ConfirmationTokenCreateParams.PaymentMethodData.MbWay mbWay) {
1099
        this.mbWay = mbWay;
×
1100
        return this;
×
1101
      }
1102

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

1116
      /**
1117
       * Add all map key/value pairs to `metadata` map. A map is initialized for the first
1118
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1119
       * See {@link ConfirmationTokenCreateParams.PaymentMethodData#metadata} for the field
1120
       * documentation.
1121
       */
1122
      public Builder putAllMetadata(Map<String, String> map) {
1123
        if (this.metadata == null) {
×
1124
          this.metadata = new HashMap<>();
×
1125
        }
1126
        this.metadata.putAll(map);
×
1127
        return this;
×
1128
      }
1129

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

1140
      /**
1141
       * If this is a {@code multibanco} PaymentMethod, this hash contains details about the
1142
       * Multibanco payment method.
1143
       */
1144
      public Builder setMultibanco(
1145
          ConfirmationTokenCreateParams.PaymentMethodData.Multibanco multibanco) {
1146
        this.multibanco = multibanco;
×
1147
        return this;
×
1148
      }
1149

1150
      /**
1151
       * If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver
1152
       * Pay payment method.
1153
       */
1154
      public Builder setNaverPay(
1155
          ConfirmationTokenCreateParams.PaymentMethodData.NaverPay naverPay) {
NEW
1156
        this.naverPay = naverPay;
×
NEW
1157
        return this;
×
1158
      }
1159

1160
      /**
1161
       * If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
1162
       * method.
1163
       */
1164
      public Builder setOxxo(ConfirmationTokenCreateParams.PaymentMethodData.Oxxo oxxo) {
1165
        this.oxxo = oxxo;
×
1166
        return this;
×
1167
      }
1168

1169
      /**
1170
       * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
1171
       * method.
1172
       */
1173
      public Builder setP24(ConfirmationTokenCreateParams.PaymentMethodData.P24 p24) {
1174
        this.p24 = p24;
×
1175
        return this;
×
1176
      }
1177

1178
      /**
1179
       * If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO
1180
       * payment method.
1181
       */
1182
      public Builder setPayco(ConfirmationTokenCreateParams.PaymentMethodData.Payco payco) {
NEW
1183
        this.payco = payco;
×
NEW
1184
        return this;
×
1185
      }
1186

1187
      /**
1188
       * If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
1189
       * payment method.
1190
       */
1191
      public Builder setPaynow(ConfirmationTokenCreateParams.PaymentMethodData.Paynow paynow) {
1192
        this.paynow = paynow;
×
1193
        return this;
×
1194
      }
1195

1196
      /**
1197
       * If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
1198
       * payment method.
1199
       */
1200
      public Builder setPaypal(ConfirmationTokenCreateParams.PaymentMethodData.Paypal paypal) {
1201
        this.paypal = paypal;
×
1202
        return this;
×
1203
      }
1204

1205
      /**
1206
       * If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo
1207
       * payment method.
1208
       */
1209
      public Builder setPayto(ConfirmationTokenCreateParams.PaymentMethodData.Payto payto) {
1210
        this.payto = payto;
×
1211
        return this;
×
1212
      }
1213

1214
      /**
1215
       * If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
1216
       * method.
1217
       */
1218
      public Builder setPix(ConfirmationTokenCreateParams.PaymentMethodData.Pix pix) {
1219
        this.pix = pix;
×
1220
        return this;
×
1221
      }
1222

1223
      /**
1224
       * If this is a {@code promptpay} PaymentMethod, this hash contains details about the
1225
       * PromptPay payment method.
1226
       */
1227
      public Builder setPromptpay(
1228
          ConfirmationTokenCreateParams.PaymentMethodData.Promptpay promptpay) {
1229
        this.promptpay = promptpay;
×
1230
        return this;
×
1231
      }
1232

1233
      /**
1234
       * Options to configure Radar. See <a href="https://stripe.com/docs/radar/radar-session">Radar
1235
       * Session</a> for more information.
1236
       */
1237
      public Builder setRadarOptions(
1238
          ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions radarOptions) {
1239
        this.radarOptions = radarOptions;
×
1240
        return this;
×
1241
      }
1242

1243
      /**
1244
       * If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
1245
       * payment method.
1246
       */
1247
      public Builder setRechnung(
1248
          ConfirmationTokenCreateParams.PaymentMethodData.Rechnung rechnung) {
1249
        this.rechnung = rechnung;
×
1250
        return this;
×
1251
      }
1252

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

1263
      /**
1264
       * If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
1265
       * SamsungPay payment method.
1266
       */
1267
      public Builder setSamsungPay(
1268
          ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay samsungPay) {
NEW
1269
        this.samsungPay = samsungPay;
×
NEW
1270
        return this;
×
1271
      }
1272

1273
      /**
1274
       * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
1275
       * debit bank account.
1276
       */
1277
      public Builder setSepaDebit(
1278
          ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit sepaDebit) {
1279
        this.sepaDebit = sepaDebit;
×
1280
        return this;
×
1281
      }
1282

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

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

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

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

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

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

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

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

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

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

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

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

1384
      public static Builder builder() {
1385
        return new Builder();
×
1386
      }
1387

1388
      public static class Builder {
×
1389
        private String accountNumber;
1390

1391
        private Map<String, Object> extraParams;
1392

1393
        private String institutionNumber;
1394

1395
        private String transitNumber;
1396

1397
        /** Finalize and obtain parameter instance from this builder. */
1398
        public ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit build() {
1399
          return new ConfirmationTokenCreateParams.PaymentMethodData.AcssDebit(
×
1400
              this.accountNumber, this.extraParams, this.institutionNumber, this.transitNumber);
1401
        }
1402

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

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

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

1437
        /** <strong>Required.</strong> Institution number of the customer's bank. */
1438
        public Builder setInstitutionNumber(String institutionNumber) {
1439
          this.institutionNumber = institutionNumber;
×
1440
          return this;
×
1441
        }
1442

1443
        /** <strong>Required.</strong> Transit number of the customer's bank. */
1444
        public Builder setTransitNumber(String transitNumber) {
1445
          this.transitNumber = transitNumber;
×
1446
          return this;
×
1447
        }
1448
      }
1449
    }
1450

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

1462
      private Affirm(Map<String, Object> extraParams) {
×
1463
        this.extraParams = extraParams;
×
1464
      }
×
1465

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

1470
      public static class Builder {
×
1471
        private Map<String, Object> extraParams;
1472

1473
        /** Finalize and obtain parameter instance from this builder. */
1474
        public ConfirmationTokenCreateParams.PaymentMethodData.Affirm build() {
1475
          return new ConfirmationTokenCreateParams.PaymentMethodData.Affirm(this.extraParams);
×
1476
        }
1477

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

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

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

1519
      private AfterpayClearpay(Map<String, Object> extraParams) {
×
1520
        this.extraParams = extraParams;
×
1521
      }
×
1522

1523
      public static Builder builder() {
1524
        return new Builder();
×
1525
      }
1526

1527
      public static class Builder {
×
1528
        private Map<String, Object> extraParams;
1529

1530
        /** Finalize and obtain parameter instance from this builder. */
1531
        public ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay build() {
1532
          return new ConfirmationTokenCreateParams.PaymentMethodData.AfterpayClearpay(
×
1533
              this.extraParams);
1534
        }
1535

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

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

1568
    @Getter
1569
    public static class Alipay {
1570
      /**
1571
       * Map of extra parameters for custom features not available in this client library. The
1572
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1573
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1574
       * name in this param object. Effectively, this map is flattened to its parent instance.
1575
       */
1576
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1577
      Map<String, Object> extraParams;
1578

1579
      private Alipay(Map<String, Object> extraParams) {
×
1580
        this.extraParams = extraParams;
×
1581
      }
×
1582

1583
      public static Builder builder() {
1584
        return new Builder();
×
1585
      }
1586

1587
      public static class Builder {
×
1588
        private Map<String, Object> extraParams;
1589

1590
        /** Finalize and obtain parameter instance from this builder. */
1591
        public ConfirmationTokenCreateParams.PaymentMethodData.Alipay build() {
1592
          return new ConfirmationTokenCreateParams.PaymentMethodData.Alipay(this.extraParams);
×
1593
        }
1594

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

1609
        /**
1610
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1611
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1612
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Alipay#extraParams} for
1613
         * the field documentation.
1614
         */
1615
        public Builder putAllExtraParam(Map<String, Object> map) {
1616
          if (this.extraParams == null) {
×
1617
            this.extraParams = new HashMap<>();
×
1618
          }
1619
          this.extraParams.putAll(map);
×
1620
          return this;
×
1621
        }
1622
      }
1623
    }
1624

1625
    @Getter
1626
    public static class AmazonPay {
1627
      /**
1628
       * Map of extra parameters for custom features not available in this client library. The
1629
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1630
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1631
       * name in this param object. Effectively, this map is flattened to its parent instance.
1632
       */
1633
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1634
      Map<String, Object> extraParams;
1635

1636
      private AmazonPay(Map<String, Object> extraParams) {
×
1637
        this.extraParams = extraParams;
×
1638
      }
×
1639

1640
      public static Builder builder() {
1641
        return new Builder();
×
1642
      }
1643

1644
      public static class Builder {
×
1645
        private Map<String, Object> extraParams;
1646

1647
        /** Finalize and obtain parameter instance from this builder. */
1648
        public ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay build() {
1649
          return new ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay(this.extraParams);
×
1650
        }
1651

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

1666
        /**
1667
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1668
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1669
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.AmazonPay#extraParams}
1670
         * for the field documentation.
1671
         */
1672
        public Builder putAllExtraParam(Map<String, Object> map) {
1673
          if (this.extraParams == null) {
×
1674
            this.extraParams = new HashMap<>();
×
1675
          }
1676
          this.extraParams.putAll(map);
×
1677
          return this;
×
1678
        }
1679
      }
1680
    }
1681

1682
    @Getter
1683
    public static class AuBecsDebit {
1684
      /** <strong>Required.</strong> The account number for the bank account. */
1685
      @SerializedName("account_number")
1686
      String accountNumber;
1687

1688
      /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1689
      @SerializedName("bsb_number")
1690
      String bsbNumber;
1691

1692
      /**
1693
       * Map of extra parameters for custom features not available in this client library. The
1694
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1695
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1696
       * name in this param object. Effectively, this map is flattened to its parent instance.
1697
       */
1698
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1699
      Map<String, Object> extraParams;
1700

1701
      private AuBecsDebit(String accountNumber, String bsbNumber, Map<String, Object> extraParams) {
×
1702
        this.accountNumber = accountNumber;
×
1703
        this.bsbNumber = bsbNumber;
×
1704
        this.extraParams = extraParams;
×
1705
      }
×
1706

1707
      public static Builder builder() {
1708
        return new Builder();
×
1709
      }
1710

1711
      public static class Builder {
×
1712
        private String accountNumber;
1713

1714
        private String bsbNumber;
1715

1716
        private Map<String, Object> extraParams;
1717

1718
        /** Finalize and obtain parameter instance from this builder. */
1719
        public ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit build() {
1720
          return new ConfirmationTokenCreateParams.PaymentMethodData.AuBecsDebit(
×
1721
              this.accountNumber, this.bsbNumber, this.extraParams);
1722
        }
1723

1724
        /** <strong>Required.</strong> The account number for the bank account. */
1725
        public Builder setAccountNumber(String accountNumber) {
1726
          this.accountNumber = accountNumber;
×
1727
          return this;
×
1728
        }
1729

1730
        /** <strong>Required.</strong> Bank-State-Branch number of the bank account. */
1731
        public Builder setBsbNumber(String bsbNumber) {
1732
          this.bsbNumber = bsbNumber;
×
1733
          return this;
×
1734
        }
1735

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

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

1766
    @Getter
1767
    public static class BacsDebit {
1768
      /** Account number of the bank account that the funds will be debited from. */
1769
      @SerializedName("account_number")
1770
      String accountNumber;
1771

1772
      /**
1773
       * Map of extra parameters for custom features not available in this client library. The
1774
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1775
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1776
       * name in this param object. Effectively, this map is flattened to its parent instance.
1777
       */
1778
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1779
      Map<String, Object> extraParams;
1780

1781
      /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1782
      @SerializedName("sort_code")
1783
      String sortCode;
1784

1785
      private BacsDebit(String accountNumber, Map<String, Object> extraParams, String sortCode) {
×
1786
        this.accountNumber = accountNumber;
×
1787
        this.extraParams = extraParams;
×
1788
        this.sortCode = sortCode;
×
1789
      }
×
1790

1791
      public static Builder builder() {
1792
        return new Builder();
×
1793
      }
1794

1795
      public static class Builder {
×
1796
        private String accountNumber;
1797

1798
        private Map<String, Object> extraParams;
1799

1800
        private String sortCode;
1801

1802
        /** Finalize and obtain parameter instance from this builder. */
1803
        public ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit build() {
1804
          return new ConfirmationTokenCreateParams.PaymentMethodData.BacsDebit(
×
1805
              this.accountNumber, this.extraParams, this.sortCode);
1806
        }
1807

1808
        /** Account number of the bank account that the funds will be debited from. */
1809
        public Builder setAccountNumber(String accountNumber) {
1810
          this.accountNumber = accountNumber;
×
1811
          return this;
×
1812
        }
1813

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

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

1842
        /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
1843
        public Builder setSortCode(String sortCode) {
1844
          this.sortCode = sortCode;
×
1845
          return this;
×
1846
        }
1847
      }
1848
    }
1849

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

1861
      private Bancontact(Map<String, Object> extraParams) {
×
1862
        this.extraParams = extraParams;
×
1863
      }
×
1864

1865
      public static Builder builder() {
1866
        return new Builder();
×
1867
      }
1868

1869
      public static class Builder {
×
1870
        private Map<String, Object> extraParams;
1871

1872
        /** Finalize and obtain parameter instance from this builder. */
1873
        public ConfirmationTokenCreateParams.PaymentMethodData.Bancontact build() {
1874
          return new ConfirmationTokenCreateParams.PaymentMethodData.Bancontact(this.extraParams);
×
1875
        }
1876

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

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

1907
    @Getter
1908
    public static class BillingDetails {
1909
      /** Billing address. */
1910
      @SerializedName("address")
1911
      Object address;
1912

1913
      /** Email address. */
1914
      @SerializedName("email")
1915
      Object email;
1916

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

1926
      /** Full name. */
1927
      @SerializedName("name")
1928
      Object name;
1929

1930
      /** Billing phone number (including extension). */
1931
      @SerializedName("phone")
1932
      Object phone;
1933

1934
      private BillingDetails(
1935
          Object address,
1936
          Object email,
1937
          Map<String, Object> extraParams,
1938
          Object name,
1939
          Object phone) {
×
1940
        this.address = address;
×
1941
        this.email = email;
×
1942
        this.extraParams = extraParams;
×
1943
        this.name = name;
×
1944
        this.phone = phone;
×
1945
      }
×
1946

1947
      public static Builder builder() {
1948
        return new Builder();
×
1949
      }
1950

1951
      public static class Builder {
×
1952
        private Object address;
1953

1954
        private Object email;
1955

1956
        private Map<String, Object> extraParams;
1957

1958
        private Object name;
1959

1960
        private Object phone;
1961

1962
        /** Finalize and obtain parameter instance from this builder. */
1963
        public ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails build() {
1964
          return new ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails(
×
1965
              this.address, this.email, this.extraParams, this.name, this.phone);
1966
        }
1967

1968
        /** Billing address. */
1969
        public Builder setAddress(
1970
            ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address address) {
1971
          this.address = address;
×
1972
          return this;
×
1973
        }
1974

1975
        /** Billing address. */
1976
        public Builder setAddress(EmptyParam address) {
1977
          this.address = address;
×
1978
          return this;
×
1979
        }
1980

1981
        /** Email address. */
1982
        public Builder setEmail(String email) {
1983
          this.email = email;
×
1984
          return this;
×
1985
        }
1986

1987
        /** Email address. */
1988
        public Builder setEmail(EmptyParam email) {
1989
          this.email = email;
×
1990
          return this;
×
1991
        }
1992

1993
        /**
1994
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1995
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1996
         * map. See {@link
1997
         * ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails#extraParams} for the field
1998
         * documentation.
1999
         */
2000
        public Builder putExtraParam(String key, Object value) {
2001
          if (this.extraParams == null) {
×
2002
            this.extraParams = new HashMap<>();
×
2003
          }
2004
          this.extraParams.put(key, value);
×
2005
          return this;
×
2006
        }
2007

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

2023
        /** Full name. */
2024
        public Builder setName(String name) {
2025
          this.name = name;
×
2026
          return this;
×
2027
        }
2028

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

2035
        /** Billing phone number (including extension). */
2036
        public Builder setPhone(String phone) {
2037
          this.phone = phone;
×
2038
          return this;
×
2039
        }
2040

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

2048
      @Getter
2049
      public static class Address {
2050
        /** City, district, suburb, town, or village. */
2051
        @SerializedName("city")
2052
        String city;
2053

2054
        /**
2055
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
2056
         * 3166-1 alpha-2</a>).
2057
         */
2058
        @SerializedName("country")
2059
        String country;
2060

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

2071
        /** Address line 1 (e.g., street, PO Box, or company name). */
2072
        @SerializedName("line1")
2073
        String line1;
2074

2075
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
2076
        @SerializedName("line2")
2077
        String line2;
2078

2079
        /** ZIP or postal code. */
2080
        @SerializedName("postal_code")
2081
        String postalCode;
2082

2083
        /** State, county, province, or region. */
2084
        @SerializedName("state")
2085
        String state;
2086

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

2104
        public static Builder builder() {
2105
          return new Builder();
×
2106
        }
2107

2108
        public static class Builder {
×
2109
          private String city;
2110

2111
          private String country;
2112

2113
          private Map<String, Object> extraParams;
2114

2115
          private String line1;
2116

2117
          private String line2;
2118

2119
          private String postalCode;
2120

2121
          private String state;
2122

2123
          /** Finalize and obtain parameter instance from this builder. */
2124
          public ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address build() {
2125
            return new ConfirmationTokenCreateParams.PaymentMethodData.BillingDetails.Address(
×
2126
                this.city,
2127
                this.country,
2128
                this.extraParams,
2129
                this.line1,
2130
                this.line2,
2131
                this.postalCode,
2132
                this.state);
2133
          }
2134

2135
          /** City, district, suburb, town, or village. */
2136
          public Builder setCity(String city) {
2137
            this.city = city;
×
2138
            return this;
×
2139
          }
2140

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

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

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

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

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

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

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

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

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

2222
      public static Builder builder() {
2223
        return new Builder();
×
2224
      }
2225

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

2229
        /** Finalize and obtain parameter instance from this builder. */
2230
        public ConfirmationTokenCreateParams.PaymentMethodData.Blik build() {
2231
          return new ConfirmationTokenCreateParams.PaymentMethodData.Blik(this.extraParams);
×
2232
        }
2233

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

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

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

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

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

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

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

2294
        private String taxId;
2295

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

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

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

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

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

2352
      private Cashapp(Map<String, Object> extraParams) {
×
2353
        this.extraParams = extraParams;
×
2354
      }
×
2355

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

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

2363
        /** Finalize and obtain parameter instance from this builder. */
2364
        public ConfirmationTokenCreateParams.PaymentMethodData.Cashapp build() {
2365
          return new ConfirmationTokenCreateParams.PaymentMethodData.Cashapp(this.extraParams);
×
2366
        }
2367

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

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

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

2409
      private CustomerBalance(Map<String, Object> extraParams) {
×
2410
        this.extraParams = extraParams;
×
2411
      }
×
2412

2413
      public static Builder builder() {
2414
        return new Builder();
×
2415
      }
2416

2417
      public static class Builder {
×
2418
        private Map<String, Object> extraParams;
2419

2420
        /** Finalize and obtain parameter instance from this builder. */
2421
        public ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance build() {
2422
          return new ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance(
×
2423
              this.extraParams);
2424
        }
2425

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

2441
        /**
2442
         * Add all map key/value pairs 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
2445
         * ConfirmationTokenCreateParams.PaymentMethodData.CustomerBalance#extraParams} for the
2446
         * field documentation.
2447
         */
2448
        public Builder putAllExtraParam(Map<String, Object> map) {
2449
          if (this.extraParams == null) {
×
2450
            this.extraParams = new HashMap<>();
×
2451
          }
2452
          this.extraParams.putAll(map);
×
2453
          return this;
×
2454
        }
2455
      }
2456
    }
2457

2458
    @Getter
2459
    public static class Eps {
2460
      /** The customer's bank. */
2461
      @SerializedName("bank")
2462
      Bank bank;
2463

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

2473
      private Eps(Bank bank, Map<String, Object> extraParams) {
×
2474
        this.bank = bank;
×
2475
        this.extraParams = extraParams;
×
2476
      }
×
2477

2478
      public static Builder builder() {
2479
        return new Builder();
×
2480
      }
2481

2482
      public static class Builder {
×
2483
        private Bank bank;
2484

2485
        private Map<String, Object> extraParams;
2486

2487
        /** Finalize and obtain parameter instance from this builder. */
2488
        public ConfirmationTokenCreateParams.PaymentMethodData.Eps build() {
2489
          return new ConfirmationTokenCreateParams.PaymentMethodData.Eps(
×
2490
              this.bank, this.extraParams);
2491
        }
2492

2493
        /** The customer's bank. */
2494
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Eps.Bank bank) {
2495
          this.bank = bank;
×
2496
          return this;
×
2497
        }
2498

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

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

2528
      public enum Bank implements ApiRequestParams.EnumParam {
×
2529
        @SerializedName("arzte_und_apotheker_bank")
×
2530
        ARZTE_UND_APOTHEKER_BANK("arzte_und_apotheker_bank"),
2531

2532
        @SerializedName("austrian_anadi_bank_ag")
×
2533
        AUSTRIAN_ANADI_BANK_AG("austrian_anadi_bank_ag"),
2534

2535
        @SerializedName("bank_austria")
×
2536
        BANK_AUSTRIA("bank_austria"),
2537

2538
        @SerializedName("bankhaus_carl_spangler")
×
2539
        BANKHAUS_CARL_SPANGLER("bankhaus_carl_spangler"),
2540

2541
        @SerializedName("bankhaus_schelhammer_und_schattera_ag")
×
2542
        BANKHAUS_SCHELHAMMER_UND_SCHATTERA_AG("bankhaus_schelhammer_und_schattera_ag"),
2543

2544
        @SerializedName("bawag_psk_ag")
×
2545
        BAWAG_PSK_AG("bawag_psk_ag"),
2546

2547
        @SerializedName("bks_bank_ag")
×
2548
        BKS_BANK_AG("bks_bank_ag"),
2549

2550
        @SerializedName("brull_kallmus_bank_ag")
×
2551
        BRULL_KALLMUS_BANK_AG("brull_kallmus_bank_ag"),
2552

2553
        @SerializedName("btv_vier_lander_bank")
×
2554
        BTV_VIER_LANDER_BANK("btv_vier_lander_bank"),
2555

2556
        @SerializedName("capital_bank_grawe_gruppe_ag")
×
2557
        CAPITAL_BANK_GRAWE_GRUPPE_AG("capital_bank_grawe_gruppe_ag"),
2558

2559
        @SerializedName("deutsche_bank_ag")
×
2560
        DEUTSCHE_BANK_AG("deutsche_bank_ag"),
2561

2562
        @SerializedName("dolomitenbank")
×
2563
        DOLOMITENBANK("dolomitenbank"),
2564

2565
        @SerializedName("easybank_ag")
×
2566
        EASYBANK_AG("easybank_ag"),
2567

2568
        @SerializedName("erste_bank_und_sparkassen")
×
2569
        ERSTE_BANK_UND_SPARKASSEN("erste_bank_und_sparkassen"),
2570

2571
        @SerializedName("hypo_alpeadriabank_international_ag")
×
2572
        HYPO_ALPEADRIABANK_INTERNATIONAL_AG("hypo_alpeadriabank_international_ag"),
2573

2574
        @SerializedName("hypo_bank_burgenland_aktiengesellschaft")
×
2575
        HYPO_BANK_BURGENLAND_AKTIENGESELLSCHAFT("hypo_bank_burgenland_aktiengesellschaft"),
2576

2577
        @SerializedName("hypo_noe_lb_fur_niederosterreich_u_wien")
×
2578
        HYPO_NOE_LB_FUR_NIEDEROSTERREICH_U_WIEN("hypo_noe_lb_fur_niederosterreich_u_wien"),
2579

2580
        @SerializedName("hypo_oberosterreich_salzburg_steiermark")
×
2581
        HYPO_OBEROSTERREICH_SALZBURG_STEIERMARK("hypo_oberosterreich_salzburg_steiermark"),
2582

2583
        @SerializedName("hypo_tirol_bank_ag")
×
2584
        HYPO_TIROL_BANK_AG("hypo_tirol_bank_ag"),
2585

2586
        @SerializedName("hypo_vorarlberg_bank_ag")
×
2587
        HYPO_VORARLBERG_BANK_AG("hypo_vorarlberg_bank_ag"),
2588

2589
        @SerializedName("marchfelder_bank")
×
2590
        MARCHFELDER_BANK("marchfelder_bank"),
2591

2592
        @SerializedName("oberbank_ag")
×
2593
        OBERBANK_AG("oberbank_ag"),
2594

2595
        @SerializedName("raiffeisen_bankengruppe_osterreich")
×
2596
        RAIFFEISEN_BANKENGRUPPE_OSTERREICH("raiffeisen_bankengruppe_osterreich"),
2597

2598
        @SerializedName("schoellerbank_ag")
×
2599
        SCHOELLERBANK_AG("schoellerbank_ag"),
2600

2601
        @SerializedName("sparda_bank_wien")
×
2602
        SPARDA_BANK_WIEN("sparda_bank_wien"),
2603

2604
        @SerializedName("volksbank_gruppe")
×
2605
        VOLKSBANK_GRUPPE("volksbank_gruppe"),
2606

2607
        @SerializedName("volkskreditbank_ag")
×
2608
        VOLKSKREDITBANK_AG("volkskreditbank_ag"),
2609

2610
        @SerializedName("vr_bank_braunau")
×
2611
        VR_BANK_BRAUNAU("vr_bank_braunau");
2612

2613
        @Getter(onMethod_ = {@Override})
2614
        private final String value;
2615

2616
        Bank(String value) {
×
2617
          this.value = value;
×
2618
        }
×
2619
      }
2620
    }
2621

2622
    @Getter
2623
    public static class Fpx {
2624
      /** Account holder type for FPX transaction. */
2625
      @SerializedName("account_holder_type")
2626
      AccountHolderType accountHolderType;
2627

2628
      /** <strong>Required.</strong> The customer's bank. */
2629
      @SerializedName("bank")
2630
      Bank bank;
2631

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

2641
      private Fpx(AccountHolderType accountHolderType, Bank bank, Map<String, Object> extraParams) {
×
2642
        this.accountHolderType = accountHolderType;
×
2643
        this.bank = bank;
×
2644
        this.extraParams = extraParams;
×
2645
      }
×
2646

2647
      public static Builder builder() {
2648
        return new Builder();
×
2649
      }
2650

2651
      public static class Builder {
×
2652
        private AccountHolderType accountHolderType;
2653

2654
        private Bank bank;
2655

2656
        private Map<String, Object> extraParams;
2657

2658
        /** Finalize and obtain parameter instance from this builder. */
2659
        public ConfirmationTokenCreateParams.PaymentMethodData.Fpx build() {
2660
          return new ConfirmationTokenCreateParams.PaymentMethodData.Fpx(
×
2661
              this.accountHolderType, this.bank, this.extraParams);
2662
        }
2663

2664
        /** Account holder type for FPX transaction. */
2665
        public Builder setAccountHolderType(
2666
            ConfirmationTokenCreateParams.PaymentMethodData.Fpx.AccountHolderType
2667
                accountHolderType) {
2668
          this.accountHolderType = accountHolderType;
×
2669
          return this;
×
2670
        }
2671

2672
        /** <strong>Required.</strong> The customer's bank. */
2673
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Fpx.Bank bank) {
2674
          this.bank = bank;
×
2675
          return this;
×
2676
        }
2677

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

2692
        /**
2693
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2694
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2695
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Fpx#extraParams} for the
2696
         * field documentation.
2697
         */
2698
        public Builder putAllExtraParam(Map<String, Object> map) {
2699
          if (this.extraParams == null) {
×
2700
            this.extraParams = new HashMap<>();
×
2701
          }
2702
          this.extraParams.putAll(map);
×
2703
          return this;
×
2704
        }
2705
      }
2706

2707
      public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
2708
        @SerializedName("company")
×
2709
        COMPANY("company"),
2710

2711
        @SerializedName("individual")
×
2712
        INDIVIDUAL("individual");
2713

2714
        @Getter(onMethod_ = {@Override})
2715
        private final String value;
2716

2717
        AccountHolderType(String value) {
×
2718
          this.value = value;
×
2719
        }
×
2720
      }
2721

2722
      public enum Bank implements ApiRequestParams.EnumParam {
×
2723
        @SerializedName("affin_bank")
×
2724
        AFFIN_BANK("affin_bank"),
2725

2726
        @SerializedName("agrobank")
×
2727
        AGROBANK("agrobank"),
2728

2729
        @SerializedName("alliance_bank")
×
2730
        ALLIANCE_BANK("alliance_bank"),
2731

2732
        @SerializedName("ambank")
×
2733
        AMBANK("ambank"),
2734

2735
        @SerializedName("bank_islam")
×
2736
        BANK_ISLAM("bank_islam"),
2737

2738
        @SerializedName("bank_muamalat")
×
2739
        BANK_MUAMALAT("bank_muamalat"),
2740

2741
        @SerializedName("bank_of_china")
×
2742
        BANK_OF_CHINA("bank_of_china"),
2743

2744
        @SerializedName("bank_rakyat")
×
2745
        BANK_RAKYAT("bank_rakyat"),
2746

2747
        @SerializedName("bsn")
×
2748
        BSN("bsn"),
2749

2750
        @SerializedName("cimb")
×
2751
        CIMB("cimb"),
2752

2753
        @SerializedName("deutsche_bank")
×
2754
        DEUTSCHE_BANK("deutsche_bank"),
2755

2756
        @SerializedName("hong_leong_bank")
×
2757
        HONG_LEONG_BANK("hong_leong_bank"),
2758

2759
        @SerializedName("hsbc")
×
2760
        HSBC("hsbc"),
2761

2762
        @SerializedName("kfh")
×
2763
        KFH("kfh"),
2764

2765
        @SerializedName("maybank2e")
×
2766
        MAYBANK2E("maybank2e"),
2767

2768
        @SerializedName("maybank2u")
×
2769
        MAYBANK2U("maybank2u"),
2770

2771
        @SerializedName("ocbc")
×
2772
        OCBC("ocbc"),
2773

2774
        @SerializedName("pb_enterprise")
×
2775
        PB_ENTERPRISE("pb_enterprise"),
2776

2777
        @SerializedName("public_bank")
×
2778
        PUBLIC_BANK("public_bank"),
2779

2780
        @SerializedName("rhb")
×
2781
        RHB("rhb"),
2782

2783
        @SerializedName("standard_chartered")
×
2784
        STANDARD_CHARTERED("standard_chartered"),
2785

2786
        @SerializedName("uob")
×
2787
        UOB("uob");
2788

2789
        @Getter(onMethod_ = {@Override})
2790
        private final String value;
2791

2792
        Bank(String value) {
×
2793
          this.value = value;
×
2794
        }
×
2795
      }
2796
    }
2797

2798
    @Getter
2799
    public static class Giropay {
2800
      /**
2801
       * Map of extra parameters for custom features not available in this client library. The
2802
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2803
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2804
       * name in this param object. Effectively, this map is flattened to its parent instance.
2805
       */
2806
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2807
      Map<String, Object> extraParams;
2808

2809
      private Giropay(Map<String, Object> extraParams) {
×
2810
        this.extraParams = extraParams;
×
2811
      }
×
2812

2813
      public static Builder builder() {
2814
        return new Builder();
×
2815
      }
2816

2817
      public static class Builder {
×
2818
        private Map<String, Object> extraParams;
2819

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

2825
        /**
2826
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2827
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2828
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Giropay#extraParams} for
2829
         * the field documentation.
2830
         */
2831
        public Builder putExtraParam(String key, Object value) {
2832
          if (this.extraParams == null) {
×
2833
            this.extraParams = new HashMap<>();
×
2834
          }
2835
          this.extraParams.put(key, value);
×
2836
          return this;
×
2837
        }
2838

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

2855
    @Getter
2856
    public static class Grabpay {
2857
      /**
2858
       * Map of extra parameters for custom features not available in this client library. The
2859
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2860
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2861
       * name in this param object. Effectively, this map is flattened to its parent instance.
2862
       */
2863
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2864
      Map<String, Object> extraParams;
2865

2866
      private Grabpay(Map<String, Object> extraParams) {
×
2867
        this.extraParams = extraParams;
×
2868
      }
×
2869

2870
      public static Builder builder() {
2871
        return new Builder();
×
2872
      }
2873

2874
      public static class Builder {
×
2875
        private Map<String, Object> extraParams;
2876

2877
        /** Finalize and obtain parameter instance from this builder. */
2878
        public ConfirmationTokenCreateParams.PaymentMethodData.Grabpay build() {
2879
          return new ConfirmationTokenCreateParams.PaymentMethodData.Grabpay(this.extraParams);
×
2880
        }
2881

2882
        /**
2883
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
2884
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2885
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Grabpay#extraParams} for
2886
         * the field documentation.
2887
         */
2888
        public Builder putExtraParam(String key, Object value) {
2889
          if (this.extraParams == null) {
×
2890
            this.extraParams = new HashMap<>();
×
2891
          }
2892
          this.extraParams.put(key, value);
×
2893
          return this;
×
2894
        }
2895

2896
        /**
2897
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
2898
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
2899
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Grabpay#extraParams} for
2900
         * the field documentation.
2901
         */
2902
        public Builder putAllExtraParam(Map<String, Object> map) {
2903
          if (this.extraParams == null) {
×
2904
            this.extraParams = new HashMap<>();
×
2905
          }
2906
          this.extraParams.putAll(map);
×
2907
          return this;
×
2908
        }
2909
      }
2910
    }
2911

2912
    @Getter
2913
    public static class Ideal {
2914
      /** The customer's bank. */
2915
      @SerializedName("bank")
2916
      Bank bank;
2917

2918
      /**
2919
       * Map of extra parameters for custom features not available in this client library. The
2920
       * content in this map is not serialized under this field's {@code @SerializedName} value.
2921
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
2922
       * name in this param object. Effectively, this map is flattened to its parent instance.
2923
       */
2924
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
2925
      Map<String, Object> extraParams;
2926

2927
      private Ideal(Bank bank, Map<String, Object> extraParams) {
×
2928
        this.bank = bank;
×
2929
        this.extraParams = extraParams;
×
2930
      }
×
2931

2932
      public static Builder builder() {
2933
        return new Builder();
×
2934
      }
2935

2936
      public static class Builder {
×
2937
        private Bank bank;
2938

2939
        private Map<String, Object> extraParams;
2940

2941
        /** Finalize and obtain parameter instance from this builder. */
2942
        public ConfirmationTokenCreateParams.PaymentMethodData.Ideal build() {
2943
          return new ConfirmationTokenCreateParams.PaymentMethodData.Ideal(
×
2944
              this.bank, this.extraParams);
2945
        }
2946

2947
        /** The customer's bank. */
2948
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.Ideal.Bank bank) {
2949
          this.bank = bank;
×
2950
          return this;
×
2951
        }
2952

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

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

2982
      public enum Bank implements ApiRequestParams.EnumParam {
×
2983
        @SerializedName("abn_amro")
×
2984
        ABN_AMRO("abn_amro"),
2985

2986
        @SerializedName("asn_bank")
×
2987
        ASN_BANK("asn_bank"),
2988

2989
        @SerializedName("bunq")
×
2990
        BUNQ("bunq"),
2991

2992
        @SerializedName("handelsbanken")
×
2993
        HANDELSBANKEN("handelsbanken"),
2994

2995
        @SerializedName("ing")
×
2996
        ING("ing"),
2997

2998
        @SerializedName("knab")
×
2999
        KNAB("knab"),
3000

3001
        @SerializedName("moneyou")
×
3002
        MONEYOU("moneyou"),
3003

3004
        @SerializedName("n26")
×
3005
        N26("n26"),
3006

3007
        @SerializedName("nn")
×
3008
        NN("nn"),
3009

3010
        @SerializedName("rabobank")
×
3011
        RABOBANK("rabobank"),
3012

3013
        @SerializedName("regiobank")
×
3014
        REGIOBANK("regiobank"),
3015

3016
        @SerializedName("revolut")
×
3017
        REVOLUT("revolut"),
3018

3019
        @SerializedName("sns_bank")
×
3020
        SNS_BANK("sns_bank"),
3021

3022
        @SerializedName("triodos_bank")
×
3023
        TRIODOS_BANK("triodos_bank"),
3024

3025
        @SerializedName("van_lanschot")
×
3026
        VAN_LANSCHOT("van_lanschot"),
3027

3028
        @SerializedName("yoursafe")
×
3029
        YOURSAFE("yoursafe");
3030

3031
        @Getter(onMethod_ = {@Override})
3032
        private final String value;
3033

3034
        Bank(String value) {
×
3035
          this.value = value;
×
3036
        }
×
3037
      }
3038
    }
3039

3040
    @Getter
3041
    public static class InteracPresent {
3042
      /**
3043
       * Map of extra parameters for custom features not available in this client library. The
3044
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3045
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3046
       * name in this param object. Effectively, this map is flattened to its parent instance.
3047
       */
3048
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3049
      Map<String, Object> extraParams;
3050

3051
      private InteracPresent(Map<String, Object> extraParams) {
×
3052
        this.extraParams = extraParams;
×
3053
      }
×
3054

3055
      public static Builder builder() {
3056
        return new Builder();
×
3057
      }
3058

3059
      public static class Builder {
×
3060
        private Map<String, Object> extraParams;
3061

3062
        /** Finalize and obtain parameter instance from this builder. */
3063
        public ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent build() {
3064
          return new ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent(
×
3065
              this.extraParams);
3066
        }
3067

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

3083
        /**
3084
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3085
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3086
         * map. See {@link
3087
         * ConfirmationTokenCreateParams.PaymentMethodData.InteracPresent#extraParams} for the field
3088
         * documentation.
3089
         */
3090
        public Builder putAllExtraParam(Map<String, Object> map) {
3091
          if (this.extraParams == null) {
×
3092
            this.extraParams = new HashMap<>();
×
3093
          }
3094
          this.extraParams.putAll(map);
×
3095
          return this;
×
3096
        }
3097
      }
3098
    }
3099

3100
    @Getter
3101
    public static class KakaoPay {
3102
      /**
3103
       * Map of extra parameters for custom features not available in this client library. The
3104
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3105
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3106
       * name in this param object. Effectively, this map is flattened to its parent instance.
3107
       */
3108
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3109
      Map<String, Object> extraParams;
3110

NEW
3111
      private KakaoPay(Map<String, Object> extraParams) {
×
NEW
3112
        this.extraParams = extraParams;
×
NEW
3113
      }
×
3114

3115
      public static Builder builder() {
NEW
3116
        return new Builder();
×
3117
      }
3118

NEW
3119
      public static class Builder {
×
3120
        private Map<String, Object> extraParams;
3121

3122
        /** Finalize and obtain parameter instance from this builder. */
3123
        public ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay build() {
NEW
3124
          return new ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay(this.extraParams);
×
3125
        }
3126

3127
        /**
3128
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3129
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3130
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay#extraParams} for
3131
         * the field documentation.
3132
         */
3133
        public Builder putExtraParam(String key, Object value) {
NEW
3134
          if (this.extraParams == null) {
×
NEW
3135
            this.extraParams = new HashMap<>();
×
3136
          }
NEW
3137
          this.extraParams.put(key, value);
×
NEW
3138
          return this;
×
3139
        }
3140

3141
        /**
3142
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3143
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3144
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.KakaoPay#extraParams} for
3145
         * the field documentation.
3146
         */
3147
        public Builder putAllExtraParam(Map<String, Object> map) {
NEW
3148
          if (this.extraParams == null) {
×
NEW
3149
            this.extraParams = new HashMap<>();
×
3150
          }
NEW
3151
          this.extraParams.putAll(map);
×
NEW
3152
          return this;
×
3153
        }
3154
      }
3155
    }
3156

3157
    @Getter
3158
    public static class Klarna {
3159
      /** Customer's date of birth. */
3160
      @SerializedName("dob")
3161
      Dob dob;
3162

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

3172
      private Klarna(Dob dob, Map<String, Object> extraParams) {
×
3173
        this.dob = dob;
×
3174
        this.extraParams = extraParams;
×
3175
      }
×
3176

3177
      public static Builder builder() {
3178
        return new Builder();
×
3179
      }
3180

3181
      public static class Builder {
×
3182
        private Dob dob;
3183

3184
        private Map<String, Object> extraParams;
3185

3186
        /** Finalize and obtain parameter instance from this builder. */
3187
        public ConfirmationTokenCreateParams.PaymentMethodData.Klarna build() {
3188
          return new ConfirmationTokenCreateParams.PaymentMethodData.Klarna(
×
3189
              this.dob, this.extraParams);
3190
        }
3191

3192
        /** Customer's date of birth. */
3193
        public Builder setDob(ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob dob) {
3194
          this.dob = dob;
×
3195
          return this;
×
3196
        }
3197

3198
        /**
3199
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3200
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3201
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Klarna#extraParams} for
3202
         * the field documentation.
3203
         */
3204
        public Builder putExtraParam(String key, Object value) {
3205
          if (this.extraParams == null) {
×
3206
            this.extraParams = new HashMap<>();
×
3207
          }
3208
          this.extraParams.put(key, value);
×
3209
          return this;
×
3210
        }
3211

3212
        /**
3213
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3214
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3215
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Klarna#extraParams} for
3216
         * the field documentation.
3217
         */
3218
        public Builder putAllExtraParam(Map<String, Object> map) {
3219
          if (this.extraParams == null) {
×
3220
            this.extraParams = new HashMap<>();
×
3221
          }
3222
          this.extraParams.putAll(map);
×
3223
          return this;
×
3224
        }
3225
      }
3226

3227
      @Getter
3228
      public static class Dob {
3229
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3230
        @SerializedName("day")
3231
        Long day;
3232

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

3243
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3244
        @SerializedName("month")
3245
        Long month;
3246

3247
        /** <strong>Required.</strong> The four-digit year of birth. */
3248
        @SerializedName("year")
3249
        Long year;
3250

3251
        private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
3252
          this.day = day;
×
3253
          this.extraParams = extraParams;
×
3254
          this.month = month;
×
3255
          this.year = year;
×
3256
        }
×
3257

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

3262
        public static class Builder {
×
3263
          private Long day;
3264

3265
          private Map<String, Object> extraParams;
3266

3267
          private Long month;
3268

3269
          private Long year;
3270

3271
          /** Finalize and obtain parameter instance from this builder. */
3272
          public ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob build() {
3273
            return new ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob(
×
3274
                this.day, this.extraParams, this.month, this.year);
3275
          }
3276

3277
          /** <strong>Required.</strong> The day of birth, between 1 and 31. */
3278
          public Builder setDay(Long day) {
3279
            this.day = day;
×
3280
            return this;
×
3281
          }
3282

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

3297
          /**
3298
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3299
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3300
           * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Klarna.Dob#extraParams}
3301
           * for the field documentation.
3302
           */
3303
          public Builder putAllExtraParam(Map<String, Object> map) {
3304
            if (this.extraParams == null) {
×
3305
              this.extraParams = new HashMap<>();
×
3306
            }
3307
            this.extraParams.putAll(map);
×
3308
            return this;
×
3309
          }
3310

3311
          /** <strong>Required.</strong> The month of birth, between 1 and 12. */
3312
          public Builder setMonth(Long month) {
3313
            this.month = month;
×
3314
            return this;
×
3315
          }
3316

3317
          /** <strong>Required.</strong> The four-digit year of birth. */
3318
          public Builder setYear(Long year) {
3319
            this.year = year;
×
3320
            return this;
×
3321
          }
3322
        }
3323
      }
3324
    }
3325

3326
    @Getter
3327
    public static class Konbini {
3328
      /**
3329
       * Map of extra parameters for custom features not available in this client library. The
3330
       * content in this map is not serialized under this field's {@code @SerializedName} value.
3331
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
3332
       * name in this param object. Effectively, this map is flattened to its parent instance.
3333
       */
3334
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
3335
      Map<String, Object> extraParams;
3336

3337
      private Konbini(Map<String, Object> extraParams) {
×
3338
        this.extraParams = extraParams;
×
3339
      }
×
3340

3341
      public static Builder builder() {
3342
        return new Builder();
×
3343
      }
3344

3345
      public static class Builder {
×
3346
        private Map<String, Object> extraParams;
3347

3348
        /** Finalize and obtain parameter instance from this builder. */
3349
        public ConfirmationTokenCreateParams.PaymentMethodData.Konbini build() {
3350
          return new ConfirmationTokenCreateParams.PaymentMethodData.Konbini(this.extraParams);
×
3351
        }
3352

3353
        /**
3354
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3355
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3356
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Konbini#extraParams} for
3357
         * the field documentation.
3358
         */
3359
        public Builder putExtraParam(String key, Object value) {
3360
          if (this.extraParams == null) {
×
3361
            this.extraParams = new HashMap<>();
×
3362
          }
3363
          this.extraParams.put(key, value);
×
3364
          return this;
×
3365
        }
3366

3367
        /**
3368
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3369
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3370
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Konbini#extraParams} for
3371
         * the field documentation.
3372
         */
3373
        public Builder putAllExtraParam(Map<String, Object> map) {
3374
          if (this.extraParams == null) {
×
3375
            this.extraParams = new HashMap<>();
×
3376
          }
3377
          this.extraParams.putAll(map);
×
3378
          return this;
×
3379
        }
3380
      }
3381
    }
3382

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

NEW
3394
      private KrCard(Map<String, Object> extraParams) {
×
NEW
3395
        this.extraParams = extraParams;
×
NEW
3396
      }
×
3397

3398
      public static Builder builder() {
NEW
3399
        return new Builder();
×
3400
      }
3401

NEW
3402
      public static class Builder {
×
3403
        private Map<String, Object> extraParams;
3404

3405
        /** Finalize and obtain parameter instance from this builder. */
3406
        public ConfirmationTokenCreateParams.PaymentMethodData.KrCard build() {
NEW
3407
          return new ConfirmationTokenCreateParams.PaymentMethodData.KrCard(this.extraParams);
×
3408
        }
3409

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

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

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

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

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

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

3462
        /** Finalize and obtain parameter instance from this builder. */
3463
        public ConfirmationTokenCreateParams.PaymentMethodData.Link build() {
3464
          return new ConfirmationTokenCreateParams.PaymentMethodData.Link(this.extraParams);
×
3465
        }
3466

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

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

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

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

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

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

3519
        /** Finalize and obtain parameter instance from this builder. */
3520
        public ConfirmationTokenCreateParams.PaymentMethodData.MbWay build() {
3521
          return new ConfirmationTokenCreateParams.PaymentMethodData.MbWay(this.extraParams);
×
3522
        }
3523

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

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

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

3565
      private Mobilepay(Map<String, Object> extraParams) {
×
3566
        this.extraParams = extraParams;
×
3567
      }
×
3568

3569
      public static Builder builder() {
3570
        return new Builder();
×
3571
      }
3572

3573
      public static class Builder {
×
3574
        private Map<String, Object> extraParams;
3575

3576
        /** Finalize and obtain parameter instance from this builder. */
3577
        public ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay build() {
3578
          return new ConfirmationTokenCreateParams.PaymentMethodData.Mobilepay(this.extraParams);
×
3579
        }
3580

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

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

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

3622
      private Multibanco(Map<String, Object> extraParams) {
×
3623
        this.extraParams = extraParams;
×
3624
      }
×
3625

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

3630
      public static class Builder {
×
3631
        private Map<String, Object> extraParams;
3632

3633
        /** Finalize and obtain parameter instance from this builder. */
3634
        public ConfirmationTokenCreateParams.PaymentMethodData.Multibanco build() {
3635
          return new ConfirmationTokenCreateParams.PaymentMethodData.Multibanco(this.extraParams);
×
3636
        }
3637

3638
        /**
3639
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3640
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3641
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Multibanco#extraParams}
3642
         * for the field documentation.
3643
         */
3644
        public Builder putExtraParam(String key, Object value) {
3645
          if (this.extraParams == null) {
×
3646
            this.extraParams = new HashMap<>();
×
3647
          }
3648
          this.extraParams.put(key, value);
×
3649
          return this;
×
3650
        }
3651

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

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

3679
      /**
3680
       * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3681
       * defaults to {@code card}.
3682
       */
3683
      @SerializedName("funding")
3684
      Funding funding;
3685

NEW
3686
      private NaverPay(Map<String, Object> extraParams, Funding funding) {
×
NEW
3687
        this.extraParams = extraParams;
×
NEW
3688
        this.funding = funding;
×
NEW
3689
      }
×
3690

3691
      public static Builder builder() {
NEW
3692
        return new Builder();
×
3693
      }
3694

NEW
3695
      public static class Builder {
×
3696
        private Map<String, Object> extraParams;
3697

3698
        private Funding funding;
3699

3700
        /** Finalize and obtain parameter instance from this builder. */
3701
        public ConfirmationTokenCreateParams.PaymentMethodData.NaverPay build() {
NEW
3702
          return new ConfirmationTokenCreateParams.PaymentMethodData.NaverPay(
×
3703
              this.extraParams, this.funding);
3704
        }
3705

3706
        /**
3707
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
3708
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3709
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.NaverPay#extraParams} for
3710
         * the field documentation.
3711
         */
3712
        public Builder putExtraParam(String key, Object value) {
NEW
3713
          if (this.extraParams == null) {
×
NEW
3714
            this.extraParams = new HashMap<>();
×
3715
          }
NEW
3716
          this.extraParams.put(key, value);
×
NEW
3717
          return this;
×
3718
        }
3719

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

3734
        /**
3735
         * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
3736
         * defaults to {@code card}.
3737
         */
3738
        public Builder setFunding(
3739
            ConfirmationTokenCreateParams.PaymentMethodData.NaverPay.Funding funding) {
NEW
3740
          this.funding = funding;
×
NEW
3741
          return this;
×
3742
        }
3743
      }
3744

NEW
3745
      public enum Funding implements ApiRequestParams.EnumParam {
×
NEW
3746
        @SerializedName("card")
×
3747
        CARD("card"),
3748

NEW
3749
        @SerializedName("points")
×
3750
        POINTS("points");
3751

3752
        @Getter(onMethod_ = {@Override})
3753
        private final String value;
3754

NEW
3755
        Funding(String value) {
×
NEW
3756
          this.value = value;
×
NEW
3757
        }
×
3758
      }
3759
    }
3760

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

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

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

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

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

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

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

3818
    @Getter
3819
    public static class P24 {
3820
      /** The customer's bank. */
3821
      @SerializedName("bank")
3822
      Bank bank;
3823

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

3833
      private P24(Bank bank, Map<String, Object> extraParams) {
×
3834
        this.bank = bank;
×
3835
        this.extraParams = extraParams;
×
3836
      }
×
3837

3838
      public static Builder builder() {
3839
        return new Builder();
×
3840
      }
3841

3842
      public static class Builder {
×
3843
        private Bank bank;
3844

3845
        private Map<String, Object> extraParams;
3846

3847
        /** Finalize and obtain parameter instance from this builder. */
3848
        public ConfirmationTokenCreateParams.PaymentMethodData.P24 build() {
3849
          return new ConfirmationTokenCreateParams.PaymentMethodData.P24(
×
3850
              this.bank, this.extraParams);
3851
        }
3852

3853
        /** The customer's bank. */
3854
        public Builder setBank(ConfirmationTokenCreateParams.PaymentMethodData.P24.Bank bank) {
3855
          this.bank = bank;
×
3856
          return this;
×
3857
        }
3858

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

3873
        /**
3874
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
3875
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
3876
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.P24#extraParams} for the
3877
         * field documentation.
3878
         */
3879
        public Builder putAllExtraParam(Map<String, Object> map) {
3880
          if (this.extraParams == null) {
×
3881
            this.extraParams = new HashMap<>();
×
3882
          }
3883
          this.extraParams.putAll(map);
×
3884
          return this;
×
3885
        }
3886
      }
3887

3888
      public enum Bank implements ApiRequestParams.EnumParam {
×
3889
        @SerializedName("alior_bank")
×
3890
        ALIOR_BANK("alior_bank"),
3891

3892
        @SerializedName("bank_millennium")
×
3893
        BANK_MILLENNIUM("bank_millennium"),
3894

3895
        @SerializedName("bank_nowy_bfg_sa")
×
3896
        BANK_NOWY_BFG_SA("bank_nowy_bfg_sa"),
3897

3898
        @SerializedName("bank_pekao_sa")
×
3899
        BANK_PEKAO_SA("bank_pekao_sa"),
3900

3901
        @SerializedName("banki_spbdzielcze")
×
3902
        BANKI_SPBDZIELCZE("banki_spbdzielcze"),
3903

3904
        @SerializedName("blik")
×
3905
        BLIK("blik"),
3906

3907
        @SerializedName("bnp_paribas")
×
3908
        BNP_PARIBAS("bnp_paribas"),
3909

3910
        @SerializedName("boz")
×
3911
        BOZ("boz"),
3912

3913
        @SerializedName("citi_handlowy")
×
3914
        CITI_HANDLOWY("citi_handlowy"),
3915

3916
        @SerializedName("credit_agricole")
×
3917
        CREDIT_AGRICOLE("credit_agricole"),
3918

3919
        @SerializedName("envelobank")
×
3920
        ENVELOBANK("envelobank"),
3921

3922
        @SerializedName("etransfer_pocztowy24")
×
3923
        ETRANSFER_POCZTOWY24("etransfer_pocztowy24"),
3924

3925
        @SerializedName("getin_bank")
×
3926
        GETIN_BANK("getin_bank"),
3927

3928
        @SerializedName("ideabank")
×
3929
        IDEABANK("ideabank"),
3930

3931
        @SerializedName("ing")
×
3932
        ING("ing"),
3933

3934
        @SerializedName("inteligo")
×
3935
        INTELIGO("inteligo"),
3936

3937
        @SerializedName("mbank_mtransfer")
×
3938
        MBANK_MTRANSFER("mbank_mtransfer"),
3939

3940
        @SerializedName("nest_przelew")
×
3941
        NEST_PRZELEW("nest_przelew"),
3942

3943
        @SerializedName("noble_pay")
×
3944
        NOBLE_PAY("noble_pay"),
3945

3946
        @SerializedName("pbac_z_ipko")
×
3947
        PBAC_Z_IPKO("pbac_z_ipko"),
3948

3949
        @SerializedName("plus_bank")
×
3950
        PLUS_BANK("plus_bank"),
3951

3952
        @SerializedName("santander_przelew24")
×
3953
        SANTANDER_PRZELEW24("santander_przelew24"),
3954

3955
        @SerializedName("tmobile_usbugi_bankowe")
×
3956
        TMOBILE_USBUGI_BANKOWE("tmobile_usbugi_bankowe"),
3957

3958
        @SerializedName("toyota_bank")
×
3959
        TOYOTA_BANK("toyota_bank"),
3960

3961
        @SerializedName("velobank")
×
3962
        VELOBANK("velobank"),
3963

3964
        @SerializedName("volkswagen_bank")
×
3965
        VOLKSWAGEN_BANK("volkswagen_bank");
3966

3967
        @Getter(onMethod_ = {@Override})
3968
        private final String value;
3969

3970
        Bank(String value) {
×
3971
          this.value = value;
×
3972
        }
×
3973
      }
3974
    }
3975

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

NEW
3987
      private Payco(Map<String, Object> extraParams) {
×
NEW
3988
        this.extraParams = extraParams;
×
NEW
3989
      }
×
3990

3991
      public static Builder builder() {
NEW
3992
        return new Builder();
×
3993
      }
3994

NEW
3995
      public static class Builder {
×
3996
        private Map<String, Object> extraParams;
3997

3998
        /** Finalize and obtain parameter instance from this builder. */
3999
        public ConfirmationTokenCreateParams.PaymentMethodData.Payco build() {
NEW
4000
          return new ConfirmationTokenCreateParams.PaymentMethodData.Payco(this.extraParams);
×
4001
        }
4002

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

4017
        /**
4018
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4019
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4020
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Payco#extraParams} for
4021
         * the field documentation.
4022
         */
4023
        public Builder putAllExtraParam(Map<String, Object> map) {
NEW
4024
          if (this.extraParams == null) {
×
NEW
4025
            this.extraParams = new HashMap<>();
×
4026
          }
NEW
4027
          this.extraParams.putAll(map);
×
NEW
4028
          return this;
×
4029
        }
4030
      }
4031
    }
4032

4033
    @Getter
4034
    public static class Paynow {
4035
      /**
4036
       * Map of extra parameters for custom features not available in this client library. The
4037
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4038
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4039
       * name in this param object. Effectively, this map is flattened to its parent instance.
4040
       */
4041
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4042
      Map<String, Object> extraParams;
4043

4044
      private Paynow(Map<String, Object> extraParams) {
×
4045
        this.extraParams = extraParams;
×
4046
      }
×
4047

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

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

4055
        /** Finalize and obtain parameter instance from this builder. */
4056
        public ConfirmationTokenCreateParams.PaymentMethodData.Paynow build() {
4057
          return new ConfirmationTokenCreateParams.PaymentMethodData.Paynow(this.extraParams);
×
4058
        }
4059

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

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

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

4101
      private Paypal(Map<String, Object> extraParams) {
×
4102
        this.extraParams = extraParams;
×
4103
      }
×
4104

4105
      public static Builder builder() {
4106
        return new Builder();
×
4107
      }
4108

4109
      public static class Builder {
×
4110
        private Map<String, Object> extraParams;
4111

4112
        /** Finalize and obtain parameter instance from this builder. */
4113
        public ConfirmationTokenCreateParams.PaymentMethodData.Paypal build() {
4114
          return new ConfirmationTokenCreateParams.PaymentMethodData.Paypal(this.extraParams);
×
4115
        }
4116

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

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

4147
    @Getter
4148
    public static class Payto {
4149
      /** The account number for the bank account. */
4150
      @SerializedName("account_number")
4151
      String accountNumber;
4152

4153
      /** Bank-State-Branch number of the bank account. */
4154
      @SerializedName("bsb_number")
4155
      String bsbNumber;
4156

4157
      /**
4158
       * Map of extra parameters for custom features not available in this client library. The
4159
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4160
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4161
       * name in this param object. Effectively, this map is flattened to its parent instance.
4162
       */
4163
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4164
      Map<String, Object> extraParams;
4165

4166
      /** The PayID alias for the bank account. */
4167
      @SerializedName("pay_id")
4168
      String payId;
4169

4170
      private Payto(
4171
          String accountNumber, String bsbNumber, Map<String, Object> extraParams, String payId) {
×
4172
        this.accountNumber = accountNumber;
×
4173
        this.bsbNumber = bsbNumber;
×
4174
        this.extraParams = extraParams;
×
4175
        this.payId = payId;
×
4176
      }
×
4177

4178
      public static Builder builder() {
4179
        return new Builder();
×
4180
      }
4181

4182
      public static class Builder {
×
4183
        private String accountNumber;
4184

4185
        private String bsbNumber;
4186

4187
        private Map<String, Object> extraParams;
4188

4189
        private String payId;
4190

4191
        /** Finalize and obtain parameter instance from this builder. */
4192
        public ConfirmationTokenCreateParams.PaymentMethodData.Payto build() {
4193
          return new ConfirmationTokenCreateParams.PaymentMethodData.Payto(
×
4194
              this.accountNumber, this.bsbNumber, this.extraParams, this.payId);
4195
        }
4196

4197
        /** The account number for the bank account. */
4198
        public Builder setAccountNumber(String accountNumber) {
4199
          this.accountNumber = accountNumber;
×
4200
          return this;
×
4201
        }
4202

4203
        /** Bank-State-Branch number of the bank account. */
4204
        public Builder setBsbNumber(String bsbNumber) {
4205
          this.bsbNumber = bsbNumber;
×
4206
          return this;
×
4207
        }
4208

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

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

4237
        /** The PayID alias for the bank account. */
4238
        public Builder setPayId(String payId) {
4239
          this.payId = payId;
×
4240
          return this;
×
4241
        }
4242
      }
4243
    }
4244

4245
    @Getter
4246
    public static class Pix {
4247
      /**
4248
       * Map of extra parameters for custom features not available in this client library. The
4249
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4250
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4251
       * name in this param object. Effectively, this map is flattened to its parent instance.
4252
       */
4253
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4254
      Map<String, Object> extraParams;
4255

4256
      private Pix(Map<String, Object> extraParams) {
×
4257
        this.extraParams = extraParams;
×
4258
      }
×
4259

4260
      public static Builder builder() {
4261
        return new Builder();
×
4262
      }
4263

4264
      public static class Builder {
×
4265
        private Map<String, Object> extraParams;
4266

4267
        /** Finalize and obtain parameter instance from this builder. */
4268
        public ConfirmationTokenCreateParams.PaymentMethodData.Pix build() {
4269
          return new ConfirmationTokenCreateParams.PaymentMethodData.Pix(this.extraParams);
×
4270
        }
4271

4272
        /**
4273
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4274
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4275
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Pix#extraParams} for the
4276
         * field documentation.
4277
         */
4278
        public Builder putExtraParam(String key, Object value) {
4279
          if (this.extraParams == null) {
×
4280
            this.extraParams = new HashMap<>();
×
4281
          }
4282
          this.extraParams.put(key, value);
×
4283
          return this;
×
4284
        }
4285

4286
        /**
4287
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4288
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4289
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Pix#extraParams} for the
4290
         * field documentation.
4291
         */
4292
        public Builder putAllExtraParam(Map<String, Object> map) {
4293
          if (this.extraParams == null) {
×
4294
            this.extraParams = new HashMap<>();
×
4295
          }
4296
          this.extraParams.putAll(map);
×
4297
          return this;
×
4298
        }
4299
      }
4300
    }
4301

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

4313
      private Promptpay(Map<String, Object> extraParams) {
×
4314
        this.extraParams = extraParams;
×
4315
      }
×
4316

4317
      public static Builder builder() {
4318
        return new Builder();
×
4319
      }
4320

4321
      public static class Builder {
×
4322
        private Map<String, Object> extraParams;
4323

4324
        /** Finalize and obtain parameter instance from this builder. */
4325
        public ConfirmationTokenCreateParams.PaymentMethodData.Promptpay build() {
4326
          return new ConfirmationTokenCreateParams.PaymentMethodData.Promptpay(this.extraParams);
×
4327
        }
4328

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

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

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

4370
      /**
4371
       * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot of
4372
       * the browser metadata and device details that help Radar make more accurate predictions on
4373
       * your payments.
4374
       */
4375
      @SerializedName("session")
4376
      String session;
4377

4378
      private RadarOptions(Map<String, Object> extraParams, String session) {
×
4379
        this.extraParams = extraParams;
×
4380
        this.session = session;
×
4381
      }
×
4382

4383
      public static Builder builder() {
4384
        return new Builder();
×
4385
      }
4386

4387
      public static class Builder {
×
4388
        private Map<String, Object> extraParams;
4389

4390
        private String session;
4391

4392
        /** Finalize and obtain parameter instance from this builder. */
4393
        public ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions build() {
4394
          return new ConfirmationTokenCreateParams.PaymentMethodData.RadarOptions(
×
4395
              this.extraParams, this.session);
4396
        }
4397

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

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

4426
        /**
4427
         * A <a href="https://stripe.com/docs/radar/radar-session">Radar Session</a> is a snapshot
4428
         * of the browser metadata and device details that help Radar make more accurate predictions
4429
         * on your payments.
4430
         */
4431
        public Builder setSession(String session) {
4432
          this.session = session;
×
4433
          return this;
×
4434
        }
4435
      }
4436
    }
4437

4438
    @Getter
4439
    public static class Rechnung {
4440
      /** <strong>Required.</strong> Customer's date of birth */
4441
      @SerializedName("dob")
4442
      Dob dob;
4443

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

4453
      private Rechnung(Dob dob, Map<String, Object> extraParams) {
×
4454
        this.dob = dob;
×
4455
        this.extraParams = extraParams;
×
4456
      }
×
4457

4458
      public static Builder builder() {
4459
        return new Builder();
×
4460
      }
4461

4462
      public static class Builder {
×
4463
        private Dob dob;
4464

4465
        private Map<String, Object> extraParams;
4466

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

4473
        /** <strong>Required.</strong> Customer's date of birth */
4474
        public Builder setDob(ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob dob) {
4475
          this.dob = dob;
×
4476
          return this;
×
4477
        }
4478

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

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

4508
      @Getter
4509
      public static class Dob {
4510
        /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4511
        @SerializedName("day")
4512
        Long day;
4513

4514
        /**
4515
         * Map of extra parameters for custom features not available in this client library. The
4516
         * content in this map is not serialized under this field's {@code @SerializedName} value.
4517
         * Instead, each key/value pair is serialized as if the key is a root-level field
4518
         * (serialized) name in this param object. Effectively, this map is flattened to its parent
4519
         * instance.
4520
         */
4521
        @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4522
        Map<String, Object> extraParams;
4523

4524
        /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4525
        @SerializedName("month")
4526
        Long month;
4527

4528
        /** <strong>Required.</strong> The four-digit year of birth. */
4529
        @SerializedName("year")
4530
        Long year;
4531

4532
        private Dob(Long day, Map<String, Object> extraParams, Long month, Long year) {
×
4533
          this.day = day;
×
4534
          this.extraParams = extraParams;
×
4535
          this.month = month;
×
4536
          this.year = year;
×
4537
        }
×
4538

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

4543
        public static class Builder {
×
4544
          private Long day;
4545

4546
          private Map<String, Object> extraParams;
4547

4548
          private Long month;
4549

4550
          private Long year;
4551

4552
          /** Finalize and obtain parameter instance from this builder. */
4553
          public ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob build() {
4554
            return new ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob(
×
4555
                this.day, this.extraParams, this.month, this.year);
4556
          }
4557

4558
          /** <strong>Required.</strong> The day of birth, between 1 and 31. */
4559
          public Builder setDay(Long day) {
4560
            this.day = day;
×
4561
            return this;
×
4562
          }
4563

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

4579
          /**
4580
           * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
4581
           * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4582
           * map. See {@link
4583
           * ConfirmationTokenCreateParams.PaymentMethodData.Rechnung.Dob#extraParams} for the field
4584
           * documentation.
4585
           */
4586
          public Builder putAllExtraParam(Map<String, Object> map) {
4587
            if (this.extraParams == null) {
×
4588
              this.extraParams = new HashMap<>();
×
4589
            }
4590
            this.extraParams.putAll(map);
×
4591
            return this;
×
4592
          }
4593

4594
          /** <strong>Required.</strong> The month of birth, between 1 and 12. */
4595
          public Builder setMonth(Long month) {
4596
            this.month = month;
×
4597
            return this;
×
4598
          }
4599

4600
          /** <strong>Required.</strong> The four-digit year of birth. */
4601
          public Builder setYear(Long year) {
4602
            this.year = year;
×
4603
            return this;
×
4604
          }
4605
        }
4606
      }
4607
    }
4608

4609
    @Getter
4610
    public static class RevolutPay {
4611
      /**
4612
       * Map of extra parameters for custom features not available in this client library. The
4613
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4614
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4615
       * name in this param object. Effectively, this map is flattened to its parent instance.
4616
       */
4617
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4618
      Map<String, Object> extraParams;
4619

4620
      private RevolutPay(Map<String, Object> extraParams) {
×
4621
        this.extraParams = extraParams;
×
4622
      }
×
4623

4624
      public static Builder builder() {
4625
        return new Builder();
×
4626
      }
4627

4628
      public static class Builder {
×
4629
        private Map<String, Object> extraParams;
4630

4631
        /** Finalize and obtain parameter instance from this builder. */
4632
        public ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay build() {
4633
          return new ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay(this.extraParams);
×
4634
        }
4635

4636
        /**
4637
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4638
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4639
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.RevolutPay#extraParams}
4640
         * for the field documentation.
4641
         */
4642
        public Builder putExtraParam(String key, Object value) {
4643
          if (this.extraParams == null) {
×
4644
            this.extraParams = new HashMap<>();
×
4645
          }
4646
          this.extraParams.put(key, value);
×
4647
          return this;
×
4648
        }
4649

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

4666
    @Getter
4667
    public static class SamsungPay {
4668
      /**
4669
       * Map of extra parameters for custom features not available in this client library. The
4670
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4671
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4672
       * name in this param object. Effectively, this map is flattened to its parent instance.
4673
       */
4674
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4675
      Map<String, Object> extraParams;
4676

NEW
4677
      private SamsungPay(Map<String, Object> extraParams) {
×
NEW
4678
        this.extraParams = extraParams;
×
NEW
4679
      }
×
4680

4681
      public static Builder builder() {
NEW
4682
        return new Builder();
×
4683
      }
4684

NEW
4685
      public static class Builder {
×
4686
        private Map<String, Object> extraParams;
4687

4688
        /** Finalize and obtain parameter instance from this builder. */
4689
        public ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay build() {
NEW
4690
          return new ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay(this.extraParams);
×
4691
        }
4692

4693
        /**
4694
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4695
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4696
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.SamsungPay#extraParams}
4697
         * for the field documentation.
4698
         */
4699
        public Builder putExtraParam(String key, Object value) {
NEW
4700
          if (this.extraParams == null) {
×
NEW
4701
            this.extraParams = new HashMap<>();
×
4702
          }
NEW
4703
          this.extraParams.put(key, value);
×
NEW
4704
          return this;
×
4705
        }
4706

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

4723
    @Getter
4724
    public static class SepaDebit {
4725
      /**
4726
       * Map of extra parameters for custom features not available in this client library. The
4727
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4728
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4729
       * name in this param object. Effectively, this map is flattened to its parent instance.
4730
       */
4731
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4732
      Map<String, Object> extraParams;
4733

4734
      /** <strong>Required.</strong> IBAN of the bank account. */
4735
      @SerializedName("iban")
4736
      String iban;
4737

4738
      private SepaDebit(Map<String, Object> extraParams, String iban) {
×
4739
        this.extraParams = extraParams;
×
4740
        this.iban = iban;
×
4741
      }
×
4742

4743
      public static Builder builder() {
4744
        return new Builder();
×
4745
      }
4746

4747
      public static class Builder {
×
4748
        private Map<String, Object> extraParams;
4749

4750
        private String iban;
4751

4752
        /** Finalize and obtain parameter instance from this builder. */
4753
        public ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit build() {
4754
          return new ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit(
×
4755
              this.extraParams, this.iban);
4756
        }
4757

4758
        /**
4759
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4760
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4761
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.SepaDebit#extraParams}
4762
         * for the field documentation.
4763
         */
4764
        public Builder putExtraParam(String key, Object value) {
4765
          if (this.extraParams == null) {
×
4766
            this.extraParams = new HashMap<>();
×
4767
          }
4768
          this.extraParams.put(key, value);
×
4769
          return this;
×
4770
        }
4771

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

4786
        /** <strong>Required.</strong> IBAN of the bank account. */
4787
        public Builder setIban(String iban) {
4788
          this.iban = iban;
×
4789
          return this;
×
4790
        }
4791
      }
4792
    }
4793

4794
    @Getter
4795
    public static class Sofort {
4796
      /**
4797
       * <strong>Required.</strong> Two-letter ISO code representing the country the bank account is
4798
       * located in.
4799
       */
4800
      @SerializedName("country")
4801
      Country country;
4802

4803
      /**
4804
       * Map of extra parameters for custom features not available in this client library. The
4805
       * content in this map is not serialized under this field's {@code @SerializedName} value.
4806
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
4807
       * name in this param object. Effectively, this map is flattened to its parent instance.
4808
       */
4809
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
4810
      Map<String, Object> extraParams;
4811

4812
      private Sofort(Country country, Map<String, Object> extraParams) {
×
4813
        this.country = country;
×
4814
        this.extraParams = extraParams;
×
4815
      }
×
4816

4817
      public static Builder builder() {
4818
        return new Builder();
×
4819
      }
4820

4821
      public static class Builder {
×
4822
        private Country country;
4823

4824
        private Map<String, Object> extraParams;
4825

4826
        /** Finalize and obtain parameter instance from this builder. */
4827
        public ConfirmationTokenCreateParams.PaymentMethodData.Sofort build() {
4828
          return new ConfirmationTokenCreateParams.PaymentMethodData.Sofort(
×
4829
              this.country, this.extraParams);
4830
        }
4831

4832
        /**
4833
         * <strong>Required.</strong> Two-letter ISO code representing the country the bank account
4834
         * is located in.
4835
         */
4836
        public Builder setCountry(
4837
            ConfirmationTokenCreateParams.PaymentMethodData.Sofort.Country country) {
4838
          this.country = country;
×
4839
          return this;
×
4840
        }
4841

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

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

4871
      public enum Country implements ApiRequestParams.EnumParam {
×
4872
        @SerializedName("AT")
×
4873
        AT("AT"),
4874

4875
        @SerializedName("BE")
×
4876
        BE("BE"),
4877

4878
        @SerializedName("DE")
×
4879
        DE("DE"),
4880

4881
        @SerializedName("ES")
×
4882
        ES("ES"),
4883

4884
        @SerializedName("IT")
×
4885
        IT("IT"),
4886

4887
        @SerializedName("NL")
×
4888
        NL("NL");
4889

4890
        @Getter(onMethod_ = {@Override})
4891
        private final String value;
4892

4893
        Country(String value) {
×
4894
          this.value = value;
×
4895
        }
×
4896
      }
4897
    }
4898

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

4910
      private Swish(Map<String, Object> extraParams) {
×
4911
        this.extraParams = extraParams;
×
4912
      }
×
4913

4914
      public static Builder builder() {
4915
        return new Builder();
×
4916
      }
4917

4918
      public static class Builder {
×
4919
        private Map<String, Object> extraParams;
4920

4921
        /** Finalize and obtain parameter instance from this builder. */
4922
        public ConfirmationTokenCreateParams.PaymentMethodData.Swish build() {
4923
          return new ConfirmationTokenCreateParams.PaymentMethodData.Swish(this.extraParams);
×
4924
        }
4925

4926
        /**
4927
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4928
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4929
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Swish#extraParams} for
4930
         * the field documentation.
4931
         */
4932
        public Builder putExtraParam(String key, Object value) {
4933
          if (this.extraParams == null) {
×
4934
            this.extraParams = new HashMap<>();
×
4935
          }
4936
          this.extraParams.put(key, value);
×
4937
          return this;
×
4938
        }
4939

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

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

4967
      private Twint(Map<String, Object> extraParams) {
×
4968
        this.extraParams = extraParams;
×
4969
      }
×
4970

4971
      public static Builder builder() {
4972
        return new Builder();
×
4973
      }
4974

4975
      public static class Builder {
×
4976
        private Map<String, Object> extraParams;
4977

4978
        /** Finalize and obtain parameter instance from this builder. */
4979
        public ConfirmationTokenCreateParams.PaymentMethodData.Twint build() {
4980
          return new ConfirmationTokenCreateParams.PaymentMethodData.Twint(this.extraParams);
×
4981
        }
4982

4983
        /**
4984
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
4985
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
4986
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.Twint#extraParams} for
4987
         * the field documentation.
4988
         */
4989
        public Builder putExtraParam(String key, Object value) {
4990
          if (this.extraParams == null) {
×
4991
            this.extraParams = new HashMap<>();
×
4992
          }
4993
          this.extraParams.put(key, value);
×
4994
          return this;
×
4995
        }
4996

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

5013
    @Getter
5014
    public static class UsBankAccount {
5015
      /** Account holder type: individual or company. */
5016
      @SerializedName("account_holder_type")
5017
      AccountHolderType accountHolderType;
5018

5019
      /** Account number of the bank account. */
5020
      @SerializedName("account_number")
5021
      String accountNumber;
5022

5023
      /** Account type: checkings or savings. Defaults to checking if omitted. */
5024
      @SerializedName("account_type")
5025
      AccountType accountType;
5026

5027
      /**
5028
       * Map of extra parameters for custom features not available in this client library. The
5029
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5030
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5031
       * name in this param object. Effectively, this map is flattened to its parent instance.
5032
       */
5033
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5034
      Map<String, Object> extraParams;
5035

5036
      /** The ID of a Financial Connections Account to use as a payment method. */
5037
      @SerializedName("financial_connections_account")
5038
      String financialConnectionsAccount;
5039

5040
      /** Routing number of the bank account. */
5041
      @SerializedName("routing_number")
5042
      String routingNumber;
5043

5044
      private UsBankAccount(
5045
          AccountHolderType accountHolderType,
5046
          String accountNumber,
5047
          AccountType accountType,
5048
          Map<String, Object> extraParams,
5049
          String financialConnectionsAccount,
5050
          String routingNumber) {
×
5051
        this.accountHolderType = accountHolderType;
×
5052
        this.accountNumber = accountNumber;
×
5053
        this.accountType = accountType;
×
5054
        this.extraParams = extraParams;
×
5055
        this.financialConnectionsAccount = financialConnectionsAccount;
×
5056
        this.routingNumber = routingNumber;
×
5057
      }
×
5058

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

5063
      public static class Builder {
×
5064
        private AccountHolderType accountHolderType;
5065

5066
        private String accountNumber;
5067

5068
        private AccountType accountType;
5069

5070
        private Map<String, Object> extraParams;
5071

5072
        private String financialConnectionsAccount;
5073

5074
        private String routingNumber;
5075

5076
        /** Finalize and obtain parameter instance from this builder. */
5077
        public ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount build() {
5078
          return new ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount(
×
5079
              this.accountHolderType,
5080
              this.accountNumber,
5081
              this.accountType,
5082
              this.extraParams,
5083
              this.financialConnectionsAccount,
5084
              this.routingNumber);
5085
        }
5086

5087
        /** Account holder type: individual or company. */
5088
        public Builder setAccountHolderType(
5089
            ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount.AccountHolderType
5090
                accountHolderType) {
5091
          this.accountHolderType = accountHolderType;
×
5092
          return this;
×
5093
        }
5094

5095
        /** Account number of the bank account. */
5096
        public Builder setAccountNumber(String accountNumber) {
5097
          this.accountNumber = accountNumber;
×
5098
          return this;
×
5099
        }
5100

5101
        /** Account type: checkings or savings. Defaults to checking if omitted. */
5102
        public Builder setAccountType(
5103
            ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount.AccountType accountType) {
5104
          this.accountType = accountType;
×
5105
          return this;
×
5106
        }
5107

5108
        /**
5109
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
5110
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5111
         * map. See {@link
5112
         * ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount#extraParams} for the field
5113
         * documentation.
5114
         */
5115
        public Builder putExtraParam(String key, Object value) {
5116
          if (this.extraParams == null) {
×
5117
            this.extraParams = new HashMap<>();
×
5118
          }
5119
          this.extraParams.put(key, value);
×
5120
          return this;
×
5121
        }
5122

5123
        /**
5124
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5125
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5126
         * map. See {@link
5127
         * ConfirmationTokenCreateParams.PaymentMethodData.UsBankAccount#extraParams} for the field
5128
         * documentation.
5129
         */
5130
        public Builder putAllExtraParam(Map<String, Object> map) {
5131
          if (this.extraParams == null) {
×
5132
            this.extraParams = new HashMap<>();
×
5133
          }
5134
          this.extraParams.putAll(map);
×
5135
          return this;
×
5136
        }
5137

5138
        /** The ID of a Financial Connections Account to use as a payment method. */
5139
        public Builder setFinancialConnectionsAccount(String financialConnectionsAccount) {
5140
          this.financialConnectionsAccount = financialConnectionsAccount;
×
5141
          return this;
×
5142
        }
5143

5144
        /** Routing number of the bank account. */
5145
        public Builder setRoutingNumber(String routingNumber) {
5146
          this.routingNumber = routingNumber;
×
5147
          return this;
×
5148
        }
5149
      }
5150

5151
      public enum AccountHolderType implements ApiRequestParams.EnumParam {
×
5152
        @SerializedName("company")
×
5153
        COMPANY("company"),
5154

5155
        @SerializedName("individual")
×
5156
        INDIVIDUAL("individual");
5157

5158
        @Getter(onMethod_ = {@Override})
5159
        private final String value;
5160

5161
        AccountHolderType(String value) {
×
5162
          this.value = value;
×
5163
        }
×
5164
      }
5165

5166
      public enum AccountType implements ApiRequestParams.EnumParam {
×
5167
        @SerializedName("checking")
×
5168
        CHECKING("checking"),
5169

5170
        @SerializedName("savings")
×
5171
        SAVINGS("savings");
5172

5173
        @Getter(onMethod_ = {@Override})
5174
        private final String value;
5175

5176
        AccountType(String value) {
×
5177
          this.value = value;
×
5178
        }
×
5179
      }
5180
    }
5181

5182
    @Getter
5183
    public static class WechatPay {
5184
      /**
5185
       * Map of extra parameters for custom features not available in this client library. The
5186
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5187
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5188
       * name in this param object. Effectively, this map is flattened to its parent instance.
5189
       */
5190
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5191
      Map<String, Object> extraParams;
5192

5193
      private WechatPay(Map<String, Object> extraParams) {
×
5194
        this.extraParams = extraParams;
×
5195
      }
×
5196

5197
      public static Builder builder() {
5198
        return new Builder();
×
5199
      }
5200

5201
      public static class Builder {
×
5202
        private Map<String, Object> extraParams;
5203

5204
        /** Finalize and obtain parameter instance from this builder. */
5205
        public ConfirmationTokenCreateParams.PaymentMethodData.WechatPay build() {
5206
          return new ConfirmationTokenCreateParams.PaymentMethodData.WechatPay(this.extraParams);
×
5207
        }
5208

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

5223
        /**
5224
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5225
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5226
         * map. See {@link ConfirmationTokenCreateParams.PaymentMethodData.WechatPay#extraParams}
5227
         * for the field documentation.
5228
         */
5229
        public Builder putAllExtraParam(Map<String, Object> map) {
5230
          if (this.extraParams == null) {
×
5231
            this.extraParams = new HashMap<>();
×
5232
          }
5233
          this.extraParams.putAll(map);
×
5234
          return this;
×
5235
        }
5236
      }
5237
    }
5238

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

5250
      private Zip(Map<String, Object> extraParams) {
×
5251
        this.extraParams = extraParams;
×
5252
      }
×
5253

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

5258
      public static class Builder {
×
5259
        private Map<String, Object> extraParams;
5260

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

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

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

5296
    public enum AllowRedisplay implements ApiRequestParams.EnumParam {
×
5297
      @SerializedName("always")
×
5298
      ALWAYS("always"),
5299

5300
      @SerializedName("limited")
×
5301
      LIMITED("limited"),
5302

5303
      @SerializedName("unspecified")
×
5304
      UNSPECIFIED("unspecified");
5305

5306
      @Getter(onMethod_ = {@Override})
5307
      private final String value;
5308

5309
      AllowRedisplay(String value) {
×
5310
        this.value = value;
×
5311
      }
×
5312
    }
5313

5314
    public enum Type implements ApiRequestParams.EnumParam {
×
5315
      @SerializedName("acss_debit")
×
5316
      ACSS_DEBIT("acss_debit"),
5317

5318
      @SerializedName("affirm")
×
5319
      AFFIRM("affirm"),
5320

5321
      @SerializedName("afterpay_clearpay")
×
5322
      AFTERPAY_CLEARPAY("afterpay_clearpay"),
5323

5324
      @SerializedName("alipay")
×
5325
      ALIPAY("alipay"),
5326

5327
      @SerializedName("amazon_pay")
×
5328
      AMAZON_PAY("amazon_pay"),
5329

5330
      @SerializedName("au_becs_debit")
×
5331
      AU_BECS_DEBIT("au_becs_debit"),
5332

5333
      @SerializedName("bacs_debit")
×
5334
      BACS_DEBIT("bacs_debit"),
5335

5336
      @SerializedName("bancontact")
×
5337
      BANCONTACT("bancontact"),
5338

5339
      @SerializedName("blik")
×
5340
      BLIK("blik"),
5341

5342
      @SerializedName("boleto")
×
5343
      BOLETO("boleto"),
5344

5345
      @SerializedName("cashapp")
×
5346
      CASHAPP("cashapp"),
5347

5348
      @SerializedName("customer_balance")
×
5349
      CUSTOMER_BALANCE("customer_balance"),
5350

5351
      @SerializedName("eps")
×
5352
      EPS("eps"),
5353

5354
      @SerializedName("fpx")
×
5355
      FPX("fpx"),
5356

5357
      @SerializedName("giropay")
×
5358
      GIROPAY("giropay"),
5359

5360
      @SerializedName("grabpay")
×
5361
      GRABPAY("grabpay"),
5362

5363
      @SerializedName("ideal")
×
5364
      IDEAL("ideal"),
5365

NEW
5366
      @SerializedName("kakao_pay")
×
5367
      KAKAO_PAY("kakao_pay"),
5368

UNCOV
5369
      @SerializedName("klarna")
×
5370
      KLARNA("klarna"),
5371

5372
      @SerializedName("konbini")
×
5373
      KONBINI("konbini"),
5374

NEW
5375
      @SerializedName("kr_card")
×
5376
      KR_CARD("kr_card"),
5377

UNCOV
5378
      @SerializedName("link")
×
5379
      LINK("link"),
5380

5381
      @SerializedName("mb_way")
×
5382
      MB_WAY("mb_way"),
5383

5384
      @SerializedName("mobilepay")
×
5385
      MOBILEPAY("mobilepay"),
5386

5387
      @SerializedName("multibanco")
×
5388
      MULTIBANCO("multibanco"),
5389

NEW
5390
      @SerializedName("naver_pay")
×
5391
      NAVER_PAY("naver_pay"),
5392

UNCOV
5393
      @SerializedName("oxxo")
×
5394
      OXXO("oxxo"),
5395

5396
      @SerializedName("p24")
×
5397
      P24("p24"),
5398

NEW
5399
      @SerializedName("payco")
×
5400
      PAYCO("payco"),
5401

UNCOV
5402
      @SerializedName("paynow")
×
5403
      PAYNOW("paynow"),
5404

5405
      @SerializedName("paypal")
×
5406
      PAYPAL("paypal"),
5407

5408
      @SerializedName("payto")
×
5409
      PAYTO("payto"),
5410

5411
      @SerializedName("pix")
×
5412
      PIX("pix"),
5413

5414
      @SerializedName("promptpay")
×
5415
      PROMPTPAY("promptpay"),
5416

5417
      @SerializedName("rechnung")
×
5418
      RECHNUNG("rechnung"),
5419

5420
      @SerializedName("revolut_pay")
×
5421
      REVOLUT_PAY("revolut_pay"),
5422

NEW
5423
      @SerializedName("samsung_pay")
×
5424
      SAMSUNG_PAY("samsung_pay"),
5425

UNCOV
5426
      @SerializedName("sepa_debit")
×
5427
      SEPA_DEBIT("sepa_debit"),
5428

5429
      @SerializedName("sofort")
×
5430
      SOFORT("sofort"),
5431

5432
      @SerializedName("swish")
×
5433
      SWISH("swish"),
5434

5435
      @SerializedName("twint")
×
5436
      TWINT("twint"),
5437

5438
      @SerializedName("us_bank_account")
×
5439
      US_BANK_ACCOUNT("us_bank_account"),
5440

5441
      @SerializedName("wechat_pay")
×
5442
      WECHAT_PAY("wechat_pay"),
5443

5444
      @SerializedName("zip")
×
5445
      ZIP("zip");
5446

5447
      @Getter(onMethod_ = {@Override})
5448
      private final String value;
5449

5450
      Type(String value) {
×
5451
        this.value = value;
×
5452
      }
×
5453
    }
5454
  }
5455

5456
  @Getter
5457
  public static class Shipping {
5458
    /** <strong>Required.</strong> Shipping address */
5459
    @SerializedName("address")
5460
    Address address;
5461

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

5471
    /** <strong>Required.</strong> Recipient name. */
5472
    @SerializedName("name")
5473
    String name;
5474

5475
    /** Recipient phone (including extension). */
5476
    @SerializedName("phone")
5477
    Object phone;
5478

5479
    private Shipping(Address address, Map<String, Object> extraParams, String name, Object phone) {
×
5480
      this.address = address;
×
5481
      this.extraParams = extraParams;
×
5482
      this.name = name;
×
5483
      this.phone = phone;
×
5484
    }
×
5485

5486
    public static Builder builder() {
5487
      return new Builder();
×
5488
    }
5489

5490
    public static class Builder {
×
5491
      private Address address;
5492

5493
      private Map<String, Object> extraParams;
5494

5495
      private String name;
5496

5497
      private Object phone;
5498

5499
      /** Finalize and obtain parameter instance from this builder. */
5500
      public ConfirmationTokenCreateParams.Shipping build() {
5501
        return new ConfirmationTokenCreateParams.Shipping(
×
5502
            this.address, this.extraParams, this.name, this.phone);
5503
      }
5504

5505
      /** <strong>Required.</strong> Shipping address */
5506
      public Builder setAddress(ConfirmationTokenCreateParams.Shipping.Address address) {
5507
        this.address = address;
×
5508
        return this;
×
5509
      }
5510

5511
      /**
5512
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
5513
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
5514
       * ConfirmationTokenCreateParams.Shipping#extraParams} for the field documentation.
5515
       */
5516
      public Builder putExtraParam(String key, Object value) {
5517
        if (this.extraParams == null) {
×
5518
          this.extraParams = new HashMap<>();
×
5519
        }
5520
        this.extraParams.put(key, value);
×
5521
        return this;
×
5522
      }
5523

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

5537
      /** <strong>Required.</strong> Recipient name. */
5538
      public Builder setName(String name) {
5539
        this.name = name;
×
5540
        return this;
×
5541
      }
5542

5543
      /** Recipient phone (including extension). */
5544
      public Builder setPhone(String phone) {
5545
        this.phone = phone;
×
5546
        return this;
×
5547
      }
5548

5549
      /** Recipient phone (including extension). */
5550
      public Builder setPhone(EmptyParam phone) {
5551
        this.phone = phone;
×
5552
        return this;
×
5553
      }
5554
    }
5555

5556
    @Getter
5557
    public static class Address {
5558
      /** City, district, suburb, town, or village. */
5559
      @SerializedName("city")
5560
      String city;
5561

5562
      /**
5563
       * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
5564
       * 3166-1 alpha-2</a>).
5565
       */
5566
      @SerializedName("country")
5567
      String country;
5568

5569
      /**
5570
       * Map of extra parameters for custom features not available in this client library. The
5571
       * content in this map is not serialized under this field's {@code @SerializedName} value.
5572
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
5573
       * name in this param object. Effectively, this map is flattened to its parent instance.
5574
       */
5575
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
5576
      Map<String, Object> extraParams;
5577

5578
      /** Address line 1 (e.g., street, PO Box, or company name). */
5579
      @SerializedName("line1")
5580
      String line1;
5581

5582
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
5583
      @SerializedName("line2")
5584
      String line2;
5585

5586
      /** ZIP or postal code. */
5587
      @SerializedName("postal_code")
5588
      String postalCode;
5589

5590
      /** State, county, province, or region. */
5591
      @SerializedName("state")
5592
      String state;
5593

5594
      private Address(
5595
          String city,
5596
          String country,
5597
          Map<String, Object> extraParams,
5598
          String line1,
5599
          String line2,
5600
          String postalCode,
5601
          String state) {
×
5602
        this.city = city;
×
5603
        this.country = country;
×
5604
        this.extraParams = extraParams;
×
5605
        this.line1 = line1;
×
5606
        this.line2 = line2;
×
5607
        this.postalCode = postalCode;
×
5608
        this.state = state;
×
5609
      }
×
5610

5611
      public static Builder builder() {
5612
        return new Builder();
×
5613
      }
5614

5615
      public static class Builder {
×
5616
        private String city;
5617

5618
        private String country;
5619

5620
        private Map<String, Object> extraParams;
5621

5622
        private String line1;
5623

5624
        private String line2;
5625

5626
        private String postalCode;
5627

5628
        private String state;
5629

5630
        /** Finalize and obtain parameter instance from this builder. */
5631
        public ConfirmationTokenCreateParams.Shipping.Address build() {
5632
          return new ConfirmationTokenCreateParams.Shipping.Address(
×
5633
              this.city,
5634
              this.country,
5635
              this.extraParams,
5636
              this.line1,
5637
              this.line2,
5638
              this.postalCode,
5639
              this.state);
5640
        }
5641

5642
        /** City, district, suburb, town, or village. */
5643
        public Builder setCity(String city) {
5644
          this.city = city;
×
5645
          return this;
×
5646
        }
5647

5648
        /**
5649
         * Two-letter country code (<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO
5650
         * 3166-1 alpha-2</a>).
5651
         */
5652
        public Builder setCountry(String country) {
5653
          this.country = country;
×
5654
          return this;
×
5655
        }
5656

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

5671
        /**
5672
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
5673
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
5674
         * map. See {@link ConfirmationTokenCreateParams.Shipping.Address#extraParams} for the field
5675
         * documentation.
5676
         */
5677
        public Builder putAllExtraParam(Map<String, Object> map) {
5678
          if (this.extraParams == null) {
×
5679
            this.extraParams = new HashMap<>();
×
5680
          }
5681
          this.extraParams.putAll(map);
×
5682
          return this;
×
5683
        }
5684

5685
        /** Address line 1 (e.g., street, PO Box, or company name). */
5686
        public Builder setLine1(String line1) {
5687
          this.line1 = line1;
×
5688
          return this;
×
5689
        }
5690

5691
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
5692
        public Builder setLine2(String line2) {
5693
          this.line2 = line2;
×
5694
          return this;
×
5695
        }
5696

5697
        /** ZIP or postal code. */
5698
        public Builder setPostalCode(String postalCode) {
5699
          this.postalCode = postalCode;
×
5700
          return this;
×
5701
        }
5702

5703
        /** State, county, province, or region. */
5704
        public Builder setState(String state) {
5705
          this.state = state;
×
5706
          return this;
×
5707
        }
5708
      }
5709
    }
5710
  }
5711

5712
  public enum SetupFutureUsage implements ApiRequestParams.EnumParam {
×
5713
    @SerializedName("off_session")
×
5714
    OFF_SESSION("off_session"),
5715

5716
    @SerializedName("on_session")
×
5717
    ON_SESSION("on_session");
5718

5719
    @Getter(onMethod_ = {@Override})
5720
    private final String value;
5721

5722
    SetupFutureUsage(String value) {
×
5723
      this.value = value;
×
5724
    }
×
5725
  }
5726
}
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