---
title: "Update status"
method: PATCH
path: "/api/v1/statuses/{id}"
tags: ["statuses"]
---

# Update status

`PATCH /api/v1/statuses/{id}`

Partially updates a custom status by its identifier (label, color, active). The code and entity type are immutable. KRUZER base statuses cannot be modified.

## Path parameters

- `id` string, uuid, required

## Request body

- StatusUpdate
  - `label` string
  - `description` string
  - `color` string
  - `active` boolean

## Response `200`

Status updated.

- StatusUpdateResponse
  - `id` string, required
  - `entity_type` 'ORDER' | 'FULFILLMENT_ORDER', required
  - `code` string, required
  - `label` string, required
  - `description` string, required
  - `nature` 'INITIAL' | 'PROCESSING' | 'FINAL' | 'ERROR', required
  - `color` string, required
  - `origin` 'KRUZER' | 'CUSTOM', required
  - `active` boolean, required
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `400` — Request payload, query string, or path parameter failed validation.
- `401` — Authentication is missing, malformed, expired, or refers to a session that is no longer active.
- `403` — The caller is authenticated but lacks the required permission for this action.
- `404` — Status not found in the caller account.
- `409` — The status cannot be deactivated while state machine transitions reference its code.
- `422` — The payload passed schema validation but breaks a domain invariant.
- `500` — Unexpected server error. The response body never leaks internal details.

## Changes

- **2026-07-07** `a3b4750a505f` — 15 info
  - added the new optional request property `active`
  - added the new optional request property `color`
  - added the new optional request property `description`
  - added the new optional request property `label`
  - …11 more
- **2026-07-07** `84194c31ab85` — 10 breaking, 3 warning
  - removed the required property `active` from the response with the `200` status
  - removed the required property `code` from the response with the `200` status
  - removed the required property `color` from the response with the `200` status
  - removed the required property `created_at` from the response with the `200` status
  - …9 more

[Change history](https://skmtc.dev/kruzer-corp/apis/oms-api/changes/api/v1/statuses/:id/patch.md)

---

[API](https://skmtc.dev/kruzer-corp/apis/oms-api.md) · [All operations](https://skmtc.dev/kruzer-corp/apis/oms-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kruzer-corp/oms-api/revisions/2decd53495a9/schema)
