Books Closed Override
How to bypass books-closed checks on transaction mutation requests
Books Closed Override
Some internal transaction repair and migration flows need to update data even when the transaction date falls before the team's books-closed date.
For those cases, transaction mutation endpoints support the request header:
x-ignore-books-closed-at: trueScope
This header is supported on transaction mutation routes, including:
POST /transactionsPUT /transactions/{id}DELETE /transactions/{id}- transaction line mutation routes that update transaction journals
What It Does
When this header is set to true, the request bypasses only the
booksClosedAt lock checks.
That means the request can still be rejected for other reasons.
What It Does Not Bypass
This header does not bypass:
- statement-period locks
- owner-statement attachment locks
- reconciliation restrictions
- normal business validation
Example
curl 'https://api.vrplatform.app/transactions/txn_123' \
-X PUT \
-H 'content-type: application/json' \
-H 'x-api-key: your-api-key' \
-H 'x-team-id: your-team-id' \
-H 'x-ignore-books-closed-at: true' \
--data '{
"date": "2024-01-15",
"description": "Backdated repair adjustment"
}'Intended Usage
Use this header only for explicit internal repair or migration flows where the caller understands the accounting implications of changing historical transactions.
Do not use it as a general workaround for normal application flows.
