Building an App-First Mobile Wallet for Bangladesh

Building an App-First Mobile Wallet for Bangladesh

About TopUp

Client

TopUp, built for a Singapore-based fintech company

Industry

Fintech / Mobile Wallet

Timeline

2017-2021

Services

Product Engineering + Architecture + Operations

TopUp is a mobile wallet and multi-service app for users in Bangladesh. A Singapore-based fintech company launched it in 2017 and brought in TechCare as its technology partner. We owned the engineering end to end: architecture, backend, mobile apps, payment integrations, security and day-to-day operations.

The app started with one feature, mobile recharge. Over four years it grew to cover bus, train and movie tickets, utility bills, wallet-to-wallet transfers and cashback offers, all from one home screen. TopUp went live before bKash had an app, at a time when most mobile money in the country still ran through USSD menus on feature phones.

Performance Highlights (2017-2021)

2M+

Total App Installs

5 Crore BDT

Transaction Volume
(about CAD$600K)

55%

User Retention Rate
(consumer fintech typically sees 20-30%)

7

Service Categories, up from 1 at launch

11

Engineers at Peak

4 Years

Continuous Operation

The Challenges

No local app-first wallet to learn from
Payment partner APIs with different formats, speeds and failure modes
Risk of double charges on slow or dropped mobile connections
Reconciliation across TopUp, banks, operators and service partners
Fraud and abuse through promotions and wallet transfers
Low-end Android devices and unreliable mobile data

Solutions & Impact

MVP limited to mobile recharge, with new services added only after retention held
One payment abstraction layer over every bank, card and operator API
Idempotency keys and transaction locking on every payment request
Automated daily reconciliation with an exception queue for the operations team
Velocity checks, device binding and per-user risk rules
One React Native codebase for Android and iOS, tuned for low-end phones, with retry queues for failed requests

TechCare's Journey with TopUp

Journey

2017 - Ideation & MVP

The client came to TechCare with a plan for an app-first wallet in Bangladesh and no in-house engineering team. We designed the architecture to support many services later, then shipped an MVP with just one:

React Native app for Android and iOS from a single codebase
Mobile recharge for all major Bangladeshi operators
Card and bank payments through a local payment gateway
PIN and OTP login
Transaction history and digital receipts
Journey

2018 - Product-Market Fit

Users came back to recharge week after week, which told us they trusted the app with their money. Once retention held, we added the first new services:

Bus ticket booking
Train ticket booking
In-app wallet with balance top-up
Payment abstraction layer, so each new partner plugged into one interface
Journey

2019 - Super-App Expansion

With ticketing live, TopUp moved into everyday payments. Each new service brought new partners, and more points where a transaction could fail:

Movie ticket booking
Utility bill payments (electricity, gas, water and internet)
Queue-based processing for slow partner calls
Automated reconciliation against partner settlement reports
Journey

2020 - Scale & Reliability

Installs climbed toward 2 million. Money now moved between users as well as to partners, so fraud and failure handling became the main engineering work:

Wallet-to-wallet transfers
Cashback and promotions engine
Fraud rules for transfers and promo abuse
Automatic retries and reversals for failed transactions
Read replicas and Redis caching for high-traffic data
Journey

2021 - Operational Maturity

By 2021 TopUp ran seven service categories on the same platform it launched on. Our focus shifted to stability, compliance and operations:

Security hardening and full audit trails
KYC and transaction reporting for regulatory requirements
Admin tooling for disputes, refunds and partner status
Documentation and operational handover to the client

Results & Impact

2 Million Installs

Grew from a recharge-only MVP to more than 2 million installs, in a market of roughly 55 million smartphone users at the time.

55% Retention

More than half of users kept using TopUp, about double the retention typical for consumer fintech apps.

One Service to Seven

Added ticketing, bills, transfers and cashback to the original architecture, with no platform rewrite between 10K and 2M installs.

5 Crore BDT Processed

Handled about 5 crore BDT in transactions across all services, with every payment matched against partner records.

Built Before the bKash App

Shipped an app-first wallet before the market leader had one, with no local playbook to copy.

Tech Stack

Tech Stack, How We Built It

Frontend

React Native (Android and iOS from one codebase), web admin panel

Backend

Java (Spring Boot)

Database

MySQL, Redis

Architecture

Modular monolith with separate payment and reconciliation services

Security

PIN and OTP authentication, encrypted transaction data, card data handled only by a PCI-DSS compliant gateway

Messaging

RabbitMQ for async jobs and retries

Cloud Infrastructure

