Lending Events Lifecycle Guide

This brief guide describes a representative, sample lifecycle for a loan product. We can't explore every event, so we'll focus on the most typical loan events. System initiated activities, such as Issue Bill, Make Due, and so on, won't be covered by this guide.

Scenario

In this scenario, the origination process for a mortgage loan account has already taken place, and an API is invoked for the creation of a loan account. Following loan account creation, the following lifecycle events occur:

  • Loan disbursement.
  • Loan repayment
  • Loan servicing - for example, an update to the account or the schedule, term or commitment amount modification, an update to the settlement, or a a payment holiday update.
  • Loan payoff.
  • Loan charge-off.
  • Loan write-off.

Lifecycle Diagram

Legend

Loan API for legend

 

The API URL that's used to carry out this business process.

API action

API request (typically, a command to perform an operation).

Loan Event Legend The event type that's emanated. 
Event Business event emanating after the process is completed by the system. 
Business process Business process in the system.
End of business process Completion of the business process in the system. 

Tip: Click diagram to expand.

 

Lending Lifecycle Diagram

Loan Account Creation

API
The API that's used to create the mortgage loan account.

POST/v1.0.0/holdings/loans/mortgages

 

Event
The event that's emanated at mortgage loan account creation.

lending.createLoan.loanCreated

 

Event Payload

productName

Specifies the name of the loan product.

originalContractDate

Indicates the actual date when the loan is created.

tenor

Contains the term of the loan.

contractAmount

Contains the commitment amount of the loan.

baseDetails

Typically contains all the basic account information – such as the account reference, system name, transaction reference, and the effective date of the event - and is defaulted for all events.

feeDetails

Contains the fee that's incurred when performing this transaction. It's useful for passing details to pricing systems which can compute benefits on top of the fee. The object is populated only if a fee is incurred.

alternateReferences Carries the list of alternate references that have been recorded for this account as Type/ID pair.
repaymentDetails Contains repayment details, such as payment type, payment frequency, and the payment method for the loan account. 
party Contains the party details of the loan, such as the party id, the party role, and so on. 
interest Contains the interest details of the loan, such as fixed rate, floating rate, margin, and so on. 
settlementDetails Contains the payin and payout account details of the loan account.  
officerDetails Contains the details of the approving officer, linked to the loan account.  

Note: All the subsequent objects carry the individual, salient property details of the loan account, such as the parties involved, interest details, settlement details and so on.

Sample Code: Loan Account Creation 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": {
    "productName": "dddddddd",
    "originalContractDate": "ee",
    "tenor": "ccccccccc",
	"maturityDate": "ee",
    "contractAmount": "ccccccccc",
	{
  "baseDetails": {
    "contractReference": "AAAAAAAAAA",
    "systemReference": "BBBB",
    "companyReference": "CCCCCCCCC",
    "eventName": "",
    "baseEventIdentifier": "b",
    "effectiveDate": "ddddddddd",
    "bookingDate": "EEEE",
    "contractCurrency": "AAAAAA",
    "channel": "BBBBBBBB",
    "branch": "eeeeee",
    "lineOfBusiness": "CCCCCCCC",
"activityDateTimeStamp":"ddddddd"
    "transactionReference": "ddddd",
    "reversalIndicator": false,
    "OriginationRefValue": "",
	"contractStatus": "BBB",
	"accountId": "BBBB",
	"Ooverdue": "",
	"feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
			"adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
    "balances": [
      {
        "balanceName": "cccccccc",
        "closingBalance": "A",
        "dateType": "A",
        "debitTotalAmount": "bbbbbbbb",
       "creditTotalAmount": "bbbbbbbb",
        "timeStamp": null
      }
    ]
  },
 
  "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"
          }
        ]
      }
    ],
    "limit": [
      {
        "limitKey": "DD",
        "limitReference": "EEEE",
        "limitSerial": "CCCCCCCCC"
      }
    ],
    "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"
  }
  }
}





Loan Disbursement

API
The API that's used to disburse the mortgage loan commitment amount.

