---
title: "Sign off a closeout, or request changes"
method: POST
path: "/readiness/projects/{id}/closeout/signoff"
tags: ["readiness"]
---

# Sign off a closeout, or request changes

`POST /readiness/projects/{id}/closeout/signoff`

## Request

- Base URL: `https://api.onplana.com/api`
- URL: `https://api.onplana.com/api/readiness/projects/{id}/closeout/signoff`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

A designated reviewer, or the project Owner or Manager with project.edit, on a closeout that is IN_REVIEW (409 CLOSEOUT_NOT_IN_REVIEW otherwise). Every active designated reviewer at SIGNED_OFF signs the closeout off; any CHANGES_REQUESTED sends it back to DRAFT. An undesignated Owner or Manager can send it back but never counts toward the quorum. `comment` is required with CHANGES_REQUESTED. Returns the closeout body.

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string, required

## Request body

- object
  - `decision` 'SIGNED_OFF' | 'CHANGES_REQUESTED', required
  - `comment` string

## Response `200`

The closeout body

## Other responses

- `400`: Validation error
- `401`: Unauthorized - missing or invalid JWT
- `403`: Forbidden - insufficient role
- `404`: No closeout
- `409`: CLOSEOUT_NOT_IN_REVIEW

---

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