# 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.

 - [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.
 - [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 /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.
 - [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 `budge
 - [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.
