# `Stripe.Resources.Checkout.Session.CustomFields`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/resources/checkout/session.ex#L554)

Nested struct within the parent resource.

# `t`

```elixir
@type t() :: %Stripe.Resources.Checkout.Session.CustomFields{
  dropdown: Stripe.Resources.CustomFieldDropdown.t() | nil,
  key: String.t() | nil,
  label: Stripe.Resources.Checkout.Session.CustomFields.Label.t() | nil,
  numeric: Stripe.Resources.CustomFieldNumeric.t() | nil,
  optional: boolean() | nil,
  text: Stripe.Resources.Checkout.Session.CustomFields.Text.t() | nil,
  type: String.t() | nil
}
```

* `dropdown`
* `key` - String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters. Max length: 5000.
* `label`
* `numeric`
* `optional` - Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`.
* `text`
* `type` - The type of the field. Possible values: `dropdown`, `numeric`, `text`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