PUT /v1.0.0/holdings/loans/mortgages/{mortgageId}/disbursements

 

Event
The event that's emanated at loan disbursement.

lending.disburse.transactionExecuted

 

Event Payload

transactionCurrency

Specifies the currency of the disbursement transaction.

transactionAmount Contains the transaction amount disbursed from the loan account. 
Sample Code: Loan Disbursement 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": {
		"transactionCurrency": "DDDDDD",
	    "transactionAmount": "CCCC",
		"contractAmount": "ee",
    
    "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"
          }
        ]
      }
    ],
   
    "context": [
      {
        "contextName": "eeeeeeeee",
        "contextValue": "CCCCC"
      }
    ],
  
    "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"
          }
        ]
      }
    ]
  }
}
  



Loan Repayment

API
The API that's used to repay the mortgage loan.

PUT /v5.1.0 /holdings/loans/mortgages/{mortgageId}/repayments

 

Event
The event that's emanated at loan repayment.

lending.repay.transactionExecuted

 

Event Payload

balances

Contains the details of the amount disbursed, and the balances of the loan account impacted.

interestProperties Contains details about interest on the loan, such as the amount of interest accrued, the period start date, and the period end date for the defined time period 
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": {
		"transactionCurrency": "DDDDDD",
	    "transactionAmount": "CCCC",
		"contractAmount": "ee",
    
    "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"
          }
        ]
      }
    ],
      "context": [
      {
        "contextName": "eeeeeeeee",
        "contextValue": "CCCCC"
      }
    ],
      "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"
          }
        ]
      }
    ],
"interestProperties": [
      {
		  "accrualInfo": {
        "description": "bbbb",
        "accrualAmount": "cc",
		"negativeInterestAmount":"BBBB",
		"positiveInterestAmount":"BBBB",
		"periodEndDate":"DDDDDDDD",
		"periodStartDate":"DDDDDDDD"
	  }
	  }
	  ]
  }
}
      





Account Updated

API
The API that's used to update the account details of the loan - such as, account name, short name, and so on - and to add posting restrictions in the loan account where the customer is defaulted, and no further disbursements should be allowed to the customer.

PUT /v1.0.0/holdings/loans/mortgages/{mortgageId}/accounts

 

Event
The event that's emanated when a loan account is updated.

lending.updateAccount.accountUpdated

 

Event Payload

postingRestrictions

Contains the details of the posting restriction fields, such as posting restriction name, start date, end date, restriction reason, unblock reason, and so on.

shortTitles Contains the short title for the account. 
Sample Code: Account Updated 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": "dddd",
		"overdue": "aaaa"
        
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        
      "balances": [
      {
        "balanceName": "eeeeeeeee",
        "closingBalance": "CCCCC",
		"dateType": "eeee",
		"debitTotalAmount": "dddd",
		"creditTotalAmount": "dddd",
		"timeStamp": "ddddd"
      }
    ],
    "productCategoryId": "ccccc"
	"postingRestrictions": [
      {
        "postingRestrictId": "eeeeeeeee",
        "postingRestrictName": "bbbbbbbbb",
		"restrictionReason": "dddddd",
		"restrictionText": "cccc",
		"unrestrictionReason": "ddddd",
		"unrestrictionText": "ddddd",
		"restrictionStartDate": "ccccc",
		"restrictionExpiryDate": "dddd"
      }
    ],
    "shortTitles": [
      {
        "language": "AAAA",
		"shortTitle": "CCCC"

          }
        ]
      }
    ],
  }



Schedule Updated

API
The API that's used to update the payment schedule of the loan account.

PUT/v1.0.0/holdings/loans/{loanId}/simulations/products/schedules

 

Event
The event that's emanated when the schedule is updated.

lending.updateSchedule.scheduleUpdated

 

Event Payload

repaymentType

Contains the details of the repayment, such as payment method, payment frequency, and so on.

payments Contains the details of the schedule, such as start date, end date, number of payments, and so on. 
Sample Code: Schedule Updated 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": "dddd",
		"overdue": "aaaa"
        
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        
      "balances": [
      {
        "balanceName": "eeeeeeeee",
        "closingBalance": "CCCCC",
		"dateType": "eeee",
		"debitTotalAmount": "dddd",
		"creditTotalAmount": "dddd",
		"timeStamp": "ddddd"
      }
    ],
    "repaymentDetails": [
	  {
	    "effectiveDate": "ccccc"
	  }
	],
	"schedules": [
      {
        "repaymentType": "eeeeeeeee",
        "description": "bbbbbbbbb",
		"paymentMethod": "dddddd",
		"paymentFrequency": "cccc",
		"paymentFrequencyDescription": "ddddd",
      }
    ],
    "payments": [
      {
        "startDate": "AAAA",
		"endDate": "CCCC",
		"numberOfPayments": "dddd",
		"calculatedPaymentAmount":"cccc"

          }
        ],
	"nextPaymentDate": "eeee"
	"scheduledProperties": [
	  {
	    "scheduledProperty": "ccccc"
	  }
	],
      }
    ],
  }



Commitment Amount Increased

API
The API that's used to increase the commitment amount of the mortgage loan account when the customer requested for top-up.

PUT/v1.0.0/holdings/loans/mortgages/{mortgageId}/commitmentIncreases

 

Event
The event that's emanated when the commitment is increased.


lending.modifyCommitment.commitmentModified

 

Event Payload

increaseCommitmentAmount

Indicates the increased commitment amount for the loan account.

decreaseCommitmentAmount Indicates the decreased commitment amount for the loan account (applicable only if the commitment got decreased). 
Sample Code: Commitment Increased 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": {
    "increaseCommitmentAmount": "dddddddd",
    "decreaseCommitmentAmount": "ee",
    "tenor": "ccccccccc",
	  "baseDetails": {
    "contractReference": "AAAAAAAAAA",
    "systemReference": "BBBB",
    "companyReference": "CCCCCCCCC",
    "eventName": "",
    "baseEventIdentifier": "b",
    "effectiveDate": "ddddddddd",
    "bookingDate": "EEEE",
    "contractCurrency": "AAAAAA",
    "channel": "BBBBBBBB",
    "branch": "eeeeee",
    "lineOfBusiness": "CCCCCCCC",
	"activityDateTimeStamp":"ddddddd"
    "transactionReference": "ddddd",
    "reversalIndicator": false,
    "OriginationRefValue": "",
	"contractStatus": "BBB",
	"accountId": "BBBB",
	"Ooverdue": "",
	"feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
			"adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
    "balances": [
      {
        "balanceName": "cccccccc",
        "closingBalance": "A",
        "dateType": "A",
		"debitTotalAmount": "bbbbbbbb",
		"creditTotalAmount": "bbbbbbbb",
        "timeStamp": null
      }
    ]
  },
           "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"
          }
        ]
      }
    ],
  
    "coolingOffDate": "aaaaaaaaa",
   
  }
  }






Term Modified

API
The API that's used to modify the term of loan account when the customer has repaid some principal amount and the customer has requested to maintain the same monthly repayment amount for the remaining principal balance and informed to reduce the tenor of the loan.

PUT /v1.0.0/holdings/loans/mortgages/{mortgageId}/terms

 

Event
The event that's emanated when the term is modified.


lending.modifyTenor.tenorModified

 

Event Payload

