# Custom Fields

This group of endpoints allows you to create and manage custom fields (dimensions/cost centres) for your business.

Custom fields can be of type `LIST` (with predefined options) or `FREE_TEXT`. Custom fields created via the Public API have a `created_by` value of `PUBLIC_API`.

Custom fields created by accounting integrations (Xero, MYOB, QuickBooks, NetSuite, Business Central) have restrictions: their name and type cannot be modified via the Public API.


## List custom fields

 - [GET /v1/businesses/{client_id}/custom-fields](https://developer.letsweel.com/openapi/custom-fields/listcustomfields.md): Returns a paginated list of custom fields for the given business.

## Create a custom field

 - [POST /v1/businesses/{client_id}/custom-fields](https://developer.letsweel.com/openapi/custom-fields/createcustomfield.md): Creates a new custom field for the given business. The created_by value will be set to PUBLIC_API.

## Get a custom field

 - [GET /v1/businesses/{client_id}/custom-fields/{custom_field_id}](https://developer.letsweel.com/openapi/custom-fields/getcustomfield.md): Returns a single custom field by ID.

## Update a custom field

 - [PATCH /v1/businesses/{client_id}/custom-fields/{custom_field_id}](https://developer.letsweel.com/openapi/custom-fields/updatecustomfield.md): Partially updates a custom field.

Restrictions for accounting integration fields (created by Xero, MYOB, QuickBooks, NetSuite, or Business Central): the name field cannot be changed. Only budget_setting can be updated.

## Delete a custom field

 - [DELETE /v1/businesses/{client_id}/custom-fields/{custom_field_id}](https://developer.letsweel.com/openapi/custom-fields/deletecustomfield.md): Deletes a custom field. This also removes all associated options and budget links.

