Term Deposit Events Lifecycle Guide
This brief guide describes a representative, sample lifecycle for term deposits. With a term deposit, you lock away an amount of money for an agreed length of time (the 'term'). Early withdrawal can mean extra fees and charges for the account holder. We can't explore every event, so we'll focus on the most typical loan events. System initiated activities, such as interest accrual, interest capitalization, and so on, won't be covered by this guide.
Scenario
In this scenario, the origination process for a term deposit has already taken place, and an API is invoked for the creation of a term deposit. The following events occur:
- Term deposit account creation.
- Term deposit funding.
- Early (premature) withdrawal.
- Manual rollover.
Lifecycle Diagram
Legend
The API URL that's used to carry out this business process. |
|
API request (typically, a command to perform an operation). |
|
The event type that's emanated. | |
Business event emanating after the process is completed by the system. | |
Business process in the system. | |
Completion of the business process in the system. |
Tip: Click diagram to expand.
Term Deposit Creation
API
The API that is used for the creation of a term deposit.
POST /v2.0.0/holdings/deposits/termDeposits
Event
The event that's emanated at term deposit creation.
deposits.createDeposit.depositCreated
Event Payload
baseDetails |
Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, and the effective date of the event - and is defaulted for all events. |
maturityDate |
Indicates the maturity date of the term deposit. |
contractAmount |
Indicates the term deposit amount. |
feeDetails |
Contains the fee definitions for the term deposit. For example, a fee for early (premature) withdrawal. |
Note: All the subsequent objects carry the individual, salient property details of the term deposit.
- Sample Code: Term Deposit Creation Event
-
{ "specversion": "BBBBBBB", "type": "AAAAAAAAA", "subject": "DDDDDDDD", "source": "eeeee", "id": "bbbbbbb", "time": "BBBBB", "correlationid": "cccccc", "serviceid": "ee", "channelid": "cc", "organizationid": "bbbbbbbb", "tenantid": "cccccc", "businesskey": "DDDDDDDDD", "sequenceno": 1, "authorization": "ccccccccc", "customfilterid": "eee", "operationinstanceid": "ccc", "sequenceinstanceid": "e", "priority": 1, "data": { "productName": "dddddddd", "originalContractDate": "ee", "tenor": "ddd" "maturityDate": "dddddddd" "contractAmount":"eeeeeeee" "baseDetails": [ { "contractReference": "DDDDDD", "systemReference": "CCCC", "companyReference": "BBBBB", "eventName": "", "baseEventIdentifier": "b", "effectiveDate": "ddddddddd", "bookingDate": "EEEE", "contractCurrency": "AAAAAA", "channel": "BBBBBBBB", "branch": "eeeeee", "lineOfBusiness": "CCCCCCCC", "activityDateTimeStamp": "ccccccccc", "transactionReference": "ddddd", "reversalIndicator": false, "originationReference": "", "contractStatus": "BBB", "accountId": "BBBBB", "overdue": "", "feeDetails": [ { "feeName": "DDDDDDD", "feeAmount": "", "feeCurrency": "bbbbb", "adjustFeeAmount": "aaaa", "adjustFeeReason": "" } ], "balances": [ { "balanceName": "cccccccc", "closingBalance": "A", "dateType": "A", "debitTotalAmount": "", "creditTotalAmount": "bbbbbbbb", "timeStamp": "dddd" } ] } ], "alternateReferences": [ { "alternateIdType": "eeeeeeeee", "alternateId": "CCCCC" } ], "party": [ { "partyReference": "eeeeeeeee", "partyRole": "bbbbbbbbb" } ], "repaymentDetails": [ { "effectiveDate": "AAAA", "schedules": [ { "repaymentType": "B", "description": "ddd", "paymentMethod": "AAA", "paymentFrequency": "dd", "paymentFrequencyDescription": "dddddd", "payments": [ { "startDate": "bb", "endDate": "EEEEEE", "numberOfPayments": "e", "calculatedPaymentAmount": "AAA" } ], "nextPaymentDate": "EE" } ] } ], "interest": [ { "rateName": "bbbb", "rateDescription": "", "interestConditions": [ { "effectiveDate": "BBB", "rateTierType": "CCCC", "tierDetails": [ { "fixedRate": "BBBBB", "floatingIndex": "D", "periodicDetails": [ { "periodicIndex": "bbbbb", "periodicType": "cc", "periodicRate": "CCCC", "periodicPeriod": "CCC", "periodicMethod": "", "initialResetDate": "AA", "periodicReset": "AAAAAAA", "nextResetDate": "ccccc" } ], "margins": [ { "marginType": "ccccccc", "marginOperand": "b", "marginRate": "c" } ], "tierAmount": "E", "tierPercent": "", "effectiveRate": "cccc", "linkedRateIndicator": "BBBBBBBB" } ] } ] } ], "settlementDetails": [ { "payinSettlement": [ { "payinPaymentTypes": [ { "payinPaymentType": "aaaaaaaaa", "description": "AAA" } ], "payinDetails": [ { "payInPoProduct": "eeeee", "payInAccount": "B", "payInBeneficiary": "ddd" } ] } ], "payoutSettlement": [ { "payoutDetails": [ { "payoutAccount": "aaaaaaa", "payoutBeneficiary": "eeee", "payOutPoProduct": "cccccccc" } ], "payOutPropertyClasses": [ { "propertyClassId": "DDDDDDDD", "propertyClassName": "CCC" } ], "payOutProperties": [ { "propertyId": "cc", "propertyName": "d" } ] } ], "defaultSettlementAccounts": [ { "defaultSettlementAccount": "" } ] } ], "officerDetails": [ { "primaryOfficer": "BBBBBBBBB", "otherOfficers": [ { "otherOfficer": "c", "otherOfficerRole": "" } ] } ], "productCategoryId": "dddd", "shortTitles": [ { "language": "CCCCCCC", "shortTitle": "BBBBBBB" } ], "coolingOffDate": "aaaaaaaaa", "renewalDate": "EEE" }
Term Deposit Funding
API
The API that's used to fund the term deposit.
POST /v1.1.0/order/payments/exceptions/bookEntries
Event
The event that's emanated at term deposit funding.
deposits.fund.fullyFunded
Event Payload
baseDetails |
Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, the effective date of the transaction, and the currency of the term deposit - and is defaulted for all events. |
balances |
Contains the details of the amount credited, and the balances of the term deposit impacted by funding. |
- Sample Code: Term Deposit Funding Event
-
{ "specversion": "BBBBBBB", "type": "AAAAAAAAA", "subject": "DDDDDDDD", "source": "eeeee", "id": "bbbbbbb", "time": "BBBBB", "correlationid": "cccccc", "serviceid": "ee", "channelid": "cc", "organizationid": "bbbbbbbb", "tenantid": "cccccc", "businesskey": "DDDDDDDDD", "sequenceno": 1, "authorization": "ccccccccc", "customfilterid": "eee", "operationinstanceid": "ccc", "sequenceinstanceid": "e", "priority": 1, "data": { "baseDetails": [ { "contractReference": "DDDDDD", "systemReference": "CCCC", "companyReference": "BBBBB", "eventName": "", "baseEventIdentifier": "b", "effectiveDate": "ddddddddd", "bookingDate": "EEEE", "contractCurrency": "AAAAAA", "channel": "BBBBBBBB", "branch": "eeeeee", "lineOfBusiness": "CCCCCCCC", "activityDateTimeStamp": "ccccccccc", "transactionReference": "ddddd", "reversalIndicator": false, "originationReference": "", "contractStatus": "BBB", "accountId": "BBBBB", "overdue": "", "feeDetails": [ { "feeName": "DDDDDDD", "feeAmount": "", "feeCurrency": "bbbbb", "adjustFeeAmount": "aaaa", "adjustFeeReason": "" } ], "balances": [ { "balanceName": "cccccccc", "closingBalance": "A", "dateType": "A", "debitTotalAmount": "", "creditTotalAmount": "bbbbbbbb", "timeStamp": "dddd" } ] } ], }
- Sample Code: Loan Repayment Event Payload
-
{ "specversion": "BBBBBBB", "type": "AAAAAAAAA", "subject": "DDDDDDDD", "source": "eeeee", "id": "bbbbbbb", "time": "BBBBB", "correlationid": "cccccc", "serviceid": "ee", "channelid": "cc", "organizationid": "bbbbbbbb", "tenantid": "cccccc", "businesskey": "DDDDDDDDD", "sequenceno": 1, "authorization": "ccccccccc", "customfilterid": "eee", "operationinstanceid": "ccc", "sequenceinstanceid": "e", "priority": 1, "data": { "baseDetails": [ { "contractReference": "DDDDDD", "systemReference": "CCCC", "companyReference": "BBBBB", "eventName": "", "baseEventIdentifier": "b", "effectiveDate": "ddddddddd", "bookingDate": "EEEE", "contractCurrency": "AAAAAA", "channel": "BBBBBBBB", "branch": "eeeeee", "lineOfBusiness": "CCCCCCCC", "activityDateTimeStamp": "ccccccccc", "transactionReference": "ddddd", "reversalIndicator": false, "originationReference": "", "contractStatus": "BBB", "accountId": "BBBBB", "overdue": "", "feeDetails": [ { "feeName": "DDDDDDD", "feeAmount": "", "feeCurrency": "bbbbb", "adjustFeeAmount": "aaaa", "adjustFeeReason": "" } ], "balances": [ { "balanceName": "cccccccc", "closingBalance": "A", "dateType": "AAAAA", "debitTotalAmount": "bbbbbb", "creditTotalAmount": "bbbbbbbb", "timeStamp": "dddd" } ] } ], "numberOfInstallments": "", "paymentHolidays": [ { "paymentType": "B", "description": "ddd", "billType": "AAA", "billTypeDescription": "dd", "holidayStartDate": "dddddd", "holidayPeriods": [ { "holidayDate": "bb", "originalPaymentAmount": "EEEEEE", "newPaymentAmount": "FFFF", } ], "cancelledHolidays": [ { "cancelledHolidayDate": "EE", "cancelledOriginalPaymentAmount": "AAAA",, "cancelledNewPaymentAmount": "BBBB", } ] } ] } }
Early (Premature) Withdrawal
API
The API that's used for a premature withdrawal on a term deposit.
POST /v4.0.0/holdings/deposits/redeemDeposits
Event
The event that's emanated when a term deposit is fully or partially redeemed.
deposits.redeem.redeemed
Event Payload
baseDetails |
Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, the effective date of the transaction, and the currency of the term deposit - and is defaulted for all events. |
balances |
Contains the details of the amount debited, and the balances of the term deposit impacted by the early withdrawal. |
- Sample Code: Term Deposit Premature Withdrawal
-
{ "specversion": "BBBBBBB", "type": "AAAAAAAAA", "subject": "DDDDDDDD", "source": "eeeee", "id": "bbbbbbb", "time": "BBBBB", "correlationid": "cccccc", "serviceid": "ee", "channelid": "cc", "organizationid": "bbbbbbbb", "tenantid": "cccccc", "businesskey": "DDDDDDDDD", "sequenceno": 1, "authorization": "ccccccccc", "customfilterid": "eee", "operationinstanceid": "ccc", "sequenceinstanceid": "e", "priority": 1, "data": { "baseDetails": [ { "contractReference": "DDDDDD", "systemReference": "CCCC", "companyReference": "BBBBB", "eventName": "", "baseEventIdentifier": "b", "effectiveDate": "ddddddddd", "bookingDate": "EEEE", "contractCurrency": "AAAAAA", "channel": "BBBBBBBB", "branch": "eeeeee", "lineOfBusiness": "CCCCCCCC", "activityDateTimeStamp": "ccccccccc", "transactionReference": "ddddd", "reversalIndicator": false, "originationReference": "", "contractStatus": "BBB", "accountId": "BBBBB", "overdue": "", "feeDetails": [ { "feeName": "DDDDDDD", "feeAmount": "", "feeCurrency": "bbbbb", "adjustFeeAmount": "aaaa", "adjustFeeReason": "" } ], "balances": [ { "balanceName": "cccccccc", "closingBalance": "A", "dateType": "A", "debitTotalAmount": "", "creditTotalAmount": "bbbbbbbb", "timeStamp": "dddd" } ] } ], }
Manual Rollover
API
The API that's used for a manual rollover of a term deposit.
PUT/v1.0.0/holdings/deposits/termDeposits/rollovers
Event
The event that's emanated when a term deposit is manually rolled over.
deposits.rollover.depositRolledOver
Event Payload
baseDetails |
Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, the effective date of the transaction, and the currency of the term deposit - and is defaulted for all events. |
- Sample Code: Term Deposit Manual Rollover Event
-
{ "specversion": "BBBBBBB", "type": "AAAAAAAAA", "subject": "DDDDDDDD", "source": "eeeee", "id": "bbbbbbb", "time": "BBBBB", "correlationid": "cccccc", "serviceid": "ee", "channelid": "cc", "organizationid": "bbbbbbbb", "tenantid": "cccccc", "businesskey": "DDDDDDDDD", "sequenceno": 1, "authorization": "ccccccccc", "customfilterid": "eee", "operationinstanceid": "ccc", "sequenceinstanceid": "e", "priority": 1, "data": { "baseDetails": [ { "contractReference": "DDDDDD", "systemReference": "CCCC", "companyReference": "BBBBB", "eventName": "", "baseEventIdentifier": "b", "effectiveDate": "ddddddddd", "bookingDate": "EEEE", "contractCurrency": "AAAAAA", "channel": "BBBBBBBB", "branch": "eeeeee", "lineOfBusiness": "CCCCCCCC", "activityDateTimeStamp": "ccccccccc", "transactionReference": "ddddd", "reversalIndicator": false, "originationReference": "", "contractStatus": "BBB", "accountId": "BBBBB", "overdue": "", "feeDetails": [ { "feeName": "DDDDDDD", "feeAmount": "", "feeCurrency": "bbbbb", "adjustFeeAmount": "aaaa", "adjustFeeReason": "" } ], "balances": [ { "balanceName": "cccccccc", "closingBalance": "A", "dateType": "A", "debitTotalAmount": "", "creditTotalAmount": "bbbbbbbb", "timeStamp": "dddd" } ] } ], }
Accounting Events
Accounting events are emitted in addition to business events for a variety of banking products, including term deposit accounts, savings accounts, current accounts, and other kinds of bank account. For more information, see the Accounting Event Lifecycle Guide