Android Client (Field Officer App) — Development Plan 2026
Android Client (Field Officer App) — Development Plan 2026
Repository: openMF/android-client
API Instance: tt.mifos.community (Tenant: dev)
API Docs: Apache Fineract Swagger
Goal: Build complete Client, Loan, and Savings flows with an interactive Field Officer Dashboard
Table of Contents
# | Section | Description |
|---|---|---|
1 | Client Module — Complete Flow | Client lifecycle: list, create, detail, actions, data tables |
2 | Loan Module — Complete Flow | Loan lifecycle: products, application, detail, actions, transactions, charges, guarantors, collateral |
3 | Savings Module — Complete Flow | Savings lifecycle: products, application, detail, actions, transactions, charges |
4 | Interactive Dashboard | Portfolio summary, action items, quick actions, widgets |
5 | Supporting Modules | Groups, documents, maker-checker, standing instructions, reporting |
6 | Screen Inventory — 33 Screens | All screens across Client, Loan, Savings, Dashboard, Supporting |
7 | Deployment — Multi-Platform Release | Android, iOS, Desktop, Web via KMP |
8 | One-Click Deployment — Mifos X Launchpad | Self-hosted Fineract backend for testing |
9 | Development Phases | 5 phases from February to September 2026 |
Current API Inventory
Resource | Count | Details |
|---|---|---|
Clients | 111 | Active, Closed, Transfer in progress, Rejected |
Loan Products | 3 | PERSONAL, BRONZE, Business (USD) |
Savings Products | 2 | WALLET, AHORRO (USD) |
Offices | 5 | Head Office, Branch Office 1, Office Of Doraemon, Mobile Office, Telegraph |
Charges | 10 | Client (4), Loan (2), Savings (1), Share (3) |
Reports | 200+ | Table, Pentaho, SMS, Email types |
1. Client Module — Complete Flow
1.1 Client List and Search
Feature | API Endpoint | Description |
|---|---|---|
List all clients | GET /clients | Paginated list: displayName, accountNo, status, officeId, officeName |
Search clients | GET /clients?sqlSearch={query} | Search by name, account number, external ID |
Filter by office | GET /clients?officeId={id} | Filter by branch |
Filter by status | GET /clients?status={status} | Active (300), Closed (600), Transfer (303,304), Rejected (700) |
Sort clients | GET /clients?orderBy={field}&sortOrder={asc/desc} | Sort by name, account number, date |
1.2 Client Creation
Feature | API Endpoint | Description |
|---|---|---|
Client template | GET /clients/template | officeOptions, staffOptions, savingsProductOptions, genderOptions, clientTypeOptions, clientClassificationOptions, datatables |
Create client | POST /clients | officeId, firstname, lastname, mobileNo, dateOfBirth, genderId, externalId, submittedOnDate, activationDate, savingsProductId, staffId |
Client with address | POST /clients (with address) | addressTypeId, street, city, stateProvinceId, countryId, postalCode |
Client with family | POST /clients (with familyMembers) | familyMembers[]: firstName, relationship, gender, dateOfBirth, profession |
Required Fields:
Field | Type | Description |
|---|---|---|
officeId | Integer | Branch office (e.g. 1 = Head Office) |
firstname | String | Client first name |
lastname | String | Client last name |
active | Boolean | true = activate immediately |
activationDate | String | Date of activation (dd MMMM yyyy) |
dateFormat | String | "dd MMMM yyyy" |
locale | String | "en" |
Optional Fields: