---
title: "Update Surface Finish"
method: PATCH
path: "/api/v1/surface-finishes/{finish_id}"
tags: ["surface_finishes"]
---

# Update Surface Finish

`PATCH /api/v1/surface-finishes/{finish_id}`

Patch a finish's type / Ra / color / notes.

Re-applies enum + editable-status validation.

## Path parameters

- `finish_id` string, uuid, required

## Request body

- SurfaceFinishUpdate — Payload for ``PATCH /surface-finishes/{id}``. All fields optional.
  - `finish_type` string, nullable
  - `ra_um` number, nullable
  - `custom_color_hex` string, nullable
  - `notes` string, nullable

## Response `200`

Successful Response

- SurfaceFinishRead — Flattened finish row — built by the service from an OutcomeEvent. Not an ORM passthrough: the source row is an ``OutcomeEvent`` with ``data = {finish_type, ra_um, ...}``. The projection flattens that payload + adds the computed ``is_process_mismatch`` flag and the resolved visual label.
  - `id` string, uuid, required
  - `part_id` string, uuid, required
  - `cad_file_version_id` string, uuid, nullable, required
  - `feature_id` string, required
  - `finish_type` string, required
  - `ra_um` number, nullable, required
  - `custom_color_hex` string, nullable, required
  - `notes` string, nullable, required
  - `label` string, required
  - `state` string, required
  - `source` string, required
  - `author` string, nullable, required
  - `created_by` string, uuid, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, nullable, required
  - `is_process_mismatch` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/prototyping/apis/prototyping-io-api.md) · [All operations](https://skmtc.dev/prototyping/apis/prototyping-io-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/prototyping/prototyping-io-api/revisions/f4a0079fbb57/schema)
