> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brand-wallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a category

> Update the fields of an existing BrandWallet product category. Only the fields you send are changed.

```http theme={null}
POST $BASE_URL/v1/categories/{id}
```

**Updates an existing category; only the fields you send are changed (partial update).**

> **Auth:** `Authorization: Bearer <accessToken>` — an organization-scoped token from [Authentication](/api/authentication). Updating a category that belongs to another organization returns `auth_error` (400).

### Payload schema

All fields are optional.

```json theme={null}
{
  "name": { "TR": "…", "EN": "…" },
  "description": "…",
  "opaqueId": "…",
  "parent": "category-uuid",
  "types": {},
  "status": 1
}
```

### Body

Field types and meanings match the [create endpoint](/api/create-category); the differences:

| Field | Type | Description |
| - | - | - |
| `status` | number | Unlike create, updatable: `1` published, `0` unpublished, `-1` archived. To delete a category use the [delete endpoint](/api/delete-category), not this field. |
| `organization` | string | Ignored when sent — a category cannot be moved to another organization. |

### Example

```bash theme={null}
curl --request POST \
  --url "$BASE_URL/v1/categories/79a83256-2925-44b4-9bdc-a401caccf969" \
  --header 'Authorization: Bearer <accessToken>' \
  --header 'Content-Type: application/json' \
  --data '{ "description": "updated", "status": 0 }'
```

### Response

Returns the full updated document.

```json theme={null}
{
  "id": "79a83256-2925-44b4-9bdc-a401caccf969",
  "name": { "TR": "Espresso Bazlı", "EN": "Espresso Based" },
  "description": "updated",
  "organization": "07f84834-1184-4eb6-82f5-7eda13231fc3",
  "status": 0,
  "opaqueId": "espresso-based",
  "parent": "1e1cc0fb-55a1-4679-80df-6dccb936273f",
  "createdAt": "2026-09-18T09:23:28.303Z",
  "updatedAt": "2026-09-18T09:23:55.412Z"
}
```

Notes:

* A successful update returns **HTTP 201** (not 200) — branch on the body, not the status code.
* An unknown id returns `entity_not_found` (400).
* Do not send `null` to clear a field; removing a field is not supported — only new values can be written.
