The double-entry ledger for platforms
that move money.
Marketplaces, payout platforms, rentals - anywhere a buyer, a seller, and you all have a claim on the same dollar. Ledfra keeps them straight.
Built for engineers. Loved by accountants.
Free during Early Access, then half rate, for as long as you stay. See pricing
Every number above reconciles.
$6,267,985 assets$3,358,078 liabilities$1,775,987 equity$1,133,920 profit
Computed from one series of bookings, never typed in, which is why it balances to the dollar. Check it against a live ledger
Why Ledfra
Correct by construction
Double-entry is enforced at the API level. You literally can't post an unbalanced transaction.
Real-time, audit-ready
Every balance, P&L, and balance sheet is live. Every entry is immutable and traceable back to the source event.
Built to integrate
Idempotency keys, OpenAPI spec, sandboxes. Ship your first transaction in an afternoon.
Three steps from account to audit.
Model your money
Define accounts, account types, and posting rules once. Ledfra validates them against accounting invariants at setup time so broken models fail before they ship.
Post transactions
One API call per business event (payout, refund, fee). Ledfra turns it into balanced double-entry postings automatically and records the source event for audit.
Query anything
Real-time balances, trial balance, P&L, and balance sheet, all derived from the same source of truth. No nightly jobs, no separate analytics pipeline.
One balance per user. Zero provisioning.
A marketplace has millions of sellers - you can't create an account by hand for each one. In Ledfra you don't. Address any account by a readable slug like liabilities:user/123, and the first transaction that references it creates the account automatically.
- Human-readable slugs, not numbered codes like 2100
- Sub-accounts created on first use: no pre-provisioning, no races
- Unlimited per-object accounts: one wallet per user, one payable per seller
- The slug is its own audit trail: it says exactly what the account is
An API that reads likethe mental model you already have.
Post a balanced transaction and get back the source of truth: real-time balances, P&L, and balance sheet all derive from it. Double-entry is enforced at the API boundary, so an unbalanced write is rejected, not absorbed.
What a rejection looks like - nothing is written in any of these cases:
- 400
- Debits and credits do not net to zero in some currency.
- 409
- An idempotency key was reused with a different body.
- 422
- The posting would leave a guarded account below zero.
curl 'https://ledfra.com/api/ledgers/{ledgerId}/transactions' \
-H "Authorization: Bearer $LEDFRA_KEY" \
-H 'Idempotency-Key: payout-5f72a1' \
-H 'Content-Type: application/json' \
-d '{
"description": "Marketplace payout",
"metadata": { "seller_id": "42" },
"entries": [
{
"account": "liabilities:seller/42",
"operation": "DEBIT",
"amount": "USD:95.00"
},
{
"account": "assets:cash",
"operation": "CREDIT",
"amount": "USD:95.00"
}
]
}'Dashboards that don't need a data engineer.
Every view is derived from the ledger itself, so numbers never drift from source of truth, and month-end stops meaning all-nighter.
- Close
- No nightly jobReports derive from the ledger on read. There is no export, no warehouse copy, and no window where the dashboard and the books disagree.
- Time zones
- Every team, its own dayA team in New York and a team in Tokyo each see the same ledger rolled up by their own calendar day, from the same entries.
Free while we’re in Early Access.
What you pay now, and what you’ll pay later.
Free
during Early Access
Everything Ledfra offers, at no cost while we’re in Early Access.
- No credit card required
- Sign up in under 30 seconds
- Full access to all features
- Direct access to the founder
Your rate locks at half price the day you sign up.
Start buildingNumbers aren’t set.Your terms are.
We won’t publish a price until it’s real.
- Half the published rate, for life.
- Sign up during Early Access and your workspace pays 50% of the published rate, for as long as it stays active, not for a first year.
- Sixty days, and your rate up front.
- You’ll see the exact number you’ll be charged at least 60 days before the first invoice. Nothing switches on automatically, there’s no card on file to charge.
Ten minutes to set up. Correct for life.
Free to try. No credit card. Sandbox included.