---
title: "Update a tax rate"
method: PUT
path: "/settings/tax-rates/{id}"
tags: ["Admin Settings: Tax Rates"]
---

# Update a tax rate

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

## Request

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

Partial update; identifier uniqueness excludes self.

## Path parameters

- `id` integer, required

## Request body

- AdminSettingsTaxRateAdminSettingsTaxRateUpdateInput: Admin Settings → Tax Rates endpoints (Block B Wave 3). Mirrors Webkul\Admin\Http\Controllers\Settings\Tax\TaxRateController. is_zip conditional validation: - is_zip = false → zip_code required (the specific zip mode) - is_zip = true → zip_from + zip_to required (the range mode) No mass-delete in the monolith admin UI; not exposed.
  - `id` string, nullable: Resource IRI (e.g. /api/admin/settings/tax-rates/4).
  - `identifier` string, nullable
  - `isZip` boolean, nullable
  - `zipCode` string, nullable
  - `zipFrom` string, nullable
  - `zipTo` string, nullable
  - `state` string, nullable
  - `country` string, nullable
  - `taxRate` number, nullable

## Response `200`

Tax rate updated.

- AdminSettingsTaxRate: Admin Settings → Tax Rates endpoints (Block B Wave 3). Mirrors Webkul\Admin\Http\Controllers\Settings\Tax\TaxRateController. is_zip conditional validation: - is_zip = false → zip_code required (the specific zip mode) - is_zip = true → zip_from + zip_to required (the range mode) No mass-delete in the monolith admin UI; not exposed.
  - `id` integer, nullable
  - `identifier` string, nullable
  - `isZip` boolean, nullable
  - `zipCode` string, nullable
  - `zipFrom` string, nullable
  - `zipTo` string, nullable
  - `state` string, nullable
  - `country` string, nullable
  - `taxRate` number, nullable
  - `createdAt` string, nullable
  - `updatedAt` string, nullable
  - `message` string, nullable

## Other responses

- `400`: Invalid input
- `404`: Tax rate 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)
