VRPlatformVRPlatform

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: true

Scope

This header is supported on transaction mutation routes, including:

  • POST /transactions
  • PUT /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.

On this page