| type | No | Used to store field data in a predictable manner. Please note that you must use Customer Name and Shipping Address if you wish to use any of the shipping address data types. Do not set `type` when `element` is one of: `checkbox`, `quantity`, `tax-id`, `po-number`, `multiple-choice`, `multi-select`, `date-time`, `date`, `time`, `textarea`. | |
| label | No | Form label for the input element. | |
| order | No | Display order of this field. When omitted, order is determined by the position of the field in the array. | |
| hidden | No | Whether this field is hidden from customers at checkout. | |
| layout | No | How a multi-select field is drawn at checkout: `dropdown` (the default) or `list`, a list of checkboxes. Ignored on other elements. | |
| pageId | Yes | The ID of the page the field belongs to. | |
| collect | No | Whether to collect only a billing address or both billing and shipping. Applies to `address` elements. Defaults to `billing`. | |
| element | No | Input control used to render this field in checkout. Defaults to `text`. | |
| fieldId | Yes | The ID of the field. Field IDs are listed under `fields` in the page detail response from get_checkout_page, get_form, or get_event. | |
| options | No | Selectable options for `select`, `multi-select` and `multiple-choice` elements. Replaced wholesale: every option gets a new ID, so re-point any other field whose showHideLogic references one of these options afterwards. Options on a `multi-select` need different values (an option without a value uses its label), and options on a `multiple-choice` need different labels. | |
| maxValue | No | Maximum allowed value settings for this field. | |
| minValue | No | Minimum allowed value settings for this field. | |
| pageType | Yes | The kind of page the field belongs to: `checkout`, `form`, or `event`. Use the type of the tool you fetched the page with (get_checkout_page, get_form, get_event). | |
| required | No | Whether this field must be completed before checkout can continue. | |
| reference | No | External reference ID for integration purposes. Generated from the field type or label when omitted. | |
| description | No | Optional helper text shown below the field label. | |
| placeholder | No | Specifies a short hint that describes the expected value of an input element | |
| defaultValue | No | Default value settings for the field. | |
| showHideLogic | No | Conditional visibility rules for this field. `element.elementId` must be the ID of another field on the same page, and `value` an option ID on that field (or `TRUE`/`FALSE` for a checkbox). Read the IDs from the page detail response; create-time keys are rejected here. | |
| defaultCountry | No | ISO 3166-1 alpha-2 country code used as the default for `address` elements. Defaults to `US`. | |
| collectShippingPhone | No | Whether to collect a phone number alongside the shipping address. Applies to `address` elements when `collect` is `billing_and_shipping`. Defaults to `false`. | |
| showSelectedDialCode | No | Whether to display the selected international dial code in phone inputs. | |
| limitAllowedCountries | No | Country restriction settings for country-based fields. | |
| limitBillingCountries | No | Restrict the billing country list. Applies to `address` elements. | |
| limitShippingCountries | No | Restrict the shipping country list. Applies to `address` elements when `collect` is `billing_and_shipping`. | |