Retrieve an accounting period status
Operation ID: getAccountingPeriodStatus
Group: Accounting › Accounting Period Status
Open in the interactive reference
GET /accounting/period-status/{id}
Read-only: Reads and returns; changes nothing.
Retrieves an accounting period status. The status is for one period, one legal entity and one accounting book. The response includes whether the period accepts new journal entries for that entity and book (postable), and the period-close checklist (closeTasks).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
id |
path | string | yes | The unique identifier of the entity-book period status record you want to retrieve. This is the id of a record from GET accounting/period-status, not the shared accountingPeriodId. |
Response
200 Success
Under data (getAccountingPeriodStatusOutput):
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The unique identifier for this entity-book period status row. This identifies the (entity, book, period) combination, not the shared accounting period. |
accountingPeriodId |
string | no | The identifier of the underlying accounting period, shared by every entity that uses this fiscal calendar. See id on GET accounting/accounting-periods/:id. |
entityId |
string | no | The identifier of the legal entity this status belongs to. See id on GET base/entities. Absent only when the entity-book link is broken. |
entityName |
string | no | The name of the legal entity this status belongs to. |
bookId |
string | no | The identifier of the accounting book this status belongs to. A period is opened and closed per book. See id on GET accounting/books/:id. |
bookName |
string | no | The name of the accounting book this status belongs to. |
periodName |
string | no | The display name of the period as its fiscal calendar defines it, for example 'Jan 2026'. The format varies by calendar, so do not parse it. Match on dates instead. |
fiscalYear |
string | no | The fiscal year label this period belongs to, for example 'FY2024'. Set by the calendar, so it need not match the calendar year of startDate. |
fiscalQuarter |
string | no | The fiscal quarter label this period belongs to, for example 'Q1 2026'. |
startDate |
date | no | The first day of the period, inclusive. Format YYYY-MM-DD. Absent only when the underlying period was deleted. |
endDate |
date | no | The last day of the period, inclusive. Format YYYY-MM-DD. |
status |
string | yes | The status this entity and book have put the period in. Possible values: 'created' (generated, not yet opened), 'open', 'closed', 'reopened'. Only 'open' and 'reopened' accept postings. |
postable |
boolean | yes | Whether the period currently accepts postings for this entity and book, true when its status is 'open' or 'reopened'. This does not account for journal-type-specific locks. |
postableReason |
string | yes | Why the period does not accept postings, for example 'status is closed'. Empty when it is postable. |
reopeningReason |
string | no | The free-text reason recorded when the period was reopened. Set only when status is 'reopened'. |
reopenedByCascade |
boolean | no | Whether this period was reopened as a side effect of reopening a later one, rather than directly. |
lastModifiedDate |
date-time | yes | The date and time this status row last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. It changes when the period is opened, closed or reopened for this entity and book. |
closeTasks |
array<object> | no | The period-close checklist for this entity and book, one entry per task. An empty array when the row has no tasks yet. Check isExecutable before running a task with POST accounting/period-status/:id/execute-task. |
closeTasks[].taskCode |
string | yes | The code identifying the task, and the value to pass as task to POST accounting/period-status/:id/execute-task. The forward tasks, for example 'open', 'close', 'reopen', 'lockAP', 'lockAR', 'lockRevenue', 'lockJournals', 'runRevaluation', 'calculateConsolidationRates'. The task that undoes one is in reverseTaskCode. |
closeTasks[].reverseTaskCode |
string | no | The code of the task that undoes this one, for example 'unlockAP' for 'lockAP'. Empty when the task cannot be reversed. |
closeTasks[].isExecuted |
boolean | yes | Whether this task has already run for this entity-book period. |
closeTasks[].isExecutable |
boolean | yes | Whether this task can run now. It is false for a task already done and for one whose preconditions are unmet. notExecutableReason says which. |
closeTasks[].notExecutableReason |
string | no | Why the task cannot run now. Present only when isExecutable is false and a reason is available. |
closeTasks[].isReversible |
boolean | yes | Whether the task that undoes this one can run now. |
closeTasks[].notReversibleReason |
string | no | Why the reversal cannot run now. Present only when isReversible is false and a reason is available. |
closeTasks[].notApplicable |
boolean | no | Whether this task does not apply to this entity-book period at all, for example a consolidation task on an entity that does not consolidate. Such a task is neither executed nor executable and does not block the close. |
closeTasks[].message |
string | no | A human-readable, translated description of the task's state: the applied message when it has run, the not-applied message when it has not, or the not-applicable message when it does not apply. |
closeTasks[].lastModifiedDate |
date-time | no | The date and time this task's state last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Absent on a task that has never run. |
closeTasks[].lastModifiedBy |
string | no | The identifier of the user who last changed this task's state. Absent on a task that has never run. |
{
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accountingPeriodId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"entityName": "<entityName>",
"bookId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"bookName": "<bookName>",
"periodName": "<periodName>",
"fiscalYear": "<fiscalYear>",
"fiscalQuarter": "<fiscalQuarter>",
"startDate": "2026-01-15",
"endDate": "2026-01-15",
"status": "<status>",
"postable": true,
"postableReason": "<postableReason>",
"reopeningReason": "<reopeningReason>",
"reopenedByCascade": true,
"lastModifiedDate": "2026-01-15T09:30:00.000Z",
"closeTasks": [
{
"taskCode": "<taskCode>",
"reverseTaskCode": "<reverseTaskCode>",
"isExecuted": true,
"isExecutable": true,
"notExecutableReason": "<notExecutableReason>",
"isReversible": true,
"notReversibleReason": "<notReversibleReason>",
"notApplicable": true,
"message": "<message>",
"lastModifiedDate": "2026-01-15T09:30:00.000Z",
"lastModifiedBy": "<lastModifiedBy>"
}
]
},
"diagnostics": [
{
"code": "<code>",
"message": "<message>",
"severity": "error",
"path": [
"<path>"
],
"details": "<details>"
}
]
}
Errors
| Code | Status |
|---|---|
NOT_FOUND |
400 |
Statuses
400— Invalid request or business failure. Codes: NOT_FOUND401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error