General ledger
Core engine builtA general ledger that refuses to go out of balance
Finovra's ledger is double-entry from the ground up. Every entry balances, belongs to one legal entity and keeps its source, and the database enforces the same rules as the application. The core engine is built and tested; the hosted product is still in development.
Why the ledger has to be strict
Reports, reconciliations and audits are only as reliable as the entries underneath them. When a ledger lets someone edit a posted entry, post into a month that is already reported or save a journal that is a cent off, the errors surface weeks later as unexplained differences.
Finovra treats those as hard rules rather than warnings. That matters more once AI is involved: software that drafts entries quickly is only useful if nothing it drafts can reach the books without passing the same checks and a person's approval.
How a journal entry moves through the ledger
- Step 1
Prepare
A person, an import or an AI agent prepares a journal entry with its lines, date, memo and source reference.
- Step 2
Check
Debits must equal credits, every line has one side, all accounts belong to the same legal entity and amounts fit the entity's currency.
- Step 3
Post or route
People with posting rights post directly. Entries from AI agents always go to the approval queue for a different person.
- Step 4
Number and lock in
The database assigns the next journal number for the entity with no gaps, and the posted entry can no longer change.
- Step 5
Correct by reversal
Mistakes are fixed with a reversing entry that links back to the original, so the history stays intact.
Controls built into every posting
Balanced, twice
Unbalanced entries are rejected by the application and again by the database when the transaction commits. Neither check can be skipped.
Exact money
Amounts are stored as integer cents in USD or CAD. Extra decimal places are rejected rather than rounded, and floating point never touches a posting.
Locked periods
Posting into a locked period fails. Reopening one needs the right permission and a written reason, and both are recorded.
No silent edits
Posted entries and their lines cannot be updated or deleted. A reversal is the only way to undo one.
Safe retries
Every posting carries an idempotency key. If a request is sent twice, the second returns the first entry instead of creating a duplicate.
Audit trail
Each post, approval, rejection, reversal and period change records who did it and when, in a log that cannot be edited.
Built today, and what comes next
Built and tested: entities in USD or CAD, chart of accounts, fiscal periods and locks, journal entry, approval, reversal, trial balance and income statement with drill-down to the journals behind each figure. These run in our development environment; customer accounts are not open yet.
Reports built on this ledger are described on the financial reporting page.
In development
- Chart of accounts templates for US and Canadian businesses
- Dimensions such as department, location and project on each line
- Attachments on journal entries
- Recurring and auto-reversing entries
See the ledger on sample books
We'll post, approve and reverse entries on a demo workspace and talk through your entities and currencies.
Last reviewed against the product on .