---
title: "Update tax code"
method: PATCH
path: "/v3/accounting/integration/{integration_id}/tax-codes/{brex_id}"
tags: ["Accounting VAT"]
---

# Update tax code

`PATCH /v3/accounting/integration/{integration_id}/tax-codes/{brex_id}`

## Request

- Base URL: `https://api.brex.com`
- URL: `https://api.brex.com/v3/accounting/integration/{integration_id}/tax-codes/{brex_id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://accounts-api.brex.com/oauth2/default/v1/authorize`
    - Token URL: `https://accounts-api.brex.com/oauth2/default/v1/token` scopes: `accounting.integration.write`
- TypeScript: <https://skmtc.dev/brex-com/apis/accounting-api/docs/v3/accounting/integration/:integration_id/tax-codes/:brex_id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Apply per-subsidiary status changes (partial-apply; unlisted subsidiaries unchanged). Name and rate are immutable.

## Path parameters

- `brex_id` string, required
- `integration_id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- UpdateTaxCodeRequest
  - `subsidiaries` TaxCodeSubsidiaryStatus[], required: Per-subsidiary status changes to apply
    - `status` 'ENABLED' | 'DISABLED', required: Whether the tax code is enabled for this subsidiary
    - `subsidiary_id` string, required: The subsidiary this status applies to

## Response `200`

Tax code updated

- TaxCode
  - `brex_id` string, required: The internal Brex ID of the tax code
  - `name` string, required: Human-readable name of the tax code
  - `rate` number, nullable: Tax rate as a percentage (e.g. 20 for 20%). 0 is zero-rated; null is exempt
  - `remote_id` string, nullable: The tax code's identifier in the remote accounting system. Null when the caller did not provide one.
  - `subsidiaries` TaxSubsidiary[], required: Per-subsidiary enablement, one entry per subsidiary with a setting for this code
    - `status` 'ENABLED' | 'DISABLED', required: Whether the code/group is enabled for this subsidiary
    - `subsidiary_id` string, required: The internal Brex ID of the subsidiary
    - `subsidiary_name` string, required: Human-readable name of the subsidiary
  - `updated_at` string, date-time, required: The last updated timestamp of the tax code

## Other responses

- `400`: The request is invalid.
- `401`: The bearer token is missing or rejected.
- `403`: The token does not have a required scope.
- `404`: Tax code not found

## Changes

- **2026-11-06** `abca76caa09d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/brex-com/apis/accounting-api/changes/v3/accounting/integration/:integration_id/tax-codes/:brex_id/patch.md)

---

[API](https://skmtc.dev/brex-com/apis/accounting-api.md) - [All operations](https://skmtc.dev/brex-com/apis/accounting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brex-com/apis/accounting-api/revisions/abca76caa09d?raw)
