Divyansh GuptaDivyansh Gupta
All work
FinTech · Backend · Mobile

Invesstum

A mutual fund investing app backed by a direct BSE StAR MF integration.

NestJSPrismaReact NativeBullMQJOSE Encryption
Invesstum interface

Overview

Invesstum is a mutual fund investing app — onboarding, KYC, bank and nominee setup, SIPs, SWPs, mandates, goal planning, and portfolio tracking — backed by a NestJS middleware that integrates directly with BSE StAR MF, India's mutual fund distributor trading platform. Scheme master data is synced from Accord Fintech, and registrar data from CAMS, so the app always reflects current fund and folio information.

The challenge

BSE StAR MF's API is legacy SOAP/XML and pipe-delimited, demands JOSE-encrypted payloads and whitelisted IPs, and spans multi-step flows — UCC creation, mandate registration, order placement — that can't be called safely or practically from a mobile client. The proxy had to own that orchestration and keep credentials off the client entirely, while background jobs kept scheme data and cart-abandonment follow-ups running independently of user requests.

What I built

  • NestJS middleware adapting BSE's XML/pipe-delimited payloads to and from JSON
  • JOSE-based payload encryption for BSE's secure API mode
  • Server-side orchestration of multi-step flows: UCC creation, mandate setup, SIP/SWP, order placement
  • Scheme master sync from Accord Fintech and registrar data from CAMS
  • BullMQ-backed queue for scheduled jobs, including cart-abandonment follow-ups
  • React Native app covering onboarding, KYC, 2FA, mandates, goal planner, and portfolio/orders

Screenshots

Invesstum screenshot 1
Invesstum screenshot 2
Invesstum screenshot 3
Invesstum screenshot 4
Invesstum screenshot 5

Architecture

React Native App
NestJS Middleware
BSE StAR MF (SOAP/XML)
Accord · CAMS
PostgreSQL (Prisma) · BullMQ

Engineering highlights

Protocol adaptation

Legacy SOAP/XML and pipe-delimited responses from BSE are normalised into typed JSON before they ever reach the client, so the mobile app only ever deals with one clean contract.

Server-side credential isolation

API credentials, member codes, and IP whitelisting requirements stay entirely on the backend — the mobile app never holds anything that could talk to BSE directly.

Multi-step orchestration

Flows like KYC-to-mandate-to-order span several sequential BSE calls; the middleware owns that sequencing so the client just sees a single request/response per step.

Results

KYC · SIP · SWP · Goals

Client features covered

Accord · CAMS synced

Reference data

JOSE-secured payloads

Encryption