# Update a custom field

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.

Endpoint: PATCH /v1/businesses/{client_id}/custom-fields/{custom_field_id}
Version: v1
Security: BearerAuth

## Path parameters:

  - `client_id` (integer, required)
    The ID of the business.
    Example: 123

  - `custom_field_id` (string, required)
    The ID of the custom field.
    Example: "3fa85f64-5717-4562-b3fc-2c963f66afa6"

## Request fields (application/json):

  - `name` (string)
    The new display name. Not permitted for fields created by accounting integrations. Cannot set to a name already in use by another custom field in the business.
    Example: "Cost Centre"

  - `field_type` (string)
    The type of the custom field. Not permitted for fields created by accounting integrations.
    Enum: "LIST", "FREE_TEXT"

  - `is_manager_only` (boolean)
    Cannot be changed after creation — always returns 400 if a different value is sent.

  - `budget_setting` (string)
    Controls which budgets this custom field is assigned to.
    Enum: "NONE", "SOME", "ALL_CURRENT_AND_NEW"

## Response 200 fields (application/json):

  - `id` (string)
    The unique identifier for this custom field.
    Example: "3fa85f64-5717-4562-b3fc-2c963f66afa6"

  - `name` (string)
    The display name of the custom field.
    Example: "Project Code"

  - `field_type` (string)
    The type of the custom field.
    Enum: "LIST", "FREE_TEXT"

  - `budget_setting` (string)
    Controls which budgets this custom field is assigned to.
    Enum: "NONE", "SOME", "ALL_CURRENT_AND_NEW"

  - `is_manager_only` (boolean)
    Whether this custom field is visible only to managers. Cannot be changed after creation.

  - `created_by` (string)
    The source that created this custom field.
    Enum: "MANUAL", "PUBLIC_API", "XERO", "MYOB", "QUICKBOOKS", "NETSUITE", "BUSINESS_CENTRAL"

  - `created` (string)
    The date and time when this custom field was created.
    Example: "2024-01-15T09:00:00Z"

  - `updated` (string)
    The date and time when this custom field was last updated.
    Example: "2024-01-15T09:00:00Z"


## Response 400 fields

## Response 401 fields

## Response 403 fields

## Response 404 fields
