Migrated over from MifosForge - last edit on January 18, 2016
Overview
As part of Phase 1 (Q4 2015), APIs for managing Customer Self Service users, view loan accounts, view savings accounts and fund transfers within own accounts were provided.
As part of Phase 2 (Q1 2016), APIs for creating loan application and fund transfers to others' accounts would be provided.
Business Requirements
- Loan Application
- CSS user should be able to retrieve template for loan application
- CSS user should be able to submit new loan application
- CSS user should be able to edit loan application
- CSS user should be able to delete loan application
- Fund transfers to others' account
- Administrator user should be able to set daily limits(amount) for fund transfers to others' accounts
- CSS user should be able to add/edit/delete Third Party Transfer beneficiaries and set sub-limit for each beneficiary
- CSS user should be able to retrieve template for TPT fund transfers
- CSS user should be able to initiate fund transfer to TPT beneficiary
- Fund transfer shall be from own savings accounts to any type of TPT account (savings/loans)
APIs
Loan Application
Use Case | API | HTTP Method |
---|---|---|
Retrieve Template to choose Loan Product | /api/v1/self/loans/template?templateType=individual&clientId={clientId} | GET |
Retrieve Template for a given Loan Product | /api/v1/self/loans/template?templateType=individual&clientId=1&productId=1 | GET |
Submit new Loan Application | /api/v1/self/loans | POST |
Update Loan Application | /api/v1/self/loans/{loanId} | PUT |
Delete Loan Application | /api/v1/self/loans/{loanId} | DELETE |
Fund Transfers to others' account
Use Case | API | HTTP Method | Fields/Sample |
---|---|---|---|
Set daily TPT fund transfer limit | existing Global configuration APIs to be used configuration name would be "daily-tpt-limit" default would be enabled=false (no limit) | ||
Retreive template for TPT beneficiary | /api/v1/self/tptbeneficiaries/template | GET | Only account type enum will be sent, user expected to know other details of TPT account "accountTypeOptions":[ { "id": 2, "code": "accountType.savings", "value": "Savings Account" }, { "id": 1, "code": "accountType.loan", "value": "Loan Account" } ] |
Add TPT beneficiary | /api/v1/self/tptbeneficiaries | POST | name (mandatory, nickname for display purpose) officeId (mandatory) clientId (mandatory) accountType (mandatory) accountId (mandatory) transferLimit (optional) |
Edit TPT beneficiary | /api/v1/self/tptbeneficiaries/{beneficiaryId} | PUT | name (mandatory, nickname for display purpose) transferLimit (optional) |
Delete TPT beneficiary | /api/v1/self/tptbeneficiaries/{beneficiaryId} | DELETE | |
List TPT beneficiaries | /api/v1/self/tptbeneficiaries | GET | |
Retrieve Template for TPT transfer | /api/v1/self/accounttransfers/template?type=tpt | GET | "fromAccountOptions" : [ { "accountId": 1, "accountNo": 00001, "accountType": { "id": 2, "code": "accountType.savings", "value": "Savings Account" }, "clientId": 1, "clientName": "ABC", "officeId": 1, "officeName": "HEAD OFFICE" } ], "toAccountOptions" : [ { "accountId": 2, "accountNo": 00002, "accountType": { "id": 2, "code": "accountType.savings", "value": "Savings Account" }, "clientId": 2, "clientName": "XYZ", "officeId": 1, "officeName": "HEAD OFFICE" } ] |
Initiate TPT transfer | /api/v1/self/accounttransfers?type=tpt | POST | { "fromOfficeId": 1, "fromClientId": 1, "fromAccountType": 2, "fromAccountId": 1, "toOfficeId": 1, "toClientId": 1, "toAccountType": 2, "toAccountId": 2, "dateFormat": "dd MMMM yyyy", "locale": "en", "transferDate": "01 August 2011", "transferAmount": "112.45", "transferDescription": "A description of the transfer" } |