---
title: "Update a tax category"
method: PUT
path: "/settings/tax-categories/{id}"
tags: ["Admin Settings: Tax Categories"]
---

# Update a tax category

`PUT /settings/tax-categories/{id}`

## Request

- Base URL: `http://localhost:8000/api/admin`
- URL: `http://localhost:8000/api/admin/settings/tax-categories/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bagisto/apis/bagisto-admin-api/docs/settings/tax-categories/:id/put.ts> (a function with typed inputs; its response is checked against the schema)

Code uniqueness excludes the current id. Re-syncs the tax_rates pivot to the supplied taxrates list.

## Path parameters

- `id` string, required

## Request body

- object
  - `code` string, required
  - `name` string, required
  - `description` string, required
  - `taxrates` integer[], required

## Response `200`

Tax category updated.

- AdminSettingsTaxCategory: Admin Settings → Tax Categories endpoints (Block B Wave 3). Mirrors Webkul\Admin\Http\Controllers\Settings\Tax\TaxCategoryController 1:1. REST: GET /api/admin/settings/tax-categories GET /api/admin/settings/tax-categories/{id} POST /api/admin/settings/tax-categories PUT /api/admin/settings/tax-categories/{id} DELETE /api/admin/settings/tax-categories/{id} GraphQL: adminSettingsTaxCategories — cursor listing adminSettingsTaxCategory(id:) — detail createAdminSettingsTaxCategory updateAdminSettingsTaxCategory deleteAdminSettingsTaxCategory
  - `id` integer
  - `code` string
  - `name` string
  - `description` string
  - `createdAt` string, date-time, nullable
  - `updatedAt` string, date-time, nullable
  - `message` string
  - `taxRates` string[]

## Other responses

- `400`: Invalid input
- `404`: Tax category not found.
- `422`: Validation failure.

---

[API](https://skmtc.dev/bagisto/apis/bagisto-admin-api.md) - [All operations](https://skmtc.dev/bagisto/apis/bagisto-admin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bagisto/apis/bagisto-admin-api/revisions/3198f11be70f?raw)