tenor Contains the term of the loan account. 
Sample Code: Term Modified 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": {
	  "increaseCommitmentAmount":"aaaaa",
	  "decreaseCommitmentAmount":"aaaaa",
	  "tenor": "ccccc"
  "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": "dddd",
		"overdue": "aaaa"
        
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        
      "balances": [
      {
        "balanceName": "eeeeeeeee",
        "closingBalance": "CCCCC",
		"dateType": "eeee",
		"debitTotalAmount": "dddd",
		"creditTotalAmount": "dddd",
		"timeStamp": "ddddd"
      }
    ],
     "repaymentDetails": [
	  {
		"effectiveDate": "cccc"
	    "schedules": [
		{
		"repaymentType":"aaaaa",
		"description":"ccccc",
		"paymentMethod":"ddddd",
		"paymentFrequency":"ccccc",
		"paymentFrequencyDescription":"eeeee"
		 "payments": [
      {
        "startDate": "eeeeeeeee",
        "endDate": "bbbbbbbbb",
		"numberOfPayments": "dddddd",
		"calculatedPaymentAmount":
      }
    ], 
	"nextPaymentDate": "ddddd"
	"scheduledProperties": [
	  {
	    "scheduledProperty": "ccccc",
		}
	],
	  
      }
    ],
  }



Settlement Updated

API
The API that's used to update the settlement account in a loan account when the customer wish to pay the monthly repayment amount from another account or the loan disbursement will be credited to other account.

PUT/v1.0.0/holdings/loans/mortgages/{mortgageId}/settlements

 

Event
The event that's emanated when the settlement is updated.


lending.updateSettlement.settlementUpdated

 

Event Payload

payinSettlement Contains the details of the payin account details, such as payin payment type like interest, principal, payin account number, and so on. 
payoutSettlement Contains the details of the payout account details, such as payout account number. 
Sample Code: Settlement Updated 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": "dddd",
		"overdue": "aaaa"
        
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        
      "balances": [
      {
        "balanceName": "eeeeeeeee",
        "closingBalance": "CCCCC",
		"dateType": "eeee",
		"debitTotalAmount": "dddd",
		"creditTotalAmount": "dddd",
		"timeStamp": "ddddd"
      }
    ],
    "settlementDetails": [
	  {
	    "payinSettlement": [
		{
			"payinPaymentTypes": [
			{
				"payinPaymentType": "aaaaaa",
				"description": "aaaa"
			}
         ],
		"payinDetails": [
      {
        "payInPoProduct": "eeeeeeeee",
        "payInAccount": "bbbbbbbbb",
		"payInBeneficiary": "dddddd",
      }
    ], 
	  }
	],
    "payoutSettlement": [
      {
		"payoutDetails": [
		{
		 "payoutAccount": "AAAA",
		 "payoutBeneficiary": "CCCC",
		 "payOutPoProduct": "dddd",
          }
        ],
	"payOutPropertyClasses": [
	  {
	    "propertyClassId": "ccccc",
		"propertyClassName": "ddddd"
	  }
	],
	"payOutProperties": [
	  {
	    "propertyId": "ccccc",
		"propertyName": "ddddd"
	  }
	],
	"defaultSettlementAccounts": [
	  {
	    "defaultSettlementAccount": "ccccc",
	  }
	],
      }
    ],
  }


Payment Holiday

API
The API that's used to update the payment holiday of the mortgage loan.

PUT/v1.0.0/holdings/loans/mortgages/{mortgageId}/paymentHolidays

 

Event
The event that's emanated when the payment holiday is updated.


lending.updatePaymentHoliday.paymentHolidayUpdated

 

Event Payload

numberOfInstallments Contains the number of installments for which the payment holiday applied. 
paymentHolidays Carries the details of payment holiday, such as payment type, bill date, holiday start date, and so on. 
HolidayPeriods Contains the details of holiday period. It includes holiday date, original payment amount, new payment amount, and so on. 
Sample Code: Payment Holiday 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",
			
          }
        ]
      }
	  ]
  }
  
}
   



Mortgage Loan Payoff

Loan payoff is the pre-closure of a loan in a single payment before the actual maturity of the loan tenure. When the customer requests to pay off the loan, the following steps are carried out by the bank to close the loan.

API
The API that's used to simulate the loan account when the customer requests to payoff.

PUT /v1.0.0/holdings/loans/{loanId}/simulations/payoffCalculations/bills

 

Event
The event that's generated after simulation of the loan account.


lending.calculatePayoff.payoffCalculated

 

Event Payload

