Migrated over from MifosForge - last edit on January 18, 2016

Target release15.12
EpicCustomer Self Service Portal
Document status
DRAFT
Document owner
Adi Raju
Designer

Adi Raju
Developers

Adi Raju
QA

Subramanya

 

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 CaseAPIHTTP 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=1GET
Submit new Loan Application/api/v1/self/loansPOST
Update Loan Application/api/v1/self/loans/{loanId}PUT
Delete Loan Application/api/v1/self/loans/{loanId}DELETE

Fund Transfers to others' account

Use CaseAPIHTTP MethodFields/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/templateGET

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/tptbeneficiariesPOST

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/tptbeneficiariesGET 
Retrieve Template for TPT transfer/api/v1/self/accounttransfers/template?type=tptGET

"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"

}

  • No labels