Developing a Mobile App for Crowdlending
Crowdlending platform on mobile — two different apps in one: for borrower (create loan request, get funding) and investor (choose loans, diversify, earn). Each side sees different UX but shares common financial infrastructure with licensing requirements and real-time return calculation.
Regulatory Context First
In Russia crowdlending regulated by Federal Law #259 "On Attracting Investments via Investment Platforms" (effective 2020). Platform operator — person with Central Bank license. Limits: non-qualified investor — up to 600,000 rubles per year on single platform. Information disclosure requirements strict.
For European markets — ECSP Regulation (EU) 2020/1503, similar structure. Not abstract: regulation determines what show investor, what documents collect from borrower, how store transactions.
Investor Functionality
More complex than appears. Investor sees loan request list with key metrics: borrower rating, rate, term, collection progress, time remaining. Can invest partially — crowdlending, not peer-to-peer.
Auto-investing. Investor sets criteria (rating not below B, rate not below 18%, max 5% per loan) — app auto-invests. Not just UI feature, async process on backend, mobile displays result and manages settings.
Secondary market. Investor can sell debt before repayment to another investor. Separate order book — mini-orderbook essentially. Mobile UI: "My Investments" → "Sell" → choose price (with/without discount) → list on secondary market.
Returns and taxes. IIS compatibility (Russian market), NDFL calculation on interest income, tax report export. PDFKit (iOS) or iText (Android) for local report generation or request PDF from server.
Borrower Functionality
Shorter and simpler: create request, upload documents (financials for business, passport for individual), await verification, receive funds. Key pain — statuses and transparency: "Request under review," "Collection ongoing (48% of 100,000₽)," "Funds arrive tomorrow."
Document handling: borrower uploads financial PDF → OCR + manual verification → listing decision. On mobile — view, sign offer via digital signature.
Architecture and Stack
Real-time updates critical: collection progress changes with each new investment. WebSocket (via socket.io or native) preferred over polling. iOS: URLSessionWebSocketTask, Android: OkHttp WebSocket.
Push notifications: investor — new matching requests, interest payouts, overdue. Borrower — reaching milestones (50%, 100%), payouts.
Investment portfolio data model:
Portfolio
├── totalInvested: Decimal
├── totalEarned: Decimal
├── activeInvestments: [Investment]
│ ├── loanId, amount, rate, maturityDate
│ └── status: (active | overdue | repaid)
├── pendingPayments: [Payment]
└── secondaryListings: [Listing]
Decimal not Float. Financial math on Float causes rounding errors. NSDecimalNumber (iOS) or BigDecimal (Android/Kotlin) mandatory.
Security
Same as microloans: certificate pinning, root/jailbreak detection, Keychain token storage. Additional: two-factor auth for withdrawal operations — TOTP (Google Authenticator) or SMS. Withdrawal limits with confirmation.
Timeline
Full MVP with two roles (investor + borrower) — 2–3 months. Without secondary market and auto-investor — closer to two. With full regulatory documentation, Law #259 compliance, IIS support — three months plus. Custom pricing after requirements analysis.