balances Contains the closing balance of the loan, total amount debited from account, total amount credited to loan account, and so on. 
accrualInfo Contains the interest accrual amount, start date, end date, and so on. 
Sample Code: Loan Simulation 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": "AAAAAAAAAA",
    "systemReference": "BBBB",
    "companyReference": "CCCCCCCCC",
    "eventName": "",
    "baseEventIdentifier": "b",
    "effectiveDate": "ddddddddd",
    "bookingDate": "EEEE",
    "contractCurrency": "AAAAAA",
    "channel": "BBBBBBBB",
    "branch": "eeeeee",
    "lineOfBusiness": "CCCCCCCC",
	"activityDateTimeStamp":"ddddddd"
    "transactionReference": "ddddd",
    "reversalIndicator": false,
    "OriginationRefValue": "",
	"contractStatus": "BBB",
	"accountId": "BBBB",
	"Ooverdue": "",
	"feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
			"adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
    "balances": [
      {
        "balanceName": "cccccccc",
        "closingBalance": "A",
        "dateType": "A",
		"debitTotalAmount": "bbbbbbbb",
		"creditTotalAmount": "bbbbbbbb",
        "timeStamp": null
      }
    ]
  },
  
    "interestProperties": [
      {
       
        "accrualInfo": [
          {
            "accrualAmount": "BBB",
            "negativeInterestAmount": "CCCC",
                          "positiveInterestAmount": "E",
                "periodEndDate": "",
                "periodStartDate": "cccc",
                
              }
            ]
          }
        ]
      }
   }




Mortgage Loan Payoff Issued

API
The API that's used to generate the payoff bill.

PUT /v1.0.0 /holdings/loans/mortgages/{mortgageId}/payoffCalculations

 

Event
The event that's generated when the payoff is issued.


lending.issuePayoff.payoffBillIssued

 

Event Payload

payoffDate Indicates a date on which payoff bill has been raised. 
totalAmount Indicates the total closure amount of the loan account. 
totalInterestAmount Indicates the sum of interest amounts. 
expiryDays Defines the expiry date for the payoff bill. 
closureNote Indicates the reason for the loan closure. 
Sample Code: Issue Payoff 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": "AAAAAAAAAA",
    "systemReference": "BBBB",
    "companyReference": "CCCCCCCCC",
    "eventName": "",
    "baseEventIdentifier": "b",
    "effectiveDate": "ddddddddd",
    "bookingDate": "EEEE",
    "contractCurrency": "AAAAAA",
    "channel": "BBBBBBBB",
    "branch": "eeeeee",
    "lineOfBusiness": "CCCCCCCC",
	"activityDateTimeStamp":"ddddddd"
    "transactionReference": "ddddd",
    "reversalIndicator": false,
    "OriginationRefValue": "",
	"contractStatus": "BBB",
	"accountId": "BBBB",
	"Ooverdue": "",
	"feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
			"adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
    "balances": [
      {
        "balanceName": "cccccccc",
        "closingBalance": "A",
        "dateType": "A",
		"debitTotalAmount": "bbbbbbbb",
		"creditTotalAmount": "bbbbbbbb",
        "timeStamp": null
      }
    ]
  },
   "payoffDate": "cccccccc",
        "totalAmount": "A",
        "totalInterestAmount": "A",
		"paymentIndicator": "bbbbbbbb",
		"expiryDays": "bbbbbbbb",
       "propertyBalances": [
          
            "properties": {
            "bankOutstandingAmount": "",
            "chargeoffAmount": "bbbbb",
			"writeOffAmount": "aaaa",
            "adjustValue": ""
          }
        ],
		"infoPayTypes": [
          
            "properties": {
            "interestAmount": "",
            "paymentMethod": "bbbbb",
			
          }
        ],
		"paymentTypes": [
          
            "properties": {
            "paymentType": "",
            "description": "bbbbb",
			"totPayAmount": "aaaa",
            "infoPayType": ""
          }
        ],
		"paymentDetails": [
                      "propertyId": {
            "propertyName": "",
            "propertyAmount": "bbbbb",
			"propertyAmountLcy": "aaaa",
           
          }
        ],
  "closureNote": "bbbbbbbb"
  }
}



Mortgage Loan Payoff Settled

