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

stripe / stripe-java / #16725

08 Jan 2025 03:19PM UTC coverage: 12.341% (-0.04%) from 12.384%
#16725

Pull #1932

github

web-flow
Merge 1890010d3 into 9aeb03b42
Pull Request #1932: Update generated code for beta

29 of 1339 new or added lines in 25 files covered. (2.17%)

45 existing lines in 12 files now uncovered.

18905 of 153189 relevant lines covered (12.34%)

0.12 hits per line

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

6.31
/src/main/java/com/stripe/param/CustomerCreateParams.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 CustomerCreateParams extends ApiRequestParams {
15
  /** The customer's address. */
16
  @SerializedName("address")
17
  Object address;
18

19
  /**
20
   * An integer amount in cents (or local equivalent) that represents the customer's current
21
   * balance, which affect the customer's future invoices. A negative amount represents a credit
22
   * that decreases the amount due on an invoice; a positive amount increases the amount due on an
23
   * invoice.
24
   */
25
  @SerializedName("balance")
26
  Long balance;
27

28
  /** Balance information and default balance settings for this customer. */
29
  @SerializedName("cash_balance")
30
  CashBalance cashBalance;
31

32
  @SerializedName("coupon")
33
  String coupon;
34

35
  /**
36
   * An arbitrary string that you can attach to a customer object. It is displayed alongside the
37
   * customer in the dashboard.
38
   */
39
  @SerializedName("description")
40
  String description;
41

42
  /**
43
   * Customer's email address. It's displayed alongside the customer in your dashboard and can be
44
   * useful for searching and tracking. This may be up to <em>512 characters</em>.
45
   */
46
  @SerializedName("email")
47
  String email;
48

49
  /** Specifies which fields in the response should be expanded. */
50
  @SerializedName("expand")
51
  List<String> expand;
52

53
  /**
54
   * Map of extra parameters for custom features not available in this client library. The content
55
   * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
56
   * key/value pair is serialized as if the key is a root-level field (serialized) name in this
57
   * param object. Effectively, this map is flattened to its parent instance.
58
   */
59
  @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
60
  Map<String, Object> extraParams;
61

62
  /**
63
   * The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase
64
   * letters or numbers.
65
   */
66
  @SerializedName("invoice_prefix")
67
  String invoicePrefix;
68

69
  /** Default invoice settings for this customer. */
70
  @SerializedName("invoice_settings")
71
  InvoiceSettings invoiceSettings;
72

73
  /**
74
   * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
75
   * to an object. This can be useful for storing additional information about the object in a
76
   * structured format. Individual keys can be unset by posting an empty value to them. All keys can
77
   * be unset by posting an empty value to {@code metadata}.
78
   */
79
  @SerializedName("metadata")
80
  Object metadata;
81

82
  /** The customer's full name or business name. */
83
  @SerializedName("name")
84
  String name;
85

86
  /** The sequence to be used on the customer's next invoice. Defaults to 1. */
87
  @SerializedName("next_invoice_sequence")
88
  Long nextInvoiceSequence;
89

90
  @SerializedName("payment_method")
91
  String paymentMethod;
92

93
  /** The customer's phone number. */
94
  @SerializedName("phone")
95
  String phone;
96

97
  /** Customer's preferred languages, ordered by preference. */
98
  @SerializedName("preferred_locales")
99
  List<String> preferredLocales;
100

101
  /**
102
   * The ID of a promotion code to apply to the customer. The customer will have a discount applied
103
   * on all recurring payments. Charges you create through the API will not have the discount.
104
   */
105
  @SerializedName("promotion_code")
106
  String promotionCode;
107

108
  /** The customer's shipping information. Appears on invoices emailed to this customer. */
109
  @SerializedName("shipping")
110
  Object shipping;
111

112
  @SerializedName("source")
113
  String source;
114

115
  /** Tax details about the customer. */
116
  @SerializedName("tax")
117
  Tax tax;
118

119
  /** The customer's tax exemption. One of {@code none}, {@code exempt}, or {@code reverse}. */
120
  @SerializedName("tax_exempt")
121
  ApiRequestParams.EnumParam taxExempt;
122

123
  /** The customer's tax IDs. */
124
  @SerializedName("tax_id_data")
125
  List<CustomerCreateParams.TaxIdData> taxIdData;
126

127
  /** ID of the test clock to attach to the customer. */
128
  @SerializedName("test_clock")
129
  String testClock;
130

131
  @SerializedName("validate")
132
  Boolean validate;
133

134
  private CustomerCreateParams(
135
      Object address,
136
      Long balance,
137
      CashBalance cashBalance,
138
      String coupon,
139
      String description,
140
      String email,
141
      List<String> expand,
142
      Map<String, Object> extraParams,
143
      String invoicePrefix,
144
      InvoiceSettings invoiceSettings,
145
      Object metadata,
146
      String name,
147
      Long nextInvoiceSequence,
148
      String paymentMethod,
149
      String phone,
150
      List<String> preferredLocales,
151
      String promotionCode,
152
      Object shipping,
153
      String source,
154
      Tax tax,
155
      ApiRequestParams.EnumParam taxExempt,
156
      List<CustomerCreateParams.TaxIdData> taxIdData,
157
      String testClock,
158
      Boolean validate) {
1✔
159
    this.address = address;
1✔
160
    this.balance = balance;
1✔
161
    this.cashBalance = cashBalance;
1✔
162
    this.coupon = coupon;
1✔
163
    this.description = description;
1✔
164
    this.email = email;
1✔
165
    this.expand = expand;
1✔
166
    this.extraParams = extraParams;
1✔
167
    this.invoicePrefix = invoicePrefix;
1✔
168
    this.invoiceSettings = invoiceSettings;
1✔
169
    this.metadata = metadata;
1✔
170
    this.name = name;
1✔
171
    this.nextInvoiceSequence = nextInvoiceSequence;
1✔
172
    this.paymentMethod = paymentMethod;
1✔
173
    this.phone = phone;
1✔
174
    this.preferredLocales = preferredLocales;
1✔
175
    this.promotionCode = promotionCode;
1✔
176
    this.shipping = shipping;
1✔
177
    this.source = source;
1✔
178
    this.tax = tax;
1✔
179
    this.taxExempt = taxExempt;
1✔
180
    this.taxIdData = taxIdData;
1✔
181
    this.testClock = testClock;
1✔
182
    this.validate = validate;
1✔
183
  }
1✔
184

185
  public static Builder builder() {
186
    return new Builder();
1✔
187
  }
188

189
  public static class Builder {
1✔
190
    private Object address;
191

192
    private Long balance;
193

194
    private CashBalance cashBalance;
195

196
    private String coupon;
197

198
    private String description;
199

200
    private String email;
201

202
    private List<String> expand;
203

204
    private Map<String, Object> extraParams;
205

206
    private String invoicePrefix;
207

208
    private InvoiceSettings invoiceSettings;
209

210
    private Object metadata;
211

212
    private String name;
213

214
    private Long nextInvoiceSequence;
215

216
    private String paymentMethod;
217

218
    private String phone;
219

220
    private List<String> preferredLocales;
221

222
    private String promotionCode;
223

224
    private Object shipping;
225

226
    private String source;
227

228
    private Tax tax;
229

230
    private ApiRequestParams.EnumParam taxExempt;
231

232
    private List<CustomerCreateParams.TaxIdData> taxIdData;
233

234
    private String testClock;
235

236
    private Boolean validate;
237

238
    /** Finalize and obtain parameter instance from this builder. */
239
    public CustomerCreateParams build() {
240
      return new CustomerCreateParams(
1✔
241
          this.address,
242
          this.balance,
243
          this.cashBalance,
244
          this.coupon,
245
          this.description,
246
          this.email,
247
          this.expand,
248
          this.extraParams,
249
          this.invoicePrefix,
250
          this.invoiceSettings,
251
          this.metadata,
252
          this.name,
253
          this.nextInvoiceSequence,
254
          this.paymentMethod,
255
          this.phone,
256
          this.preferredLocales,
257
          this.promotionCode,
258
          this.shipping,
259
          this.source,
260
          this.tax,
261
          this.taxExempt,
262
          this.taxIdData,
263
          this.testClock,
264
          this.validate);
265
    }
266

267
    /** The customer's address. */
268
    public Builder setAddress(CustomerCreateParams.Address address) {
269
      this.address = address;
×
270
      return this;
×
271
    }
272

273
    /** The customer's address. */
274
    public Builder setAddress(EmptyParam address) {
275
      this.address = address;
×
276
      return this;
×
277
    }
278

279
    /**
280
     * An integer amount in cents (or local equivalent) that represents the customer's current
281
     * balance, which affect the customer's future invoices. A negative amount represents a credit
282
     * that decreases the amount due on an invoice; a positive amount increases the amount due on an
283
     * invoice.
284
     */
285
    public Builder setBalance(Long balance) {
286
      this.balance = balance;
×
287
      return this;
×
288
    }
289

290
    /** Balance information and default balance settings for this customer. */
291
    public Builder setCashBalance(CustomerCreateParams.CashBalance cashBalance) {
292
      this.cashBalance = cashBalance;
×
293
      return this;
×
294
    }
295

296
    public Builder setCoupon(String coupon) {
297
      this.coupon = coupon;
×
298
      return this;
×
299
    }
300

301
    /**
302
     * An arbitrary string that you can attach to a customer object. It is displayed alongside the
303
     * customer in the dashboard.
304
     */
305
    public Builder setDescription(String description) {
306
      this.description = description;
1✔
307
      return this;
1✔
308
    }
309

310
    /**
311
     * Customer's email address. It's displayed alongside the customer in your dashboard and can be
312
     * useful for searching and tracking. This may be up to <em>512 characters</em>.
313
     */
314
    public Builder setEmail(String email) {
315
      this.email = email;
×
316
      return this;
×
317
    }
318

319
    /**
320
     * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and
321
     * subsequent calls adds additional elements to the original list. See {@link
322
     * CustomerCreateParams#expand} for the field documentation.
323
     */
324
    public Builder addExpand(String element) {
325
      if (this.expand == null) {
×
326
        this.expand = new ArrayList<>();
×
327
      }
328
      this.expand.add(element);
×
329
      return this;
×
330
    }
331

332
    /**
333
     * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and
334
     * subsequent calls adds additional elements to the original list. See {@link
335
     * CustomerCreateParams#expand} for the field documentation.
336
     */
337
    public Builder addAllExpand(List<String> elements) {
338
      if (this.expand == null) {
×
339
        this.expand = new ArrayList<>();
×
340
      }
341
      this.expand.addAll(elements);
×
342
      return this;
×
343
    }
344

345
    /**
346
     * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
347
     * call, and subsequent calls add additional key/value pairs to the original map. See {@link
348
     * CustomerCreateParams#extraParams} for the field documentation.
349
     */
350
    public Builder putExtraParam(String key, Object value) {
351
      if (this.extraParams == null) {
×
352
        this.extraParams = new HashMap<>();
×
353
      }
354
      this.extraParams.put(key, value);
×
355
      return this;
×
356
    }
357

358
    /**
359
     * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
360
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
361
     * See {@link CustomerCreateParams#extraParams} for the field documentation.
362
     */
363
    public Builder putAllExtraParam(Map<String, Object> map) {
364
      if (this.extraParams == null) {
×
365
        this.extraParams = new HashMap<>();
×
366
      }
367
      this.extraParams.putAll(map);
×
368
      return this;
×
369
    }
370

371
    /**
372
     * The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase
373
     * letters or numbers.
374
     */
375
    public Builder setInvoicePrefix(String invoicePrefix) {
376
      this.invoicePrefix = invoicePrefix;
×
377
      return this;
×
378
    }
379

380
    /** Default invoice settings for this customer. */
381
    public Builder setInvoiceSettings(CustomerCreateParams.InvoiceSettings invoiceSettings) {
382
      this.invoiceSettings = invoiceSettings;
×
383
      return this;
×
384
    }
385

386
    /**
387
     * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call,
388
     * and subsequent calls add additional key/value pairs to the original map. See {@link
389
     * CustomerCreateParams#metadata} for the field documentation.
390
     */
391
    @SuppressWarnings("unchecked")
392
    public Builder putMetadata(String key, String value) {
393
      if (this.metadata == null || this.metadata instanceof EmptyParam) {
×
394
        this.metadata = new HashMap<String, String>();
×
395
      }
396
      ((Map<String, String>) this.metadata).put(key, value);
×
397
      return this;
×
398
    }
399

400
    /**
401
     * Add all map key/value pairs to `metadata` map. A map is initialized for the first
402
     * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
403
     * See {@link CustomerCreateParams#metadata} for the field documentation.
404
     */
405
    @SuppressWarnings("unchecked")
406
    public Builder putAllMetadata(Map<String, String> map) {
407
      if (this.metadata == null || this.metadata instanceof EmptyParam) {
×
408
        this.metadata = new HashMap<String, String>();
×
409
      }
410
      ((Map<String, String>) this.metadata).putAll(map);
×
411
      return this;
×
412
    }
413

414
    /**
415
     * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
416
     * to an object. This can be useful for storing additional information about the object in a
417
     * structured format. Individual keys can be unset by posting an empty value to them. All keys
418
     * can be unset by posting an empty value to {@code metadata}.
419
     */
420
    public Builder setMetadata(EmptyParam metadata) {
421
      this.metadata = metadata;
×
422
      return this;
×
423
    }
424

425
    /**
426
     * Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach
427
     * to an object. This can be useful for storing additional information about the object in a
428
     * structured format. Individual keys can be unset by posting an empty value to them. All keys
429
     * can be unset by posting an empty value to {@code metadata}.
430
     */
431
    public Builder setMetadata(Map<String, String> metadata) {
432
      this.metadata = metadata;
×
433
      return this;
×
434
    }
435

436
    /** The customer's full name or business name. */
437
    public Builder setName(String name) {
438
      this.name = name;
×
439
      return this;
×
440
    }
441

442
    /** The sequence to be used on the customer's next invoice. Defaults to 1. */
443
    public Builder setNextInvoiceSequence(Long nextInvoiceSequence) {
444
      this.nextInvoiceSequence = nextInvoiceSequence;
×
445
      return this;
×
446
    }
447

448
    public Builder setPaymentMethod(String paymentMethod) {
449
      this.paymentMethod = paymentMethod;
×
450
      return this;
×
451
    }
452

453
    /** The customer's phone number. */
454
    public Builder setPhone(String phone) {
455
      this.phone = phone;
×
456
      return this;
×
457
    }
458

459
    /**
460
     * Add an element to `preferredLocales` list. A list is initialized for the first `add/addAll`
461
     * call, and subsequent calls adds additional elements to the original list. See {@link
462
     * CustomerCreateParams#preferredLocales} for the field documentation.
463
     */
464
    public Builder addPreferredLocale(String element) {
465
      if (this.preferredLocales == null) {
×
466
        this.preferredLocales = new ArrayList<>();
×
467
      }
468
      this.preferredLocales.add(element);
×
469
      return this;
×
470
    }
471

472
    /**
473
     * Add all elements to `preferredLocales` list. A list is initialized for the first `add/addAll`
474
     * call, and subsequent calls adds additional elements to the original list. See {@link
475
     * CustomerCreateParams#preferredLocales} for the field documentation.
476
     */
477
    public Builder addAllPreferredLocale(List<String> elements) {
478
      if (this.preferredLocales == null) {
×
479
        this.preferredLocales = new ArrayList<>();
×
480
      }
481
      this.preferredLocales.addAll(elements);
×
482
      return this;
×
483
    }
484

485
    /**
486
     * The ID of a promotion code to apply to the customer. The customer will have a discount
487
     * applied on all recurring payments. Charges you create through the API will not have the
488
     * discount.
489
     */
490
    public Builder setPromotionCode(String promotionCode) {
491
      this.promotionCode = promotionCode;
×
492
      return this;
×
493
    }
494

495
    /** The customer's shipping information. Appears on invoices emailed to this customer. */
496
    public Builder setShipping(CustomerCreateParams.Shipping shipping) {
497
      this.shipping = shipping;
×
498
      return this;
×
499
    }
500

501
    /** The customer's shipping information. Appears on invoices emailed to this customer. */
502
    public Builder setShipping(EmptyParam shipping) {
503
      this.shipping = shipping;
×
504
      return this;
×
505
    }
506

507
    public Builder setSource(String source) {
508
      this.source = source;
×
509
      return this;
×
510
    }
511

512
    /** Tax details about the customer. */
513
    public Builder setTax(CustomerCreateParams.Tax tax) {
514
      this.tax = tax;
×
515
      return this;
×
516
    }
517

518
    /** The customer's tax exemption. One of {@code none}, {@code exempt}, or {@code reverse}. */
519
    public Builder setTaxExempt(CustomerCreateParams.TaxExempt taxExempt) {
520
      this.taxExempt = taxExempt;
×
521
      return this;
×
522
    }
523

524
    /** The customer's tax exemption. One of {@code none}, {@code exempt}, or {@code reverse}. */
525
    public Builder setTaxExempt(EmptyParam taxExempt) {
526
      this.taxExempt = taxExempt;
×
527
      return this;
×
528
    }
529

530
    /**
531
     * Add an element to `taxIdData` list. A list is initialized for the first `add/addAll` call,
532
     * and subsequent calls adds additional elements to the original list. See {@link
533
     * CustomerCreateParams#taxIdData} for the field documentation.
534
     */
535
    public Builder addTaxIdData(CustomerCreateParams.TaxIdData element) {
536
      if (this.taxIdData == null) {
×
537
        this.taxIdData = new ArrayList<>();
×
538
      }
539
      this.taxIdData.add(element);
×
540
      return this;
×
541
    }
542

543
    /**
544
     * Add all elements to `taxIdData` list. A list is initialized for the first `add/addAll` call,
545
     * and subsequent calls adds additional elements to the original list. See {@link
546
     * CustomerCreateParams#taxIdData} for the field documentation.
547
     */
548
    public Builder addAllTaxIdData(List<CustomerCreateParams.TaxIdData> elements) {
549
      if (this.taxIdData == null) {
×
550
        this.taxIdData = new ArrayList<>();
×
551
      }
552
      this.taxIdData.addAll(elements);
×
553
      return this;
×
554
    }
555

556
    /** ID of the test clock to attach to the customer. */
557
    public Builder setTestClock(String testClock) {
558
      this.testClock = testClock;
×
559
      return this;
×
560
    }
561

562
    public Builder setValidate(Boolean validate) {
563
      this.validate = validate;
×
564
      return this;
×
565
    }
566
  }
567

568
  @Getter
569
  public static class Address {
570
    /** City, district, suburb, town, or village. */
571
    @SerializedName("city")
572
    String city;
573

574
    /**
575
     * A freeform text field for the country. However, in order to activate some tax features, the
576
     * format should be a two-letter country code (<a
577
     * href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>).
578
     */
579
    @SerializedName("country")
580
    String country;
581

582
    /**
583
     * Map of extra parameters for custom features not available in this client library. The content
584
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
585
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
586
     * param object. Effectively, this map is flattened to its parent instance.
587
     */
588
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
589
    Map<String, Object> extraParams;
590

591
    /** Address line 1 (e.g., street, PO Box, or company name). */
592
    @SerializedName("line1")
593
    String line1;
594

595
    /** Address line 2 (e.g., apartment, suite, unit, or building). */
596
    @SerializedName("line2")
597
    String line2;
598

599
    /** ZIP or postal code. */
600
    @SerializedName("postal_code")
601
    String postalCode;
602

603
    /** State, county, province, or region. */
604
    @SerializedName("state")
605
    String state;
606

607
    private Address(
608
        String city,
609
        String country,
610
        Map<String, Object> extraParams,
611
        String line1,
612
        String line2,
613
        String postalCode,
614
        String state) {
×
615
      this.city = city;
×
616
      this.country = country;
×
617
      this.extraParams = extraParams;
×
618
      this.line1 = line1;
×
619
      this.line2 = line2;
×
620
      this.postalCode = postalCode;
×
621
      this.state = state;
×
622
    }
×
623

624
    public static Builder builder() {
625
      return new Builder();
×
626
    }
627

628
    public static class Builder {
×
629
      private String city;
630

631
      private String country;
632

633
      private Map<String, Object> extraParams;
634

635
      private String line1;
636

637
      private String line2;
638

639
      private String postalCode;
640

641
      private String state;
642

643
      /** Finalize and obtain parameter instance from this builder. */
644
      public CustomerCreateParams.Address build() {
645
        return new CustomerCreateParams.Address(
×
646
            this.city,
647
            this.country,
648
            this.extraParams,
649
            this.line1,
650
            this.line2,
651
            this.postalCode,
652
            this.state);
653
      }
654

655
      /** City, district, suburb, town, or village. */
656
      public Builder setCity(String city) {
657
        this.city = city;
×
658
        return this;
×
659
      }
660

661
      /**
662
       * A freeform text field for the country. However, in order to activate some tax features, the
663
       * format should be a two-letter country code (<a
664
       * href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>).
665
       */
666
      public Builder setCountry(String country) {
667
        this.country = country;
×
668
        return this;
×
669
      }
670

671
      /**
672
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
673
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
674
       * CustomerCreateParams.Address#extraParams} for the field documentation.
675
       */
676
      public Builder putExtraParam(String key, Object value) {
677
        if (this.extraParams == null) {
×
678
          this.extraParams = new HashMap<>();
×
679
        }
680
        this.extraParams.put(key, value);
×
681
        return this;
×
682
      }
683

684
      /**
685
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
686
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
687
       * See {@link CustomerCreateParams.Address#extraParams} for the field documentation.
688
       */
689
      public Builder putAllExtraParam(Map<String, Object> map) {
690
        if (this.extraParams == null) {
×
691
          this.extraParams = new HashMap<>();
×
692
        }
693
        this.extraParams.putAll(map);
×
694
        return this;
×
695
      }
696

697
      /** Address line 1 (e.g., street, PO Box, or company name). */
698
      public Builder setLine1(String line1) {
699
        this.line1 = line1;
×
700
        return this;
×
701
      }
702

703
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
704
      public Builder setLine2(String line2) {
705
        this.line2 = line2;
×
706
        return this;
×
707
      }
708

709
      /** ZIP or postal code. */
710
      public Builder setPostalCode(String postalCode) {
711
        this.postalCode = postalCode;
×
712
        return this;
×
713
      }
714

715
      /** State, county, province, or region. */
716
      public Builder setState(String state) {
717
        this.state = state;
×
718
        return this;
×
719
      }
720
    }
721
  }
722

723
  @Getter
724
  public static class CashBalance {
725
    /**
726
     * Map of extra parameters for custom features not available in this client library. The content
727
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
728
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
729
     * param object. Effectively, this map is flattened to its parent instance.
730
     */
731
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
732
    Map<String, Object> extraParams;
733

734
    /**
735
     * Settings controlling the behavior of the customer's cash balance, such as reconciliation of
736
     * funds received.
737
     */
738
    @SerializedName("settings")
739
    Settings settings;
740

741
    private CashBalance(Map<String, Object> extraParams, Settings settings) {
×
742
      this.extraParams = extraParams;
×
743
      this.settings = settings;
×
744
    }
×
745

746
    public static Builder builder() {
747
      return new Builder();
×
748
    }
749

750
    public static class Builder {
×
751
      private Map<String, Object> extraParams;
752

753
      private Settings settings;
754

755
      /** Finalize and obtain parameter instance from this builder. */
756
      public CustomerCreateParams.CashBalance build() {
757
        return new CustomerCreateParams.CashBalance(this.extraParams, this.settings);
×
758
      }
759

760
      /**
761
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
762
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
763
       * CustomerCreateParams.CashBalance#extraParams} for the field documentation.
764
       */
765
      public Builder putExtraParam(String key, Object value) {
766
        if (this.extraParams == null) {
×
767
          this.extraParams = new HashMap<>();
×
768
        }
769
        this.extraParams.put(key, value);
×
770
        return this;
×
771
      }
772

773
      /**
774
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
775
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
776
       * See {@link CustomerCreateParams.CashBalance#extraParams} for the field documentation.
777
       */
778
      public Builder putAllExtraParam(Map<String, Object> map) {
779
        if (this.extraParams == null) {
×
780
          this.extraParams = new HashMap<>();
×
781
        }
782
        this.extraParams.putAll(map);
×
783
        return this;
×
784
      }
785

786
      /**
787
       * Settings controlling the behavior of the customer's cash balance, such as reconciliation of
788
       * funds received.
789
       */
790
      public Builder setSettings(CustomerCreateParams.CashBalance.Settings settings) {
791
        this.settings = settings;
×
792
        return this;
×
793
      }
794
    }
795

796
    @Getter
797
    public static class Settings {
798
      /**
799
       * Map of extra parameters for custom features not available in this client library. The
800
       * content in this map is not serialized under this field's {@code @SerializedName} value.
801
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
802
       * name in this param object. Effectively, this map is flattened to its parent instance.
803
       */
804
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
805
      Map<String, Object> extraParams;
806

807
      /**
808
       * Controls how funds transferred by the customer are applied to payment intents and invoices.
809
       * Valid options are {@code automatic}, {@code manual}, or {@code merchant_default}. For more
810
       * information about these reconciliation modes, see <a
811
       * href="https://stripe.com/docs/payments/customer-balance/reconciliation">Reconciliation</a>.
812
       */
813
      @SerializedName("reconciliation_mode")
814
      ReconciliationMode reconciliationMode;
815

816
      private Settings(Map<String, Object> extraParams, ReconciliationMode reconciliationMode) {
×
817
        this.extraParams = extraParams;
×
818
        this.reconciliationMode = reconciliationMode;
×
819
      }
×
820

821
      public static Builder builder() {
822
        return new Builder();
×
823
      }
824

825
      public static class Builder {
×
826
        private Map<String, Object> extraParams;
827

828
        private ReconciliationMode reconciliationMode;
829

830
        /** Finalize and obtain parameter instance from this builder. */
831
        public CustomerCreateParams.CashBalance.Settings build() {
832
          return new CustomerCreateParams.CashBalance.Settings(
×
833
              this.extraParams, this.reconciliationMode);
834
        }
835

836
        /**
837
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
838
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
839
         * map. See {@link CustomerCreateParams.CashBalance.Settings#extraParams} for the field
840
         * documentation.
841
         */
842
        public Builder putExtraParam(String key, Object value) {
843
          if (this.extraParams == null) {
×
844
            this.extraParams = new HashMap<>();
×
845
          }
846
          this.extraParams.put(key, value);
×
847
          return this;
×
848
        }
849

850
        /**
851
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
852
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
853
         * map. See {@link CustomerCreateParams.CashBalance.Settings#extraParams} for the field
854
         * documentation.
855
         */
856
        public Builder putAllExtraParam(Map<String, Object> map) {
857
          if (this.extraParams == null) {
×
858
            this.extraParams = new HashMap<>();
×
859
          }
860
          this.extraParams.putAll(map);
×
861
          return this;
×
862
        }
863

864
        /**
865
         * Controls how funds transferred by the customer are applied to payment intents and
866
         * invoices. Valid options are {@code automatic}, {@code manual}, or {@code
867
         * merchant_default}. For more information about these reconciliation modes, see <a
868
         * href="https://stripe.com/docs/payments/customer-balance/reconciliation">Reconciliation</a>.
869
         */
870
        public Builder setReconciliationMode(
871
            CustomerCreateParams.CashBalance.Settings.ReconciliationMode reconciliationMode) {
872
          this.reconciliationMode = reconciliationMode;
×
873
          return this;
×
874
        }
875
      }
876

877
      public enum ReconciliationMode implements ApiRequestParams.EnumParam {
×
878
        @SerializedName("automatic")
×
879
        AUTOMATIC("automatic"),
880

881
        @SerializedName("manual")
×
882
        MANUAL("manual"),
883

884
        @SerializedName("merchant_default")
×
885
        MERCHANT_DEFAULT("merchant_default");
886

887
        @Getter(onMethod_ = {@Override})
888
        private final String value;
889

890
        ReconciliationMode(String value) {
×
891
          this.value = value;
×
892
        }
×
893
      }
894
    }
895
  }
896

897
  @Getter
898
  public static class InvoiceSettings {
899
    /**
900
     * The list of up to 4 default custom fields to be displayed on invoices for this customer. When
901
     * updating, pass an empty string to remove previously-defined fields.
902
     */
903
    @SerializedName("custom_fields")
904
    Object customFields;
905

906
    /**
907
     * ID of a payment method that's attached to the customer, to be used as the customer's default
908
     * payment method for subscriptions and invoices.
909
     */
910
    @SerializedName("default_payment_method")
911
    String defaultPaymentMethod;
912

913
    /**
914
     * Map of extra parameters for custom features not available in this client library. The content
915
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
916
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
917
     * param object. Effectively, this map is flattened to its parent instance.
918
     */
919
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
920
    Map<String, Object> extraParams;
921

922
    /** Default footer to be displayed on invoices for this customer. */
923
    @SerializedName("footer")
924
    String footer;
925

926
    /** Default options for invoice PDF rendering for this customer. */
927
    @SerializedName("rendering_options")
928
    Object renderingOptions;
929

930
    private InvoiceSettings(
931
        Object customFields,
932
        String defaultPaymentMethod,
933
        Map<String, Object> extraParams,
934
        String footer,
935
        Object renderingOptions) {
×
936
      this.customFields = customFields;
×
937
      this.defaultPaymentMethod = defaultPaymentMethod;
×
938
      this.extraParams = extraParams;
×
939
      this.footer = footer;
×
940
      this.renderingOptions = renderingOptions;
×
941
    }
×
942

943
    public static Builder builder() {
944
      return new Builder();
×
945
    }
946

947
    public static class Builder {
×
948
      private Object customFields;
949

950
      private String defaultPaymentMethod;
951

952
      private Map<String, Object> extraParams;
953

954
      private String footer;
955

956
      private Object renderingOptions;
957

958
      /** Finalize and obtain parameter instance from this builder. */
959
      public CustomerCreateParams.InvoiceSettings build() {
960
        return new CustomerCreateParams.InvoiceSettings(
×
961
            this.customFields,
962
            this.defaultPaymentMethod,
963
            this.extraParams,
964
            this.footer,
965
            this.renderingOptions);
966
      }
967

968
      /**
969
       * Add an element to `customFields` list. A list is initialized for the first `add/addAll`
970
       * call, and subsequent calls adds additional elements to the original list. See {@link
971
       * CustomerCreateParams.InvoiceSettings#customFields} for the field documentation.
972
       */
973
      @SuppressWarnings("unchecked")
974
      public Builder addCustomField(CustomerCreateParams.InvoiceSettings.CustomField element) {
975
        if (this.customFields == null || this.customFields instanceof EmptyParam) {
×
976
          this.customFields = new ArrayList<CustomerCreateParams.InvoiceSettings.CustomField>();
×
977
        }
978
        ((List<CustomerCreateParams.InvoiceSettings.CustomField>) this.customFields).add(element);
×
979
        return this;
×
980
      }
981

982
      /**
983
       * Add all elements to `customFields` list. A list is initialized for the first `add/addAll`
984
       * call, and subsequent calls adds additional elements to the original list. See {@link
985
       * CustomerCreateParams.InvoiceSettings#customFields} for the field documentation.
986
       */
987
      @SuppressWarnings("unchecked")
988
      public Builder addAllCustomField(
989
          List<CustomerCreateParams.InvoiceSettings.CustomField> elements) {
990
        if (this.customFields == null || this.customFields instanceof EmptyParam) {
×
991
          this.customFields = new ArrayList<CustomerCreateParams.InvoiceSettings.CustomField>();
×
992
        }
993
        ((List<CustomerCreateParams.InvoiceSettings.CustomField>) this.customFields)
×
994
            .addAll(elements);
×
995
        return this;
×
996
      }
997

998
      /**
999
       * The list of up to 4 default custom fields to be displayed on invoices for this customer.
1000
       * When updating, pass an empty string to remove previously-defined fields.
1001
       */
1002
      public Builder setCustomFields(EmptyParam customFields) {
1003
        this.customFields = customFields;
×
1004
        return this;
×
1005
      }
1006

1007
      /**
1008
       * The list of up to 4 default custom fields to be displayed on invoices for this customer.
1009
       * When updating, pass an empty string to remove previously-defined fields.
1010
       */
1011
      public Builder setCustomFields(
1012
          List<CustomerCreateParams.InvoiceSettings.CustomField> customFields) {
1013
        this.customFields = customFields;
×
1014
        return this;
×
1015
      }
1016

1017
      /**
1018
       * ID of a payment method that's attached to the customer, to be used as the customer's
1019
       * default payment method for subscriptions and invoices.
1020
       */
1021
      public Builder setDefaultPaymentMethod(String defaultPaymentMethod) {
1022
        this.defaultPaymentMethod = defaultPaymentMethod;
×
1023
        return this;
×
1024
      }
1025

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

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

1052
      /** Default footer to be displayed on invoices for this customer. */
1053
      public Builder setFooter(String footer) {
1054
        this.footer = footer;
×
1055
        return this;
×
1056
      }
1057

1058
      /** Default options for invoice PDF rendering for this customer. */
1059
      public Builder setRenderingOptions(
1060
          CustomerCreateParams.InvoiceSettings.RenderingOptions renderingOptions) {
1061
        this.renderingOptions = renderingOptions;
×
1062
        return this;
×
1063
      }
1064

1065
      /** Default options for invoice PDF rendering for this customer. */
1066
      public Builder setRenderingOptions(EmptyParam renderingOptions) {
1067
        this.renderingOptions = renderingOptions;
×
1068
        return this;
×
1069
      }
1070
    }
1071

1072
    @Getter
1073
    public static class CustomField {
1074
      /**
1075
       * Map of extra parameters for custom features not available in this client library. The
1076
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1077
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1078
       * name in this param object. Effectively, this map is flattened to its parent instance.
1079
       */
1080
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1081
      Map<String, Object> extraParams;
1082

1083
      /**
1084
       * <strong>Required.</strong> The name of the custom field. This may be up to 40 characters.
1085
       */
1086
      @SerializedName("name")
1087
      String name;
1088

1089
      /**
1090
       * <strong>Required.</strong> The value of the custom field. This may be up to 140 characters.
1091
       */
1092
      @SerializedName("value")
1093
      String value;
1094

1095
      private CustomField(Map<String, Object> extraParams, String name, String value) {
×
1096
        this.extraParams = extraParams;
×
1097
        this.name = name;
×
1098
        this.value = value;
×
1099
      }
×
1100

1101
      public static Builder builder() {
1102
        return new Builder();
×
1103
      }
1104

1105
      public static class Builder {
×
1106
        private Map<String, Object> extraParams;
1107

1108
        private String name;
1109

1110
        private String value;
1111

1112
        /** Finalize and obtain parameter instance from this builder. */
1113
        public CustomerCreateParams.InvoiceSettings.CustomField build() {
1114
          return new CustomerCreateParams.InvoiceSettings.CustomField(
×
1115
              this.extraParams, this.name, this.value);
1116
        }
1117

1118
        /**
1119
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1120
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1121
         * map. See {@link CustomerCreateParams.InvoiceSettings.CustomField#extraParams} for the
1122
         * field documentation.
1123
         */
1124
        public Builder putExtraParam(String key, Object value) {
1125
          if (this.extraParams == null) {
×
1126
            this.extraParams = new HashMap<>();
×
1127
          }
1128
          this.extraParams.put(key, value);
×
1129
          return this;
×
1130
        }
1131

1132
        /**
1133
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1134
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1135
         * map. See {@link CustomerCreateParams.InvoiceSettings.CustomField#extraParams} for the
1136
         * field documentation.
1137
         */
1138
        public Builder putAllExtraParam(Map<String, Object> map) {
1139
          if (this.extraParams == null) {
×
1140
            this.extraParams = new HashMap<>();
×
1141
          }
1142
          this.extraParams.putAll(map);
×
1143
          return this;
×
1144
        }
1145

1146
        /**
1147
         * <strong>Required.</strong> The name of the custom field. This may be up to 40 characters.
1148
         */
1149
        public Builder setName(String name) {
1150
          this.name = name;
×
1151
          return this;
×
1152
        }
1153

1154
        /**
1155
         * <strong>Required.</strong> The value of the custom field. This may be up to 140
1156
         * characters.
1157
         */
1158
        public Builder setValue(String value) {
1159
          this.value = value;
×
1160
          return this;
×
1161
        }
1162
      }
1163
    }
1164

1165
    @Getter
1166
    public static class RenderingOptions {
1167
      /**
1168
       * How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One
1169
       * of {@code exclude_tax} or {@code include_inclusive_tax}. {@code include_inclusive_tax} will
1170
       * include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. {@code
1171
       * exclude_tax} will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts.
1172
       */
1173
      @SerializedName("amount_tax_display")
1174
      ApiRequestParams.EnumParam amountTaxDisplay;
1175

1176
      /**
1177
       * Map of extra parameters for custom features not available in this client library. The
1178
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1179
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1180
       * name in this param object. Effectively, this map is flattened to its parent instance.
1181
       */
1182
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1183
      Map<String, Object> extraParams;
1184

1185
      /** ID of the invoice rendering template to use for future invoices. */
1186
      @SerializedName("template")
1187
      String template;
1188

1189
      private RenderingOptions(
1190
          ApiRequestParams.EnumParam amountTaxDisplay,
1191
          Map<String, Object> extraParams,
1192
          String template) {
×
1193
        this.amountTaxDisplay = amountTaxDisplay;
×
1194
        this.extraParams = extraParams;
×
1195
        this.template = template;
×
1196
      }
×
1197

1198
      public static Builder builder() {
1199
        return new Builder();
×
1200
      }
1201

1202
      public static class Builder {
×
1203
        private ApiRequestParams.EnumParam amountTaxDisplay;
1204

1205
        private Map<String, Object> extraParams;
1206

1207
        private String template;
1208

1209
        /** Finalize and obtain parameter instance from this builder. */
1210
        public CustomerCreateParams.InvoiceSettings.RenderingOptions build() {
1211
          return new CustomerCreateParams.InvoiceSettings.RenderingOptions(
×
1212
              this.amountTaxDisplay, this.extraParams, this.template);
1213
        }
1214

1215
        /**
1216
         * How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.
1217
         * One of {@code exclude_tax} or {@code include_inclusive_tax}. {@code
1218
         * include_inclusive_tax} will include inclusive tax (and exclude exclusive tax) in invoice
1219
         * PDF amounts. {@code exclude_tax} will exclude all tax (inclusive and exclusive alike)
1220
         * from invoice PDF amounts.
1221
         */
1222
        public Builder setAmountTaxDisplay(
1223
            CustomerCreateParams.InvoiceSettings.RenderingOptions.AmountTaxDisplay
1224
                amountTaxDisplay) {
1225
          this.amountTaxDisplay = amountTaxDisplay;
×
1226
          return this;
×
1227
        }
1228

1229
        /**
1230
         * How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.
1231
         * One of {@code exclude_tax} or {@code include_inclusive_tax}. {@code
1232
         * include_inclusive_tax} will include inclusive tax (and exclude exclusive tax) in invoice
1233
         * PDF amounts. {@code exclude_tax} will exclude all tax (inclusive and exclusive alike)
1234
         * from invoice PDF amounts.
1235
         */
1236
        public Builder setAmountTaxDisplay(EmptyParam amountTaxDisplay) {
1237
          this.amountTaxDisplay = amountTaxDisplay;
×
1238
          return this;
×
1239
        }
1240

1241
        /**
1242
         * Add a key/value pair to `extraParams` map. A map is initialized for the first
1243
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1244
         * map. See {@link CustomerCreateParams.InvoiceSettings.RenderingOptions#extraParams} for
1245
         * the field documentation.
1246
         */
1247
        public Builder putExtraParam(String key, Object value) {
1248
          if (this.extraParams == null) {
×
1249
            this.extraParams = new HashMap<>();
×
1250
          }
1251
          this.extraParams.put(key, value);
×
1252
          return this;
×
1253
        }
1254

1255
        /**
1256
         * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1257
         * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
1258
         * map. See {@link CustomerCreateParams.InvoiceSettings.RenderingOptions#extraParams} for
1259
         * the field documentation.
1260
         */
1261
        public Builder putAllExtraParam(Map<String, Object> map) {
1262
          if (this.extraParams == null) {
×
1263
            this.extraParams = new HashMap<>();
×
1264
          }
1265
          this.extraParams.putAll(map);
×
1266
          return this;
×
1267
        }
1268

1269
        /** ID of the invoice rendering template to use for future invoices. */
1270
        public Builder setTemplate(String template) {
1271
          this.template = template;
×
1272
          return this;
×
1273
        }
1274
      }
1275

1276
      public enum AmountTaxDisplay implements ApiRequestParams.EnumParam {
×
1277
        @SerializedName("exclude_tax")
×
1278
        EXCLUDE_TAX("exclude_tax"),
1279

1280
        @SerializedName("include_inclusive_tax")
×
1281
        INCLUDE_INCLUSIVE_TAX("include_inclusive_tax");
1282

1283
        @Getter(onMethod_ = {@Override})
1284
        private final String value;
1285

1286
        AmountTaxDisplay(String value) {
×
1287
          this.value = value;
×
1288
        }
×
1289
      }
1290
    }
1291
  }
1292

1293
  @Getter
1294
  public static class Shipping {
1295
    /** <strong>Required.</strong> Customer shipping address. */
1296
    @SerializedName("address")
1297
    Address address;
1298

1299
    /**
1300
     * Map of extra parameters for custom features not available in this client library. The content
1301
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1302
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1303
     * param object. Effectively, this map is flattened to its parent instance.
1304
     */
1305
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1306
    Map<String, Object> extraParams;
1307

1308
    /** <strong>Required.</strong> Customer name. */
1309
    @SerializedName("name")
1310
    String name;
1311

1312
    /** Customer phone (including extension). */
1313
    @SerializedName("phone")
1314
    String phone;
1315

1316
    private Shipping(Address address, Map<String, Object> extraParams, String name, String phone) {
×
1317
      this.address = address;
×
1318
      this.extraParams = extraParams;
×
1319
      this.name = name;
×
1320
      this.phone = phone;
×
1321
    }
×
1322

1323
    public static Builder builder() {
1324
      return new Builder();
×
1325
    }
1326

1327
    public static class Builder {
×
1328
      private Address address;
1329

1330
      private Map<String, Object> extraParams;
1331

1332
      private String name;
1333

1334
      private String phone;
1335

1336
      /** Finalize and obtain parameter instance from this builder. */
1337
      public CustomerCreateParams.Shipping build() {
1338
        return new CustomerCreateParams.Shipping(
×
1339
            this.address, this.extraParams, this.name, this.phone);
1340
      }
1341

1342
      /** <strong>Required.</strong> Customer shipping address. */
1343
      public Builder setAddress(CustomerCreateParams.Shipping.Address address) {
1344
        this.address = address;
×
1345
        return this;
×
1346
      }
1347

1348
      /**
1349
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1350
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1351
       * CustomerCreateParams.Shipping#extraParams} for the field documentation.
1352
       */
1353
      public Builder putExtraParam(String key, Object value) {
1354
        if (this.extraParams == null) {
×
1355
          this.extraParams = new HashMap<>();
×
1356
        }
1357
        this.extraParams.put(key, value);
×
1358
        return this;
×
1359
      }
1360

1361
      /**
1362
       * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
1363
       * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
1364
       * See {@link CustomerCreateParams.Shipping#extraParams} for the field documentation.
1365
       */
1366
      public Builder putAllExtraParam(Map<String, Object> map) {
1367
        if (this.extraParams == null) {
×
1368
          this.extraParams = new HashMap<>();
×
1369
        }
1370
        this.extraParams.putAll(map);
×
1371
        return this;
×
1372
      }
1373

1374
      /** <strong>Required.</strong> Customer name. */
1375
      public Builder setName(String name) {
1376
        this.name = name;
×
1377
        return this;
×
1378
      }
1379

1380
      /** Customer phone (including extension). */
1381
      public Builder setPhone(String phone) {
1382
        this.phone = phone;
×
1383
        return this;
×
1384
      }
1385
    }
1386

1387
    @Getter
1388
    public static class Address {
1389
      /** City, district, suburb, town, or village. */
1390
      @SerializedName("city")
1391
      String city;
1392

1393
      /**
1394
       * A freeform text field for the country. However, in order to activate some tax features, the
1395
       * format should be a two-letter country code (<a
1396
       * href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>).
1397
       */
1398
      @SerializedName("country")
1399
      String country;
1400

1401
      /**
1402
       * Map of extra parameters for custom features not available in this client library. The
1403
       * content in this map is not serialized under this field's {@code @SerializedName} value.
1404
       * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
1405
       * name in this param object. Effectively, this map is flattened to its parent instance.
1406
       */
1407
      @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1408
      Map<String, Object> extraParams;
1409

1410
      /** Address line 1 (e.g., street, PO Box, or company name). */
1411
      @SerializedName("line1")
1412
      String line1;
1413

1414
      /** Address line 2 (e.g., apartment, suite, unit, or building). */
1415
      @SerializedName("line2")
1416
      String line2;
1417

1418
      /** ZIP or postal code. */
1419
      @SerializedName("postal_code")
1420
      String postalCode;
1421

1422
      /** State, county, province, or region. */
1423
      @SerializedName("state")
1424
      String state;
1425

1426
      private Address(
1427
          String city,
1428
          String country,
1429
          Map<String, Object> extraParams,
1430
          String line1,
1431
          String line2,
1432
          String postalCode,
1433
          String state) {
×
1434
        this.city = city;
×
1435
        this.country = country;
×
1436
        this.extraParams = extraParams;
×
1437
        this.line1 = line1;
×
1438
        this.line2 = line2;
×
1439
        this.postalCode = postalCode;
×
1440
        this.state = state;
×
1441
      }
×
1442

1443
      public static Builder builder() {
1444
        return new Builder();
×
1445
      }
1446

1447
      public static class Builder {
×
1448
        private String city;
1449

1450
        private String country;
1451

1452
        private Map<String, Object> extraParams;
1453

1454
        private String line1;
1455

1456
        private String line2;
1457

1458
        private String postalCode;
1459

1460
        private String state;
1461

1462
        /** Finalize and obtain parameter instance from this builder. */
1463
        public CustomerCreateParams.Shipping.Address build() {
1464
          return new CustomerCreateParams.Shipping.Address(
×
1465
              this.city,
1466
              this.country,
1467
              this.extraParams,
1468
              this.line1,
1469
              this.line2,
1470
              this.postalCode,
1471
              this.state);
1472
        }
1473

1474
        /** City, district, suburb, town, or village. */
1475
        public Builder setCity(String city) {
1476
          this.city = city;
×
1477
          return this;
×
1478
        }
1479

1480
        /**
1481
         * A freeform text field for the country. However, in order to activate some tax features,
1482
         * the format should be a two-letter country code (<a
1483
         * href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a>).
1484
         */
1485
        public Builder setCountry(String country) {
1486
          this.country = country;
×
1487
          return this;
×
1488
        }
1489

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

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

1518
        /** Address line 1 (e.g., street, PO Box, or company name). */
1519
        public Builder setLine1(String line1) {
1520
          this.line1 = line1;
×
1521
          return this;
×
1522
        }
1523

1524
        /** Address line 2 (e.g., apartment, suite, unit, or building). */
1525
        public Builder setLine2(String line2) {
1526
          this.line2 = line2;
×
1527
          return this;
×
1528
        }
1529

1530
        /** ZIP or postal code. */
1531
        public Builder setPostalCode(String postalCode) {
1532
          this.postalCode = postalCode;
×
1533
          return this;
×
1534
        }
1535

1536
        /** State, county, province, or region. */
1537
        public Builder setState(String state) {
1538
          this.state = state;
×
1539
          return this;
×
1540
        }
1541
      }
1542
    }
1543
  }
1544

1545
  @Getter
1546
  public static class Tax {
1547
    /**
1548
     * Map of extra parameters for custom features not available in this client library. The content
1549
     * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
1550
     * key/value pair is serialized as if the key is a root-level field (serialized) name in this
1551
     * param object. Effectively, this map is flattened to its parent instance.
1552
     */
1553
    @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
1554
    Map<String, Object> extraParams;
1555

1556
    /**
1557
     * A recent IP address of the customer used for tax reporting and tax location inference. Stripe
1558
     * recommends updating the IP address when a new PaymentMethod is attached or the address field
1559
     * on the customer is updated. We recommend against updating this field more frequently since it
1560
     * could result in unexpected tax location/reporting outcomes.
1561
     */
1562
    @SerializedName("ip_address")
1563
    Object ipAddress;
1564

1565
    /**
1566
     * A flag that indicates when Stripe should validate the customer tax location. Defaults to
1567
     * {@code deferred}.
1568
     */
1569
    @SerializedName("validate_location")
1570
    ValidateLocation validateLocation;
1571

1572
    private Tax(
1573
        Map<String, Object> extraParams, Object ipAddress, ValidateLocation validateLocation) {
×
1574
      this.extraParams = extraParams;
×
1575
      this.ipAddress = ipAddress;
×
1576
      this.validateLocation = validateLocation;
×
1577
    }
×
1578

1579
    public static Builder builder() {
1580
      return new Builder();
×
1581
    }
1582

1583
    public static class Builder {
×
1584
      private Map<String, Object> extraParams;
1585

1586
      private Object ipAddress;
1587

1588
      private ValidateLocation validateLocation;
1589

1590
      /** Finalize and obtain parameter instance from this builder. */
1591
      public CustomerCreateParams.Tax build() {
1592
        return new CustomerCreateParams.Tax(
×
1593
            this.extraParams, this.ipAddress, this.validateLocation);
1594
      }
1595

1596
      /**
1597
       * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
1598
       * call, and subsequent calls add additional key/value pairs to the original map. See {@link
1599
       * CustomerCreateParams.Tax#extraParams} for 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 map.
1612
       * See {@link CustomerCreateParams.Tax#extraParams} for the field documentation.
1613
       */
1614
      public Builder putAllExtraParam(Map<String, Object> map) {
1615
        if (this.extraParams == null) {
×
1616
          this.extraParams = new HashMap<>();
×
1617
        }
1618
        this.extraParams.putAll(map);
×
1619
        return this;
×
1620
      }
1621

1622
      /**
1623
       * A recent IP address of the customer used for tax reporting and tax location inference.
1624
       * Stripe recommends updating the IP address when a new PaymentMethod is attached or the
1625
       * address field on the customer is updated. We recommend against updating this field more
1626
       * frequently since it could result in unexpected tax location/reporting outcomes.
1627
       */
1628
      public Builder setIpAddress(String ipAddress) {
1629
        this.ipAddress = ipAddress;
×
1630
        return this;
×
1631
      }
1632

1633
      /**
1634
       * A recent IP address of the customer used for tax reporting and tax location inference.
1635
       * Stripe recommends updating the IP address when a new PaymentMethod is attached or the
1636
       * address field on the customer is updated. We recommend against updating this field more
1637
       * frequently since it could result in unexpected tax location/reporting outcomes.
1638
       */
1639
      public Builder setIpAddress(EmptyParam ipAddress) {
1640
        this.ipAddress = ipAddress;
×
1641
        return this;
×
1642
      }
1643

1644
      /**
1645
       * A flag that indicates when Stripe should validate the customer tax location. Defaults to
1646
       * {@code deferred}.
1647
       */
1648
      public Builder setValidateLocation(
1649
          CustomerCreateParams.Tax.ValidateLocation validateLocation) {
1650
        this.validateLocation = validateLocation;
×
1651
        return this;
×
1652
      }
1653
    }
1654

1655
    public enum ValidateLocation implements ApiRequestParams.EnumParam {
×
1656
      @SerializedName("deferred")
×
1657
      DEFERRED("deferred"),
1658

1659
      @SerializedName("immediately")
×
1660
      IMMEDIATELY("immediately");
1661

1662
      @Getter(onMethod_ = {@Override})
1663
      private final String value;
1664

1665
      ValidateLocation(String value) {
×
1666
        this.value = value;
×
1667
      }
×
1668
    }
1669
  }
1670

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

1682
    /**
1683
     * <strong>Required.</strong> Type of the tax ID, one of {@code ad_nrt}, {@code ae_trn}, {@code
1684
     * al_tin}, {@code am_tin}, {@code ao_tin}, {@code ar_cuit}, {@code au_abn}, {@code au_arn},
1685
     * {@code ba_tin}, {@code bb_tin}, {@code bg_uic}, {@code bh_vat}, {@code bo_tin}, {@code
1686
     * br_cnpj}, {@code br_cpf}, {@code bs_tin}, {@code by_tin}, {@code ca_bn}, {@code ca_gst_hst},
1687
     * {@code ca_pst_bc}, {@code ca_pst_mb}, {@code ca_pst_sk}, {@code ca_qst}, {@code cd_nif},
1688
     * {@code ch_uid}, {@code ch_vat}, {@code cl_tin}, {@code cn_tin}, {@code co_nit}, {@code
1689
     * cr_tin}, {@code de_stn}, {@code do_rcn}, {@code ec_ruc}, {@code eg_tin}, {@code es_cif},
1690
     * {@code eu_oss_vat}, {@code eu_vat}, {@code gb_vat}, {@code ge_vat}, {@code gn_nif}, {@code
1691
     * hk_br}, {@code hr_oib}, {@code hu_tin}, {@code id_npwp}, {@code il_vat}, {@code in_gst},
1692
     * {@code is_vat}, {@code jp_cn}, {@code jp_rn}, {@code jp_trn}, {@code ke_pin}, {@code kh_tin},
1693
     * {@code kr_brn}, {@code kz_bin}, {@code li_uid}, {@code li_vat}, {@code ma_vat}, {@code
1694
     * md_vat}, {@code me_pib}, {@code mk_vat}, {@code mr_nif}, {@code mx_rfc}, {@code my_frp},
1695
     * {@code my_itn}, {@code my_sst}, {@code ng_tin}, {@code no_vat}, {@code no_voec}, {@code
1696
     * np_pan}, {@code nz_gst}, {@code om_vat}, {@code pe_ruc}, {@code ph_tin}, {@code ro_tin},
1697
     * {@code rs_pib}, {@code ru_inn}, {@code ru_kpp}, {@code sa_vat}, {@code sg_gst}, {@code
1698
     * sg_uen}, {@code si_tin}, {@code sn_ninea}, {@code sr_fin}, {@code sv_nit}, {@code th_vat},
1699
     * {@code tj_tin}, {@code tr_tin}, {@code tw_vat}, {@code tz_vat}, {@code ua_vat}, {@code
1700
     * ug_tin}, {@code us_ein}, {@code uy_ruc}, {@code uz_tin}, {@code uz_vat}, {@code ve_rif},
1701
     * {@code vn_tin}, {@code za_vat}, {@code zm_tin}, or {@code zw_tin}
1702
     */
1703
    @SerializedName("type")
1704
    Type type;
1705

1706
    /** <strong>Required.</strong> Value of the tax ID. */
1707
    @SerializedName("value")
1708
    String value;
1709

1710
    private TaxIdData(Map<String, Object> extraParams, Type type, String value) {
×
1711
      this.extraParams = extraParams;
×
1712
      this.type = type;
×
1713
      this.value = value;
×
1714
    }
×
1715

1716
    public static Builder builder() {
1717
      return new Builder();
×
1718
    }
1719

1720
    public static class Builder {
×
1721
      private Map<String, Object> extraParams;
1722

1723
      private Type type;
1724

1725
      private String value;
1726

1727
      /** Finalize and obtain parameter instance from this builder. */
1728
      public CustomerCreateParams.TaxIdData build() {
1729
        return new CustomerCreateParams.TaxIdData(this.extraParams, this.type, this.value);
×
1730
      }
1731

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

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

1758
      /**
1759
       * <strong>Required.</strong> Type of the tax ID, one of {@code ad_nrt}, {@code ae_trn},
1760
       * {@code al_tin}, {@code am_tin}, {@code ao_tin}, {@code ar_cuit}, {@code au_abn}, {@code
1761
       * au_arn}, {@code ba_tin}, {@code bb_tin}, {@code bg_uic}, {@code bh_vat}, {@code bo_tin},
1762
       * {@code br_cnpj}, {@code br_cpf}, {@code bs_tin}, {@code by_tin}, {@code ca_bn}, {@code
1763
       * ca_gst_hst}, {@code ca_pst_bc}, {@code ca_pst_mb}, {@code ca_pst_sk}, {@code ca_qst},
1764
       * {@code cd_nif}, {@code ch_uid}, {@code ch_vat}, {@code cl_tin}, {@code cn_tin}, {@code
1765
       * co_nit}, {@code cr_tin}, {@code de_stn}, {@code do_rcn}, {@code ec_ruc}, {@code eg_tin},
1766
       * {@code es_cif}, {@code eu_oss_vat}, {@code eu_vat}, {@code gb_vat}, {@code ge_vat}, {@code
1767
       * gn_nif}, {@code hk_br}, {@code hr_oib}, {@code hu_tin}, {@code id_npwp}, {@code il_vat},
1768
       * {@code in_gst}, {@code is_vat}, {@code jp_cn}, {@code jp_rn}, {@code jp_trn}, {@code
1769
       * ke_pin}, {@code kh_tin}, {@code kr_brn}, {@code kz_bin}, {@code li_uid}, {@code li_vat},
1770
       * {@code ma_vat}, {@code md_vat}, {@code me_pib}, {@code mk_vat}, {@code mr_nif}, {@code
1771
       * mx_rfc}, {@code my_frp}, {@code my_itn}, {@code my_sst}, {@code ng_tin}, {@code no_vat},
1772
       * {@code no_voec}, {@code np_pan}, {@code nz_gst}, {@code om_vat}, {@code pe_ruc}, {@code
1773
       * ph_tin}, {@code ro_tin}, {@code rs_pib}, {@code ru_inn}, {@code ru_kpp}, {@code sa_vat},
1774
       * {@code sg_gst}, {@code sg_uen}, {@code si_tin}, {@code sn_ninea}, {@code sr_fin}, {@code
1775
       * sv_nit}, {@code th_vat}, {@code tj_tin}, {@code tr_tin}, {@code tw_vat}, {@code tz_vat},
1776
       * {@code ua_vat}, {@code ug_tin}, {@code us_ein}, {@code uy_ruc}, {@code uz_tin}, {@code
1777
       * uz_vat}, {@code ve_rif}, {@code vn_tin}, {@code za_vat}, {@code zm_tin}, or {@code zw_tin}
1778
       */
1779
      public Builder setType(CustomerCreateParams.TaxIdData.Type type) {
1780
        this.type = type;
×
1781
        return this;
×
1782
      }
1783

1784
      /** <strong>Required.</strong> Value of the tax ID. */
1785
      public Builder setValue(String value) {
1786
        this.value = value;
×
1787
        return this;
×
1788
      }
1789
    }
1790

1791
    public enum Type implements ApiRequestParams.EnumParam {
×
1792
      @SerializedName("ad_nrt")
×
1793
      AD_NRT("ad_nrt"),
1794

1795
      @SerializedName("ae_trn")
×
1796
      AE_TRN("ae_trn"),
1797

NEW
1798
      @SerializedName("al_tin")
×
1799
      AL_TIN("al_tin"),
1800

UNCOV
1801
      @SerializedName("am_tin")
×
1802
      AM_TIN("am_tin"),
1803

1804
      @SerializedName("ao_tin")
×
1805
      AO_TIN("ao_tin"),
1806

1807
      @SerializedName("ar_cuit")
×
1808
      AR_CUIT("ar_cuit"),
1809

1810
      @SerializedName("au_abn")
×
1811
      AU_ABN("au_abn"),
1812

1813
      @SerializedName("au_arn")
×
1814
      AU_ARN("au_arn"),
1815

1816
      @SerializedName("ba_tin")
×
1817
      BA_TIN("ba_tin"),
1818

1819
      @SerializedName("bb_tin")
×
1820
      BB_TIN("bb_tin"),
1821

1822
      @SerializedName("bg_uic")
×
1823
      BG_UIC("bg_uic"),
1824

1825
      @SerializedName("bh_vat")
×
1826
      BH_VAT("bh_vat"),
1827

1828
      @SerializedName("bo_tin")
×
1829
      BO_TIN("bo_tin"),
1830

1831
      @SerializedName("br_cnpj")
×
1832
      BR_CNPJ("br_cnpj"),
1833

1834
      @SerializedName("br_cpf")
×
1835
      BR_CPF("br_cpf"),
1836

1837
      @SerializedName("bs_tin")
×
1838
      BS_TIN("bs_tin"),
1839

1840
      @SerializedName("by_tin")
×
1841
      BY_TIN("by_tin"),
1842

1843
      @SerializedName("ca_bn")
×
1844
      CA_BN("ca_bn"),
1845

1846
      @SerializedName("ca_gst_hst")
×
1847
      CA_GST_HST("ca_gst_hst"),
1848

1849
      @SerializedName("ca_pst_bc")
×
1850
      CA_PST_BC("ca_pst_bc"),
1851

1852
      @SerializedName("ca_pst_mb")
×
1853
      CA_PST_MB("ca_pst_mb"),
1854

1855
      @SerializedName("ca_pst_sk")
×
1856
      CA_PST_SK("ca_pst_sk"),
1857

1858
      @SerializedName("ca_qst")
×
1859
      CA_QST("ca_qst"),
1860

1861
      @SerializedName("cd_nif")
×
1862
      CD_NIF("cd_nif"),
1863

1864
      @SerializedName("ch_uid")
×
1865
      CH_UID("ch_uid"),
1866

1867
      @SerializedName("ch_vat")
×
1868
      CH_VAT("ch_vat"),
1869

1870
      @SerializedName("cl_tin")
×
1871
      CL_TIN("cl_tin"),
1872

1873
      @SerializedName("cn_tin")
×
1874
      CN_TIN("cn_tin"),
1875

1876
      @SerializedName("co_nit")
×
1877
      CO_NIT("co_nit"),
1878

1879
      @SerializedName("cr_tin")
×
1880
      CR_TIN("cr_tin"),
1881

1882
      @SerializedName("de_stn")
×
1883
      DE_STN("de_stn"),
1884

1885
      @SerializedName("do_rcn")
×
1886
      DO_RCN("do_rcn"),
1887

1888
      @SerializedName("ec_ruc")
×
1889
      EC_RUC("ec_ruc"),
1890

1891
      @SerializedName("eg_tin")
×
1892
      EG_TIN("eg_tin"),
1893

1894
      @SerializedName("es_cif")
×
1895
      ES_CIF("es_cif"),
1896

1897
      @SerializedName("eu_oss_vat")
×
1898
      EU_OSS_VAT("eu_oss_vat"),
1899

1900
      @SerializedName("eu_vat")
×
1901
      EU_VAT("eu_vat"),
1902

1903
      @SerializedName("gb_vat")
×
1904
      GB_VAT("gb_vat"),
1905

1906
      @SerializedName("ge_vat")
×
1907
      GE_VAT("ge_vat"),
1908

1909
      @SerializedName("gn_nif")
×
1910
      GN_NIF("gn_nif"),
1911

1912
      @SerializedName("hk_br")
×
1913
      HK_BR("hk_br"),
1914

1915
      @SerializedName("hr_oib")
×
1916
      HR_OIB("hr_oib"),
1917

1918
      @SerializedName("hu_tin")
×
1919
      HU_TIN("hu_tin"),
1920

1921
      @SerializedName("id_npwp")
×
1922
      ID_NPWP("id_npwp"),
1923

1924
      @SerializedName("il_vat")
×
1925
      IL_VAT("il_vat"),
1926

1927
      @SerializedName("in_gst")
×
1928
      IN_GST("in_gst"),
1929

1930
      @SerializedName("is_vat")
×
1931
      IS_VAT("is_vat"),
1932

1933
      @SerializedName("jp_cn")
×
1934
      JP_CN("jp_cn"),
1935

1936
      @SerializedName("jp_rn")
×
1937
      JP_RN("jp_rn"),
1938

1939
      @SerializedName("jp_trn")
×
1940
      JP_TRN("jp_trn"),
1941

1942
      @SerializedName("ke_pin")
×
1943
      KE_PIN("ke_pin"),
1944

1945
      @SerializedName("kh_tin")
×
1946
      KH_TIN("kh_tin"),
1947

1948
      @SerializedName("kr_brn")
×
1949
      KR_BRN("kr_brn"),
1950

1951
      @SerializedName("kz_bin")
×
1952
      KZ_BIN("kz_bin"),
1953

1954
      @SerializedName("li_uid")
×
1955
      LI_UID("li_uid"),
1956

1957
      @SerializedName("li_vat")
×
1958
      LI_VAT("li_vat"),
1959

1960
      @SerializedName("ma_vat")
×
1961
      MA_VAT("ma_vat"),
1962

1963
      @SerializedName("md_vat")
×
1964
      MD_VAT("md_vat"),
1965

1966
      @SerializedName("me_pib")
×
1967
      ME_PIB("me_pib"),
1968

1969
      @SerializedName("mk_vat")
×
1970
      MK_VAT("mk_vat"),
1971

1972
      @SerializedName("mr_nif")
×
1973
      MR_NIF("mr_nif"),
1974

1975
      @SerializedName("mx_rfc")
×
1976
      MX_RFC("mx_rfc"),
1977

1978
      @SerializedName("my_frp")
×
1979
      MY_FRP("my_frp"),
1980

1981
      @SerializedName("my_itn")
×
1982
      MY_ITN("my_itn"),
1983

1984
      @SerializedName("my_sst")
×
1985
      MY_SST("my_sst"),
1986

1987
      @SerializedName("ng_tin")
×
1988
      NG_TIN("ng_tin"),
1989

1990
      @SerializedName("no_vat")
×
1991
      NO_VAT("no_vat"),
1992

1993
      @SerializedName("no_voec")
×
1994
      NO_VOEC("no_voec"),
1995

1996
      @SerializedName("np_pan")
×
1997
      NP_PAN("np_pan"),
1998

1999
      @SerializedName("nz_gst")
×
2000
      NZ_GST("nz_gst"),
2001

2002
      @SerializedName("om_vat")
×
2003
      OM_VAT("om_vat"),
2004

2005
      @SerializedName("pe_ruc")
×
2006
      PE_RUC("pe_ruc"),
2007

2008
      @SerializedName("ph_tin")
×
2009
      PH_TIN("ph_tin"),
2010

2011
      @SerializedName("ro_tin")
×
2012
      RO_TIN("ro_tin"),
2013

2014
      @SerializedName("rs_pib")
×
2015
      RS_PIB("rs_pib"),
2016

2017
      @SerializedName("ru_inn")
×
2018
      RU_INN("ru_inn"),
2019

2020
      @SerializedName("ru_kpp")
×
2021
      RU_KPP("ru_kpp"),
2022

2023
      @SerializedName("sa_vat")
×
2024
      SA_VAT("sa_vat"),
2025

2026
      @SerializedName("sg_gst")
×
2027
      SG_GST("sg_gst"),
2028

2029
      @SerializedName("sg_uen")
×
2030
      SG_UEN("sg_uen"),
2031

2032
      @SerializedName("si_tin")
×
2033
      SI_TIN("si_tin"),
2034

2035
      @SerializedName("sn_ninea")
×
2036
      SN_NINEA("sn_ninea"),
2037

2038
      @SerializedName("sr_fin")
×
2039
      SR_FIN("sr_fin"),
2040

2041
      @SerializedName("sv_nit")
×
2042
      SV_NIT("sv_nit"),
2043

2044
      @SerializedName("th_vat")
×
2045
      TH_VAT("th_vat"),
2046

2047
      @SerializedName("tj_tin")
×
2048
      TJ_TIN("tj_tin"),
2049

2050
      @SerializedName("tr_tin")
×
2051
      TR_TIN("tr_tin"),
2052

2053
      @SerializedName("tw_vat")
×
2054
      TW_VAT("tw_vat"),
2055

2056
      @SerializedName("tz_vat")
×
2057
      TZ_VAT("tz_vat"),
2058

2059
      @SerializedName("ua_vat")
×
2060
      UA_VAT("ua_vat"),
2061

2062
      @SerializedName("ug_tin")
×
2063
      UG_TIN("ug_tin"),
2064

2065
      @SerializedName("us_ein")
×
2066
      US_EIN("us_ein"),
2067

2068
      @SerializedName("uy_ruc")
×
2069
      UY_RUC("uy_ruc"),
2070

2071
      @SerializedName("uz_tin")
×
2072
      UZ_TIN("uz_tin"),
2073

2074
      @SerializedName("uz_vat")
×
2075
      UZ_VAT("uz_vat"),
2076

2077
      @SerializedName("ve_rif")
×
2078
      VE_RIF("ve_rif"),
2079

2080
      @SerializedName("vn_tin")
×
2081
      VN_TIN("vn_tin"),
2082

2083
      @SerializedName("za_vat")
×
2084
      ZA_VAT("za_vat"),
2085

2086
      @SerializedName("zm_tin")
×
2087
      ZM_TIN("zm_tin"),
2088

2089
      @SerializedName("zw_tin")
×
2090
      ZW_TIN("zw_tin");
2091

2092
      @Getter(onMethod_ = {@Override})
2093
      private final String value;
2094

2095
      Type(String value) {
×
2096
        this.value = value;
×
2097
      }
×
2098
    }
2099
  }
2100

2101
  public enum TaxExempt implements ApiRequestParams.EnumParam {
×
2102
    @SerializedName("exempt")
×
2103
    EXEMPT("exempt"),
2104

2105
    @SerializedName("none")
×
2106
    NONE("none"),
2107

2108
    @SerializedName("reverse")
×
2109
    REVERSE("reverse");
2110

2111
    @Getter(onMethod_ = {@Override})
2112
    private final String value;
2113

2114
    TaxExempt(String value) {
×
2115
      this.value = value;
×
2116
    }
×
2117
  }
2118
}
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

© 2025 Coveralls, Inc