AWS Cloud & Compute Services

API Gateway

Single entry point for the mobile app and admin panel: authentication, rate limiting and routing

3rd Party Tools

SSLCommerz (payments), SMS OTP gateway, Firebase Cloud Messaging

Systems Delivered

Systems Delivered, What We Built

User-facing Mobile App

React Native app for Android and iOS: recharge, ticket booking, bill payments, transfers and wallet

Payment Orchestration Layer

One interface over every bank, card, operator and service partner

Reconciliation Engine

Daily matching of TopUp records against partner settlement reports

Cashback & Promotions Engine

Campaign rules, cashback credit and abuse limits

Admin & Operations Panel

Transaction lookup, refunds, disputes and partner status

Fraud & Risk Monitoring

Velocity checks, device binding and alerts on unusual activity

TopUp home screen with service categoriesTopUp mobile recharge flowTopUp bus ticket booking screenTopUp utility bill payment screenTopUp wallet-to-wallet transfer screenTopUp cashback and offers screenTopUp transaction history and receipt

System Architecture, How It Fits Together

Both clients, the React Native app and the admin web panel, talk to the backend only through the API gateway. The gateway checks the session, applies rate limits and routes each call to the right service. Redis sits in front of the database for sessions, OTPs, wallet balance reads and idempotency keys. Slow partner calls go through a queue so the app never waits on a bank or operator.

Clients

  • TopUp Mobile AppReact Native: Android + iOS
  • Admin Web PanelOps, support, finance
API GatewayAuth, rate limiting, routing

Backend Services

  • Admin APIRefunds, disputes, reports
  • User & Wallet ServicePIN, OTP, KYC, balance
  • Service ModulesRecharge, Tickets, Bills, Transfers
  • Reconciliation Engine
Payment OrchestrationIdempotency, locking, retries
  • Fraud & Risk Rules
  • Cashback & Promotions
  • RedisCache, sessions, OTP, idempotency keys
  • Message QueueAsync partner calls, retries
  • Primary DatabaseUsers, wallets, transactions, ledger

External Partners

  • Payment GatewayBanks and cards
  • Mobile Operators
  • Bus, Train and Cinema Partners
  • Utility Billers
  • SMS OTP and Push

Transaction Workflow, How a Payment Moves

Every service in TopUp, from a 20 taka recharge to a train ticket, runs through the same payment path. That is what let the team add new services without touching the payment core.

User opens TopUp
Login with PINOTP on new device
Choose a service
  • Mobile Recharge
  • Bus Ticket
  • Train Ticket
  • Movie Ticket
  • Utility Bill
  • Wallet-to-Wallet Transfer
Enter details and confirm amount
Pay with
  • Wallet balance
  • Card or bank via gateway
Fraud and limit checks
Blocked
Decline and notify user
Create transaction with idempotency keyLock funds
Call partner through queue
Partner response
  • Success Confirm transaction Debit wallet or capture payment Apply cashback rules
  • Timeout Retry with same idempotency key Partner response
  • Failed Release lock Reverse or refund
Receipt, push and SMS
Daily reconciliation against partner reports

Lessons for Fintech Founders

  1. Build for how your users already pay

    The most advanced stack or the most technical team will not win a fintech market on its own. What matters is the way people in your market already handle money and the habits they trust. Use your product the way a regular customer would, on their phone, at their pace, and judge every feature from their side. The satisfaction of working with sophisticated technology is not a reason to ship something.

  2. Start with one feature and earn the next

    TopUp launched with mobile recharge only. People trust a new money app with one small thing first. Expand only after they keep coming back.

  3. Make every new feature easy to adopt

    TopUp's early growth came from card holders who already paid digitally. Later features were harder for newer users to learn, and some existing features fell behind what users expected. Keep current features up to date before adding new ones, and teach each new one inside the app.

  4. Abstract payment partners early

    Every bank, operator and biller API behaves differently. Put one interface in front of all of them before the second partner arrives, not after the fifth.

  5. Design for failure

    Partners will go down and networks will drop. The user should always end up with a completed payment, a retry or a refund, never an unknown state.

  6. Get reconciliation right before adding clever features

    A cashback campaign brings users in once. Money that does not match the partner's records loses their trust for good.

DoDon't
Watch real users pay, in their own setting Choose technology because it is new or impressive
Launch narrow and measure repeat use Launch every service at once
Keep existing features current Add features faster than users can learn them
Treat every payment as able to fail Assume partner APIs will stay up
Reconcile daily against partner records Leave mismatches for month-end