Google Summer of Code 2019 Final Report
Mifos Payment Hub Integration with GSMA Mobile Money APIs
Mobile money and other digital forms of money transfers are rapidly impacting the financial habits of consumers around the globe. To fully utilize the potential of these changes, financial institutions should have built-in components to help them leverage these services. Mifos Payment Hub is such a component which can allow organizations to deploy their payment applications out-of-the-box using Fineract.
This project includes extending the usability of Mifos Payment Hub by integrating it with the GSMA Mobile Money APIs. As the GSMA Mobile Money APIs are still in development, the scope revolves around creating a working demonstration of transaction use cases as Proof-Of-Concept for future integrations to the platform.
GSMA Mobile Money Use Cases
This part of the project was mainly concerned with determining which use cases could be integrated into the Mifos Payment Hub from the GSMA MM APIs. Development was done on
v1.0 - a test version currently running on the sandbox at:
It is detailed and documented at developer.mobilemoneyapi.io.
Postman collections were created while testing all the endpoints provided in v1.0 (Link).
Transaction Use Cases which have been implemented in the Payment Hub:
- Merchant Payment
- Peer-To-Peer Transfer
Main Development Branch:
In this part of the project the basic transaction use cases - Merchant Payment and Peer-To-Peer transfer - were integrated with the Payment Hub.
Mifos Payment Hub is based on Apache Camel and Spring Framework. The implementation involved building camel routes to support the multiple steps of the use cases for merchant payment and peer-to-peer transfer.
Transactions can be performed from the hub using simple REST POST requests. The following are the results of the basic transactions:
A simple web UI was built for the demonstration of the basic transaction use cases implemented in the Payment Hub. It is deployed using
In the above demonstration the error messages are due to the fact that the web interface is being deployed using
npm http-server which does not allow POST requests. However, through the server-side output we can confirm that a transaction issued by a web client is being serviced.
- Documentation on a streamlined process to add different Over-The-Top APIs to the Payment Hub
- This would allow easier onboarding of fellow contributors to the Payment Hub project
- Allow us to identify a set of practices to be followed for integration of different FSPs with the Payment Hub
This involves both documentation of the existing codebase and of the methodology used to create it.
- Integration with (FSP) Fineract-side API. This would allow for the Payment Hub to be better integrated with other Mifos components and is an immediate future goal in the scope of this project.
- The list of use cases to still be covered by mobile money integration is as follows (Link to Swagger UI):
- Interoperability between mobile money and banks, or among mobile money providers
- Bill payments
- Instant notification of payment
- Basic account management
- International transfers, including request for quotation
- Bulk transactions
- Cash in / Cash out
As of September 2019, work on bulk transactions, international remittance and debitmandates is not feasible.
- Migration from
npm http-serverto allow POST requests on the server for the web UI
Deployment Steps: (for Ubuntu)
- Clone the repository:
$ git clone https://github.com/openMF/payment-hub
- Navigate to
sources/and build with:
$ mvn clean install
- Navigate to
- Run with
$ java -jar payment-hub-1.0.0-SNAPSHOT.jar
- Clone the repository:
$ git clone https://github.com/sidhant-gupta-004/payment-hub-web-ui.git
http-server(if you already have
npm http-serverinstalled you may skip this step):
$ npm install http-server -g
- Navigate to the source directory and run:
I would like to thank Ed Cable for his guidance and effort in making the entire program a smooth experience. The orderly manner of meetings and responsiveness contributed a significant amount to my efficiency. I would also like to thank my mentors, especially Avik and Rahul whose guidance and suggestions helped this project take shape. Working on the Payment Hub made me learn and develop technically as a student and developer. Mifos is an exceptionally amazing organization to be part of and I look forward to contributing further to both Mifos and the Payment Hub project.