[Mifos-developer] Discussing Mojaloop and Fineract Integration

263 views
Skip to first unread message

Ed Cable

unread,
Feb 28, 2018, 2:09:15 PM2/28/18
to Dev, Mifos software development, James Dailey, Isaac Kamga
So as not to lose the momentum from the webinar that was held last month - http://mifos.org/blog/intro-to-mojaloop/.

I want to start a thread discussing Fineract/Mifos integration with Mojaloop and to schedule a call to bring together any of the interested parties from the community - this can be both those interested in adoption of Mojaloop but primarily around technical contributors or partners who want to assist with the integration between Fineract and Mojaloop. 

One objective of this integration is to help provide a lab environment and proof of concept integration to demonstrate what can be done between Fineract and Mojaloop. 

Isaac has begun condensing down some of the Mojaloop docs into the salient points for our integration at https://goo.gl/1sR2dq

I'd like to target a call for mid next week midday GMT.

I aim to equip an individual contributor to begin working on this straight away but if not, scope out the integration to sufficient detail as a project for a GSOC intern.


Ed Cable
President/CEO, Mifos Initiative
edc...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649

Collectively Creating a World of 3 Billion Maries | http://mifos.org  

Ed Cable

unread,
Mar 7, 2018, 2:15:16 PM3/7/18
to Dev, James Dailey, Mifos software development
Steve, Isaac, and others that would like to join. 

Would this Thursday at 1700GMT (900PST) work for this meeting? 


Otherwise, we'll find a more suitable time.


On Thu, Mar 1, 2018 at 2:24 AM, Isaac Kamga <isaac...@mifos.org> wrote:
Welcome aboard Steve.

On Wed, Feb 28, 2018 at 10:39 PM, Steve Conrad <scon...@gmail.com> wrote:

> I'd like to be involved in this project and am happy to begin work on in
> integration proof of concept.
> Steve

>
>
> On Wed, Feb 28, 2018 at 1:08 PM, Ed Cable <edc...@mifos.org> wrote:
>
>> So as not to lose the momentum from the webinar that was held last month -
>> http://mifos.org/blog/intro-to-mojaloop/.
>>
>> I want to start a thread discussing Fineract/Mifos integration with
>> Mojaloop and to schedule a call to bring together any of the interested
>> parties from the community - this can be both those interested in adoption
>> of Mojaloop but primarily around technical contributors or partners who
>> want to assist with the integration between Fineract and Mojaloop.
>>
>> One objective of this integration is to help provide a lab environment and
>> proof of concept integration to demonstrate what can be done between
>> Fineract and Mojaloop.
>>
>> Isaac has begun condensing down some of the Mojaloop docs into the salient
>> points for our integration at https://goo.gl/1sR2dq
>>
>> I'd like to target a call for mid next week midday GMT.
>>
>> I aim to equip an individual contributor to begin working on this straight
>> away but if not, scope out the integration to sufficient detail as a
>> project for a GSOC intern.
>>
>>
>> *Ed Cable*

>> President/CEO, Mifos Initiative
>> edc...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649
>> <(484)%20477-8649>
>>
>> *Collectively Creating a World of 3 Billion Maries | *http://mifos.org
>> <http://facebook.com/mifos>  <http://www.twitter.com/mifos>
>>
>
>



--

Ed Cable

unread,
Mar 7, 2018, 2:17:50 PM3/7/18
to Dev, James Dailey, Mifos software development
By the way,

Matt Bohan from Gates Foundation shared v1 of  API documentation we were awaiting.


Ed

Ed Cable

unread,
Mar 9, 2018, 8:02:34 PM3/9/18
to James Dailey, Mifos software development, Dev
Thanks James for sharing that summary of the discussion. For anyone that wants to listen to the audio recording of the session, you can find it at https://youtu.be/Ur7rb0jHzOg 

Here's a brief summary of next steps and action items for those who weren't able to attend, can get involved.

  • Fineract 1.x Integration - Steve Conrad is going to be heading up exploring the Mojaloop APIs and their points of integration with Fineract 1.x and and the needed configurations for the different use cases/simulation environments that James listed above. In parallel he's going to bring this into alignment with the payment gateway project to ensure that the structure of a payment in Fineract aligns with that of Mojaloop
  • Fineract CN Integration - Isaac Kamga and Rahul Goel are going to drive similar efforts but with the Fineract CN architecture based on availability of requisite APIs, etc. 
  • Public Lab Environment - working with Steve, I'll make available AWS infrastructure from the Mifos Initiative so we can make a publicly accessible environment of Mojaloop connected to Fineract so others can test it out. 
  • GSOC Project - Steve will be helping to draft out some tasks that a student could work on to contribute towards these efforts to build out this public lab environment simulating a fully connected payments ecosystem of different flavors of DFS providers running Fineract that are all connected via the Mojaloop platform. 
