Check period readiness
curl --request GET \
--url https://api.entendre.finance/v1/accounting-periods/{period_id}/close-preflight \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.entendre.finance/v1/accounting-periods/{period_id}/close-preflight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/accounting-periods/{period_id}/close-preflight"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"accounting_period": {
"id": "ap_507f1f77bcf86cd799439011",
"status": "Open",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"legal_entity_id": "le_507f1f77bcf86cd799439011"
},
"preconditions": {
"can_close": false,
"blocking_reasons": [
"No next accounting period exists. Close requires a successor period to carry closing balances forward."
]
},
"pending_transactions": {
"count": 0,
"sum_credit_usd": 0,
"sum_debit_usd": 0,
"preview": []
},
"draft_journal_entries": {
"count": 1,
"preview": [
{
"sequence_number": "JE-1001",
"id": "je_507f1f77bcf86cd799439011",
"date": "2026-08-31",
"amount_usd": null,
"label": "September software expense"
}
]
},
"recommendation": "hold"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Accounting Periods
Check period readiness
Checks what blocks closing an accounting period, including pending transactions and draft journals.
GET
/
v1
/
accounting-periods
/
{period_id}
/
close-preflight
Check period readiness
curl --request GET \
--url https://api.entendre.finance/v1/accounting-periods/{period_id}/close-preflight \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.entendre.finance/v1/accounting-periods/{period_id}/close-preflight', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/accounting-periods/{period_id}/close-preflight"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"accounting_period": {
"id": "ap_507f1f77bcf86cd799439011",
"status": "Open",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"legal_entity_id": "le_507f1f77bcf86cd799439011"
},
"preconditions": {
"can_close": false,
"blocking_reasons": [
"No next accounting period exists. Close requires a successor period to carry closing balances forward."
]
},
"pending_transactions": {
"count": 0,
"sum_credit_usd": 0,
"sum_debit_usd": 0,
"preview": []
},
"draft_journal_entries": {
"count": 1,
"preview": [
{
"sequence_number": "JE-1001",
"id": "je_507f1f77bcf86cd799439011",
"date": "2026-08-31",
"amount_usd": null,
"label": "September software expense"
}
]
},
"recommendation": "hold"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Authorizations
Your organization API key. Some operations also need a key that is associated with a user; their pages say so.
Path Parameters
ID of the period.
Minimum string length:
1Response
The request succeeded.
Show child attributes
Show child attributes