ledger

The ledger everythingelse is a view on.

ERP Core is the double-entry record of everything the company does. CRM, payroll, stock and invoicing do not keep their own books; they post to this one.

event → journal → balance → close → lock

ERP Core · Overview

One set of books, written once, read by every module.

THE PROBLEM

Most companies keep several ledgers without meaning to. Sales has its numbers, the warehouse has its numbers, and finance rebuilds both in a spreadsheet at month end. Corrections overwrite the original, so nobody can say what a figure was last Tuesday. Close takes weeks because the reconciliation is between systems, not within one.

HOW SOLONOMOUS DOES IT

ERP Core stores every business event as an immutable, double-entry journal entry. Balances, reports and module screens are computed from those events, never stored separately. A correction is a new entry that reverses the old one, so history stays intact. Entities, currencies and periods are properties of the ledger, not add-ons to it.

WHAT YOU GET

You get one number for anything, and it is the same number on every screen. Close is a check that the entries tie, not a search for where they disagree. Every figure traces back to the entry that produced it.

Capabilities

Everything the module does.

9 capabilities

  1. 01

    Event-sourced ledger

    You post a transaction. The system appends it as an event with balanced debit and credit lines and never edits it again. Balances are computed from the events, so the books can be read as of any date.

    • Append-only journal; no updates, no deletes
    • An entry posts only when debits equal credits
    • Balance as of any date, not only period end
    • Replayable from the first entry to now
  2. 02

    Chart of accounts and consolidation

    Build one chart of accounts or one per entity, with mappings between them. Consolidation runs on the events themselves: intercompany lines eliminate, and the group balance is a report you run, not a spreadsheet you build.

    • Multi-entity, multi-currency
    • Shared or per-entity charts with account mapping
    • Intercompany elimination on consolidation
    • Dimensions: cost centre, project, location, custom
  3. 03

    Currencies and FX revaluation

    Every line records its transaction currency, the entity's functional currency and the rate used. You schedule a revaluation and the system posts the unrealised gain or loss on open balances as its own entry, ready to reverse when they settle.

    • Any ISO 4217 currency on any line
    • Daily rates from a feed or entered by hand
    • Scheduled revaluation with reversing entries
    • Reporting currency for group views
  4. 04

    Period close in hours

    Close is a checklist the system runs, not a search. Bank lines match, accruals post, and the trial balance either ties or shows the line that does not. You lock the period; the lock is itself an entry.

    • Close checklist per entity, each item with an owner
    • Soft close for review, hard lock for filing
    • Reopen requires a role, a reason and an approver
    • The Close agent runs the sequence and stops where a person must decide
  5. 05

    Approvals and workflow rules

    You set the rules: amount thresholds, account ranges, vendor changes, discount limits. An entry that trips one stops with the approver you named and posts when they approve. Everything else posts straight away.

    • Rules on amount, account, dimension or any field
    • Sequential or parallel approvers
    • Approve from email, Slack or the app
    • Every decision recorded on the entry
  6. 06

    Roles, permissions and identity

    Roles decide what a person can see and post, down to the field. Sign-in runs through your identity provider, and SCIM creates and removes accounts as people join and leave. Agents act with the permissions of the person who asked.

    • Role-based access with per-field visibility
    • SSO with SAML and OIDC
    • SCIM provisioning and deprovisioning
    • Agent actions scoped to the caller
  7. 07

    Documents and numbering

    Invoices, receipts, contracts and supporting files attach to the entries they justify. Numbering series are defined per document type and entity, and the system issues the next number in sequence with no gaps.

    • Attachments on any entry, searchable
    • Numbering series per document type and entity
    • Gapless sequences; voids are recorded, not skipped
    • Templates for printed and e-invoice output
  8. 08

    API, webhooks and imports

    Anything that can call an endpoint can post an entry, subject to the same validation and permissions as a user. Webhooks fire on every event. Imports map a spreadsheet's columns to accounts once and reuse the mapping.

    • REST and GraphQL with the full ledger model
    • Signed webhooks on every posted event
    • CSV and spreadsheet import with saved mappings
    • Opening balances and assisted migration
  9. 09

    Audit trail and reversibility

    Every entry carries who posted it, when, from where and under which rule. A correction is a reversing entry plus a new one; the original stays. Any report can be run as of the moment before a change.

    • Attribution and timestamp on every event
    • Reversal, never overwrite
    • As-of reporting for any past moment
    • Audit log exportable in open formats

Capabilities

Every ERP Core feature, at a glance.

9 capabilities, one card each. Open any card to read it in full.

Workflow

A month, from first entry to lock

What a month looks like when the books are one ledger.

  1. 01

    Entries post as work happens

    Invoices, payslips, stock movements and bank lines post as events the moment the module that owns them records them. Nothing waits for finance.

  2. 02

    Approvals catch what needs a person

    Entries above a threshold or outside policy stop with the approver you named. Everything else posts.

  3. 03

    Reconcile

    Bank feeds match against open entries. The Close agent lists what it could not match and who should look at it.

  4. 04

    Adjust and accrue

    Depreciation, prepayments, accruals and FX revaluation post as their own entries. The trial balance ties, or it shows you the line that does not.

  5. 05

    Lock

    You lock the period. Nothing posts into it again without a reopen, and every reopen is itself recorded.

Details

On the spec sheet.

Ledger model
Double-entry, event-sourced, append-only; balances computed, never stored
Entities
Any number of legal entities; shared or per-entity charts; intercompany elimination
Currencies
Any ISO 4217 currency; transaction, functional and reporting currency on every line; scheduled revaluation
Close
Per-entity, per-period; soft close for review, hard lock for filing; reopen with reason and approver
Permissions
Role-based, per-field; SSO (SAML, OIDC); SCIM; agents inherit the caller's scope
Audit
Every entry attributed, timestamped and reversible; as-of reporting; log exportable
Integrations
REST and GraphQL; signed webhooks on every event
Imports
CSV and spreadsheet with saved mappings; opening balances; assisted migration from a legacy ERP
Hosting
Cloud, private VPC, or on-premises; region-pinned data

Questions

Asked before signing.

Can I reopen a closed period?

Yes, if your role allows it. Reopening records who did it, why, and when, and the period must be locked again afterwards. Entries posted during the reopen are flagged in the audit trail so a reviewer can find them.

How is this different from a general ledger inside accounting software?

An accounting package keeps a ledger for finance and takes exports from everything else. Here the ledger is the system: CRM, payroll, stock and projects post to it directly and read from it. There is no import step and no second copy to reconcile.

What happens to history when I correct an entry?

Nothing is overwritten. A correction posts a reversing entry and, if needed, a new one. Both stay visible and attributed, and any report can be run as of the moment before the correction.

Do I need every module?

No. ERP Core runs on its own as the ledger and chart of accounts. Add modules as you need them; each one starts posting to the same ledger from the day it is switched on.

Where does the data live?

In the region you choose, on cloud, in your private VPC, or on your own hardware. Data does not leave that region. You can export everything, at any time, in open formats.

Can our existing systems post to it?

Yes. Anything that can call the REST or GraphQL API can post entries, subject to the same validation and permissions as a user. Webhooks fire on every event so other systems can react to what was posted.

Early access

One platform to run an entire organization.

We are onboarding a small number of companies this year. Tell us what you run today.