# ProcessorConfigSchemaDto

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

The configuration schema for a single processor: the set of fields a client must populate to
build a valid processor profile for that processor. Returned by the config-schema discovery
endpoint and intended to be paired with a merchant create/update request.

## Fields
- `processorId` (string): Identifier of the processor this schema describes. Submit this as the processor configuration's  `ProcessorId` in a merchant create/update request. (nullable)
- `processorName` (string): Display name of the processor. (nullable)
- `fields` (array<[ProcessorFieldDefinitionDto](https://devportal.demo.winkpg.io/docs/api/models/ProcessorFieldDefinitionDto.md)>): The fields applicable to the requested payment types, ordered by  `position`. (nullable)
  Fields of each item:
  - `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)
  - `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)
- `schemaVersion` (string): Opaque, deterministic content hash of this processor's full projected field schema. It is  derived from the field definitions (not hand-maintained), so it changes whenever a field is  added, removed, or edited, and is stable otherwise. It is <b>per-processor</b> (covers the whole  field catalog), so it does not vary with the `paymentTypes` filter. Cache the schema keyed  by this value to detect drift; it is also returned as the response `ETag`, and a request  with a matching `If-None-Match` receives `304 Not Modified`. (nullable)

## See also

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