Ed

On Thu, Mar 8, 2018 at 10:55 PM, James Dailey <jamesp...@gmail.com> wrote:
Hi all 

To bring this discussion back to the list.  We had a call today - and some ideas and questions may be relevant for the entire list.  

First, I'm articulating a vision whereby Mojaloop is used as the "switch" between multiple instances of Fineract 1.x/Mifos in various configurations.  Mifos can be configured as a "microfinance institution" or more like a savings cooperative, or like a digital bank (for our purposes, a configuration where there are neither field operations nor teller operations, only digital accounts that can interact with others digitally).  We discussed the different types or styles of institutions: from a purely digital first to a multi-tenant instance for multiple small microfinance orgs.  Essentially Fineract/Mifos is the Account system and Mojaloop connects an instance to the larger ecosystem of account providers. 

Second, I'm emphasizing that Mojaloop is an instantiation of the LevelOneProject.org, which implements key principles such as PUSH payments, open loop, interoperability, and so on.  It is a modern payments approach.  It is not blockchain.  It is intended to include banks, telecom providers, and any other provider of digital transaction accounts.  Ubiquity of payments is a fundamental building block for a digital economy.  Microfinance is hampered by the high cost of setting up payment interfaces and payment scheme fees - Mojaloop is intended to cut down on those barriers to entry.  

Third, while the Mojaloop team was implementing their core services and ledger approaches, a related team was working on APIs that could connect for better interoperability.  Those APIs are now available to the Mifos team - see https://drive.google.com/open?id=0ByeK44WJrHIvOGs0UkZUUHFzdnBCenRLX0dzcHZUUGlaSlV3  

Fourth, we discussed some first steps, which we think include setting up an instance of mojaloop to test against and to map the existing mifos APIs against the mojaloop APIs. 

Fifth, we discussed on some email exchanges about how settlement and cryptographic escrow works. 

Resources in process - need to be moved: 
https://goo.gl/1sR2dq (move this confluence?) 

More later... 

James D. 


On Wed, Mar 7, 2018 at 11:17 AM Ed Cable <edc...@mifos.org> wrote:
By the way,

Matt Bohan from Gates Foundation shared v1 of  API documentation we were awaiting.


Ed


Steve Conrad

unread,
Mar 24, 2018, 10:35:05 AM3/24/18
to Ed Cable, Mifos software development, Dev
I have created a test instance of Mojaloop that people can use to test and play with. You can access this test instance at http://mifosmojaloop.com

It is a single Ubuntu box with 4 different VMs running on it - the Mojaloop core, the IST server, and 2 simulated DFSP instances (just like we saw in the demo/screencast that Ed referred to earlier). Because we are accessing all 4 servers through a single machine, I had to forward different ports to route to the different services. Here are some of the basic mappings:

    mifosmojaloop.com:3000 - Central Directory service
    mifosmojaloop.com:3001 - End User Registry
    mifosmojaloop.com:3002 - Central Ledger
    
    mifosmojaloop.com:3119 - DFSP USSD test client 1 (this is the cell phone simulator created by Software Group that is shown in the screencast)
    mifosmojaloop.com:3219 - DFSP USSD test client 2

There are several other services/endpoints available - if you would like access to those, let me know and I can get the full port mapping to you.
Steve

James Dailey

unread,
Mar 26, 2018, 8:02:47 PM3/26/18
to Steve Conrad, Mifos software development, Dev
Hi All - 

I'm iterating on https://docs.google.com/document/d/1p1MaVXhNJqTptS532cyA3hbaYJB3IqudY8ScHLM6EJI/edit#  until we get tasks into the Fineract-CN setup. 

Steve - what's the next step for the community to work on do you think?   Should we look at the flows specifically for use cases?  

James 

Ed Cable

unread,
Mar 27, 2018, 8:26:55 PM3/27/18
to James Dailey, Mifos software development, Dev
Steve,

Thanks for getting this set up on the Mifos AWS infrastructure so the broader community can benefit and we can start demonstrating some end to end to scenarios/use cases which demonstrate the capability of the Fineract and Mojaloop integration.

Should the http://mifosmojaloop.com URL be accessible via a browser or only through a REST client when testing the API connections? I can't access it from a browser currently. 

