2026Backend
ledger api
Double-entry banking ledger API with idempotent transfers.

A production-style banking ledger in TypeScript. Every rupee that moves produces a balanced pair of journal entries, and the system can prove at any moment that total debits equal total credits. Ships with a React simulation console.
How it works
1
Double-entry by default
Transfers run in MongoDB multi-document transactions and always write two balanced journal legs; an admin check proves the books balance.
2
Idempotent transfers
Replaying a request with the same key returns the same transaction and moves the balance once, backed by Redis.
3
Holds
A hold reduces available balance while settled balance and the journal stay untouched until it is captured.
Built with
TypeScript
Express
MongoDB
Redis
React
Docker
