Confirm opening balances

POSThttps://app.speybooks.com/api/v1/opening-balances/{id}/confirm

Confirm an opening balance import, creating an immutable migration journal with balanced double-entry postings. Passes the triple gate:

  1. Balance proof: total debits must equal total credits
  2. Mapping completeness: all rows mapped to valid accounts
  3. Singleton check: no active OB journal exists

The journal is created with source: 'migration', locked: true, and deferred constraint checking (lines must sum to zero). Four DB triggers prevent subsequent modification. Only voiding restores the ability to re-import.

Path parameters

idstringrequired
Data import ID (e.g. dimp_2). Must be in pending status with canConfirm: true.

Response

200Opening balance journal committed. Returns transaction ID, line count, totals, cutover date, and reference.
Show response fields
cutoverDatestring
journalLinesinteger
referencestring
totalCreditstring
totalDebitstring
transactionIdstring

Error codes

404Pending opening balance import not found.
409An active opening balance journal already exists (singleton violation).
422Import not confirmable: balance proof failed, unmapped accounts remain, or canConfirm is false.