Skip to content

LedgerEvery transaction, one clean ledger

Every transaction from every account in one ledger, with transfers matched, categories applied and balances you can trust.

idint8
created_attimestamptz
nametext
emailtext
roletext
is_activebool
avatar_urltext
12024-01-15 09:23:41+00Alice Johnsonalice@example.comadmintruehttps://i.pravatar.cc/150?u=alice
22024-01-15 10:45:12+00Bob Smithbob@example.comeditortruehttps://i.pravatar.cc/150?u=bob
32024-02-03 14:12:08+00Carol Williamscarol@example.comviewerfalsehttps://i.pravatar.cc/150?u=carol
42024-02-14 08:33:55+00David Browndavid@example.comeditortrueNULL
52024-03-01 16:07:29+00Eve Martinezeve@example.comadmintruehttps://i.pravatar.cc/150?u=eve
62024-03-10 11:52:44+00Frank Leefrank@example.comviewertruehttps://i.pravatar.cc/150?u=frank
72024-03-22 07:18:03+00Grace Kimgrace@example.comeditorfalsehttps://i.pravatar.cc/150?u=grace
82024-04-05 13:41:17+00Henry Chenhenry@example.comviewertruehttps://i.pravatar.cc/150?u=henry
92024-04-12 09:05:33+00Isla Patelisla@example.comadmintruehttps://i.pravatar.cc/150?u=isla
102024-04-18 15:22:07+00Jack Riverajack@example.comeditorfalseNULL
112024-05-02 11:48:19+00Karen Nguyenkaren@example.comviewertruehttps://i.pravatar.cc/150?u=karen
122024-05-09 08:14:52+00Liam O'Brienliam@example.comeditortruehttps://i.pravatar.cc/150?u=liam
132024-05-21 17:33:28+00Mia Tanakamia@example.comadmintruehttps://i.pravatar.cc/150?u=mia
142024-06-01 10:07:41+00Noah Garcianoah@example.comviewerfalsehttps://i.pravatar.cc/150?u=noah
152024-06-14 14:55:03+00Olivia Schmidtolivia@example.comeditortrueNULL
162024-06-23 06:29:17+00Pablo Moralespablo@example.comviewertruehttps://i.pravatar.cc/150?u=pablo
172024-07-04 12:11:44+00Quinn Fosterquinn@example.comadmintruehttps://i.pravatar.cc/150?u=quinn
182024-07-15 19:38:56+00Ruby Aokiruby@example.comeditorfalsehttps://i.pravatar.cc/150?u=ruby
192024-07-28 07:52:10+00Sam Walkersam@example.comviewertruehttps://i.pravatar.cc/150?u=sam
202024-08-03 16:04:33+00Tara Singhtara@example.comadmintruehttps://i.pravatar.cc/150?u=tara

Everything you need
from your ledger

Manual entry, direct API ingestion and reviewed statement imports all lead to the same transaction ledger.

Review records from your banks, cards and wallets together.

Keep account, category, source and currency context on each transaction.

idint8
emailtext
roletext
1alice@company.comadmin
2bob@company.comuser
CREATE POLICY
"Users can read their own profile"
ON public.users
FOR SELECT USING
  (auth.uid() = id);

Financial records are scoped to the workspace they belong to.

Membership and backend checks determine which operations are available.

idint8
usertext
texttext
1AliceHey, is the deploy ready?
2BobAlmost — running final tests now.
3AliceNice, let me know when it’s live.
Hey, is the deploy ready?
Almost — running final tests now.
Nice, let me know when it’s live.

Search, filter and correct the records behind your summaries.

Review changes before saving and retain the context needed to investigate a record.

A useful financial summary starts with records you can inspect and correct. Keep the ledger understandable.

Moneybook product noteLedger workflow

Built for review
with financial context

Batch review

  • Queue multiple transaction corrections
  • Review changes before saving
  • Keep source context beside each record
  • Resolve validation errors before commit

Transfer matching

  • Find candidate transfers between accounts
  • Review both sides of a movement
  • Keep transfer links with the original records
  • Inspect matched and unmatched transactions

Review your money with a
shared transaction ledger

Search, filter, inspect and correct your financial records with account and source context kept close.

Ledger review

Ledger review

Inspect transactions and make explicit, reviewed corrections.

Review and correct records in the
transaction ledger

Review transaction details, update categories and inspect related evidence without writing SQL.

Full SQL

Full SQL

A reviewable transaction workflow built into the dashboard.

Ingest directly with
the finance API

Create and review financial records through explicit API contracts. Imports are a convenience, not the only way to ingest data.

// Fetch all public rooms with their messages
const { data: rooms } = await supabase
  .from('rooms')
  .select(`
    id, name, created_at,
    messages ( id, text, user_id )
  `)
  .eq('public', true)
  .order('created_at', { ascending: false })
  .limit(20)
Explore Moneybook

Build in a weekend, scale to millions