# update_tax_codes

Update one or more tax codes (a.k.a. VAT codes) by ID. Only the provided fields are updated — omit a field to leave it
unchanged. Use `list_tax_codes` to discover tax code IDs first. Each update runs in parallel and is reported
independently — partial failures do not abort the remaining updates.

<!-- INPUT_BLOCK_START -->

## Input

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `workspaceId` | `string` | Yes | The ID of the workspace |
| `taxCodes` | `UpdateTaxCodeInput[]` | Yes | Array of tax codes to update - [UpdateTaxCodeInput](#updatetaxcodeinput) |

### UpdateTaxCodeInput

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `taxCodeId` | `string` | Yes | The ID of the tax code to update |
| `name` | `string` | No | Updated display name |
| `code` | `string` | No | Updated short code identifier |
| `rate` | `number` | No | Updated tax rate as a percentage |
| `withHeldRate` | `number` | No | Updated withheld tax rate as a percentage |

<!-- INPUT_BLOCK_END -->

<!-- OUTPUT_BLOCK_START -->

## Output

| Field | Type | Description |
| --- | --- | --- |
| `content` | `ContentItem[]` | Array of content items returned by the tool - [ContentItem](#contentitem) |
| `isError` | `boolean` | Whether the tool execution resulted in an error |

### ContentItem

| Field | Type | Description |
| --- | --- | --- |
| `type` | `'text'` | Content type (currently only 'text' is supported) |
| `text` | `string` | The text content to display |

<!-- OUTPUT_BLOCK_END -->