API
The API that's used to settle the payoff amount of the loan account.

PUT /v1.0.0 /holdings/loans/mortgages/{mortgageId}/payoffs

 

Event
The event that's generated when the payoff is settled.


lending.settleSettlement.settlementSettled

 

Event Payload

contractStatus Indicates the status of the contract. 
balances Contains the closing balance of the loan account. 
Sample Code: Payoff Settlment 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": "dddd",
		"overdue": "aaaa"
        
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        
      "balances": [
      {
        "balanceName": "eeeeeeeee",
        "closingBalance": "CCCCC",
		"dateType": "eeee",
		"debitTotalAmount": "dddd",
		"creditTotalAmount": "dddd",
		"timeStamp": "ddddd"
      }
    ],
      }
    ],
  }


Partial Chargeoff

Borrowers could default on their payments due to economic personal crisis. Under these circumstances, a bank may consider certain receivable amounts on the loan account to be charged off. A charge off may be for the overdue amounts (partial) or for the entire loan amount.

API
The API that's used to charge off the overdue payments of the loan.

PUT/V1.0.0/holdings/loans/mortgages/{mortgageId}/partialChargeOffs

 

Event
The event that's generated when the loan is partially charged off.


lending.chargeOffAccount.accountChargeOff

 

Event Payload

billDetails Contains all the bill details like bill reference, bill type, bill amount, bill date of a payment transaction. 
propertyBalances Contains the interest or account or charge property for which charge off can be performed. 
agingStatus Indicates the ageing status of a bill. 
agingstatusChangeDate Contains the effective date of the current ageing status of the transaction. 
settlementStatus Defines the status of the settlement. 
reason Contains the reason for performing the current activity. 
contractStatus Indicates the status of the contract. 
Sample Code: Partial Chargeoff 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": "dddd",
		"overdue": "aaaa"
        
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        
      "balances": [
      {
        "balanceName": "eeeeeeeee",
        "closingBalance": "CCCCC",
		"dateType": "eeee",
		"debitTotalAmount": "dddd",
		"creditTotalAmount": "dddd",
		"timeStamp": "ddddd"
      }
    ],
 
		"billDetails": [
		{
		 "billId": "AAAA",
		 "dueDate": "ccccc",
		 "paymentDate": "CCCC",
		 "deferDate": "ddddd",
		 "expiryDate": "dddd",
		 "billedAmount":"eeee",
		 "billedAmountLcy":"cccc",
		 "currency":"dddd",
		 "billStatus": "eeee"
          }
        ],
	 "paymentTypes": [
	  {
	    "issueDate": "ccccc",
		"paymentType": "ddddd",
		"description":"ccccc",
		"billType":"ddddd",
		"billTypeDescription":"eeee",
		"paymentMethod": "ccccc",
		"paymentFrequency":"eeee",
		"nextPaymentDate":"cccccc",
	  }
	],
	"paymentDetails": [
	  {
	    "propertyId": "ccccc",
		"propertyName": "ddddd",
		"propertyAmount":"eeee",
		"propertyAmountLcy": "ccccc"
	  }
	],
	"propertyBalances": [
	  {
	    "amount": "ccccc",
		"property":"dddd",
		"bankOutstandingAmount":"eeee",
		"chargeoffAmount":"ccccc",
		"writeOffAmount":"eeee",
		"adjustValue":"aaaaa",
	  }
	],
	"agingStatus":"aaaa",
	"agingstatusChangeDate":"ccccc",
	"previousAgingStatus":"ddddd",
	"nextAgeDate":"bbbbbb",
	"bankTotalOutstandingAmount":"eeee",
	"writtenOffOn":"ddddd",
	"advancePayment":"cccc",
	"delinquentAmount":"eeee",
	"paymentIndicator":"ddddd"
	
	"repaymentDetails": [
	{
		"repaidAmount": "dddd"
	}
	],
	 "settlementStatus": "eeeee"
	 "billStatuses": [
	 {
		 "billStatus": "ddddd",
		 "statusChangeDate": "eeeee"
	 }
	 ],
	 "settlementStatuses": [
	 {
		 "settlementStatus":
		 "statusChangeDate":
	 }
	 ],
	  "reason":"aaaa",
	  "contractStatus":"aaaaa"
  }



