Mifos Mobile (Self-Service Banking App) — Development Plan 2026
Mifos Mobile (Self-Service Banking App) — Development Plan 2026
Repository: openMF/mifos-mobile
API Instance: tt.mifos.community (Tenant: dev)
API Docs: Apache Fineract Swagger
Goal: Build a complete self-service mobile banking app for end users — account overview, loan management, savings management, transfers, and notifications
Table of Contents
# | Section | Description |
|---|---|---|
1 | User Authentication and Registration | Self-service registration, login, biometric, password management |
2 | User Profile and Account Overview | Profile management, accounts dashboard, account summary |
3 | Loan Module (Self-Service) | View loans, repayment schedule, apply for loans, make repayments |
4 | Savings Module (Self-Service) | View savings, transactions, deposit, withdrawal, apply for new account |
5 | Beneficiary and Transfers | Manage beneficiaries, account-to-account transfers, third-party transfers |
6 | Charges and Transactions | View charges, transaction history, receipts |
7 | Notifications and Alerts | Push notifications, repayment reminders, account alerts |
8 | Supporting Features | QR code, nearby branches, help/FAQ, feedback |
9 | Screen Inventory | All 28 screens across all modules |
10 | Deployment | Multi-platform release — Android, iOS, Desktop, Web |
11 | One-Click Deployment | Mifos X Launchpad — self-hosted backend for testing |
12 | Development Phases | 5 phases from February to September 2026 |
1. User Authentication and Registration
1.1 Self-Service Registration
Feature | API Endpoint | Description |
|---|---|---|
Registration | POST /self/registration | New user self-registration with account number |
Verify registration | POST /self/registration/user | Verify and activate registered user |
1.2 Login and Session
Feature | API Endpoint | Description |
|---|---|---|
Login | POST /self/authentication | Authenticate with username and password, returns base64 auth token |
Validate token | GET /self/userdetails | Validate session and get user info |
1.3 Security Features
Feature | Description |
|---|---|
Biometric login | Fingerprint / Face ID authentication (stored locally) |
Passcode lock | App-level passcode for additional security |
Session timeout | Auto-logout after inactivity period |
Password change | POST /self/user — change password |
Forgot password | Password reset flow via email/SMS |
2. User Profile and Account Overview
2.1 Client Profile
Feature | API Endpoint | Description |
|---|---|---|
Get profile | GET /self/clients | Get authenticated client details (name, account number, status, image) |
Client details | GET /self/clients/{clientId} | Full profile: displayName, officeId, officeName, mobileNo, dateOfBirth |
Client image | GET /self/clients/{clientId}/images | Profile photo |
Update profile | PUT /self/clients/{clientId} | Update allowed fields (mobileNo, email) |
2.2 Accounts Dashboard
Feature | API Endpoint | Description |
|---|---|---|
All accounts | GET /self/clients/{clientId}/accounts | loanAccounts[], savingsAccounts[], shareAccounts[] |
Account summary cards | Derived from accounts response | Total loan balance, total savings balance, number of active accounts |
2.3 Account Overview Fields
Loan Account Summary:
Field | Description |
|---|---|
accountNo | Loan account number |
productName | Loan product (PERSONAL, BRONZE, Business) |
status | Pending, Active, Closed, Written Off |
principalDisbursed | Amount disbursed |
principalOutstanding | Remaining balance |
totalOverdue | Overdue amount |
Savings Account Summary:
Field | Description |
|---|---|
accountNo | Savings account number |
productName | Savings product (WALLET, AHORRO) |
status | Active, Dormant, Closed |
accountBalance | Current balance |
nominalAnnualInterestRate | Interest rate |
3. Loan Module (Self-Service)
3.1 Loan Account List
Feature | API Endpoint | Description |
|---|---|---|
List my loans | GET /self/clients/{clientId}/accounts | Extract loanAccounts[] from response |
Loan detail | GET /self/loans/{loanId} | Full loan details with summary |
Loan with schedule | GET /self/loans/{loanId}?associations=repaymentSchedule | Repayment schedule with due dates |
Loan with transactions | GET /self/loans/{loanId}?associations=transactions | Payment history |
Loan with all | GET /self/loans/{loanId}?associations=all | Schedule + transactions + charges |
3.2 Loan Detail View
Section | Data Source | Display |
|---|---|---|
Loan summary | GET /self/loans/{loanId} | Product, principal, interest rate, status, disbursement date, maturity date |
Outstanding balance | summary.totalOutstanding | Current amount owed |
Next installment | repaymentSchedule (next unpaid) | Due date, amount due, principal + interest breakdown |
Repayment progress | principalPaid / principalDisbursed | Visual progress bar |
Loan Summary Fields:
Field | Example |
|---|---|
principalDisbursed | 10,000.00 |
principalPaid | 2,170.26 |
principalOutstanding | 7,829.74 |
interestCharged | 7,611.64 |
interestPaid | 4,104.00 |
totalExpectedRepayment | 18,093.64 |
totalRepayment | 6,756.26 |
totalOutstanding | 11,337.38 |
3.3 Repayment Schedule
Feature | API Endpoint | Description |
|---|---|---|
View schedule | GET /self/loans/{loanId}?associations=repaymentSchedule | All installments |
Installment fields | Per period | dueDate, principalDue, interestDue, totalDueForPeriod, totalOutstandingForPeriod, complete |
Overdue indicator | Derived | Highlight past-due installments |
Upcoming payment | Derived | Next unpaid installment highlighted |
3.4 Loan Transactions History
Feature | API Endpoint | Description |
|---|---|---|
Transaction list | GET /self/loans/{loanId}?associations=transactions | All disbursements, repayments, fees |
Transaction detail | GET /self/loans/{loanId}/transactions/{txnId} | Individual transaction breakdown |
Transaction types | From response | Disbursement, Repayment, Waive Interest, Fee, Penalty |
3.5 Apply for New Loan
Feature | API Endpoint | Description |
|---|---|---|
Loan template | GET /self/loans/template?clientId={clientId} | Available products, terms, options |
Loan products | GET /self/loanproducts | List available loan products |
Product detail | GET /self/loanproducts/{productId} | Product terms and configuration |
Submit application | POST /self/loans | clientId, productId, principal, loanTermFrequency, numberOfRepayments, interestRatePerPeriod, expectedDisbursementDate |
Withdraw application | POST /self/loans/{loanId}?command=withdrawnByApplicant | Cancel pending application |
3.6 Loan Charges
Feature | API Endpoint | Description |
|---|---|---|
View charges | GET /self/loans/{loanId}/charges | Applied charges (Late Fee, Administration Fee) |
Charge detail | GET /self/loans/{loanId}/charges/{chargeId} | Individual charge breakdown |
4. Savings Module (Self-Service)
4.1 Savings Account List
Feature | API Endpoint | Description |
|---|---|---|
List my savings | GET /self/clients/{clientId}/accounts | Extract savingsAccounts[] from response |
Savings detail | GET /self/savingsaccounts/{accountId} | Full account details with balance |
Savings with transactions | GET /self/savingsaccounts/{accountId}?associations=transactions | Transaction history |
4.2 Savings Detail View
Section | Data Source | Display |
|---|---|---|
Account summary | GET /self/savingsaccounts/{accountId} | Product, balance, interest rate, status |
Current balance | summary.accountBalance | Large display with currency |
Interest info | nominalAnnualInterestRate | Annual rate, compounding period |
Sub-status | subStatus | Active, Inactive, Dormant, Block indicators |
Savings Account Fields:
Field | Description |
|---|---|
accountNo | Account number (e.g. 000000007) |
status | Active (300), Submitted (100), Approved (200), Closed (600) |
subStatus | None, Inactive, Dormant, Escheat, Block, BlockCredit, BlockDebit |
summary.accountBalance | Current balance |
nominalAnnualInterestRate | Annual interest rate |
interestCompoundingPeriodType | Compounding frequency |
interestPostingPeriodType | Interest posting frequency |
minRequiredOpeningBalance | Minimum opening balance |
allowOverdraft |