# ProcessorFieldDefinitionDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Describes a single configuration field that a processor requires when building a
merchant processor profile. Returned by the processor config-schema discovery endpoint
so API clients know which keys to populate, their types, and their validation rules.

## Fields
- `key` (string): Stable identifier used to store and retrieve the field value. Submit this verbatim as the  `Key` of the processor field value in a merchant create/update request. (nullable)
- `name` (string): Human-friendly label for the field. Supplying it on the corresponding field value is optional;  when omitted, the server fills it from this definition. (nullable)
- `description` (string): Longer description or help text for the field. (nullable)
- `displayType` ([SetupFieldDisplayType](https://devportal.demo.winkpg.io/docs/api/models/SetupFieldDisplayType.md)): Hint for how a UI should render the field (text box, toggle, or dropdown).
  Values:
  - `Toggle`
  - `TextField`
  - `Dropdown`
- `fieldType` ([SetupFieldType](https://devportal.demo.winkpg.io/docs/api/models/SetupFieldType.md)): Underlying value type of the field (string, bool, int, datetime).
  Values:
  - `String`
  - `Bool`
  - `DateTime`
  - `Int`
- `options` (array<[ProcessorFieldOptionDto](https://devportal.demo.winkpg.io/docs/api/models/ProcessorFieldOptionDto.md)>): For dropdown fields, the selectable options as explicit `{value, label}` pairs. Submit  the option's `Value` verbatim as the field value. When a field has no distinct backing  wire code, `Value` equals `Label`. Null for non-dropdown fields. This is the  preferred shape for closed-set fields. (nullable)
  Fields of each item:
  - `value` (string): The value to submit for the field when this option is selected. Submit this verbatim. (nullable)
  - `label` (string): The human-friendly label to present for this option. (nullable)
- `dropdownList` (array<string>): For dropdown fields, the labels presented to the operator. Aligned by index with  `dropdownValues` when backing values differ from the labels. (nullable)
- `dropdownValues` (array<string>): For dropdown fields, the backing values stored for each option. When null, the label from  `dropdownList` is also the stored value. (nullable)
- `isRequired` (boolean): Whether a value must be supplied for this field, <b>effective for the requested payment-type  selection</b>. When the config-schema request is scoped to a set of payment types, the response  contains exactly the fields applicable to that selection and `isRequired` reflects  it, so the returned set with `IsRequired == true` is the required-field minimum for that  selection. Fields outside the selection are omitted entirely (see  `applicablePaymentTypes`).
- `category` (string): Grouping category for UI layout (e.g. "Default", "Credit", "Debit", "EBT", "PAYFAC"). (nullable)
- `position` (integer(int32)): Relative ordering among fields. Fields are returned ordered by this value.
- `isSecret` (boolean): Whether the field holds a secret (credential) value. Secret values are encrypted at rest and  are never returned in plaintext; clients should treat secret fields as write-only.
- `validationRegex` (string): Optional regular expression the submitted string value must match. (nullable)
- `maxLength` (integer(int32)): Maximum character length for string values. Null means no limit. (nullable)
- `validationMessage` (string): Human-readable message shown when validation fails. When null, a generic message is generated. (nullable)
- `applicablePaymentTypes` (array<string>): Payment type <b>names</b> this field applies to: the same tokens as  `supportedPaymentTypes` and  `name`, so a client can correlate a field to a payment  type with one consistent token (no side lookup). Null or empty means the field applies to every  payment type. When a request scopes the schema to a subset of payment types, fields outside that  subset are omitted from the response. (nullable)
- `defaultValue` (string): Optional default value pre-populated when creating a new processor profile. (nullable)

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