Chargeoff

API
The API that's used to charge off the entire loan.

PUT/V1.0.0/holdings/loans/mortgages/{mortgageId}/chargeOffs

 

Event
The event that's generated when the loan is charged off.


lending.chargeOffLoan.loanChargeOff

 

Event Payload

billDetails Contains all the bill details like bill reference, bill type, bill amount, bill date of a payment transaction. 
propertyBalances Contains the interest or account or charge property for which charge off can be performed. 
agingStatus Indicates the ageing status of a bill. 
agingstatusChangeDate Contains the effective date of the current ageing status of the transaction. 
settlementStatus Defines the status of the settlement. 
reason Contains the reason for performing the current activity. 
contractStatus Indicates the status of the contract. 
Sample Code: Chargeoff 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": "AAAAAAAAAA",
            "systemReference": "BBBB",
            "companyReference": "CCCCCCCCC",
            "eventName": "",
            "baseEventIdentifier": "b",
            "effectiveDate": "ddddddddd",
            "bookingDate": "EEEE",
            "contractCurrency": "AAAAAA",
            "channel": "BBBBBBBB",
            "branch": "eeeeee",
            "lineOfBusiness": "CCCCCCCC",
            "activityDateTimeStamp": "ddddddd",
            "transactionReference": "ddddd",
            "reversalIndicator": "sdsds",
            "OriginationRefValue": "",
            "contractStatus": "BBB",
            "accountId": "BBBB",
            "overdue": "",
            "feeDetails": [
                {
                    "feeName": "DDDDDDD",
                    "feeAmount": "",
                    "feeCurrency": "bbbbb",
                    "adjustFeeAmount": "aaaa",
                    "adjustFeeReason": ""
                }
            ],
            "balances": [
                {
                    "balanceName": "cccccccc",
                    "closingBalance": "A",
                    "dateType": "A",
                    "debitTotalAmount": "bbbbbbbb",
                    "creditTotalAmount": "bbbbbbbb",
                    "timeStamp": null
                }
            ]
        },
        "billDetails": [
            {
                "billId": "B",
                "dueDate": "ddd",
                "paymentDate": "AAA",
                "deferDate": "dd",
                "expiryDate": "dddddd",
                "billedAmount": "bb",
                "billedAmountLcy": "EEEEEE",
                "currency": "e",
                "paymentTypes": [
                    {
                        "issueDate": "bb",
                        "paymentType": "EEEEEE",
                        "description": "FFFF",
                        "billType": "bb",
                        "billTypeDescription": "EEEEEE",
                        "paymentMethod": "FFFF",
                        "paymentFrequency": "bb",
                        "nextPaymentDate": "EEEEEE",
                        "paymentDetails": [
                            {
                                "propertyName": "bb",
                                "propertyAmount": "EEEEEE",
                                "propertyAmountLcy": "FFFF"
                            }
                        ]
                    }
                ],
                "propertyBalances": [
                    {
                        "amount": "bb",
                        "property": "EEEEEE",
                        "bankOutstandingAmount": "FFFF",
                        "chargeoffAmount": "bb",
                        "writeOffAmount": "EEEEEE",
                        "adjustValue": "EEEEEE"
                    }
                ],
                "agingStatus": "bb",
                "agingstatusChangeDate": "EEEEEE",
                "previousAgingStatus": "FFFF",
                "nextAgeDate": "bb",
                "bankTotalOutstandingAmount": "EEEEEE",
                "writtenOffOn": "bb",
                "advancePayment": "EEEEEE",
                "delinquentAmount": "FFFF",
                "paymentIndicator": "bb",
                "repaymentDetails": [
                    {
                        "repaidAmount": "aaaaaa"
                    }
                ],
                "settlementStatus": "bbbb",
                "billStatuses": [
                    {
                        "billStatus": "cccccc",
                        "statusChangeDate": "DDDDDD"
                    }
                ],
                "settlementStatuses": [
                    {
                        "settlementStatus": "AAAAAA",
                        "statusChangeDate": "BBBBB"
                    }
                ]
            }
        ],
        "reason": "AAAA",
        "contractStatus": "FFFF",
        "interestProperties": [
            {
            "accrualInfo": {
                "description": "bbbb",
                "accrualAmount": "cc",
                "negativeInterestAmount": "BBBB",
                "positiveInterestAmount": "BBBB",
                "periodEndDate": "DDDDDDDD",
                "periodStartDate": "DDDDDDDD"
            }
            }
        ]
    }
}



