---
title: "Start a project closeout"
method: POST
path: "/readiness/projects/{id}/closeout"
tags: ["readiness"]
---

# Start a project closeout

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

## Request

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

Requires project.edit, on a COMPLETED or CANCELLED project (409 PROJECT_NOT_CLOSED otherwise). Creates the closeout in DRAFT, captures a final baseline named "Final closeout snapshot", keeps the EVM summary, and writes the closeout report (planned against actual from the first and final baselines, earned value without cost figures, lessons learned, and what the project leaves behind) into the project's Project Documents library. Called again while DRAFT, recaptures the baseline and the EVM and writes the report again as a new version of the same document; while IN_REVIEW or SIGNED_OFF, 409 CLOSEOUT_LOCKED. A report the document quota or storage refuses does not fail the call: the closeout is saved and the body carries `report: null` and `reportError`. Audited as CLOSEOUT_INITIATED. Returns the closeout body (see GET).

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string, required

## Response `201`

The closeout body

## Other responses

- `400`: Validation error
- `401`: Unauthorized - missing or invalid JWT
- `403`: Forbidden - insufficient role
- `404`: Project not found
- `409`: PROJECT_NOT_CLOSED or CLOSEOUT_LOCKED

---

[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)
