Announcing Mifos X 18.03: Two-Factor Authentication, Data Import Tool Integration, Notifications, Wizard UI

We’re pleased to announce the release of Mifos X 18.03 release powered by Apache Fineract 1.1. This release includes several features and enhancements completed by our Google Summer of Code students in 2017. It also contains numerous bug fixes and minor enhancements led by Nazeer as well as members of the community.

At the Fineract platform level major new features include support for two-factor authentication, enhancement and integration of the data import tool, enhancement and integration of the notifications framework for staff notifications, support for adding notes to savings deposits and withdrawal transactions, UI for making ad-hoc reporting queries, and additional self-service APIs to support our mobile and online banking apps and extend our SMS campaigns module.

Full release notes can be found at:

At the Mifos X Web App UI level, it contains all the UI screens for the above features as well as the work that Gopala did during GSOC in enhancing the UI including wizard layouts for product and account configuration, wizard views to support workflows via entity checks for data tables, and more.

Thanks to the many contributors that made this release possible. Thank you to Alex Ivanov and the mentorship of Avik Ganguly for the two-factor authentication work, to Kumaranath Fernando for the data import tool work with support of Kyriakos, Avik, and Nayan, to Courage Angeh and Adhyan Srivastava and the mentorship of Pranjal for the work on the notifications framework, to Nazeer for the many bug fixes, reviews, and small improvements he made, to Robert Ippez for the work on adding notes to savings withdrawals and deposits, to Nathan of Mentors International for sponsoring the UI for ad-hoc reporting queries, to Santosh for all his QA work, to Avik for review and prepping of the Fineract release, and to Madhukar for prepping the Mifos X release.

Read on for screenshots and an overview of each new feature.

Integration of the Data Import Tool

The data import tool is one of the most oft-used components of the Mifos X solution and Apache Fineract platform. With the work of Kumaranath Fernando during the 2017 Google Summer of Code it is now directly integrated as core component of the Fineract platform with REST endpoints and template generation for all entity types. Imports can now be done directly from the Mifos X web app UI.


Apart from the integration of the data import tool into Fineract along with seamless integration into the Mifos X user interface, performance and functionality have been greatly enhanced with a number of improvements. Most notably, imports and exports can now be done at the level of an office, rather than an entire organization, resulting in greater performance and scalability for large implementations. The import tool is now also available for additional entity types such as share accounts, chart of accounts, offices, and staff. Lastly, usability is improved with pre-populating of templates as well as validation against invalid data and security mechanisms to handle unsupported or malicious file types.

Notifications Framework

The notifications framework began as a GSOC project in 2016 by Adhyan Srivistava and then was enhanced further during the 2017 Google Summer of Code by Courage Angeh, both under the mentorship of Pranjal Goswami.

Adhyan focused on extending Fineract and the Mifos X web app to support the generation and display of actionable notifications to staff. For example if a new client was created, a branch manager could get notified of this change and then click to approve the new client. He implemented this across a set of events which have notifications enabled by default – these can be extended further.

Courage extended this functionality by evolving it towards a topic-subscriber model architecture. This allows groups of subscribers to subscribe to topics and then generate notifications which get sent to these user groups that have subscribed to topics. Previously notifications could only be sent to one user at a time.

To utilize the notifications framework, ActiveMQ must be enabled as described on the Fineract wiki. Then for a notification to be generated, the permission for the event generating the notification and the action to be taken via the notification need to be added to that role. Any user with that role will then be able to view that notification. For example, if I want to be notified that a client has been created and be able to activate that notification, I need to belong to a role that has the view client, create client, and approve client permissions granted. See Courage’s screencast to learn more.

Finally, with the support of Nazeer, Dilpreet has integrated this with the mobile banking app such that notifications can be generated and sent to the client within the Android mobile banking app.


Two Factor Authentication

Another often-requested feature has been Two Factor Authentication. Thanks to the fine work of Alex Ivanov as an intern underneath Avik Ganguly, two factor authentication is now supported for Apache Fineract in both the Mifos X web app and android client.

The delivery method of the token/OTP can be via email or SMS with the flexibility to additional delivery methods over time. Full configuration over 2FA is available including customizing the message sent with the OTP, generation of remember me tokens stored and encrypted locally so users can stay logged into their devices without having to enter a second factor for extended periods of time, and the ability to bypass 2FA for certain roles.

2FA is turned off by default but can be enabled by setting Ptwofactor=enabled during the Gradle build process.

UI Enhancements

Wizard UI for Product & Account Creation

As part of his GSOC 2017 project on enhancing the Mifos X Web app, Gopala, implemented wizard layouts for the product creation and account creation screens.

Now, these once cluttered workflows, are spread across multiple steps with the ability to go back and forth between the steps and see visually which stages of the account or loan creation process have been created.

Wizard UI for Entity Checks for Data Tables

Earlier we had shipped functionality for entity checks for data tables which enable lightweight workflows by being able to assign data tables to be captured at various stages of an entity’s workflow (i.e. at the create account or activate client stage). Without a proper UI this feature wasn’t highly usable. Gopala has added support for a wizard layout so now for each data table that is attached as an entity check is now an additional sequence to proceed forward during that workflow.

Minor Features

Attach Notes to Savings Transactions

Just like you can do with a loan repayment, now notes can be attached to savings deposits and savings withdrawal transactions.

Ad Hoc Query UI

This feature was sponsored by Mentors International and implemented by developers led by Robert Jakech at FITER.

It enables  cron job that runs a specified ad-hoc query which extracts data and then inserts into a report table on a regular basis.

Equal Installments with Equal Principal and Equal Interest

Per the requirement of ThitsaWorks and as implemented by Nazeer, there is now an equal amortization checkbox which enables equal installments with both equal principal and equal interest. For example with a declining interest loan, rather, the interest is spread equally across each installment of the loan. This feature was requested to allow clients to easily remember what was due for each installment by having the same amount for principal and interest each installment.