MPESA Loan Repayments and Savings Deposits Functional Spec v1
THIS VERSION IS FOR HISTORICAL PURPOSES - FOR CURRENT SPECIFICATION, REFER TO:
MPESA Loan Repayments and Savings Deposits Functional Spec v2
M-PESA - Import Loan Repayments plus Savings Deposits
Release: May 2010
Current Owners: | Kay Chau |
Status (Draft, In Review, Stable, Approved) | Stable |
- 1 THIS VERSION IS FOR HISTORICAL PURPOSES - FOR CURRENT SPECIFICATION, REFER TO:
- 2 MPESA Loan Repayments and Savings Deposits Functional Spec v2
- 3 Introduction
- 3.1 User Stories (Epics)
- 3.2 Goals
- 3.3 Non-Goals
- 3.4 Definitions and Terminology
- 3.5 Related Documents
- 4 Import Transactions
- 5 QA Considerations
- 6 Standard Considerations
- 7 Open Questions and Notes
- 8 Review and Approvals
Introduction
KEEF is planning to have mobile integration with M-PESA. They are using Mifos for their MIS platform. KEEF needs the ability to import a file of transaction information from M-PESA into Mifos. They also have the need for importing single amounts that span several different transactions.
User Stories (Epics)
Priority | User Story | Section in FR |
|---|---|---|
1 | As a user (accountant) at the HO, I want to be able to import a file of loan repayment transactions plus savings deposits from M-PESA into Mifos so that all details for our clients' payments are accurately recorded in Mifos |
|
1 | As a loan officer at a BO, I want to be able to see the clients at branch have paid their loans in Mifos |
|
1 | As a loan officer at a BO, I want to be able to see savings accounts of the clients updated with the correct deposit information |
|
Goals
Ability to import file of loan repayment transactions plus savings deposits into Mifos
Transaction History in Mifos accurately shows loan payments and savings deposits
Create a plugin similar to what has been done for Al Majmoua for the Audi Bank import.
Non-Goals
The following items will not be addressed in this version of the plugin:
Additional logging of import than what we do already in Mifos for logging
Ability to review what is imported at import time
Definitions and Terminology
Term | Definitions |
|---|---|
|
|
Mandatory fields will be preceded by *
Links are italicized
Buttons are
Button
Related Documents
Import Transactions
This feature is in the Admin section and will allow the User to import transactions
Use Cases
Administrator sets up order in which a transaction can applied
Actors
Administrator
Preconditions
Basic Flow
Administrator edits a properties file with new setting for order of products a transaction import is applied to. The products are listed with commas by short name.
Post-conditions
All transactions imported as repayments/deposits are imported in this order unless product names are found in the import row.
Validations
When import happens, validation will be done to try to import in this logic. If the accounts are not found, an error is thrown.
If this property is not set, then all transaction rows with no other information on loan or savings accounts will thrown an error.
Accountant imports transactions (M-PESA) - file with no errors
Actors
Accountant
Preconditions
Accountant has permissions to import transactions
Accountant has file in xls (Excel 97 format) to import
Basic Flow
Accountant logs onto Mifos and navigates to the Admin section. Accountant selects Import transactions.
Mifos displays new screen for Import Transactions.
Accountant selects M-PESA for Import format, and selects file from their computer for import. Accountant clicks on
Continue.Mifos imports file and checks for any errors (see Validations below). If there are no errors, Mifos displays Review & Submit screen with "There are no errors found. Click Submit to continue with import.".
Accountant clicks on
Submit. Mifos displays confirmation screen that import was successful.
Post-conditions
All data available in the file has been imported and all the correct tables and loan account data correctly populated.
Validations
If a row has a cell that's empty in a required column is empty, that row is rejected and appropriate error message displayed.
No bad data - ie, no numbers in columns that require text and vice versa. See FR's below.
Alternative Flows
Accountant cancels Import
At step 4, Accountant clicks on
Cancelinstead. Mifos returns User to the Admin screen.
Post-conditions
No data has been imported.
Import has errors and Accountant chooses to continue
At step 4, Mifos determines there are errors from Validations above. Mifos displays Review & Submit screen with error messages depending on types of error.
Accountant chooses to continue with import of the valid rows and clicks on
Submit. Mifos displays confirmation screen that import was successful.
Post-conditions
Valid rows are imported and invalid rows are rejected.
Import has errors and Accountant chooses to Cancel
At step 4, Mifos determines there are errors from Validations above. Mifos displays Review & Submit screen with error messages depending on types of error.
Accountant chooses to cancel and clicks on
Cancelinstead. Mifos returns User to the Admin screen.
Post-conditions
No data has been imported.
Import has errors and Accountant chooses to import a different file
At step 4, Mifos determines there are errors from Validations above. Mifos displays Review & Submit screen with error messages depending on types of error.
Accountant chooses to import a different file and clicks on
Edit Import Informationinstead. Mifos returns User to the previous screen. Return to Step 2 of Basic Flow.
Post-conditions
No data has been imported.
Loan Officer checks data has been updated in clients' loan and savings accounts
Actors
Loan Officer
Preconditions
Loan Officer has permissions to view clients loan data
Administrator has already imported data for that date.
Basic Flow
Loan Officer logs onto Mifos and navigates to client A's advance loan account.
Mifos displays Transaction History. Loan Officer confirms that a repayment has been updated correctly.
LO then navigates to client A's regular loan account. LO confirms that repayment there has been updated correctly.
LO then navigates to client A's savings account. LO confirms that savings deposit has been updated correctly.
Post-conditions
None
Alternative Flows
Loan Officer doesn't see the data updated
Loan Officer selects a client who did not pay for the date of transaction the Administrator had imported.
Loan Officer goes to view that client's transaction history and sees that no transaction has been made.
User Stories
Priority | Size | User Stories | Mingle card # |
|---|---|---|---|
1 | X-Small | As a User, I can give permission to import bank transactions. |
|
1 | Small | As a User, I can click on Import Transactions and see options to import my file (M-PESA). |
|
1 | Small | As a User, I can confirm that I want to import the data into Mifos. |
|
1 | Medium | Populate all data from file import in Mifos |
|
2 | Medium | As a User, I can click on Import Transactions and see options to import my file (generic) |
|
Import Transactions (M-PESA) Functional Requirements
Add new option for M-PESA in Bank Transactions
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
2.1 | P1 | Import format Field has option: MPESA |
|
2.2 | P1 | If there is no import plugin set, then the Import Format options will be blank and if the User tries to import a file and Continue, the following error message will be displayed at the top. Also if the User does not select a plugin even if there are options then the following error message will be displayed. |
|
2.3 | P1 | If there is no Mode of Payment configured in Mifos to be "MPESA/ZAP", then an error message will be thrown on the Import screen: |
|
Import File Details and Validations (M-PESA)
FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
3.1 | P1 | M-PESA is an Excel format (97) |
|
3.2 | P1 | M-PESA import file first few lines contain description of file. These are to be ignored. Only data after row of column headings will be imported in the Transactions section. |
|
3.3 | P1 | Import file will have columns in below table |
|
3.4 | P1 | There will be bare basic error checking - to successfully import the data. |
|
3.5 | P1 | If a row contains a cell that's missing a required field, Mifos displays an error message for each row this occurs. |
|
3.6 | P1 | Dates are in the format YYYY-MM-DD HH:MM:ss. If any value under Date column does not start in format of YYYY-MM-DD, then Mifos displays an error message for each row this occurs. |
|
3.8 | P1 | If first value under the Transaction Party Details column does not contain an client Government ID that matches any client in Mifos and/or the next values do not correspond to a Loan Product or Savings Product in Mifos or does not match any open loan account or savings account where a payment/deposit can be applied to the client, or if the default order set in configuration cannot be applied in any way, Mifos throws an error message | See new attachment for example of import file and below for more details |
3.81 | P1 | Check that Status column says "Completed". If it has any other status, Mifos throws the following error message: |
|
3.9 | P1 | Check if the same file name has been imported. If so, then throw an error message and reject the whole import. |
|
3.10 | P1 | After clicking on Continue, Mifos will display the Review & Submit screen with the following: |
|
3.11 | P1 | User can then either
|
|
3.12 | P1 | If User clicks on Submit, Mifos imports the file and displays confirmation screen |
|
3.13 | P1 | There is no option to revert a file upload once it has been submitted. |
|
3.14 | P1 | There is no checking of duplicate rows (see 3.9) |
|
3.15 | P1 | Currency of values imported is directly inherited from the loan product that the loan account is mapped to. |
|
3.16 | P1 | If there are no rows found with import data, the following error message should be thrown: |
|
M-PESA Import Columns and Description
Column Name | Required | Description | Comments | Validations | Range | Example | Maps to Mifos |
|---|---|---|---|---|---|---|---|
Receipt | No |