LedgerWriter

Bookkeeping as an API

LedgerWriter is a double-entry accounting SaaS, purpose built for accounting pain-points.

LedgerWriter employs enforced double-entry journal entry with approval gates that record every event in a detailed audit log behind enforcable RBAC controls.

What you get on day one

Ledger activityEvent-sourced
PermissionsCommand-layer
Team and advisorsConnected
Command APIAvailable

Built on the KISS design system.

Made in Austin, TX.

Built around real accounting primitives

Not a spreadsheet wrapper.

LedgerWriter models accounts, journals, and entries the way your accountant actually thinks about them.

General ledger

A chart of accounts across asset, liability, equity, revenue, and expense categories.

Double-entry enforced

Every journal entry must balance β€” debits equal credits, checked before it's ever posted.

Trial balance & reports

Pull a trial balance or account balances on demand, straight from the ledger.

Immutable journal

Entries are append-only. Corrections happen through a reversing entry, so the history stays whole.

Approval gates

Sensitive entries require a second approval before they post β€” not just a checkbox in the UI.

RBAC enforced

Owners, bookkeepers, clerks, and viewers are scoped to what their role allows, checked at the command layer.

How it works

Post an entry with a JSON payload.

LedgerWriter validates the entry, writes it to the immutable journal, and updates account balances.

Request

POST /commands
Content-Type: application/json

{
  "type": "PostJournalEntry",
  "payload": {
    "date": "2026-06-09",
    "memo": "Customer invoice #1042",
    "lines": [
      { "accountId": "accounts-receivable", "debit": "1250.00" },
      { "accountId": "sales-revenue", "credit": "1250.00" }
    ]
  }
}

Response

HTTP/1.1 201 Created

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "status": "posted",
  "lines": [
    { "accountId": "accounts-receivable",
      "debit": "1250.00", "credit": "0.00" },
    { "accountId": "sales-revenue",
      "debit": "0.00", "credit": "1250.00" }
  ]
}

Trial balance, on demand:

AccountDebitCredit
Cash and Bank42,180.00β€”
Accounts Receivable8,750.00β€”
Accounts Payableβ€”3,420.00
Owner's Equityβ€”25,000.00
Sales Revenueβ€”28,510.00
Operating Expenses6,000.00β€”
Totals56,930.0056,930.00

Built API-first

Build on the record. Enforce who owns it.

LedgerWriter unifies activity, responsibility, and reporting in one ledger β€” and exposes that same ledger over the API.

01

An API-first core

The app runs on the same command API you get. Nothing is held back for internal use.

02

A clear record

Corrections link back to the entries they correct, so the history stays legible.

03

Enforced roles

Owners, bookkeepers, clerks, and viewers are scoped to exactly what their role requires.

04

One shared ledger

Balances, entries, and reporting live in one place, for everyone who needs them.

For the people accountable for the books

One ledger. A defined role for everyone who relies on it.

Start with the API if you're building on the ledger. Add scoped roles for the people who keep and review the books as your team grows.

Developers

Skip building the ledger.

An event-sourced accounting core enforced at the command layer, reachable over one API β€” ship product, not ledger infrastructure.

Accounting teams and advisors

Review entries with the record behind them.

Every correction stays linked to what it corrects, so review is about judgment, not reconstruction.

Business owners

See what needs your attention.

One place to check the state of your books, backed by an audit trail your accountant can open directly.

A ledger that earns its place

Built for the questions that come after an entry is made.

For today’s books

Every entry is an event. Every correction links back to the entry it corrects.

For the people who rely on them

Bookkeepers, accountants, counsel, board members, and teammates share one record, scoped by role.

For what comes next

Add roles, take on more complex workflows, and build directly on the same command API that powers the app.

For accountants, by developers

Built so a CPA can trust it, and an engineer can ship it.

LedgerWriter is designed so the data model holds up to an audit, and a backend engineer can integrate it in an afternoon.

REST + JSON

One predictable endpoint and plain JSON β€” the same command vocabulary the app itself runs on.

Approval-gated writes

Every write is a typed command, checked against role and approval requirements before anything posts.

Full audit trail

Every entry, correction, and approval decision is recorded, in order, and never overwritten.

Just as important

Who LedgerWriter isn't for.

LedgerWriter isn't built for every use case. Here's where it isn't the right fit.

You just need to jot down a few expenses

A spreadsheet gets you there faster than standing up a double-entry ledger.

You want a bookkeeping service, not a ledger

LedgerWriter is the record a bookkeeper works in β€” it doesn't replace having one.

You need personal or household budgeting

Built for organizations and the systems around them, not individual budgets.

You need point-of-sale or payment processing

LedgerWriter is the ledger behind those systems, not a replacement for one.

Questions, answered

What to know before you start.

Who is LedgerWriter for?

Developers building on the ledger, and the people who keep the books day to day: small businesses, accounting teams, law firms, nonprofits, and enterprise teams.

Can we work with our accountant or outside advisor?

Yes. Every entry and correction lives in one auditable record they can review directly.

Who uses LedgerWriter day to day?

The people who keep the books. Developers connect their own product to the same command API the app is built on.

Can we start small?

Yes. LedgerWriter is free to start. Paid and Enterprise tiers are coming for teams with more involved data or workflow needs.

LedgerWriter is ready when you are

Start with the ledger. Build what you need on top.

Generate an API key and start building today, or start with your organization's books and grow into the API from there.