LedgerCore Documentation
Everything from your first invoice to self-hosting the whole platform.
What LedgerCore is
LedgerCore keeps your company's books: invoices you send, bills you receive, what's in the bank, VAT, payroll, and the reports that tell you how the business is doing. It's built on proper double-entry bookkeeping, every number traces back to a journal entry, but you never have to think about that unless you want to.
Two things make it different: it does the typing (upload paperwork and the document pipeline reads, categorises, and drafts entries; overdue invoices get chased automatically; anomalies get flagged overnight), and your data stays on privately owned hardware, nothing goes to any cloud anywhere.
Try it without signing up
When it launches, Test Drive will give you your own private company, a full set of books to actually use: create invoices, approve bills, reconcile the bank, run the VAT return. It is yours alone and resets itself, so you will be able to experiment freely; no signup. You will also be able to browse a sample company read-only.
Create your account
Start Free will need an email, a password, and your company name. The Free plan includes 1 user, 1 company, and 1,000 transactions a month, invoicing, bills, payroll, expenses, banking, reports and VAT returns all included, no card, no time limit. Bank feeds and multi-currency come with paid plans. Your company arrives with a UK chart of accounts and VAT rates already set up.
Your first 15 minutes
- Add a customer, Contacts → New. Name and email are enough.
- Send your first invoice, Invoices → New: pick the customer, add a line, save. It starts as a draft, nothing is in your books yet. Approve posts it to the ledger; Send emails it.
- Record getting paid, Payments → Receive, pick the invoice. The books update themselves.
- Enter a bill you owe, Bills → New, the purchase-side mirror of an invoice.
The whole rhythm is draft → approve → paid. Drafts are editable; approved entries are locked into the ledger, corrections happen by reversal, so your audit trail never lies.
Everyday tasks
- Expenses, staff costs and receipts, with an approval flow.
- Products, price-list items so invoice lines fill themselves in.
- Banking, import your statement (CSV), then Reconcile: LedgerCore suggests matches between bank lines and your invoices/bills; you confirm.
- Documents, upload an invoice or receipt under Doc Intelligence and it's read and drafted into the books for your review. The AI drafts; you approve.
Month-end in ten minutes
- Reports, Profit & Loss (am I making money?), Balance Sheet (what do I own and owe?), Trial Balance (for your accountant), Aged Debtors (who owes me, how late?).
- VAT & Tax, the return calculates itself from the books, all nine HMRC boxes. Review, draft, submit when MTD-registered.
- Cash Flow, a forecast with plain-English warnings.
Let it work for you
- Debt Chaser, set the rules once ("polite nudge at 7 days, firmer at 30") and overdue invoices are chased automatically, without double-sending.
- Anomaly Detection, overnight scans flag duplicates, unusual amounts and suspicious patterns as notifications.
- AI Accountant, ask questions about your books in plain English.
Teams, roles, and access
| Role | Can |
|---|---|
| owner | everything, incl. billing and team management |
| admin | settings, team, all books |
| accountant | post/approve journals, invoices, bills; run returns; all reports |
| bookkeeper | day-to-day entry below approval level |
| read_only | view only |
Optional 2FA (TOTP), login lockout with exponential backoff, and SSO (Google, Microsoft, SAML 2.0). Sessions are 15-minute JWTs with rotating 7-day refresh tokens; refresh-token reuse blacklists the chain.
The accounting engine, enforced, not promised
- Schema-per-tenant isolation: every company lives in its own PostgreSQL schema, pinned inside the auth token. One tenant's bug can't read another's data.
- Double-entry enforced at the database: a journal can't post unless debits equal credits, trigger-enforced.
- Posted journals are immutable (corrections by reversal), and the audit trail is append-only and hash-chained with an integrity verifier and CSV/PDF export.
- Fiscal control: closed or locked periods reject postings.
- Money is NUMERIC(19,4) end to end; per-line VAT is rounded then summed, so totals always equal the posted legs.
Automation internals
Events flow through a durable queue (at-least-once, retry with backoff). On top of it:
- Workflow rules per tenant: trigger + conditions + actions (notify, email, update status, create task, emit event), no code needed.
- Scheduled jobs per tenant that never double-run: overdue promotion, debt chase, anomaly scan, cash-flow refresh, VAT-deadline and Companies House checks.
- Debt Chaser: days-overdue rule ladder, templated emails, 7-day per-invoice dedupe, idempotent under event redelivery, and it stands down if your own workflow rule already emails on
invoice.overdue. - Anomaly Detection: Benford's-law analysis, z-score outliers, duplicates, round-number patterns.
- Document pipeline: text PDFs parse locally, scans go through OCR, a parser agent drafts the entry for human approval. AI keys live server-side only.
VAT & HMRC MTD
The return is computed from posted journals, not invoice lists: Box 1 output VAT net of credit notes, Box 4 input VAT net of voids, Boxes 6/7 net sales and purchases with non-VATable categories excluded. Draft, review, submit via HMRC's MTD API once credentials are configured.
Plans
| Plan | Users | Tx/month | Companies | Bank feeds | Multi-currency |
|---|---|---|---|---|---|
| Free | 1 | 1,000 | 1 | ✗ | ✗ |
| Starter | 3 | 5,000 | 1 | ✓ | ✗ |
| Growth | 10 | 50,000 | 3 | ✓ | ✓ |
| Enterprise | ∞ | ∞ | ∞ | ✓ | ✓ |
Limits are enforced server-side, not on the honour system.
API access
Everything the UI does goes through /api/v1 and you can too: POST /auth/login for tokens (or httpOnly cookies), GET /auth/me for session introspection, consistent JSON errors with request IDs, per-IP rate limits. The read-only demo doubles as a zero-setup API sandbox.
Self-hosting
LedgerCore is Apache 2.0, run it yourself for nothing. Production is Docker Compose (app, PostgreSQL 16, Redis, S3-compatible attachments, autoheal, backups, optional Prometheus + Grafana monitoring). Shipping is one gated pipeline: typecheck, lint, tests, compose validation, pre-cutover database dump, image build with an instant-rollback tag, smoke checks. Backups run on two independent lanes, and are restore-tested automatically every week, because a backup you've never restored is a hope, not a backup.
Full endpoint catalogue, architecture spec, and ops runbooks ship in the repository: GUIDE.md, docs/ledgercore-architecture.md, docs/user-guide-advanced.md.
Ready when it launches.
When LedgerCore opens you will start on the free plan, or click around the demo first, no card, no time limit.
Coming soon → Tell me whenLedgerCore is accounting software, not accounting advice. Always verify outputs with a qualified professional. AI-generated suggestions should be reviewed before posting.