Target release16.x.x
Document status
Document owner
DesignerNayan Ambali
DevelopersNikhil Pawar
Technical designTechnical Description of Address API


  • Address module would serve as a KYC feature in Mifos by giving Mifos users the ability to store the address of clients.
  • This is an optional feature which can be turned on/off via Number_of_address_required_for_a_client parameter inc_configurations table.
  • The address fields are generic and made configurable i.e the organisation can choose which field to be included as address using the m_field_configuration table.

Background and strategic fit

While developing Credit Bureau module, we felt the need of having a structured way of accessing and storing the address of clients. This need was felt because credit bureaus required the address of clients in order to answer credit check inquiry.

By developing Address API, the address would be stored and retrieved in more structured and hassle free manner. It would also accommodate latitude and longitude which facilitate geolocation for the android app as well.


Following user stories have been written by assuming that the address configuration is enabled by storing the non-zero value in c_configuration table.


#TitleUser StoryImportanceNotes
1Insert address for existing client

The user can update the client records by different type of addresses like permanent, current address using client_id as identifier


Must Have

The flexibility to add different types of addresses for single client would depend on the value been supplied to Number_of_address_required_for_a_client parameter inc_configurations table

2Update address of existing clientsThe API would also give the ability to modify address fields,type of address.MUST Have



3Retrieve addressThe API would also give the ability to retrieve different type of address which are linked to clientMUST HAVE 
4Make the address fields as mandatory while making new clientsWhen a new client is being made, along with other fields,address fields should also be supplied, else the client would not be activatedMUST HAVE 
5Provision for storing time series of addressesAll the addresses of the clients should be displayed from the beginning of timeOptional 


User interaction and design



Below is a list of questions to be addressed as a result of this requirements document:

Can this be made extensible for other entities like office,group, center etcpossibilities being discussed.

Not Doing

  • Versioning of addresses