Writeoff

API
The API that's used to write off the loan.

PUT /v1.0.0/holdings/loans/consumerLoans/{consumerLoanId}/writeOffs

 

Event
The event that's generated when the loan is written off.


lending.writeOff.loanWrittenOff

 

Event Payload

billDetails Contains all the bill details like bill reference, bill type, bill amount, bill date of a payment transaction. 
writeOffProperties Contains the interest or account or charge property for which write off can be performed. 
Sample Code: Writeoff 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": {
	  "reason": "eee",
	  "contractStatus": "ffff",
    "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"
          }
        ]
      }
    ],
	 
     "billDetails": [
	 {
            "billId": "B",
            "dueDate": "ddd",
            "paymentDate": "AAA",
            "deferDate": "dd",
            "expiryDate": "dddddd",
			"billedAmount": "dddddd",
			"billedAmountLcy": "dddddd",
			"currency": "dddddd",
			"billStatus": "dddddd",
            "paymentTypes": [
              {
                "issueDate": "bb",
                "paymentType": "EEEEEE",
                "description": "FFFF",
				"billType": "bb",
                "billTypeDescription": "EEEEEE",
                "paymentMethod": "FFFF",
				"paymentFrequency": "bb",
                "nextPaymentDate": "EEEEEE",
                "paymentDetails": [
				{
					 "propertyName": "bb",
                "propertyAmount": "EEEEEE",
                "propertyAmountLcy": "FFFF",
				}
				]
			  }
			 ],
			  "propertyBalances": [
			  {
				 		  
				"amount": "bb",
                "property": "EEEEEE",
                "bankOutstandingAmount": "FFFF",
				"chargeoffAmount": "bb",
                "writeOffAmount": "EEEEEE",
				"adjustValue": "EEEEEE",
				
                }
            ],
				"agingStatus": "bb",
                "agingstatusChangeDate": "EEEEEE",
                "previousAgingStatus": "FFFF",
				"nextAgeDate": "bb",
                "bankTotalOutstandingAmount": "EEEEEE",
				"writtenOffOn": "bb",
                "advancePayment": "EEEEEE",
                "delinquentAmount": "FFFF",
				"paymentIndicator": "bb",
            	"repaymentDetails": [
				{
		 
					"repaidAmount": "aaaaaa",
						
				}
				],
				"settlementStatus": "bbbb",
				"billStatuses": [
				{
		 
					"billStatus": "cccccc",
					"statusChangeDate": "DDDDDD",
						
				}
				],
				"settlementStatuses": [
				{
		 
					"settlementStatus": "AAAAAA",
					"statusChangeDate": "BBBBB",
						
				}
				]
	 }
	 ],
				"writeOffProperties": [
				{
		 
					"propertyId": "AAAA",
					"propertyName": "FFFF",
					"writeOffAmount": "EE",
						
				}
				],
				 "interestProperties": [
      {
		  "accrualInfo": {
        "description": "bbbb",
        "accrualAmount": "cc",
		"negativeInterestAmount":"BBBB",
		"positiveInterestAmount":"BBBB",
		"periodEndDate":"DDDDDDDD",
		"periodStartDate":"DDDDDDDD"
	  }
	  }
	  ]
  }
}
				
  
   





Accounting Events

Accounting events are emitted in addition to business events for a variety of banking products, including loans, savings accounts, current accounts, and other kinds of bank account. For more information, see the Accounting Event Lifecycle Guide