> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fynn.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Attributes

> Create custom attributes for various objects.

Custom attributes allow you to store additional information for various objects. Depending on the settings, these attributes can be displayed and edited both in the API and in the user interface.

These can be defined for <a href="/guide/customers/introduction">Customers</a>, <a href="/guide/catalogue/products">Products</a>, and <a href="/guide/subscriptions/introduction">Subscriptions</a>.
Additionally, the following types of custom attributes are possible:

* Text
* Number
* Date
* Selection Options
* Multiple Selection
* List
* Checkbox (Yes/No)

## Use Cases

Custom attributes can be used for various purposes, such as:

* Storing additional information about customers, such as date of birth, internal customer number, etc.
* Storing additional information about products, such as manufacturer, weight, etc.
* Storing additional information about subscriptions, such as contract number, etc.
* Storing allowed features for a product on the subscription

These are just some examples of how custom attributes can be used. The usage depends on the specific requirements of your business.

## Create Custom Attributes

<Steps>
  <Step title="Go to Settings > General">
    Scroll down to "Custom Attributes".
  </Step>

  <Step title="Click on 'Create New Attribute'">
    <Frame>
      <img src="https://mintcdn.com/fynnsubscriptionbilling/iVIPUuF_nH0B0-xL/images/custom-fields-list.png?fit=max&auto=format&n=iVIPUuF_nH0B0-xL&q=85&s=392cb5e684948ebda25392f26945e8f1" alt="Create Custom Attributes" width="1176" height="581" data-path="images/custom-fields-list.png" />
    </Frame>
  </Step>

  <Step title="Configure Attribute">
    Configure the attribute according to your requirements.

    <Frame>
      <img src="https://mintcdn.com/fynnsubscriptionbilling/iVIPUuF_nH0B0-xL/images/custom-fields-form.png?fit=max&auto=format&n=iVIPUuF_nH0B0-xL&q=85&s=573f21d52b9e7b88d7be207cf32ec1f9" alt="Configure Custom Attributes" width="425" height="763" data-path="images/custom-fields-form.png" />
    </Frame>
  </Step>
</Steps>

## Delete Custom Attributes

If you no longer need a custom attribute, you can delete it.
The data will be preserved, but the attribute will no longer be displayed and cannot be edited.

## Edit Custom Attributes

Custom attributes can be attached to customers, products, and subscriptions. These can be edited in the user interface.

<Frame>
  <img src="https://mintcdn.com/fynnsubscriptionbilling/iVIPUuF_nH0B0-xL/images/custom-fields-edit-form.png?fit=max&auto=format&n=iVIPUuF_nH0B0-xL&q=85&s=ee7cf0a430400b46648cda78bb376cd8" alt="Set Custom Attributes" width="556" height="370" data-path="images/custom-fields-edit-form.png" />
</Frame>

## Using the API

Custom attributes can also be set and retrieved via the API. Simply use the `customFields` field in the corresponding objects.

### Selection Options / Multiple Selection

By default, the display name is used as the key for both value and display name.
If this is not desired, when creating the custom attributes, an array can be passed under the `choices` point where value and display name can be defined.

```json Example JSON Payload theme={null}
{
    "name": "My custom field",
    "slug": "custom_field",
    "type": "list",
    "choices": {
        "value1": "Display Name 1",
        "value2": "Display Name 2"
    }
}
```
