---
title: "Update a custom field"
method: PATCH
path: "/v3/spend/custom-fields/{customFieldId}"
tags: ["custom-fields"]
---

# Update a custom field

`PATCH /v3/spend/custom-fields/{customFieldId}`

Update details about an existing custom field.

## Path parameters

- `customFieldId` string, required — BILL-generated ID or UUID of the custom field

## Headers

- `apiToken` string, nullable — Access token for Spend & Expense API authentication

## Request body

- UpdateCustomFieldRequestDto — Update a custom field (Description added)
  - `minimumAmountForRequirement` number, nullable — Minimum transaction amount where the custom field is required
  - `name` string, nullable — Custom field name
  - `description` string, nullable — Custom field description
  - `allowCustomValues` boolean, nullable — Set as `true` if the custom field can have custom values
  - `required` boolean, nullable — Set as `true` if the custom field is required for all budgets. The default value is `false`.
  - `global` boolean, nullable — Set as `true` if the custom field applies to all budgets. The default value is `false`.
  - `selectedBudgetIds` string[] — List of budgets where the custom field is available. Set the budget ID or UUID values.
  - `requiredBudgetIds` string[] — List of budgets where the custom field is required. Set the budget ID or UUID values.

## Response `200`

Update a custom field response

- CustomFieldResponseDto — DTO representing a custom field response.
  - `id` string — BILL-generated ID of the custom field
  - `uuid` string — BILL-generated UUID of the custom field
  - `name` string — Custom field name
  - `description` string — Custom field description
  - `type` 'CUSTOM_SELECTOR' | 'NOTE' — Custom field type. n* `CUSTOM_SELECTOR`: Select one value from the list (or multiple values when `multiSelect` is true) * `NOTE`: Write a per-transaction custom note. **Note**: Currently, BILL does not support creating additional custom fields with `type` set as `NOTE`.
  - `multiSelect` boolean — Set as `true` if the custom field can have multiple selected values
  - `allowCustomValues` boolean — Set as `true` if the custom field can have custom values
  - `minimumAmountForRequirement` number — Minimum transaction amount where the custom field is required
  - `required` boolean — Set as `true` if the custom field is required for all budgets. The default value is `false`.
  - `global` boolean — Set as `true` if the custom field applies to all budgets. The default value is `false`.
  - `retired` boolean — Set as `true` if the custom field is retired
  - `createdTime` string, date-time — Created date and time
  - `selectedBudgetIds` string[] — List of BILL-generated ID values of budgets where the custom field is available
  - `selectedBudgetUuids` string[] — List of BILL-generated UUID values of budgets where the custom field is available
  - `requiredBudgetIds` string[] — List of BILL-generated ID values of budgets where the custom field is required
  - `requiredBudgetUuids` string[] — List of BILL-generated UUID values of budgets where the custom field is required

## Other responses

- `4XX` — List of errors.
- `5XX` — List of errors.

---

[API](https://skmtc.net/bill/apis/bill-v3-api.md) · [All operations](https://skmtc.net/bill/apis/bill-v3-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bill/bill-v3-api/revisions/0483350c434e/schema)
