---
title: "Re-close an assigned customer's closed GL period in place after its ledger changed"
method: POST
path: "/accountant/companies/{customerId}/gl-periods/{periodId}/reclose"
tags: ["GL Periods"]
---

# Re-close an assigned customer's closed GL period in place after its ledger changed

`POST /accountant/companies/{customerId}/gl-periods/{periodId}/reclose`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/accountant/companies/{customerId}/gl-periods/{periodId}/reclose`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

For a closed month that changed after its close (#2835). Runs the
same pre-close gate as the close route, brings the period's closing
entry in line with its current profit and loss when it no longer
matches, then moves `closedAt` to the database cutoff captured before
review and `closedByUserId` to the caller. Changes after that cutoff
keep the month-end `closed_period_changed` advisory for another review.
The period stays closed throughout and no other period is touched,
so it works for a month that has newer closed months after it. Writes
an audit_logs entry (action `reclose`) with the supplied reason.
The agent service API key may re-close a period as a high-impact
operation with the same mandatory reason (2026-10-06, reversing
#2411 for this route).

## Request body

- object
  - `reason` string, required: What was reviewed, written to audit_logs.changes.reason.

## Response `200`

Period re-closed

- GlPeriodResponse
  - `success` boolean
  - `data` GlPeriod
    - `id` string, uuid
    - `companyId` string, uuid
    - `startDate` string, date
    - `endDate` string, date
    - `status` 'open' | 'closed'
    - `closedAt` string, date-time, nullable
    - `closedByUserId` string, uuid, nullable
    - `filingLockedAt` string, date-time, nullable
    - `filingLockedByUserId` string, uuid, nullable

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: GL period not found, or the accountant is not assigned to this customer
- `422`: Validation error (reason missing or too short, or an unknown field), the period is not closed or is filing-locked, the closing entry cannot be regenerated, or unresolved blocking close blockers remain (`CLOSE_BLOCKERS_UNRESOLVED`, same body as the close route). Nothing is changed.

---

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