James, thanks for updating the document that Isaac had started. I think a good next step would be as you suggested to identify the specific flows for the use cases that demonstrate the different scenarios/setups we had outlined before. From there we can then have solid tasks in place for the points of integration with Fineract 1.x APIs and look at the overlap between Mojaloop and Fineract CN APIs.

Sanyam put in a proposal around this for GSOC and getting further clarity will be beneficial if we move forward with that proposal.

Ed

Steve Conrad

unread,
Mar 28, 2018, 10:01:42 AM3/28/18
to Ed Cable, Mifos software development, Dev
Good questions, Ed. There is not a central UI/front end for the Mojaloop platform, so you won't see anything if you navigate to mifosmojaloop.com. You can make REST calls to the specific services at the ports that I mentioned in my previous email. 

I can work on some basic flows for the transactions that we identified: Peer-to-peer payment, Merchant receiving payment, and bulk payments (ie. payroll disbursement or bulk loan disbursement). Isaac and Rahul, do you have thoughts or ideas on these?

Thanks,
Steve

Steve Conrad

unread,
Jun 4, 2018, 12:06:04 PM6/4/18
to Ed Cable, Mifos software development, Dev
Hi all - 

I wanted to bring an update to the list on the Mifos/Mojaloop integration. I have been working on this in conjunction with the Payment Gateway project that Sanyam and Rahul are doing with GSoC. At this point, I have been able to successfully do a P2P transfer between 2 Fineract instances using Mojaloop. I still have some additional work to do on this case - and have some other use cases to work on.

In the meantime, I started to document some of the flows and information about Mojaloop integration. You can find that document here: https://cwiki.apache.org/confluence/display/FINERACT/Mojaloop+Integration

Please feel free to let me know if you have thoughts, questions or suggestions. 
Thanks,
Steve

Emmanuel Njoku

unread,
Jun 4, 2018, 12:30:03 PM6/4/18
to Mifos software development, Dev
dear All,

Kindly assist on the process to resolve  Two-Factor authentication is disabled or not supported on the server!

Thanks

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Mifos-developer mailing list
mifos-developer@lists.sourceforge.net
Unsubscribe or change settings at:
https://lists.sourceforge.net/lists/listinfo/mifos-developer

Steve Conrad

unread,
Jun 4, 2018, 12:45:04 PM6/4/18
to Mifos software development, Dev
Hi Emmanuel-

Could you provide more information/context. I am not sure what exactly you are trying to do.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdotMifos-developer mailing list

Emmanuel Njoku

unread,
Jun 4, 2018, 12:54:43 PM6/4/18
to Mifos software development, Dev
Hi  Steve,

Thank you for your swift response. I installed Mifos-x on my Laptop, After login to Mifos using "mifos and password". I want to enable two factor authentication, then a message displayed that  Two-Factor authentication is disabled or not supported on the server!. So can you assist me step by step on how to enable it on Ubuntu or Window.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdotMifos-developer mailing list

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Mifos-developer mailing list
mifos-developer@lists.sourceforge.net

Steve Conrad

unread,
Jun 4, 2018, 2:20:13 PM6/4/18
to Mifos software development, Dev
Hi Emmanuel - 

That particular question is outside the scope of this thread, and unfortunately I am not familiar with all of the necessary steps for configuring two-factor authentication. I would suggest starting a new thread in the dev list with your question.
Steve


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdotMifos-developer mailing list

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Mifos-developer mailing list

Ed Cable

unread,
Jun 4, 2018, 2:53:14 PM6/4/18
to Mifos software development, Emmanuel Njoku, Alex Ivanov, Dev
Emmanuel,

Let's take this to its own separate relevant thread. 

Fineract Implementation Details

Enabling Two-Factor Authentication

Two-Factor Authentication can be enabled by adding an active twofactor profile to Fineract(e.g. in application.properties or with a start parameter). -Ptwofactor=enabled parameter can be used with Gradle build job.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdotMifos-developer mailing list

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Mifos-developer mailing list
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdotMifos-developer mailing list

Emmanuel Njoku

unread,
Jun 4, 2018, 3:08:21 PM6/4/18
to Ed Cable, Dev, Mifos software development
Dear Ed, 

Thanks so much. 

James Dailey

unread,
Jul 24, 2018, 6:50:07 PM7/24/18
to d...@fineract.apache.org, Mifos software development
Hi - Thanks again Steve for helping out.  

