Plugin Management

Mifos has a rudimentary plugin infrastructure. Here's how to install, remove, update, use, and create plugins. This guide applies to Mifos versions later than 1.4.0 and the latest development version running on Tomcat 6.x.


  • copy plugin (a jar file) into $MIFOS_CONF/plugins folder (see MifosConfigurationLocations for details on MIFOS_CONF)


  • stop Tomcat
  • delete plugin from $MIFOS_CONF/plugins
  • start Tomcat



Each plugin will have its own set of usage instructions. For example, here are instructions on how to use the Audi Bank USD loan payment import plugins.

  • #Install plugin (a .jar file) for importing loan payment transactions in tab-delimited or Excel format
  • navigate to Admin → Define Lookup Options. Add Payment Mode "Bank Audi sal".
  • navigate to Admin → Define accepted payment types. Add "Bank Audi sal" to Loan Repayments.
  • set "External ID" for an existing loan account
  • disburse loan
  • navigate to Admin → Import Transactions


Some plugins read values configured in applicationConfiguration custom properties

By convention, plugin-specific configuration setting(s) use the fully-qualified plugin class name, followed by a dot ("."), followed by the configuration setting name.

For example, if you're using the M-PESA XLS import plugin, you might want to configure the order in which account(s) should be paid off, in which case you'd add the following to applicationConfiguration custom properties,NL1,SP1

if the short names of the products you want to apply are AL1, NL1, and SP1. See details for ImportTransactionOrder property in applicationConfiguration custom properties


  • implement desired functionality using the API (application programming interface) and SPI (service provider interface)
  • for example code, see AudiBankTsvLoanPaymentImporter and AudiBankXlsLoanPaymentImporter in the "/spikes/plugins/trunk" directory in source control.

Known Issues

See all known import/export issues in the issue tracker.

Design choices/limitations

  • written in Java
  • plugin API version/usage mismatch may go undetected
  • no fully automated acceptance test(s)

Historical information

Old/deprecated information follows.

In Mifos v1.4.x (and all versions prior to trunk r16471   wherein MIFOS-2545 was fixed), the process was more complex...

Install (v1.4.x)

  • deploy Mifos (copy Mifos jar into $CATALINA_HOME/webapps)
  • start Tomcat
  • login (ie: make sure Tomcat has properly Mifos basic functionality is working)
  • stop Tomcat
  • copy plugin into $CATALINA_HOME/webapps/mifos/WEB-INF/lib (if the webapps/mifos directory is not present, ensure that unpackWARs is set to "true" in $CATALINA_HOME/conf/server.xml)
  • start Tomcat

This process must be repeated if the exploded war directory ($CATALINA_HOME/webapps/mifos) ever disappears, such as when upgrading Mifos.

Remove (v1.4.x)

  • delete the plugin from $CATALINA_HOME/webapps/mifos/WEB-INF/lib