> ## Documentation Index
> Fetch the complete documentation index at: https://developer.jtl-software.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CustomField

> The definition of a custom field: a merchant-defined field that can be filled on records of one entity type.



**Kind**: `interface`

## Fields

**`id`**: `ID!`

The ID of the custom field.

---

**`kind`**: `CustomFieldKind!`

The shape of the field. Value list fields carry allowed values, all other fields do not.

---

**`dataType`**: `String!`

The data type of the field. It cannot be changed after the field was created. Known keys: 'INTEGER', 'DECIMAL', 'TEXT', 'SHORT_TEXT', 'CHECKBOX', 'VALUE_LIST', 'URL', 'EMAIL', 'PHONE', 'COUNTRY_ISO', 'PRICE', 'DATE'. New keys can be added; handle an unknown key as not known, never as a failure.

---

**`entityType`**: `String!`

The kind of record the field belongs to. It cannot be changed after the field was created. Known keys: 'ITEM', 'CATEGORY', 'CUSTOMER', 'SALES_ORDER', 'SALES_ORDER_LINE_ITEM', 'COMPANY', 'OPERATION', 'PRODUCTION_ITEM', 'PRODUCTION_ORDER', 'RESOURCE'. New keys can be added; handle an unknown key as not known, never as a failure.

---

**`groupName`**: `String`

The name of the group the field is displayed under. Fields of one group are shown together. Null for fields that belong to no group.

---

**`name`**: `String!`

The name of the field. It is unique among the fields of the same entity type when a field is created or renamed; existing data may contain duplicates.

---

**`description`**: `String`

An internal description of the field.

---

**`displayLocation`**: `String`

Where user interfaces show the field. Null for sales orders and sales order line items, which have no display location. Known keys: 'GENERAL', 'CUSTOM_FIELDS_TAB'. New keys can be added; handle an unknown key as not known, never as a failure.

---

**`isRequired`**: `Boolean!`

Indicates that a value is expected for this field. This is a hint for user interfaces; the API does not enforce it.

---

**`isHidden`**: `Boolean!`

Indicates that user interfaces hide the field. Hidden fields stay readable and writable through the API.

---

**`sortOrder`**: `Int!`

The position of the field within its group. The API does not store a group order; sort groups by 'groupName'.

---

**`productGroupRestriction`**: `ProductGroupRestriction`

Restricts the field to items of certain product groups in user interfaces. Only available for item fields.

## Possible types

- `ScalarCustomField`
- `ValueListCustomField`

