Sub-90ms p99
7-region active-active Postgres with Spanner-style consensus. 89ms global p99 against a single-tenant schema, measured across 42M requests/day.
const t = await ledger.transfers.create({...})ledgerkit is the double-entry financial engine behind 2,840 fintechs — from solo indie builders to publicly-traded neobanks. One REST API, 11 SDKs, sub-90ms p99 worldwide, and a ledger you can actually audit. Free tier covers your first 100,000 API calls a month, forever.
$ curl -X POST https://api.ledgerkit.dev/v1/transfers \ -H "Authorization: Bearer sk_live_••••••••" \ -H "Idempotency-Key: txf_8e4b21" \ -d '{ "from": "acct_wallet_mira", "to": "acct_escrow_5411", "amount": 4800, "currency": "usd", "memo": "Invoice #INV-2618" }' HTTP/2 201 · 83ms { "id": "txf_8e4b21a3c9", "status": "posted", "posted_at": "2026-04-24T09:12:44Z", "balance_after": 12840, "ledger_entries": 2, "reconciled": "true" }
Powering financial infrastructure at
7-region active-active Postgres with Spanner-style consensus. 89ms global p99 against a single-tenant schema, measured across 42M requests/day.
const t = await ledger.transfers.create({...})Every mutating endpoint takes an Idempotency-Key. Safe to retry for 72 hours. Never double-charge a customer, even when your queue re-delivers.
Idempotency-Key: txf_8e4b21Every transfer creates balanced debit and credit entries, atomically. Export to QuickBooks, Xero, or NetSuite with one API call. Your accountant will weep.
GET /v1/ledger/entries?since=2026-01-01USD, EUR, GBP, JPY, INR, BRL, NGN, KES, and 28 more. Multi-currency wallets with spot FX at interbank +0.12%, or lock a rate for 24h.
ledger.fx.lock({from:'usd',to:'eur',amount:10000})Exponential backoff with jitter over 7 days, HMAC-SHA256 signed, replayable from the dashboard. 11 events, filterable by account.
X-Ledgerkit-Signature: t=1714,v1=a3c9…SOC 2 Type II, PCI DSS 4.0, GDPR, HIPAA-ready, and BaFin registered. Full compliance pack in your dashboard, downloadable at 3am before your Series B.
GET /v1/compliance/soc2.pdfWorks with Node, Bun, Deno, and edge runtimes (Cloudflare Workers, Vercel Edge, Fastly Compute). Full TypeScript types shipped.
$ npm i ledgerkit
added 1 package · 0 vulnerabilitiesEvery customer, wallet, escrow, or revenue bucket is an account. Accounts hold balances. Ledger entries move money between them. That's the whole model.
await ledger.accounts.create({
name: 'wallet_mira',
currency: 'usd'
})Atomic transfers, idempotent retries, balanced ledger entries. Webhook fires within 90ms. Money shows up instantly in the dashboard and your GL export.
await ledger.transfers.create({
from: 'wallet_mira',
to: 'escrow_5411',
amount: 4800
})Every SDK is hand-written by a human who actually ships in that language — not generated from OpenAPI and left to rot. Maintained by our team, semver-stable, and fuzz-tested weekly.
Flat per-call pricing. No surprise overage bills, no "we'll call you" for pricing after $10k. Everyone sees the same rates.
For builders shipping their first fintech, on nights and weekends.
For Series Seed → Series B fintechs processing real money at real volume.
Regulated banks, publicly-traded neobanks, billion-dollar payment rails.
No credit card for the free tier. No sales call. Paste your email, land in the dashboard, paste sk_test_... into your .env, and post your first transfer before the coffee cools.
◉ Free forever up to 100k calls · no credit card · full SDKs · read our privacy pledge