To bump this up a bit, I'd like to add some requirements about various payment transactions that can go over the Mojaloop--Fineract connection.  First though, a question to Steve - did you implement the ILP component on the mifos or fineract infrastructure such that it can generate the proper hash to the Mojaloop central respository service?   What license is the ILP library offered under?  [side bar:  I understand that this is the only piece that has to be implemented on the Mifos/Fineract side, the rest is API event driven and should hopefully be within existing scope. 

I'll look to add these to the requirements on wiki unless someone objects, but in general, the use cases should include:  

* Merchant Payments:  A customer uses their smartphone (or smart dumb phone) to take a picture of a QR code on the merchants counter or machine.  The QR code provides the "request for payment or invoice request".  Then the user authorizes that funds are pushed from their account to the Merchant Account.  Customer and Merchant should be on different instances of Fineract/Mifos and Mojaloop should be in the middle. 

* Bulk Payments:  A gov't entity (or another big payor) sends a list of people to pay and amounts with a 'pay by" date.  The DFSP that the Gov't works with is able to send a test, customer by customer, using the ID provided to verify that the customer has an account registered with one of the DFSP entities connected to the mojaloop instance. That is, the addressing in each DFSP should be slightly different to test the efficacy of the central repository and look up features in Mojaloop.  In one, the national ID should be primary and a phone number available, in the second entity the phone number should be primary.  Customer may be present in more than one entity with an account and the logic of which account to choose should be established via the Mojaloop address-lookup process (configuration).  

* P2P  A payment from person to person where they are not in the same location.  The payment must be pushed from the Sender to the Receiver and use the lookup value that the user has.  The scenarios can vary based on what information that the person sending has about the recipient.  For instance, send to "telephone number" with a response back from the system that the number is owned by "name". The response is of course provided via the Mojlaoop system in the middle implementing what we might think of as the address and routing lookup.  


Comments? 

James 
>>>>>>>>>    - Fineract 1.x Integration - Steve Conrad is going to be

>>>>>>>>>    heading up exploring the Mojaloop APIs and their points of integration with
>>>>>>>>>    Fineract 1.x and and the needed configurations for the different use
>>>>>>>>>    cases/simulation environments that James listed above. In parallel he's
>>>>>>>>>    going to bring this into alignment with the payment gateway project to
>>>>>>>>>    ensure that the structure of a payment in Fineract aligns with that of
>>>>>>>>>    Mojaloop
>>>>>>>>>    - Fineract CN Integration - Isaac Kamga and Rahul Goel are

>>>>>>>>>    going to drive similar efforts but with the Fineract CN architecture based
>>>>>>>>>    on availability of requisite APIs, etc.
>>>>>>>>>    - Public Lab Environment - working with Steve, I'll make

>>>>>>>>>    available AWS infrastructure from the Mifos Initiative so we can make a
>>>>>>>>>    publicly accessible environment of Mojaloop connected to Fineract so others
>>>>>>>>>    can test it out.
>>>>>>>>>    - GSOC Project - Steve will be helping to draft out some tasks
>>>>>>>>> *Ed Cable*

>>>>>>>>> President/CEO, Mifos Initiative
>>>>>>>>> edc...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649
>>>>>>>>> <(484)%20477-8649>
>>>>>>>>>
>>>>>>>>> *Collectively Creating a World of 3 Billion Maries | *

>>>>>>>>> http://mifos.org  <http://facebook.com/mifos>
>>>>>>>>> <http://www.twitter.com/mifos>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Ed Cable*

>>>>>> President/CEO, Mifos Initiative
>>>>>> edc...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649
>>>>>> <(484)%20477-8649>
>>>>>>
>>>>>> *Collectively Creating a World of 3 Billion Maries | *

>>>>>> http://mifos.org  <http://facebook.com/mifos>
>>>>>> <http://www.twitter.com/mifos>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> ------------------------------------------------------------

Steve Conrad

unread,
Jul 25, 2018, 9:28:05 AM7/25/18
to Dev, Mifos software development
Hi James - 

Thanks for working through the use cases. 

As far as the ILP component and generating the hash, I did work through that - creating a shared secret and generating the hash. However, in my communications with the Mojaloop team (and my review of the current Mojaloop codebase), they are not using the ILP protocol currently for central ledger transactions. My understanding is that it may be implemented in the future for cross-border payments.

I will plan to look into ILP again as I am porting my work to use the payment gateway code that Sanyam developed.

Just FYI, ILP is licensed under Apache License 2.0.

Please let me know if you have other questions.
Thanks,
Steve
Reply all
Reply to author
Forward
0 new messages