diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 8c3076e07..811f5dfed 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -560,6 +560,206 @@
This is one of the advanced term deposit product offered by MFI's. The Fixed Deposit Products (aka FD) product offerings are modeled using this API.
+The FD products are deposit accounts which are held for a fixed term – like 1 year, 2 years etc.
+When creating fixed deposit accounts, the details from the fixed deposit product are used to auto fill details of the fixed deposit account application process.
+Field Descriptions |
| name |
| The name of the product offering. |
| shortName |
| Shortname associated with a fixed deposit product. + An abbreviated version of the name, used in reports or menus where space is limited. + |
| description |
| A description of the product offering. |
| currencyCode |
| Three letter ISO code representing currency. |
| digitsAfterDecimal |
| Override the currency default value for digitsAfterDecimal. |
| inMultiplesOf |
| Override the default value for rounding currency to multiples of provided value. |
| interestCompoundingPeriodType |
| The period at which interest rate is compounded. 1=Daily, 4=Monthly (at end of month) |
| interestPostingPeriodType |
| The period at which interest rate is posted or credited to fixed deposit account. 4=Monthly (at end of month), 5=Quarterly (at end of quarter, 31st Mar, 30th Jun, 30th Sep, 31st Dec) |
| interestCalculationType |
| The interest calculation method used: 1=Daily Balance or 2=Average Daily Balance |
| interestCalculationDaysInYearType |
| The setting for number of days in year to use: 360=360 Days, 365=365 Days |
| lockinPeriodFrequency |
| Optional: If provided, used along with lockinPeriodFrequencyType to indicate the length of time that the fixed deposit account is 'locked in' and premature closure is not allowed. e.g. 2 Months |
| lockinPeriodFrequencyType |
| Optional: If provided, used along with lockinPeriodFrequency to indicate the length of time that the fixed deposit account is 'locked in' and premature closure is not allowed. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 2 Months |
| minDepositTerm |
| This is used along with minDepositTermTypeId to define allowed minimum deposit term for creating a fixed deposit account using this product. e.g. 6 Months |
| minDepositTermTypeId |
| Used along with minDepositTerm to define allowed minimum deposit term for creating a fixed deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months + | +
| maxDepositTerm |
| Optional: If provided, used along with maxDepositTermTypeId to define allowed maximum deposit term for creating a fixed deposit account using this product. e.g. 3 Years |
| maxDepositTermTypeId |
| Optional: If provided, used along with maxDepositTerm to define allowed maximum deposit term for creating a fixed deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 3 Years + | +
| inMultiplesOfDepositTerm |
| Optional: If provided, used along with inMultiplesOfDepositTermTypeId to indicate the allowed deposit periods after minimum deposit period. e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. | +
| inMultiplesOfDepositTermTypeId |
| Optional: If provided, used along with inMultiplesOfDepositTerm to indicate the allowed deposit periods after minimum deposit period. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. + | +
| preClosurePenalApplicable |
| Optional: expects boolean value true/false, If provided as true then must provide preClosurePenalInterest and preClosurePenalInterestOnTypeId. | +
| preClosurePenalInterest |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterestOnTypeId to apply a penalalty on top of applicable interest rate for Pre-mature closure of accounts. e.g. “1%” means 1% less than the interest rate applicable. | +
| preClosurePenalInterestOnTypeId |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterest to decide what should be the applicable interest rate to which penalalty can be applied on Pre-mature closure of accounts. 1=Whole Term, 2=Till Premature withdrawal e.g. “1%” means 1% less than the interest rate applicable till premature withdrawal. | +
| accountingRule |
| Specifies if accounting is enabled for the particular + product and the type of the accounting rule to be used + Example Values:1=NONE,2=CASH_BASED | +
Mandatory Fields |
| name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, + interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minDepositTerm, minDepositTermTypeId, accountingRule | +
Mandatory Fields for Cash based accounting (accountingRule = 2) |
| savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId | +
Optional Fields |
| lockinPeriodFrequency, lockinPeriodFrequencyType, maxDepositTerm, maxDepositTermTypeId, inMultiplesOfDepositTerm, inMultiplesOfDepositTermTypeId, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, charts |
POST https://Domain Name/api/v1/fixeddepositproducts
+ POST fixeddepositproducts
+Content-Type: application/json
+Request Body:
+{
+ "name": "Fixed deposit product",
+ "shortName": "FD01",
+ "description": "Daily compounding using Daily Balance, 5% per year, 365 days in year",
+ "currencyCode": "USD",
+ "digitsAfterDecimal": 2,
+ "inMultiplesOf": 0,
+ "locale": "en",
+ "interestCompoundingPeriodType": 1,
+ "interestPostingPeriodType":4,
+ "interestCalculationType": 1,
+ "interestCalculationDaysInYearType": "365",
+ "accountingRule":"1",
+ "preClosurePenalApplicable":"true",
+ "preClosurePenalInterest":"1.75",
+ "preClosurePenalInterestOnTypeId":1,
+ "minDepositTerm":1,
+ "minDepositTermTypeId":1,
+ "maxDepositTerm":5,
+ "maxDepositTermTypeId":3,
+ "charts":[
+ {
+ "fromDate": "01 Jan 2014",
+ "locale":"en",
+ "dateFormat":"dd MMMM yyyy",
+ "dateFormat":"dd MMMM yyyy",
+ "chartSlabs":[
+ {
+ "description":"from 0 to 90 days",
+ "periodType":"1",
+ "fromPeriod":"0",
+ "toPeriod":"90",
+ "annualInterestRate":"4.5"
+ }
+ ]
+ }
+ ]
+}
+
+
+{
+ "resourceId": 1
+}
+
+ Example Requests:
+GET https://Domain Name/api/v1/fixeddepositproducts/1
+
+{
+ "id": 1,
+ "name": "Fixed deposit product",
+ "shortName": "FD01",
+ "description": "Daily compounding using Daily Balance, 5% per year, 365 days in year",
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "interestCompoundingPeriodType": {
+ "id": 1,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.daily",
+ "value": "Daily"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "accountingMappings": {
+ "savingsReferenceAccount": {
+ "id": 12,
+ "name": "savings ref",
+ "glCode": "20"
+ },
+ "incomeFromFeeAccount": {
+ "id": 16,
+ "name": "income from savings fee",
+ "glCode": "24"
+ },
+ "incomeFromPenaltyAccount": {
+ "id": 17,
+ "name": "income from sav penalites",
+ "glCode": "25"
+ },
+ "interestOnSavingsAccount": {
+ "id": 15,
+ "name": "interest on savings",
+ "glCode": "23"
+ },
+ "savingsControlAccount": {
+ "id": 13,
+ "name": "savings ref tool kit",
+ "glCode": "21"
+ },
+ "transfersInSuspenseAccount": {
+ "id": 14,
+ "name": "saving transfers",
+ "glCode": "22"
+ }
+ },
+ "feeToIncomeAccountMappings": [
+ {
+ "charge": {
+ "id": 11,
+ "name": "sav charge",
+ "active": false,
+ "penalty": false
+ },
+ "incomeAccount": {
+ "id": 16,
+ "name": "income from savings fee",
+ "glCode": "24"
+ }
+ }
+ ],
+ "penaltyToIncomeAccountMappings": [
+ {
+ "charge": {
+ "id": 12,
+ "name": "sav 2",
+ "active": false,
+ "penalty": true
+ },
+ "incomeAccount": {
+ "id": 17,
+ "name": "income from sav penalites",
+ "glCode": "25"
+ }
+ }
+ ],
+ "preClosurePenalApplicable":"true",
+ "preClosurePenalInterest":"1.75",
+ "preClosurePenalInterestOnType": {
+ "id": 1,
+ "code": "preClosurePenalInterestOnType.wholeTerm",
+ "value": "Whole term"
+ },
+ "minDepositTerm":1,
+ "minDepositTermType": {
+ "id": 1,
+ "code": "deposit.term.savingsPeriodFrequencyType.weeks",
+ "value": "Weeks"
+ },
+ "maxDepositTerm":5,
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "activeChart": {
+ "id": 8,
+ "fromDate": [
+ 2014,
+ 1,
+ 1
+ ],
+ "savingsProductId": 8,
+ "savingsProductName": "Fixed deposit product",
+ "chartSlabs": [
+ {
+ "id": 18,
+ "description": "from 0 to 90 days",
+ "periodType": {
+ "id": 1,
+ "code": "interestChartPeriodType.weeks",
+ "value": "Weeks"
+ },
+ "fromPeriod": 0,
+ "toPeriod": 90,
+ "annualInterestRate": 4.5,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ }
+ ],
+ "periodTypes": [
+ {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ {
+ "id": 1,
+ "code": "interestChartPeriodType.weeks",
+ "value": "Weeks"
+ },
+ {
+ "id": 2,
+ "code": "interestChartPeriodType.months",
+ "value": "Months"
+ },
+ {
+ "id": 3,
+ "code": "interestChartPeriodType.years",
+ "value": "Years"
+ }
+ ]
+ }
+}
+
+ PUT https://Domain Name/api/v1/fixeddepositproducts/{productId}
+ POST fixeddepositproducts/1
+Content-Type: application/json
+Request Body:
+{
+ "description": "Fixed deposit product new offerings",
+ "locale": "en",
+ "minDepositTerm":5,
+ "minDepositTermTypeId":1,
+}
+
+
+{
+ "resourceId": 1,
+ "changes": {
+ "description": "Fixed deposit product new offerings",
+ "minDepositTerm": 5
+ }
+}
+
+
+DELETE https://Domain Name/api/v1/fixeddepositdproducts/{productId}
+
+
+DELETE fixeddepositdproducts/1
+Content-Type: application/json
+
+
+{
+ "resourceId": 1
+}
+
+ Example Requests:
+GET https://Domain Name/api/v1/fixeddepositproducts
+
+[
+ {
+ "id": 3,
+ "name": "FD01",
+ "shortName": "FD01",
+ "description": "FD01",
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "preClosurePenalApplicable": false,
+ "minDepositTerm": 3,
+ "maxDepositTerm": 4,
+ "minDepositTermType": {
+ "id": 2,
+ "code": "deposit.term.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "nominalAnnualInterestRate": 0,
+ "interestCompoundingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "accountingRule": {
+ "id": 1,
+ "code": "accountingRuleType.none",
+ "value": "NONE"
+ }
+ }
+]
+ Recurring Deposits are a special kind of Term Deposits offered by MFI's. The Recurring Deposit Products (aka RD) product offerings are modeled using this API.
+Recurring Deposits help people with regular incomes to deposit a fixed amount every month (specified recurring frequency) into their Recurring Deposit account.
+When creating recurring deposit accounts, the details from the recurring deposit product are used to auto fill details of the recurring deposit account application process.
+Field Descriptions |
| name |
| The name of the product offering. |
| shortName |
| Shortname associated with a recurring deposit product. + An abbreviated version of the name, used in reports or menus where space is limited. + |
| description |
| A description of the product offering. |
| currencyCode |
| Three letter ISO code representing currency. |
| digitsAfterDecimal |
| Override the currency default value for digitsAfterDecimal. |
| inMultiplesOf |
| Override the default value for rounding currency to multiples of provided value. |
| interestCompoundingPeriodType |
| The period at which interest rate is compounded. 1=Daily, 4=Monthly (at end of month) |
| interestPostingPeriodType |
| The period at which interest rate is posted or credited to recurring deposit account. 4=Monthly (at end of month), 5=Quarterly (at end of quarter, 31st Mar, 30th Jun, 30th Sep, 31st Dec) |
| interestCalculationType |
| The interest calculation method used: 1=Daily Balance or 2=Average Daily Balance |
| interestCalculationDaysInYearType |
| The setting for number of days in year to use: 360=360 Days, 365=365 Days |
| lockinPeriodFrequency |
| Optional: If provided, used along with lockinPeriodFrequencyType to indicate the length of time that the recurring deposit account is 'locked in' and premature closure is not allowed. e.g. 2 Months |
| lockinPeriodFrequencyType |
| Optional: If provided, used along with lockinPeriodFrequency to indicate the length of time that the recurring deposit account is 'locked in' and premature closure is not allowed. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 2 Months |
| recurringDepositFrequency |
| The frequency for depositing a fixed amount to recurring deposit account. |
| recurringDepositFrequencyTypeId |
| Used along with recurringDepositFrequency to define frequency for depositing a fixed amount to recurring deposit account. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. deposit every 1 Months + | +
| minDepositTerm |
| This is used along with minDepositTermTypeId to define allowed minimum deposit term for creating a recurring deposit account using this product. e.g. 6 Months |
| minDepositTermTypeId |
| Used along with minDepositTerm to define allowed minimum deposit term for creating a recurring deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months + | +
| maxDepositTerm |
| Optional: If provided, used along with maxDepositTermTypeId to define allowed maximum deposit term for creating a recurring deposit account using this product. e.g. 3 Years |
| maxDepositTermTypeId |
| Optional: If provided, used along with maxDepositTerm to define allowed maximum deposit term for creating a recurring deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 3 Years + | +
| inMultiplesOfDepositTerm |
| Optional: If provided, used along with inMultiplesOfDepositTermTypeId to indicate the allowed deposit periods after minimum deposit period. e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. | +
| inMultiplesOfDepositTermTypeId |
| Optional: If provided, used along with inMultiplesOfDepositTerm to indicate the allowed deposit periods after minimum deposit period. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. + | +
| preClosurePenalApplicable |
| Optional: expects boolean value true/false, If provided as true then must provide preClosurePenalInterest and preClosurePenalInterestOnTypeId. | +
| preClosurePenalInterest |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterestOnTypeId to apply a penalalty on top of applicable interest rate for Pre-mature closure of accounts. e.g. “1%” means 1% less than the interest rate applicable. | +
| preClosurePenalInterestOnTypeId |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterest to decide what should be the applicable interest rate to which penalalty can be applied on Pre-mature closure of accounts. 1=Whole Term, 2=Till Premature withdrawal e.g. “1%” means 1% less than the interest rate applicable till premature withdrawal. | +
| accountingRule |
| Specifies if accounting is enabled for the particular + product and the type of the accounting rule to be used + Example Values:1=NONE,2=CASH_BASED | +
Mandatory Fields |
| name, shortName, description, currencyCode, digitsAfterDecimal,inMultiplesOf, + interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, minDepositTerm, minDepositTermTypeId, recurringDepositFrequency, recurringDepositFrequencyTypeId, accountingRule | +
Mandatory Fields for Cash based accounting (accountingRule = 2) |
| savingsReferenceAccountId, savingsControlAccountId, interestOnSavingsAccountId, incomeFromFeeAccountId, transfersInSuspenseAccountId, incomeFromPenaltyAccountId | +
Optional Fields |
| lockinPeriodFrequency, lockinPeriodFrequencyType, maxDepositTerm, maxDepositTermTypeId, inMultiplesOfDepositTerm, inMultiplesOfDepositTermTypeId, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, feeToIncomeAccountMappings, penaltyToIncomeAccountMappings, charges, charts |
POST https://Domain Name/api/v1/recurringdepositproducts
+ POST recurringdepositproducts
+Content-Type: application/json
+Request Body:
+{
+ "name": "Recurring deposit product",
+ "shortName": "RD01",
+ "description": "Daily compounding using Daily Balance, 5% per year, 365 days in year",
+ "currencyCode": "USD",
+ "digitsAfterDecimal": 2,
+ "inMultiplesOf": 0,
+ "locale": "en",
+ "interestCompoundingPeriodType": 1,
+ "interestPostingPeriodType":4,
+ "interestCalculationType": 1,
+ "interestCalculationDaysInYearType": "365",
+ "accountingRule":"1",
+ "recurringDepositFrequency":1,
+ "recurringDepositFrequencyTypeId":2,
+ "preClosurePenalApplicable":"true",
+ "preClosurePenalInterest":"1.75",
+ "preClosurePenalInterestOnTypeId":1,
+ "minDepositTerm":1,
+ "minDepositTermTypeId":1,
+ "maxDepositTerm":5,
+ "maxDepositTermTypeId":3,
+ "charts":[
+ {
+ "fromDate": "01 Jan 2014",
+ "locale":"en",
+ "dateFormat":"dd MMMM yyyy",
+ "dateFormat":"dd MMMM yyyy",
+ "chartSlabs":[
+ {
+ "description":"from 0 to 90 days",
+ "periodType":"1",
+ "fromPeriod":"0",
+ "toPeriod":"90",
+ "annualInterestRate":"4.5"
+ }
+ ]
+ }
+ ]
+}
+
+
+{
+ "resourceId": 1
+}
+
+ Example Requests:
+GET https://Domain Name/api/v1/recurringdepositproducts/1
+
+{
+ "id": 1,
+ "name": "Recurring deposit product",
+ "shortName": "RD01",
+ "description": "Daily compounding using Daily Balance, 5% per year, 365 days in year",
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "interestCompoundingPeriodType": {
+ "id": 1,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.daily",
+ "value": "Daily"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "accountingMappings": {
+ "savingsReferenceAccount": {
+ "id": 12,
+ "name": "savings ref",
+ "glCode": "20"
+ },
+ "incomeFromFeeAccount": {
+ "id": 16,
+ "name": "income from savings fee",
+ "glCode": "24"
+ },
+ "incomeFromPenaltyAccount": {
+ "id": 17,
+ "name": "income from sav penalites",
+ "glCode": "25"
+ },
+ "interestOnSavingsAccount": {
+ "id": 15,
+ "name": "interest on savings",
+ "glCode": "23"
+ },
+ "savingsControlAccount": {
+ "id": 13,
+ "name": "savings ref tool kit",
+ "glCode": "21"
+ },
+ "transfersInSuspenseAccount": {
+ "id": 14,
+ "name": "saving transfers",
+ "glCode": "22"
+ }
+ },
+ "feeToIncomeAccountMappings": [
+ {
+ "charge": {
+ "id": 11,
+ "name": "sav charge",
+ "active": false,
+ "penalty": false
+ },
+ "incomeAccount": {
+ "id": 16,
+ "name": "income from savings fee",
+ "glCode": "24"
+ }
+ }
+ ],
+ "penaltyToIncomeAccountMappings": [
+ {
+ "charge": {
+ "id": 12,
+ "name": "sav 2",
+ "active": false,
+ "penalty": true
+ },
+ "incomeAccount": {
+ "id": 17,
+ "name": "income from sav penalites",
+ "glCode": "25"
+ }
+ }
+ ],
+ "recurringDepositFrequency":1,
+ "recurringDepositFrequencyType": {
+ "id": 2,
+ "code": "recurring.deposit.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "preClosurePenalApplicable":"true",
+ "preClosurePenalInterest":"1.75",
+ "preClosurePenalInterestOnType": {
+ "id": 1,
+ "code": "preClosurePenalInterestOnType.wholeTerm",
+ "value": "Whole term"
+ },
+ "minDepositTerm":1,
+ "minDepositTermType": {
+ "id": 1,
+ "code": "deposit.term.savingsPeriodFrequencyType.weeks",
+ "value": "Weeks"
+ },
+ "maxDepositTerm":5,
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "activeChart": {
+ "id": 8,
+ "fromDate": [
+ 2014,
+ 1,
+ 1
+ ],
+ "savingsProductId": 8,
+ "savingsProductName": "Fixed deposit product",
+ "chartSlabs": [
+ {
+ "id": 18,
+ "description": "from 0 to 90 days",
+ "periodType": {
+ "id": 1,
+ "code": "interestChartPeriodType.weeks",
+ "value": "Weeks"
+ },
+ "fromPeriod": 0,
+ "toPeriod": 90,
+ "annualInterestRate": 4.5,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ }
+ ],
+ "periodTypes": [
+ {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ {
+ "id": 1,
+ "code": "interestChartPeriodType.weeks",
+ "value": "Weeks"
+ },
+ {
+ "id": 2,
+ "code": "interestChartPeriodType.months",
+ "value": "Months"
+ },
+ {
+ "id": 3,
+ "code": "interestChartPeriodType.years",
+ "value": "Years"
+ }
+ ]
+ }
+}
+
+ PUT https://Domain Name/api/v1/recurringdepositproducts/{productId}
+ POST recurringdepositproducts/1
+Content-Type: application/json
+Request Body:
+{
+ "description": "Recurring deposit product new offerings",
+ "locale": "en",
+ "minDepositTerm":5,
+ "minDepositTermTypeId":1,
+}
+
+
+{
+ "resourceId": 1,
+ "changes": {
+ "description": "Recurring deposit product new offerings",
+ "minDepositTerm": 5
+ }
+}
+
+
+DELETE https://Domain Name/api/v1/recurringdepositdproducts/{productId}
+
+
+DELETE recurringdepositdproducts/1
+Content-Type: application/json
+
+
+{
+ "resourceId": 1
+}
+
+ Example Requests:
+GET https://Domain Name/api/v1/recurringdepositproducts
+
+[
+ {
+ "id": 3,
+ "name": "RD01",
+ "shortName": "RD01",
+ "description": "RD01",
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "recurringDepositFrequency":1,
+ "recurringDepositFrequencyType": {
+ "id": 2,
+ "code": "recurring.deposit.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "preClosurePenalApplicable": false,
+ "minDepositTerm": 3,
+ "maxDepositTerm": 4,
+ "minDepositTermType": {
+ "id": 2,
+ "code": "deposit.term.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "interestCompoundingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "accountingRule": {
+ "id": 1,
+ "code": "accountingRuleType.none",
+ "value": "NONE"
+ }
+ }
+]
+ Fixed Deposit accounts are instances of a praticular fixed deposit product created. An application process around the creation of accounts is also supported.
+ +| Starting State | +Action | +Resultant State | +
| - | +Submit | +Submitted and pending approval | +
| Submitted and pending approval | +Reject | +Closed - Rejected | +
| Submitted and pending approval | +Withdrawn by Applicant | +Closed - Withdrawn by Applicant | +
| Submitted and pending approval | +Approve | +Approved | +
| Approved | +Undo Approval | +Submitted and pending approval | +
| Approved | +Activate | +Active | +
Field Descriptions |
| clientId |
| The client you are creating the fixed deposit account for. Either clientId or groupId must be provided. |
| groupId |
| The group you are creating the fixed deposit account for. Either clientId or groupId must be provided. |
| productId |
| The id of the product used for this fixed deposit account. The fixed deposit account inherits the selected currency of the product and possibly other details if not overridden in the fixed deposit account creation request. |
| accountNo |
| The account no. associated with this fixed deposit. Is auto generated if not provided at creation time. |
| externalId |
| A place to put an external reference for this fixed deposit account useful in migrations e.g. The ID another system uses. If provided, it must be unique. |
| submittedOnDate |
| submittedOnDate must be provided when initially creating fixed deposit account application. locale and dateFormat parameters must be provided with this. |
| interestCompoundingPeriodType |
| The period at which interest rate is compounded. 1=Daily, 4=Monthly (at end of month) |
| interestPostingPeriodType |
| The period at which interest rate is posted or credited to fixed deposit account. The actual crediting or posting transaction is date as occurring on the day after the end of the period. 4=Monthly (at end of month), 5=Quarterly (at end of quarter, 31st Mar, 30th Jun, 30th Sep, 31st Dec), 7=Annually (at end of calendar year 31st Dec) |
| interestCalculationType |
| The interest calculation method used: 1=Daily Balance or 2=Average Daily Balance |
| interestCalculationDaysInYearType |
| The setting for number of days in year to use: 360=360 Days, 365=365 Days |
| lockinPeriodFrequency |
| Optional: If provided, used along with lockinPeriodFrequencyType to indicate the length of time that the fixed deposit account is 'locked in' and withdrawals are not allowed. e.g. 6 Months |
| lockinPeriodFrequencyType |
| Optional: If provided, used along with lockinPeriodFrequency to indicate the length of time that the fixed deposit account is 'locked in' and withdrawals are not allowed. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months |
| depositAmount |
| The fixed deposit amount for which interest is provided on maturity. |
| depositPeriod |
| Used along with depositPeriodFrequencyId to define term for which amount is deposited in fixed deposit. e.g. 6 Months |
| depositPeriodFrequencyId |
| Used along with depositPeriod to define term for which amount is deposited in fixed deposit. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months + | +
| minDepositTerm |
| This is used along with minDepositTermTypeId to define allowed minimum deposit term for creating a fixed deposit account using this product. e.g. 6 Months |
| minDepositTermTypeId |
| Used along with minDepositTerm to define allowed minimum deposit term for creating a fixed deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months + | +
| maxDepositTerm |
| Optional: If provided, used along with maxDepositTermTypeId to define allowed maximum deposit term for creating a fixed deposit account using this product. e.g. 3 Years |
| maxDepositTermTypeId |
| Optional: If provided, used along with maxDepositTerm to define allowed maximum deposit term for creating a fixed deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 3 Years + | +
| inMultiplesOfDepositTerm |
| Optional: If provided, used along with inMultiplesOfDepositTermTypeId to indicate the allowed deposit periods after minimum deposit period. e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. | +
| inMultiplesOfDepositTermTypeId |
| Optional: If provided, used along with inMultiplesOfDepositTerm to indicate the allowed deposit periods after minimum deposit period. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. + | +
| preClosurePenalApplicable |
| Optional: expects boolean value true/false, If provided as true then must provide preClosurePenalInterest and preClosurePenalInterestOnTypeId. | +
| preClosurePenalInterest |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterestOnTypeId to apply a penalalty on top of applicable interest rate for Pre-mature closure of accounts. e.g. “1%” means 1% less than the interest rate applicable. | +
| preClosurePenalInterestOnTypeId |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterest to decide what should be the applicable interest rate to which penalalty can be applied on Pre-mature closure of accounts. 1=Whole Term, 2=Till Premature withdrawal e.g. “1%” means 1% less than the interest rate applicable till premature withdrawal. | +
This is a convenience resource. It can be useful when building maintenance user interface screens for fixed deposit applications. The template data returned consists of any or all of: +
Example Requests:
+GET https://Domain Name/api/v1/fixeddepositaccounts/template?clientId={clientId}
+
+{
+ "clientId": 1,
+ "clientName": "small business",
+ "productOptions": [
+ {
+ "id": 1,
+ "name": "Passbook Savings"
+ }
+ ]
+}
+
+ GET https://Domain Name/api/v1/fixeddepositaccounts/template?clientId={clientId}&productId={productId}
+
+{
+ "clientId": 1,
+ "clientName": "small business",
+ "savingsProductId": 1,
+ "savingsProductName": "Passbook Savings",
+ "timeline": {},
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "nominalAnnualInterestRate": 5,
+ "interestCompoundingPeriodType": {
+ "id": 1,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.daily",
+ "value": "Daily"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "productOptions": [
+ {
+ "id": 1,
+ "name": "Passbook Savings"
+ }
+ ],
+ "fieldOfficerOptions": [
+ {
+ "id": 3,
+ "firstname": "Mrs.",
+ "lastname": "loanofficerB1",
+ "displayName": "loanofficerB1, Mrs.",
+ "officeId": 2,
+ "officeName": "branch 1",
+ "isLoanOfficer": true
+ },
+ {
+ "id": 1,
+ "firstname": "Mr.",
+ "lastname": "loanofficerHO",
+ "displayName": "loanofficerHO, Mr.",
+ "officeId": 1,
+ "officeName": "branch 1",
+ "isLoanOfficer": true
+ }
+ ],
+ "interestCompoundingPeriodTypeOptions": [
+ {
+ "id": 1,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.daily",
+ "value": "Daily"
+ },
+ {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ }
+ ],
+ "interestPostingPeriodTypeOptions": [
+ {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ {
+ "id": 5,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.quarterly",
+ "value": "Quarterly"
+ },
+ {
+ "id": 7,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.annual",
+ "value": "Annually"
+ }
+ ],
+ "interestCalculationTypeOptions": [
+ {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ {
+ "id": 2,
+ "code": "savingsInterestCalculationType.averagedailybalance",
+ "value": "Average Daily Balance"
+ }
+ ],
+ "interestCalculationDaysInYearTypeOptions": [
+ {
+ "id": 360,
+ "code": "savingsInterestCalculationDaysInYearType.days360",
+ "value": "360 Days"
+ },
+ {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ }
+ ],
+ "lockinPeriodFrequencyTypeOptions": [
+ {
+ "id": 0,
+ "code": "savings.lockin.savingsPeriodFrequencyType.days",
+ "value": "Days"
+ },
+ {
+ "id": 1,
+ "code": "savings.lockin.savingsPeriodFrequencyType.weeks",
+ "value": "Weeks"
+ },
+ {
+ "id": 2,
+ "code": "savings.lockin.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ {
+ "id": 3,
+ "code": "savings.lockin.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ }
+ ],
+ "withdrawalFeeTypeOptions": [
+ {
+ "id": 1,
+ "code": "savingsWithdrawalFeesType.flat",
+ "value": "Flat"
+ },
+ {
+ "id": 2,
+ "code": "savingsWithdrawalFeesType.percent.of.amount",
+ "value": "% of Amount"
+ }
+ ],
+ "chargeOptions": [
+ {
+ "id": 4,
+ "name": "Savings charge 1",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 200,
+ "chargeTimeType": {
+ "id": 2,
+ "code": "chargeTimeType.specifiedDueDate",
+ "value": "Specified due date"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "chargepaymentmode.regular"
+ }
+ },
+ {
+ "id": 5,
+ "name": "Savings charge 2",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 300,
+ "chargeTimeType": {
+ "id": 2,
+ "code": "chargeTimeType.specifiedDueDate",
+ "value": "Specified due date"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "chargepaymentmode.regular"
+ }
+ },
+ {
+ "id": 6,
+ "name": "Annual fee",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 50,
+ "chargeTimeType": {
+ "id": 6,
+ "code": "chargeTimeType.annualFee",
+ "value": "Annual Fee"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "Regular"
+ }
+ },
+ {
+ "id": 7,
+ "name": "Quarterly fee",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 5,
+ "chargeTimeType": {
+ "id": 7,
+ "code": "chargeTimeType.monthlyFee",
+ "value": "Monthly Fee"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "Regular"
+ },
+ "feeOnMonthDay": [
+ 10,
+ 5
+ ],
+ "feeInterval": 4
+ }
+ ]
+}
+
+ Mandatory Fields |
| clientId or groupId, productId, submittedOnDate, depositAmount, depositPeriod, depositPeriodFrequencyId |
Optional Fields |
| accountNo, externalId, fieldOfficerId |
Inherited from Product (if not provided) |
| interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts | +
Minimal request: accountNo auto generated, remaining details inherited from fixed deposit product.
+POST https://Domain Name/api/v1/fixeddepositaccounts
+ POST fixeddepositaccount
+Content-Type: application/json
+Request Body:
+{
+ "clientId": 1,
+ "productId": 1,
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "submittedOnDate": "01 March 2014",
+ "depositAmount":"5000",
+ "depositPeriod":"6",
+ "depositPeriodFrequencyId":"2"
+}
+
+ Minimal request: accountNo provided (must be unique), remaining details inherited from fixed deposit product.
+POST fixeddepositaccount
+Content-Type: application/json
+Request Body:
+{
+ "clientId": 1,
+ "productId": 1,
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "submittedOnDate": "01 March 2014",
+ "depositAmount":"5000",
+ "depositPeriod":"6",
+ "depositPeriodFrequencyId":"2",
+ "accountNo": "FD000023",
+ "externalId": "FD-23"
+}
+
+ Full request: accountNo provided (must be unique), remaining details override details from fixed deposit product (except currency).
+POST savingsaccount
+Content-Type: application/json
+Request Body:
+{
+ "clientId": 1,
+ "productId": 1,
+ "fieldOfficerId": 1,
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "submittedOnDate": "01 March 2014",
+ "accountNo": "FD000024",
+ "externalId": "FD-24",
+ "interestCompoundingPeriodType": 1,
+ "interestPostingPeriodType": 4,
+ "interestCalculationType": 1,
+ "interestCalculationDaysInYearType": 365,
+ "depositAmount":"5000",
+ "depositPeriod":"6",
+ "depositPeriodFrequencyId":"2",
+ "lockinPeriodFrequency": 6,
+ "lockinPeriodFrequencyType": 2,
+ "charges":[{"id":"1"}]
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1
+}
+
+ Approves fixed deposit application so long as its in 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=approve
+ POST fixeddepositaccounts/1?command=approve
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "approvedOnDate": "01 March 2013"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 200,
+ "code": "savingsAccountStatusType.approved",
+ "value": "Approved",
+ "submittedAndPendingApproval": false,
+ "approved": true,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "approvedOnDate": "01 March 2013"
+ }
+}
+
+ Will move 'approved' fixed deposit application back to 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=undoApproval
+ POST fixeddepositaccounts/1?command=undoApproval
+Content-Type: application/json
+Request Body:
+{
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 100,
+ "code": "savingsAccountStatusType.submitted.and.pending.approval",
+ "value": "Submitted and pending approval",
+ "submittedAndPendingApproval": true,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false
+ },
+ "approvedOnDate": ""
+ }
+}
+
+ Rejects fixed deposit application so long as its in 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=reject
+ POST fixeddepositaccounts/1?command=reject
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "rejectedOnDate": "03 March 2013"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 500,
+ "code": "savingsAccountStatusType.rejected",
+ "value": "Rejected",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": true,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": true
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "rejectedOnDate": "03 March 2013",
+ "closedOnDate": "03 March 2013"
+ }
+}
+
+ Used when an applicant withdraws from the fixed deposit application. It must be in 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/fixeddepositaccounts/{savingsId}?command=withdrawnByApplicant
+ POST savingsaccount/1?command=withdrawnByApplicant
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "withdrawnOnDate": "03 March 2013"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 400,
+ "code": "savingsAccountStatusType.withdrawn.by.applicant",
+ "value": "Withdrawn by applicant",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": true,
+ "active": false,
+ "closed": true
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "withdrawnOnDate": "03 March 2013",
+ "closedOnDate": "03 March 2013"
+ }
+}
+
+ Results in an approved fixed deposit application being converted into an 'active' fixed deposit account.
+POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=activate
+ POST savingsaccount/1?command=activate
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "activatedOnDate": "01 March 2013"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 300,
+ "code": "savingsAccountStatusType.active",
+ "value": "Active",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": true,
+ "closed": false
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "activatedOnDate": "01 March 2013"
+ }
+}
+
+ Results in a Matured fixed deposit account being converted into a 'closed' fixed deposit account.
On account close allowed actions are.
+| Action on Close | +Result | +
| Withdraw Deposit | +Matured amount withdrawn and paid to client | +
| Transfer to Savings | +Matured amount transfered to specified savings account. | +
| + | + |
| Re-Invest | +Create new Fixed deposit application with matured amount as deposit amount. | +
POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=close
+ POST fixeddepositaccounts/1?command=close
+Content-Type: application/json
+Request Body:
+ {
+ "dateFormat":"dd MMMM yyyy",
+ "locale":"en",
+ "closedOnDate":"19 April 2014",
+ "note":"Closing and transfering amount to savings",
+ "onAccountClosureId":"2",
+ "toSavingsAccountId":1,
+ "transferDescription":"Transfered matured amount to savings account"
+ }
+
+
+{
+"officeId":1,
+"clientId":1,
+"savingsId":5,
+"resourceId":5,
+"changes":{
+ "status":{
+ "id":600,
+ "code":"savingsAccountStatusType.closed",
+ "value":"Closed",
+ "submittedAndPendingApproval":false,
+ "approved":false,
+ "rejected":false,
+ "withdrawnByApplicant":false,
+ "active":false,
+ "closed":true
+ },
+ "locale":"en",
+ "dateFormat":"dd MMMM yyyy",
+ "closedOnDate":"19 April 2014",
+ "note":"Closing and transfering amount to savings"
+ }
+}
+
+ Results in an Active fixed deposit account being converted into a 'Premature Closed' fixed deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)
On account premature closure allowed actions are.
+| Action on Premature Close | +Result | +
| Withdraw Deposit | +Matured amount withdrawn and paid to client | +
| Transfer to Savings | +Matured amount transfered to specified savings account. | +
POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=prematureClose
+ POST fixeddepositaccounts/1?command=prematureClose
+Content-Type: application/json
+Request Body:
+ {
+ "dateFormat":"dd MMMM yyyy",
+ "locale":"en",
+ "closedOnDate":"19 April 2014",
+ "note":"Close and transfer amount to savings",
+ "onAccountClosureId":"2",
+ "toSavingsAccountId":1,
+ "transferDescription":"Transfered matured amount to savings account"
+ }
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 700,
+ "code": "savingsAccountStatusType.pre.mature.closure",
+ "value": "Premature Closed",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false,
+ "prematureClosed": true,
+ "transferInProgress": false,
+ "transferOnHold": false
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "closedOnDate": "19 April 2014",
+ "note": "Close and transfer amount to savings"
+ }
+}
+
+ Calculate premature amount on fixed deposit account till premature close date. Premature amount is calculated based on interest chart and penal interest applicable.
+POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=calculatePrematureAmount
+ POST fixeddepositaccounts/1?command=calculatePrematureAmount
+Content-Type: application/json
+Request Body:
+ {
+ "dateFormat":"dd MMMM yyyy",
+ "locale":"en",
+ "closedOnDate":"19 April 2014"
+ }
+
+
+{
+ "maturityAmount": 100.65,
+ "savingsAccounts": [
+ {
+ "id": 1,
+ "accountNo": "000000001",
+ "clientId": 1,
+ "clientName": "Sangamesh N",
+ "savingsProductId": 1,
+ "savingsProductName": "FD-0001"
+ }
+ ],
+ "onAccountClosureOptions": [
+ {
+ "id": 100,
+ "code": "depositAccountClosureType.withdrawDeposit",
+ "value": "Withdra Deposit"
+ },
+ {
+ "id": 200,
+ "code": "depositAccountClosureType.transferToSavings",
+ "value": "Transfer to Savings"
+ },
+ {
+ "id": 300,
+ "code": "depositAccountClosureType.reinvest",
+ "value": "Re-Invest"
+ }
+ ],
+ "paymentTypeOptions": [],
+ "id": 12,
+ "depositType": {
+ "id": 300,
+ "code": "depositAccountType.recurringDeposit",
+ "value": "Recurring Deposit"
+ }
+}
+
+ + Calculates interest earned on a fixed deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process. +
+POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=calculateInterest
+ POST fixeddepositaccount/1?command=calculateInterest
+Content-Type: application/json
+Request Body:
+{
+}
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1
+}
+
+ + Calculates and Posts interest earned on a fixed deposit account based on todays date and whether an interest posting or crediting event is due. +
+POST https://Domain Name/api/v1/fixeddepositaccounts/{accountId}?command=postInterest
+ POST fixeddepositaccount/1?command=postInterest
+Content-Type: application/json
+Request Body:
+{
+}
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1
+}
+
+ Example Requests:
+GET https://Domain Name/api/v1/fixeddepositaccounts
+
+[
+ {
+ "id": 1,
+ "accountNo": "000000001",
+ "clientId": 1,
+ "clientName": "Sangamesh N",
+ "savingsProductId": 3,
+ "savingsProductName": "FD01",
+ "fieldOfficerId": 0,
+ "status": {
+ "id": 100,
+ "code": "savingsAccountStatusType.submitted.and.pending.approval",
+ "value": "Submitted and pending approval",
+ "submittedAndPendingApproval": true,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false,
+ "prematureClosed": false,
+ "transferInProgress": false,
+ "transferOnHold": false
+ },
+ "timeline": {
+ "submittedOnDate": [
+ 2014,
+ 3,
+ 1
+ ],
+ "submittedByUsername": "mifos",
+ "submittedByFirstname": "App",
+ "submittedByLastname": "Administrator"
+ },
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "interestCompoundingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "summary": {
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "accountBalance": 0
+ },
+ "interestFreePeriodApplicable": false,
+ "preClosurePenalApplicable": false,
+ "minDepositTerm": 3,
+ "maxDepositTerm": 4,
+ "minDepositTermType": {
+ "id": 2,
+ "code": "deposit.term.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "depositAmount": 5000,
+ "maturityAmount": 5140.25,
+ "maturityDate": [
+ 2014,
+ 9,
+ 1
+ ],
+ "depositPeriod": 6,
+ "depositPeriodFrequency": {
+ "id": 2,
+ "code": "deposit.period.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ }
+ }
+]
+
+
+ Example Requests :
+GET https://DomainName/api/v1/fixeddepositaccounts/{accountId}
+
+{
+ "id": 1,
+ "accountNo": "FD000023",
+ "externalId": "FD-23",
+ "clientId": 1,
+ "clientName": "Sangamesh N",
+ "savingsProductId": 3,
+ "savingsProductName": "FD01",
+ "fieldOfficerId": 0,
+ "status": {
+ "id": 100,
+ "code": "savingsAccountStatusType.submitted.and.pending.approval",
+ "value": "Submitted and pending approval",
+ "submittedAndPendingApproval": true,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false,
+ "prematureClosed": false,
+ "transferInProgress": false,
+ "transferOnHold": false
+ },
+ "timeline": {
+ "submittedOnDate": [
+ 2014,
+ 3,
+ 1
+ ],
+ "submittedByUsername": "mifos",
+ "submittedByFirstname": "App",
+ "submittedByLastname": "Administrator"
+ },
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "interestCompoundingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "interestFreePeriodApplicable": false,
+ "preClosurePenalApplicable": false,
+ "minDepositTerm": 3,
+ "maxDepositTerm": 4,
+ "minDepositTermType": {
+ "id": 2,
+ "code": "deposit.term.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "depositAmount": 5000,
+ "maturityAmount": 5140.25,
+ "maturityDate": [
+ 2014,
+ 9,
+ 1
+ ],
+ "depositPeriod": 6,
+ "depositPeriodFrequency": {
+ "id": 2,
+ "code": "deposit.period.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "summary": {
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "accountBalance": 0
+ },
+ "accountChart": {
+ "id": 4,
+ "fromDate": [
+ 2013,
+ 10,
+ 2
+ ],
+ "accountId": 5,
+ "accountNumber": "FD000023",
+ "chartSlabs": [
+ {
+ "id": 13,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 181,
+ "toPeriod": 365,
+ "annualInterestRate": 5.5,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ },
+ {
+ "id": 12,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 1,
+ "toPeriod": 180,
+ "annualInterestRate": 5,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ },
+ {
+ "id": 11,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 366,
+ "annualInterestRate": 6,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ }
+ ],
+ "periodTypes": [
+ {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ {
+ "id": 1,
+ "code": "interestChartPeriodType.weeks",
+ "value": "Weeks"
+ },
+ {
+ "id": 2,
+ "code": "interestChartPeriodType.months",
+ "value": "Months"
+ },
+ {
+ "id": 3,
+ "code": "interestChartPeriodType.years",
+ "value": "Years"
+ }
+ ]
+ }
+}
+
+ Fixed deposit application can only be modified when in 'Submitted and pending approval' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc
+PUT https://Domain Name/api/v1/fixeddepositaccounts/{accountId}
+ PUT fixeddepositaccounts/1
+Content-Type: application/json
+No Request Body:
+{
+ "locale": "en",
+ "depositAmount": 6000
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "depositAmount": 6000,
+ "locale": "en"
+ }
+}
+
+ At present we support hard delete of fixed deposit application so long as its in 'Submitted and pending approval' state. One the application is moves past this state, it is not possible to do a 'hard' delete of the application or the account. An API endpoint will be added to close/de-activate the fixed deposit account.
+DELETE https://Domain Name/api/v1/fixeddepositaccounts/{accountsId}
+ DELETE fixeddepositaccounts/1
+Content-Type: application/json
+No Request Body:
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "resourceId": 1
+}
+
+ Recurring Deposit accounts are instances of a praticular recurring deposit product created. An application process around the creation of accounts is also supported.
+ +| Starting State | +Action | +Resultant State | +
| - | +Submit | +Submitted and pending approval | +
| Submitted and pending approval | +Reject | +Closed - Rejected | +
| Submitted and pending approval | +Withdrawn by Applicant | +Closed - Withdrawn by Applicant | +
| Submitted and pending approval | +Approve | +Approved | +
| Approved | +Undo Approval | +Submitted and pending approval | +
| Approved | +Activate | +Active | +
Field Descriptions |
| clientId |
| The client you are creating the recurring deposit account for. Either clientId or groupId must be provided. |
| groupId |
| The group you are creating the recurring deposit account for. Either clientId or groupId must be provided. |
| productId |
| The id of the product used for this recurring deposit account. The recurring deposit account inherits the selected currency of the product and possibly other details if not overridden in the recurring deposit account creation request. |
| accountNo |
| The account no. associated with this recurring deposit. Is auto generated if not provided at creation time. |
| externalId |
| A place to put an external reference for this recurring deposit account useful in migrations e.g. The ID another system uses. If provided, it must be unique. |
| submittedOnDate |
| submittedOnDate must be provided when initially creating recurring deposit account application. locale and dateFormat parameters must be provided with this. |
| interestCompoundingPeriodType |
| The period at which interest rate is compounded. 1=Daily, 4=Monthly (at end of month) |
| interestPostingPeriodType |
| The period at which interest rate is posted or credited to recurring deposit account. The actual crediting or posting transaction is date as occurring on the day after the end of the period. 4=Monthly (at end of month), 5=Quarterly (at end of quarter, 31st Mar, 30th Jun, 30th Sep, 31st Dec), 7=Annually (at end of calendar year 31st Dec) |
| interestCalculationType |
| The interest calculation method used: 1=Daily Balance or 2=Average Daily Balance |
| interestCalculationDaysInYearType |
| The setting for number of days in year to use: 360=360 Days, 365=365 Days |
| lockinPeriodFrequency |
| Optional: If provided, used along with lockinPeriodFrequencyType to indicate the length of time that the recurring deposit account is 'locked in' and withdrawals are not allowed. e.g. 6 Months |
| lockinPeriodFrequencyType |
| Optional: If provided, used along with lockinPeriodFrequency to indicate the length of time that the recurring deposit account is 'locked in' and withdrawals are not allowed. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months |
| recurringDepositAmount |
| The recurring deposit amount to be deposited regularly on a specified by deposit frequency. |
| recurringDepositFrequency |
| Used along with recurringDepositFrequencyTypeId to define the frequency at which recurringDepositAmount to be deposited into RD account. e.g. 6 Months |
| recurringDepositFrequencyTypeId |
| Used along with recurringDepositFrequency to define the frequency at which recurringDepositAmount to be deposited into RD account. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months + | +
| depositPeriod |
| Used along with depositPeriodFrequencyId to define term for which amount is deposited in recurring deposit. e.g. 6 Months |
| depositPeriodFrequencyId |
| Used along with depositPeriod to define term for which amount is deposited in recurring deposit. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months + | +
| minDepositTerm |
| This is used along with minDepositTermTypeId to define allowed minimum deposit term for creating a recurring deposit account using this product. e.g. 6 Months |
| minDepositTermTypeId |
| Used along with minDepositTerm to define allowed minimum deposit term for creating a recurring deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 6 Months + | +
| maxDepositTerm |
| Optional: If provided, used along with maxDepositTermTypeId to define allowed maximum deposit term for creating a recurring deposit account using this product. e.g. 3 Years |
| maxDepositTermTypeId |
| Optional: If provided, used along with maxDepositTerm to define allowed maximum deposit term for creating a recurring deposit account using this product. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. 3 Years + | +
| inMultiplesOfDepositTerm |
| Optional: If provided, used along with inMultiplesOfDepositTermTypeId to indicate the allowed deposit periods after minimum deposit period. e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. | +
| inMultiplesOfDepositTermTypeId |
| Optional: If provided, used along with inMultiplesOfDepositTerm to indicate the allowed deposit periods after minimum deposit period. 0=Days, 1=Weeks, 2=Months, 3=Years + e.g. If inMultiplesOfDepositTerm is 3 Months then the next allowed deposit period after minimum deposit of 6 Months should be 9 Months. + | +
| preClosurePenalApplicable |
| Optional: expects boolean value true/false, If provided as true then must provide preClosurePenalInterest and preClosurePenalInterestOnTypeId. | +
| preClosurePenalInterest |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterestOnTypeId to apply a penalalty on top of applicable interest rate for Pre-mature closure of accounts. e.g. “1%” means 1% less than the interest rate applicable. | +
| preClosurePenalInterestOnTypeId |
| Optional: Must provide when preClosurePenalApplicable is true. Used along with preClosurePenalInterest to decide what should be the applicable interest rate to which penalalty can be applied on Pre-mature closure of accounts. 1=Whole Term, 2=Till Premature withdrawal e.g. “1%” means 1% less than the interest rate applicable till premature withdrawal. | +
This is a convenience resource. It can be useful when building maintenance user interface screens for recurring deposit applications. The template data returned consists of any or all of: +
Example Requests:
+GET https://Domain Name/api/v1/fixeddepositaccounts/template?clientId={clientId}
+
+{
+ "clientId": 1,
+ "clientName": "small business",
+ "productOptions": [
+ {
+ "id": 1,
+ "name": "Passbook Savings"
+ }
+ ]
+}
+
+ GET https://Domain Name/api/v1/fixeddepositaccounts/template?clientId={clientId}&productId={productId}
+
+{
+ "clientId": 1,
+ "clientName": "small business",
+ "savingsProductId": 1,
+ "savingsProductName": "Passbook Savings",
+ "timeline": {},
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "nominalAnnualInterestRate": 5,
+ "interestCompoundingPeriodType": {
+ "id": 1,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.daily",
+ "value": "Daily"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "productOptions": [
+ {
+ "id": 1,
+ "name": "Passbook Savings"
+ }
+ ],
+ "fieldOfficerOptions": [
+ {
+ "id": 3,
+ "firstname": "Mrs.",
+ "lastname": "loanofficerB1",
+ "displayName": "loanofficerB1, Mrs.",
+ "officeId": 2,
+ "officeName": "branch 1",
+ "isLoanOfficer": true
+ },
+ {
+ "id": 1,
+ "firstname": "Mr.",
+ "lastname": "loanofficerHO",
+ "displayName": "loanofficerHO, Mr.",
+ "officeId": 1,
+ "officeName": "branch 1",
+ "isLoanOfficer": true
+ }
+ ],
+ "interestCompoundingPeriodTypeOptions": [
+ {
+ "id": 1,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.daily",
+ "value": "Daily"
+ },
+ {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ }
+ ],
+ "interestPostingPeriodTypeOptions": [
+ {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ {
+ "id": 5,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.quarterly",
+ "value": "Quarterly"
+ },
+ {
+ "id": 7,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.annual",
+ "value": "Annually"
+ }
+ ],
+ "interestCalculationTypeOptions": [
+ {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ {
+ "id": 2,
+ "code": "savingsInterestCalculationType.averagedailybalance",
+ "value": "Average Daily Balance"
+ }
+ ],
+ "interestCalculationDaysInYearTypeOptions": [
+ {
+ "id": 360,
+ "code": "savingsInterestCalculationDaysInYearType.days360",
+ "value": "360 Days"
+ },
+ {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ }
+ ],
+ "lockinPeriodFrequencyTypeOptions": [
+ {
+ "id": 0,
+ "code": "savings.lockin.savingsPeriodFrequencyType.days",
+ "value": "Days"
+ },
+ {
+ "id": 1,
+ "code": "savings.lockin.savingsPeriodFrequencyType.weeks",
+ "value": "Weeks"
+ },
+ {
+ "id": 2,
+ "code": "savings.lockin.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ {
+ "id": 3,
+ "code": "savings.lockin.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ }
+ ],
+ "withdrawalFeeTypeOptions": [
+ {
+ "id": 1,
+ "code": "savingsWithdrawalFeesType.flat",
+ "value": "Flat"
+ },
+ {
+ "id": 2,
+ "code": "savingsWithdrawalFeesType.percent.of.amount",
+ "value": "% of Amount"
+ }
+ ],
+ "chargeOptions": [
+ {
+ "id": 4,
+ "name": "Savings charge 1",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 200,
+ "chargeTimeType": {
+ "id": 2,
+ "code": "chargeTimeType.specifiedDueDate",
+ "value": "Specified due date"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "chargepaymentmode.regular"
+ }
+ },
+ {
+ "id": 5,
+ "name": "Savings charge 2",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 300,
+ "chargeTimeType": {
+ "id": 2,
+ "code": "chargeTimeType.specifiedDueDate",
+ "value": "Specified due date"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "chargepaymentmode.regular"
+ }
+ },
+ {
+ "id": 6,
+ "name": "Annual fee",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 50,
+ "chargeTimeType": {
+ "id": 6,
+ "code": "chargeTimeType.annualFee",
+ "value": "Annual Fee"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "Regular"
+ }
+ },
+ {
+ "id": 7,
+ "name": "Quarterly fee",
+ "active": true,
+ "penalty": false,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "amount": 5,
+ "chargeTimeType": {
+ "id": 7,
+ "code": "chargeTimeType.monthlyFee",
+ "value": "Monthly Fee"
+ },
+ "chargeAppliesTo": {
+ "id": 2,
+ "code": "chargeAppliesTo.savings",
+ "value": "Savings"
+ },
+ "chargeCalculationType": {
+ "id": 1,
+ "code": "chargeCalculationType.flat",
+ "value": "Flat"
+ },
+ "chargePaymentMode": {
+ "id": 0,
+ "code": "chargepaymentmode.regular",
+ "value": "Regular"
+ },
+ "feeOnMonthDay": [
+ 10,
+ 5
+ ],
+ "feeInterval": 4
+ }
+ ]
+}
+
+ Mandatory Fields |
| clientId or groupId, productId, submittedOnDate, recurringDepositAmount, depositPeriod, depositPeriodFrequencyId, recurringDepositFrequency, recurringDepositFrequencyTypeId |
Optional Fields |
| accountNo, externalId, fieldOfficerId |
Inherited from Product (if not provided) |
| interestCompoundingPeriodType, interestCalculationType, interestCalculationDaysInYearType, lockinPeriodFrequency, lockinPeriodFrequencyType, preClosurePenalApplicable, preClosurePenalInterest, preClosurePenalInterestOnTypeId, charts | +
Minimal request: accountNo auto generated, remaining details inherited from recurring deposit product.
+POST https://Domain Name/api/v1/recurringdepositaccounts
+ POST recurringdepositaccounts
+Content-Type: application/json
+Request Body:
+{
+ "clientId": 1,
+ "productId": 1,
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "submittedOnDate": "01 March 2014",
+ "recurringDepositAmount":"100",
+ "recurringDepositFrequency":"1",
+ "recurringDepositFrequencyTypeId":"2",
+ "depositPeriod":"1",
+ "depositPeriodFrequencyId":"3"
+}
+
+ Minimal request: accountNo provided (must be unique), remaining details inherited from recurring deposit product.
+POST recurringdepositaccounts
+Content-Type: application/json
+Request Body:
+{
+ "clientId": 1,
+ "productId": 1,
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "submittedOnDate": "01 March 2014",
+ "recurringDepositAmount":"100",
+ "recurringDepositFrequency":"1",
+ "recurringDepositFrequencyTypeId":"2",
+ "depositPeriod":"6",
+ "depositPeriodFrequencyId":"2",
+ "accountNo": "RD000023",
+ "externalId": "RD-23"
+}
+
+ Full request: accountNo provided (must be unique), remaining details override details from recurring deposit product (except currency).
+POST recurringdepositaccounts
+Content-Type: application/json
+Request Body:
+{
+ "clientId": 1,
+ "productId": 1,
+ "fieldOfficerId": 1,
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "submittedOnDate": "01 March 2014",
+ "accountNo": "RD000024",
+ "externalId": "RD-24",
+ "interestCompoundingPeriodType": 1,
+ "interestPostingPeriodType": 4,
+ "interestCalculationType": 1,
+ "interestCalculationDaysInYearType": 365,
+ "recurringDepositAmount":"100",
+ "recurringDepositFrequency":"1",
+ "recurringDepositFrequencyTypeId":"2",
+ "depositPeriod":"6",
+ "depositPeriodFrequencyId":"2",
+ "lockinPeriodFrequency": 6,
+ "lockinPeriodFrequencyType": 2,
+ "charges":[{"id":"1"}]
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1
+}
+
+ Approves recurring deposit application so long as its in 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=approve
+ POST recurringdepositaccounts/1?command=approve
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "approvedOnDate": "01 March 2014"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 200,
+ "code": "savingsAccountStatusType.approved",
+ "value": "Approved",
+ "submittedAndPendingApproval": false,
+ "approved": true,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "approvedOnDate": "01 March 2014"
+ }
+}
+
+ Will move 'approved' recurring deposit application back to 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=undoApproval
+ POST recurringdepositaccounts/1?command=undoApproval
+Content-Type: application/json
+Request Body:
+{
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 100,
+ "code": "savingsAccountStatusType.submitted.and.pending.approval",
+ "value": "Submitted and pending approval",
+ "submittedAndPendingApproval": true,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false
+ },
+ "approvedOnDate": ""
+ }
+}
+
+ Rejects recurring deposit application so long as its in 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=reject
+ POST recurringdepositaccounts/1?command=reject
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "rejectedOnDate": "03 March 2014"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 500,
+ "code": "savingsAccountStatusType.rejected",
+ "value": "Rejected",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": true,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": true
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "rejectedOnDate": "03 March 2014",
+ "closedOnDate": "03 March 2014"
+ }
+}
+
+ Used when an applicant withdraws from the recurring deposit application. It must be in 'Submitted and pending approval' state.
+POST https://Domain Name/api/v1/recurringdepositaccounts/{savingsId}?command=withdrawnByApplicant
+ POST recurringdepositaccounts/1?command=withdrawnByApplicant
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "withdrawnOnDate": "03 March 2014"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 400,
+ "code": "savingsAccountStatusType.withdrawn.by.applicant",
+ "value": "Withdrawn by applicant",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": true,
+ "active": false,
+ "closed": true
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "withdrawnOnDate": "03 March 2014",
+ "closedOnDate": "03 March 2014"
+ }
+}
+
+ Results in an approved recurring deposit application being converted into an 'active' recurring deposit account.
+POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=activate
+ POST recurringdepositaccounts/1?command=activate
+Content-Type: application/json
+Request Body:
+{
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "activatedOnDate": "01 March 2013"
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 300,
+ "code": "savingsAccountStatusType.active",
+ "value": "Active",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": true,
+ "closed": false
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "activatedOnDate": "01 March 2013"
+ }
+}
+
+ Results in a Matured recurring deposit account being converted into a 'closed' recurring deposit account.
On account close allowed actions are.
+| Action on Close | +Result | +
| Withdraw Deposit | +Matured amount withdrawn and paid to client | +
| Transfer to Savings | +Matured amount transfered to specified savings account. | +
| + | + |
| Re-Invest | +Create new Fixed deposit application with matured amount as deposit amount. | +
POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=close
+ POST recurringdepositaccounts/1?command=close
+Content-Type: application/json
+Request Body:
+ {
+ "dateFormat":"dd MMMM yyyy",
+ "locale":"en",
+ "closedOnDate":"19 April 2014",
+ "note":"Closing and transfering amount to savings",
+ "onAccountClosureId":"2",
+ "toSavingsAccountId":1,
+ "transferDescription":"Transfered matured amount to savings account"
+ }
+
+
+{
+"officeId":1,
+"clientId":1,
+"savingsId":5,
+"resourceId":5,
+"changes":{
+ "status":{
+ "id":600,
+ "code":"savingsAccountStatusType.closed",
+ "value":"Closed",
+ "submittedAndPendingApproval":false,
+ "approved":false,
+ "rejected":false,
+ "withdrawnByApplicant":false,
+ "active":false,
+ "closed":true
+ },
+ "locale":"en",
+ "dateFormat":"dd MMMM yyyy",
+ "closedOnDate":"19 April 2014",
+ "note":"Closing and transfering amount to savings"
+ }
+}
+
+ Results in an Active recurring deposit account being converted into a 'Premature Closed' recurring deposit account with options to withdraw prematured amount. (premature amount is calculated using interest rate chart applicable along with penal interest if any.)
On account premature closure allowed actions are.
+| Action on Premature Close | +Result | +
| Withdraw Deposit | +Matured amount withdrawn and paid to client | +
| Transfer to Savings | +Matured amount transfered to a savings account. | +
POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=prematureClose
+ POST recurringdepositaccounts/1?command=prematureClose
+Content-Type: application/json
+Request Body:
+ {
+ "dateFormat":"dd MMMM yyyy",
+ "locale":"en",
+ "closedOnDate":"19 April 2014",
+ "note":"Close and transfer amount to savings",
+ "onAccountClosureId":"2",
+ "toSavingsAccountId":1,
+ "transferDescription":"Transfered matured amount to savings account"
+ }
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "status": {
+ "id": 700,
+ "code": "savingsAccountStatusType.pre.mature.closure",
+ "value": "Premature Closed",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false,
+ "prematureClosed": true,
+ "transferInProgress": false,
+ "transferOnHold": false
+ },
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "closedOnDate": "19 April 2014",
+ "note": "Close and transfer amount to savings"
+ }
+}
+
+ Calculate premature amount on recurring deposit till premature close date. Premature amount is calculated based on interest chart and penal interest applicable if any.
+POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=calculatePrematureAmount
+ POST recurringdepositaccounts/1?command=calculatePrematureAmount
+Content-Type: application/json
+Request Body:
+ {
+ "dateFormat":"dd MMMM yyyy",
+ "locale":"en",
+ "closedOnDate":"19 April 2014"
+ }
+
+
+{
+ "maturityAmount": 100.65,
+ "savingsAccounts": [
+ {
+ "id": 1,
+ "accountNo": "000000001",
+ "clientId": 1,
+ "clientName": "Sangamesh N",
+ "savingsProductId": 1,
+ "savingsProductName": "sa",
+ "fieldOfficerId": 0,
+ "status": {
+ "id": 300,
+ "code": "savingsAccountStatusType.active",
+ "value": "Active",
+ "submittedAndPendingApproval": false,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": true,
+ "closed": false,
+ "prematureClosed": false,
+ "transferInProgress": false,
+ "transferOnHold": false
+ },
+ "timeline": {
+ "submittedOnDate": [
+ 2014,
+ 1,
+ 1
+ ],
+ "submittedByUsername": "mifos",
+ "submittedByFirstname": "App",
+ "submittedByLastname": "Administrator",
+ "approvedOnDate": [
+ 2014,
+ 1,
+ 1
+ ],
+ "approvedByUsername": "mifos",
+ "approvedByFirstname": "App",
+ "approvedByLastname": "Administrator",
+ "activatedOnDate": [
+ 2014,
+ 1,
+ 1
+ ]
+ },
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "nominalAnnualInterestRate": 5,
+ "interestCompoundingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "minRequiredOpeningBalance": 5000,
+ "withdrawalFeeForTransfers": false,
+ "allowOverdraft": false,
+ "summary": {
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "totalDeposits": 13353.41,
+ "totalInterestEarned": 107.79,
+ "totalInterestPosted": 76.74,
+ "accountBalance": 13430.15
+ }
+ }
+ ],
+ "onAccountClosureOptions": [
+ {
+ "id": 100,
+ "code": "depositAccountClosureType.withdrawDeposit",
+ "value": "Withdra Deposit"
+ },
+ {
+ "id": 200,
+ "code": "depositAccountClosureType.transferToSavings",
+ "value": "Transfer to Savings"
+ },
+ {
+ "id": 300,
+ "code": "depositAccountClosureType.reinvest",
+ "value": "Re-Invest"
+ }
+ ],
+ "paymentTypeOptions": [],
+ "id": 12,
+ "depositType": {
+ "id": 300,
+ "code": "depositAccountType.recurringDeposit",
+ "value": "Recurring Deposit"
+ }
+}
+
+ + Calculates interest earned on a recurring deposit account based on todays date. It does not attempt to post or credit the interest on the account. That is responsibility of the Post Interest API that will likely be called by overnight process. +
+POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=calculateInterest
+ POST recurringdepositaccounts/1?command=calculateInterest
+Content-Type: application/json
+Request Body:
+{
+}
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1
+}
+
+ + Calculates and Posts interest earned on a recurring deposit account based on todays date and whether an interest posting or crediting event is due. +
+POST https://Domain Name/api/v1/recurringdepositaccounts/{accountId}?command=postInterest
+ POST recurringdepositaccounts/1?command=postInterest
+Content-Type: application/json
+Request Body:
+{
+}
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1
+}
+
+ Example Requests:
+GET https://Domain Name/api/v1/recurringdepositaccounts
+
+[
+ {
+ "id": 1,
+ "accountNo": "000000001",
+ "clientId": 1,
+ "clientName": "Sangamesh N",
+ "savingsProductId": 3,
+ "savingsProductName": "RD01",
+ "fieldOfficerId": 0,
+ "status": {
+ "id": 100,
+ "code": "savingsAccountStatusType.submitted.and.pending.approval",
+ "value": "Submitted and pending approval",
+ "submittedAndPendingApproval": true,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false,
+ "prematureClosed": false,
+ "transferInProgress": false,
+ "transferOnHold": false
+ },
+ "timeline": {
+ "submittedOnDate": [
+ 2014,
+ 3,
+ 1
+ ],
+ "submittedByUsername": "mifos",
+ "submittedByFirstname": "App",
+ "submittedByLastname": "Administrator"
+ },
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "interestCompoundingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "summary": {
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "accountBalance": 0
+ },
+ "depositAmount": 1150,
+ "maturityAmount": 252.59,
+ "maturityDate": [
+ 2014,
+ 4,
+ 3
+ ],
+ "recurringDepositAmount": 100,
+ "recurringDepositFrequency": 1,
+ "recurringDepositFrequencyType": {
+ "id": 2,
+ "code": "recurring.deposit.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "preClosurePenalApplicable": false,
+ "minDepositTerm": 3,
+ "maxDepositTerm": 4,
+ "minDepositTermType": {
+ "id": 2,
+ "code": "deposit.term.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "depositAmount": 5000,
+ "maturityAmount": 5140.25,
+ "maturityDate": [
+ 2014,
+ 9,
+ 1
+ ],
+ "depositPeriod": 6,
+ "depositPeriodFrequency": {
+ "id": 2,
+ "code": "deposit.period.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ }
+ }
+]
+
+
+ Example Requests :
+GET https://DomainName/api/v1/recurringdepositaccounts/{accountId}
+
+{
+ "id": 1,
+ "accountNo": "RD000023",
+ "externalId": "RD-23",
+ "clientId": 1,
+ "clientName": "Sangamesh N",
+ "savingsProductId": 3,
+ "savingsProductName": "RD01",
+ "fieldOfficerId": 0,
+ "status": {
+ "id": 100,
+ "code": "savingsAccountStatusType.submitted.and.pending.approval",
+ "value": "Submitted and pending approval",
+ "submittedAndPendingApproval": true,
+ "approved": false,
+ "rejected": false,
+ "withdrawnByApplicant": false,
+ "active": false,
+ "closed": false,
+ "prematureClosed": false,
+ "transferInProgress": false,
+ "transferOnHold": false
+ },
+ "timeline": {
+ "submittedOnDate": [
+ 2014,
+ 3,
+ 1
+ ],
+ "submittedByUsername": "mifos",
+ "submittedByFirstname": "App",
+ "submittedByLastname": "Administrator"
+ },
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "interestCompoundingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.period.savingsCompoundingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestPostingPeriodType": {
+ "id": 4,
+ "code": "savings.interest.posting.period.savingsPostingInterestPeriodType.monthly",
+ "value": "Monthly"
+ },
+ "interestCalculationType": {
+ "id": 1,
+ "code": "savingsInterestCalculationType.dailybalance",
+ "value": "Daily Balance"
+ },
+ "interestCalculationDaysInYearType": {
+ "id": 365,
+ "code": "savingsInterestCalculationDaysInYearType.days365",
+ "value": "365 Days"
+ },
+ "preClosurePenalApplicable": false,
+ "minDepositTerm": 3,
+ "maxDepositTerm": 4,
+ "minDepositTermType": {
+ "id": 2,
+ "code": "deposit.term.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "maxDepositTermType": {
+ "id": 3,
+ "code": "deposit.term.savingsPeriodFrequencyType.years",
+ "value": "Years"
+ },
+ "recurringDepositAmount": 100,
+ "recurringDepositFrequency": 1,
+ "recurringDepositFrequencyType": {
+ "id": 2,
+ "code": "recurring.deposit.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "depositPeriod": 6,
+ "depositPeriodFrequency": {
+ "id": 2,
+ "code": "deposit.period.savingsPeriodFrequencyType.months",
+ "value": "Months"
+ },
+ "summary": {
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "inMultiplesOf": 1,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ },
+ "accountBalance": 0
+ },
+ "accountChart": {
+ "id": 4,
+ "fromDate": [
+ 2013,
+ 10,
+ 2
+ ],
+ "accountId": 5,
+ "accountNumber": "RD000023",
+ "chartSlabs": [
+ {
+ "id": 13,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 181,
+ "toPeriod": 365,
+ "annualInterestRate": 5.5,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ },
+ {
+ "id": 12,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 1,
+ "toPeriod": 180,
+ "annualInterestRate": 5,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ },
+ {
+ "id": 11,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 366,
+ "annualInterestRate": 6,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ }
+ ],
+ "periodTypes": [
+ {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ {
+ "id": 1,
+ "code": "interestChartPeriodType.weeks",
+ "value": "Weeks"
+ },
+ {
+ "id": 2,
+ "code": "interestChartPeriodType.months",
+ "value": "Months"
+ },
+ {
+ "id": 3,
+ "code": "interestChartPeriodType.years",
+ "value": "Years"
+ }
+ ]
+ }
+}
+
+ Recurring deposit application can only be modified when in 'Submitted and pending approval' state. Once the application is approved, the details cannot be changed using this method. Specific api endpoints will be created to allow change of interest detail such as rate, compounding period, posting period etc
+PUT https://Domain Name/api/v1/recurringdepositaccounts/{accountId}
+ PUT recurringdepositaccounts/1
+Content-Type: application/json
+No Request Body:
+{
+ "locale": "en",
+ "depositAmount": 6000
+}
+
+
+{
+ "officeId": 2,
+ "clientId": 1,
+ "savingsId": 1,
+ "resourceId": 1,
+ "changes": {
+ "depositAmount": 6000,
+ "locale": "en"
+ }
+}
+
+ At present we support hard delete of recurring deposit application so long as its in 'Submitted and pending approval' state. One the application is moves past this state, it is not possible to do a 'hard' delete of the application or the account. An API endpoint will be added to close/de-activate the recurring deposit account.
+DELETE https://Domain Name/api/v1/recurringdepositaccounts/{accountsId}
+ DELETE recurringdepositaccounts/1
+Content-Type: application/json
+No Request Body:
+
+
+{
+ "officeId": 1,
+ "clientId": 1,
+ "resourceId": 1
+}
+
+ This defines an interest rate scheme that can be associated to a term deposit product. This will have a slab (band or range) of deposit periods and the associated interest rates applicable along with incentives for each band.
+ +Field Descriptions |
+
| name | +
| Name of the interest rate chart. + | +
| description | +
| + Description of Interest rate chart. + | +
| fromDate | +
| + Date from when the chart is valid. The fromDate is mandatory and used to find out applicable interest rate chart for Accounts creation (FD & RD accounts). There should not be any overlapping of fromDate and endDate of charts for a product. + | +
| endDate | +
| + Validity end date of the chart. This is optional, if not provided means it is the current chart applicable. + | +
Creats a new chart which can be attached to a term deposit products (FD or RD).
+Mandatory Fields |
+
| fromDate | +
Optional Fields |
+
| name, description and endDate | +
+POST https://DomainName/api/v1/interestratecharts
+
+
+POST interestratecharts
+Content-Type: application/json
+Request Body:
+{
+ "name": "Chart - 2014",
+ "description": "This chart is applicable for year 2014",
+ "type": "Document",
+ "locale": "en",
+ "dateFormat": "dd MMMM yyyy",
+ "fromDate": "01 Jan 2014"
+}
+
+
+{
+ "resourceId": 1
+}
+
+ Retrieve list of charts associated with a term deposit product(FD or RD).
+Example Requests:
+
+GET https://DomainName/api/v1/interestratecharts?productId={productId)
+
+
+[
+ {
+ "id": 1,
+ "fromDate": [
+ 2014,
+ 1,
+ 1
+ ],
+ "savingsProductId": 1,
+ "savingsProductName": "Fixed Deposit Product 001",
+ "chartSlabs": [
+ {
+ "id": 1,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 1,
+ "annualInterestRate": 6,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ }
+ ]
+ }
+]
+
+ Example Requests:
+
+GET https://DomainName/api/v1/interestratecharts/{chartId}
+
+
+{
+ "id": 1,
+ "fromDate": [
+ 2014,
+ 1,
+ 1
+ ],
+ "savingsProductId": 1,
+ "savingsProductName": "Fixed Deposit Product 001",
+ "chartSlabs": [
+ {
+ "id": 1,
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 1,
+ "annualInterestRate": 6,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ }
+ ]
+}
+
+ +
+PUT https://DomainName/api/v1/interestratecharts/{chartId}
+
+
+PUT interestratecharts/1
+Content-Type: application/json
+Request Body:
+{
+ "name": "Interest rate chart for 2014",
+ "description": "Interest rate chart for 2014",
+}
+
+
+{
+ "resourceId": 1
+}
+
+
+DELETE https://DomainName/api/v1/interestratecharts/{chartId}
+
+
+DELETE interestratecharts/1
+Content-Type: application/json
+No Request Body:
+
+
+{
+ "resourceId": 1
+}
+
+ This is a convenience resource. It can be useful when + building maintenance user interface screens for creating a chart. + The template data returned consists of any or all + of: +
Example Request:
+
+GET https://DomainName/api/v1/interestratecharts/template
+
+
+{
+ "periodTypes": [
+ {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ {
+ "id": 1,
+ "code": "interestChartPeriodType.weeks",
+ "value": "Weeks"
+ },
+ {
+ "id": 2,
+ "code": "interestChartPeriodType.months",
+ "value": "Months"
+ },
+ {
+ "id": 3,
+ "code": "interestChartPeriodType.years",
+ "value": "Years"
+ }
+ ]
+}
+
+ The slabs a.k.a interest bands are associated with Interest Rate Chart. These bands allow to define different interest rates for different deposit term periods.
+ +Field Descriptions |
+
| periodType | +
| The period type is used to define the different deposit term intervals. 0=Daily, 1=Weekly, 2=Monthly, 3=Yearly + | +
| fromPeriod | +
| Start of the period for defining deposit term interval.
+ e.g. for 1 day to 180 days applicable interest rate is 5% + then startPeriod=1, endPeriod=180 and periodType=0 + |
+
| toPeriod | +
| End of the period for defining deposit term interval.
+ e.g. for 1 day to 180 days applicable interest rate is 5% + |
+
| annualInterestRate | +
| The applicable annual interest rate for defined term interval + | +
| description | +
| + provide a description about the slab. + | +
Creats a new interest rate slab for an interest rate chart.
+Mandatory Fields |
+
| periodType, fromPeriod, annualInterestRate | +
Optional Fields |
+
| toPeriod and description | +
Example Requests:
+
+POST https://DomainName/api/v1/interestratecharts/{chartId}/chartslabs
+
+
+POST interestratecharts/{chartId}/chartslabs
+Content-Type: application/json
+Request Body:
+{
+ "periodType": "0",
+ "fromPeriod": "1",
+ "toPeriod": "180",
+ "annualInterestRate": "5",
+ "description": "5% interest from 1 day till 180 days of deposit",
+ "locale":"en"
+}
+
+
+{
+ "resourceId": 1
+}
+
+ Retrieve list of slabs associated with a chart
+ +Example Requests:
+
+GET https://DomainName/api/v1/interestratecharts/{chartId}/chartslabs
+
+
+[
+ {
+ "id": 1,
+ "description": "5% interest from 1 day till 180 days of deposit",
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 1,
+ "toPeriod": 180,
+ "annualInterestRate": 5,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+ }
+]
+
+ Retrieve a slab associated with an Interest rate chart
+ +Example Requests:
+
+GET https://DomainName/api/v1/interestratecharts/{chartId}/chartslabs/{slabId}
+
+
+{
+ "id": 1,
+ "description": "changed to 6% interest ",
+ "periodType": {
+ "id": 0,
+ "code": "interestChartPeriodType.days",
+ "value": "Days"
+ },
+ "fromPeriod": 1,
+ "toPeriod": 180,
+ "annualInterestRate": 6,
+ "currency": {
+ "code": "USD",
+ "name": "US Dollar",
+ "decimalPlaces": 2,
+ "displaySymbol": "$",
+ "nameCode": "currency.USD",
+ "displayLabel": "US Dollar ($)"
+ }
+}
+
+
+PUT https://DomainName/api/v1/interestratecharts/{chartId}/chartslabs/{slabId}
+
+
+PUT interestratecharts/1/chartslabs/1
+Content-Type: application/json
+Request Body:
+{
+ "annualInterestRate": "6",
+ "description": "Interest rate changed to 6%",
+}
+
+
+{
+ "resourceId": 1,
+ "changes": {
+ "description": "Interest rate changed to 6%",
+ "annualInterestRate": 6
+ }
+}
+
+ Delete a Slab from a chart
+
+DELETE https://DomainName/api/v1/interestratecharts/{chartId}/chartslabs/{slabId}
+
+
+DELETE interestratecharts/1/chartslabs/1
+Content-Type: application/json
+No Request Body:
+
+
+{
+ "resourceId": 1
+}
+
+