---
title: "PATCH /api/capa/actions/{id}"
method: PATCH
path: "/api/capa/actions/{id}"
tags: ["CAPA Actions"]
---

# PATCH /api/capa/actions/{id}

`PATCH /api/capa/actions/{id}`

Update a Corrective Action (CA) or Preventive Action (PA)

## Path parameters

- `id` string, required

## Request body

- object
  - `title` string
  - `description` string
  - `type` 'CA' | 'PA'
  - `impactAreaId` string
  - `sourceType` string
  - `sourceId` string
  - `priority` string
  - `status` 'TO_DO' | 'IN_PROGRESS' | 'BLOCKED' | 'IN_REVIEW' | 'CHANGES_REQUESTED' | 'DONE'
  - `dueDate` string
  - `startedAt` string
  - `endedAt` string
  - `auditor` string
  - `finding` string
  - `goals` string
  - `requirement` string
  - `managementResponse` string
  - `recommendation` string
  - `rootCause` string
  - `capId` string
  - `reporters` object[]
    - `userId` string, required
    - `companyId` string, required
  - `assignees` object[]
    - `userId` string, required
    - `companyId` string, required
  - `collaboratorIds` string[]
  - `attachments` object[]
    - `id` string, required
    - `name` string, nullable, required
    - `contentType` string, nullable, required
    - `fileSize` number, nullable, required
    - `bucketName` string, required

## Response `200`

Default Response

- object
  - `metadata` object, required
    - `success` boolean, required — True when the request succeeded.
  - `data` object, required
    - `id` string, required
    - `title` string, required
    - `description` string, nullable, required
    - `type` string, nullable, required
    - `impactAreaId` string, nullable, required
    - `sourceType` string, nullable, required
    - `sourceId` string, nullable, required
    - `priority` string, nullable, required
    - `status` 'TO_DO' | 'IN_PROGRESS' | 'BLOCKED' | 'IN_REVIEW' | 'CHANGES_REQUESTED' | 'DONE', nullable, required
    - `dueDate` string, date-time, nullable, required
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required
    - `auditor` string, nullable, required
    - `finding` string, nullable, required
    - `goals` string, nullable, required
    - `requirement` string, nullable, required
    - `managementResponse` string, nullable, required
    - `recommendation` string, nullable, required
    - `rootCause` string, nullable, required
    - `isArchived` number, required
    - `startedAt` string, date-time, nullable, required
    - `endedAt` string, date-time, nullable, required
    - `attachments` object[], nullable, required
      - `id` string, required
      - `url` string, nullable, required
      - `bucketName` string, required
      - `isPrivate` number, nullable, required
      - `name` string, nullable, required
      - `contentType` string, nullable, required
      - `fileSize` number, nullable, required
      - `createdAt` union, required
        - string
        - string, date-time
      - `createdByUserId` string, nullable, required
      - `previewUrl` string, nullable
    - `createdByUserId` string, nullable, required
    - `createdByCompanyId` string, nullable, required
    - `createdByCompanyName` string, nullable
    - `auditFindingId` string, nullable, required
    - `assignees` object[], required
      - `id` string, required
      - `name` string, required
      - `firstName` string, required
      - `lastName` string, nullable, required
      - `companyId` string, nullable, required
      - `avatarFileUrl` string, nullable, required
    - `reporters` object[], required
      - `id` string, required
      - `name` string, required
      - `firstName` string, required
      - `lastName` string, nullable, required
      - `companyId` string, nullable, required
      - `avatarFileUrl` string, nullable, required
    - `ownerCompanyId` string, nullable, required
    - `ownerCompanyName` string, nullable, required
    - `internalCompanyCode` string, nullable
    - `notes` string, nullable
    - `generatedBy` string, nullable
    - `owner` object
      - `id` string, required
      - `name` string, nullable, required
      - `facilityProcesses` string, nullable, required
      - `country` string, nullable, required
      - `countryName` string, nullable, required
    - `source` union
      - object
        - `id` string, required
        - `name` string, required
        - `auditTypeId` string, nullable, required
        - `auditTypeName` string, nullable, required
        - `referenceNumber` string, nullable, required
        - `auditDate` string, date-time, nullable, required
        - `facilityScore` string, nullable, required
      - object
        - `id` string, required
        - `objectId` string, required
        - `version` string, required
        - `status` string, required
        - `revision` string, required
        - `submittedOn` union, required
          - string
          - string, date-time
      - object
    - `tags` object[]
      - `id` string, required
      - `title` string, required
      - `colorCode` string, required
    - `cap` object, nullable
      - `id` string, required
      - `title` string, required
      - `status` string, nullable, required
      - `priority` string, nullable, required
      - `dueDate` string, date-time, nullable, required
    - `watchers` object[], required
      - `id` string, required
      - `name` string, required
      - `firstName` string, required
      - `lastName` string, nullable, required
      - `companyId` string, nullable, required
      - `avatarFileUrl` string, nullable, required
    - `users` object[]
      - `userId` string, required
      - `type` string, required
      - `companyId` string, nullable, required
    - `companies` object[]
      - `companyId` string, required
      - `type` string, required
      - `name` string, nullable, required
      - `officialName` string, nullable, required
      - `country` string, nullable, required
      - `countryName` string, nullable, required
      - `facilityProcesses` string, nullable, required
    - `remediationRequest` object, nullable
      - `id` string, required
      - `actionId` string, required
      - `status` string, required
      - `message` string, required
      - `attachmentFileIds` string[], required
      - `requestedChangeMessage` string, nullable
      - `requestedChangeDate` union
        - string
        - string, date-time
      - `requestedChangeUserId` string, nullable
      - `createdAt` union, required
        - string
        - string, date-time
      - `createdByUserId` string, required
      - `createdByCompanyId` string, required
      - `updatedAt` union, required
        - string
        - string, date-time
      - `updatedByUserId` string, nullable
      - `files` object[], required
        - `id` string, required
        - `url` string, nullable, required
        - `bucketName` string, required
        - `isPrivate` number, nullable, required
        - `name` string, nullable, required
        - `contentType` string, nullable, required
        - `fileSize` number, nullable, required
        - `createdAt` union, required
          - string
          - string, date-time
        - `previewUrl` string, nullable
    - `linkedActions` object[]
      - `id` string, required
      - `title` string, required
      - `status` string, required
      - `description` string, nullable, required
      - `sourceType` string, nullable, required
      - `sourceId` string, nullable, required
      - `ownerCompanyId` string, nullable, required
      - `ownerCompanyName` string, nullable, required
      - `createdAt` union, required
        - string
        - string, date-time

## Changes

> 22 revisions in range; 1 not diffed.

- **2026-08-31** `97e51f27dc77` — 61 breaking, 6 warning, 81 info
  - request property `attachments/items/contentType` list-of-types was narrowed by removing types `null` from media type `application/json`
  - request property `attachments/items/fileSize` list-of-types was narrowed by removing types `null` from media type `application/json`
  - request property `attachments/items/name` list-of-types was narrowed by removing types `null` from media type `application/json`
  - the response property `data/assignees/items/avatarFileUrl` became nullable for the status `200`
  - …144 more
- **2026-08-20** `2f11192a4402` — 3 info
  - added the optional property `data/generatedBy` to the response with the `200` status
  - added the optional property `data/internalCompanyCode` to the response with the `200` status
  - added the optional property `data/notes` to the response with the `200` status

[Change history](https://skmtc.dev/retraced/apis/api-reference/changes/api/capa/actions/:id/patch.md)

---

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