Confirm opening balances
POST
https://app.speybooks.com/api/v1/opening-balances/{id}/confirmConfirm an opening balance import, creating an immutable migration journal with balanced double-entry postings. Passes the triple gate:
- Balance proof — total debits must equal total credits
- Mapping completeness — all rows mapped to valid accounts
- 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
id string requiredData import ID (e.g. dimp_2). Must be in pending status with canConfirm: true.
Response
200 Opening balance journal committed. Returns transaction ID, line count, totals, cutover date, and reference.
Show response fields
cutoverDate stringjournalLines integerreference stringtotalCredit stringtotalDebit stringtransactionId stringError codes
404 Pending opening balance import not found.
409 An active opening balance journal already exists (singleton violation).
422 Import not confirmable: balance proof failed, unmapped accounts remain, or canConfirm is false.