---
title: "Accept or reject a client's waiver request"
method: POST
path: "/v1/intakes/{id}/items/{key}/waive/decision"
tags: ["Intakes"]
---

# Accept or reject a client's waiver request

`POST /v1/intakes/{id}/items/{key}/waive/decision`

## Request

- Base URL: `https://api.briefgate.dev`
- URL: `https://api.briefgate.dev/v1/intakes/{id}/items/{key}/waive/decision`
- Auth: HTTP bearer

Answers a waiver the client proposed from the portal. `accept: true` closes the item (status becomes `waived`, same as POST .../waive). `accept: false` leaves the status exactly where it was but clears the "waiting on the owner" flag, so the item goes back to being chased like any other outstanding one. `note` is recorded in the audit log only.

## Path parameters

- `id` string, required
- `key` string, required

## Request body

- object
  - `accept` boolean, required
  - `note` string: Optional — recorded in the audit log.

## Response `200`

Decision applied

- object
  - `item` object
    - `key` string
    - `type` string
    - `assignee` 'client' | 'owner'
    - `label` string
    - `required` boolean
    - `status` 'pending' | 'submitted' | 'needs_revision' | 'approved' | 'waived'
    - `waiver` object
      - `state` 'none' | 'proposed' | 'waived'
      - `reason` string, nullable
      - `requested_by` 'client' | 'owner', nullable
      - `requested_at` string, date-time, nullable
      - `decided_at` string, date-time, nullable
    - `received_outside` boolean: True once the owner settled this item through POST .../received-outside instead of the client submitting it through the portal. `value` was never actually supplied by the client when this is true — check it before trusting `value` as a genuine answer.
    - `received_outside_note` string, nullable: The owner's own note on how/when this was received, from POST .../received-outside.
    - `client_note` string, nullable: Written by the client. Visible to both sides.
    - `owner_note` string, nullable: The owner's own note on this item. Never shown to the client.
    - `files` object[]
      - `id` string
      - `filename` string
      - `mime` string
      - `size` integer
      - `width` integer, nullable
      - `height` integer, nullable
      - `av_status` 'pending' | 'clean' | 'infected' | 'error' | 'skipped'
      - `checksum_sha256` string, nullable: SHA-256 of the stored bytes, for verifying a download.

## Other responses

- `401`: Missing or invalid API key
- `403`: Authenticated but not allowed to perform this action
- `404`: Resource not found
- `409`: No waiver request is waiting on a decision for this item
- `422`: Validation error — the body shape is correct but values are invalid

---

[API](https://skmtc.dev/briefgate/apis/briefgate-api.md) · [All operations](https://skmtc.dev/briefgate/apis/briefgate-api/llms.txt) · [OpenAPI document](https://skmtc.dev/briefgate/apis/briefgate-api/revisions/b21afed4748b?raw)
