Skip to content
→ All work

Case study 10 / 26

MultiPaisa

Double-entry company accounting across NPR, AED, INR, SAR and USD — every line kept in its original currency and the base currency at the historical rate.

Status
Working build
Domain
web · security
Source of claims
Private repository README (reviewed). Source and deployment are not public.

A financial management system where each bank account has one currency, every journal line stores original and base amounts at the rate on the transaction date, posted history is immutable, and FX gains and losses are calculated rather than estimated.

01/The problem

A company with bank accounts in five currencies needs books that balance in one. Converting at today's rate rewrites history; mixing currencies hides FX gains and losses.

02/The system

A financial management system where each bank account has one currency, every journal line stores original and base amounts at the rate on the transaction date, posted history is immutable, and FX gains and losses are calculated rather than estimated.

03/Scope

  1. 01Double-entry journal with a draft → pending → posted → reversed lifecycle; an entry is rejected unless base debits equal base credits.
  2. 02An exchange-rate engine with pluggable providers, scheduled sync, manual overrides and rate resolution direct → inverse → cross via USD/EUR — never today's rate for a historical date.
  3. 03Cross-currency transfers with fees, bank rate versus market rate and realised FX difference; unrealised revaluation as of any date.
  4. 04Trial balance, P&L, balance sheet, cash position and general ledger, viewable in any currency, with CSV, Excel and PDF export.
  5. 05RBAC with 7 roles and 16 permissions, per-request company scoping and an audit log.

04/Engineering

Posted means permanent

Posted entries are immutable; corrections are reversals, so the audit trail is the ledger itself.

Rates carry their source

Each historical rate records where it came from, so any converted figure can be traced back.

05/Interface

Interface screenshots of this commercial product are not public. The visual above is an abstract representation of its modules — not the product itself.

06/Tech stack

  • FastAPI
  • Python 3.12
  • SQLAlchemy 2
  • Alembic
  • Pydantic v2
  • PostgreSQL 16
  • Next.js 15
  • React 19
  • TanStack Query
  • Recharts

07/Result

Verified outcomes

  • Runs end to end with Docker Compose and a seeded demo company; test suite runs against a dedicated PostgreSQL database.

08/Links

Private commercial codebase — no public links.

Next case study

TalentSentinel →