Transaction Statement
Overview
With the Lithium release of the CL Loan, you can view the summary of the transactions made on the loan. For every transaction that is created in the system, a corresponding record gets created in the Loan Transaction Summary table. You can then view a list of all of these records with the help of the Loan Transaction Statement available in the loan contract.
Key Concepts
By default, this functionality is enabled in the lending product and can be changed.
You can view a list of all the transactions in a descending chronological order in which the transactions were created.
By default, the system lists ten transactions. However, you can select the number of records to be listed.
You can view the list of all transaction records between any two dates. However, by default, the system initially lists all the records between the contract creation date and the current system date.
You can select the type of transaction statement that you want to view on the UI.
You can change the name of the transaction type as per the requirement in the CL Loan Servicing Configuration.
Enable or Disable a Loan Transaction Statement
You can enable or disable the transaction statement to appear in the lending product.
By default, the Loan Transaction Statement is included in the lending product.
Prerequisites
None.
Steps
Perform the following steps to enable or disable the transaction statement in the lending product:
Log in to your Salesforce account.
Click the App Launcher.
Search for CL Loan, and then click it.
Create a lending product.
While creating the lending product, select or deselect the Create Summaries checkbox to include or exclude the transaction statement in the lending product.
Upon creating the product, click Save.
View a List of Transaction Statements
Prerequisites
The following are the prerequisites to view a list of transaction statements:
It is an existing loan contract.
-
Transaction summary is included in the lending product.
Note:This is done by selecting the Create Summaries checkbox while creating the lending product.
Enable the Apex Class Access
To enable access to this class, perform the following steps:
Click Setup > Profiles.
Click the required Profile Name.
Click Enabled Apex Class Access.
Click Edit.
Select the LoanTransactionSummaryController, and click Add.
-
Click Save.
Permissions to be able to execute the LoanTransactionSummaryController apex class for the Loan Transaction Statement window to open in Salesforce UI.
Note: All system administrators have these permissions. For other users, you can either request a system administrator or CL support for the permissions.
Steps
Perform the following steps to view a list of transaction statements of a contract:
Log in to your Salesforce account.
Click the App Launcher.
Search for CL Loan, and then click it.
Go to Loan Quick Menu > Account Statement > Loan Transaction Statement.
-
Specify the details as described in the following table, and click Search:
Field Name Action and Information No. of Records
Select the number of records to be displayed per page. The options are: 5; 10; 20; 50.
Note:The maximum number of records that you can select is 50.
Sort Records from Select the order in which the records are to be displayed.
The options are:
- Latest To Oldest: This lists the records in a descending chronological order in which the transactions were created, and it is the default selection.
- Oldest To Latest: This lists the records in an ascending chronological order in which the transactions were created.
From Date Select the period in which the transactions were made. To Date Transaction Name Select the type of transactions to be displayed. You can click Select All to select all types of transaction, and click De-select All to deselect all types of transaction.
Note:All the transactions that cause the LAD to change are selected by default.
Following are the types of transactions that are available for the user to select from and generate the transaction statement for:
Transaction Name Description Additional Interest This refers to an IPT created in reference to additional interest. This is an interest that is accrued on the unutilized amount (Undrawn amount) of a loan and is posted at the given Interest Posting frequency. It is used to charge non-utilization fee by lenders. Additional Interest Rate Change This refers to an OLT transaction created to change the rate of interest that is defined on a loan to charge the Additional interest. This does not cause rescheduling of the loan. Additional Repayment This refers to an OLT created when an excess repayment is made to the loan. This amount can be refunded to the borrower. Additional Interest Rate Change Reversal This refers to an OLT transaction created when the reversal of the Additional Interest Rate Change transaction is carried out. Adjustment Entry Payment Reversal This refers to an IPT transaction created when a reversal of the payment for adjustment entry is carried out. BILL / DUE DATE This refers to the bills that get generated. Cancelled Payment This refers to an LPT transaction created during loan cancellation when a loan is canceled. Charge Off This refers to the Write off LPT. Charge Off Reversal This refers to the reversal of Write off. Charges This refers to the normal charges. Closure-Tolerance This refers to an LPT transaction created when a permissible amount of tolerance provided by a financial institution for loan closure is paid. Contingency Status Change This refers to the OLT created when you apply contingency status (contingency status codes). Credit Limit Change This refers to an OLT transaction created when the limit of amount that can be drawn from a loan facility is increased or decreased. Delinquent Pmt Plan This refers to the transaction for Delinquent payment plan. Interest Adjustment Interest adjustment is an IPT transaction created when you reverse an LPT in an adjustment entry-enabled loan. Once the reversal is done, it adjusts the interest till the LAD and creates a new IPT. Interest Posting Excess PayOff This refers to an IPT created for the extra interest paid. Interest Posting IOA on IOA This refers to an IPT transaction created for Interest on the interest unpaid (IOA). Rebate Payment Transaction This refers to an LPT that is applicable for loan having Rebate functionality enabled. Applicable for protect-enabled loans. When you do a payoff, a particular amount is given to the borrower. This is rebate payment. Refinance Payment This refers to an LPT created while paying off one or more existing loans by creating a new loan contract or when contract is refinanced. It is a consolidation of all of borrowers existing loans.
Refund This refers to an OLT transaction created when the borrowers payment is refund. For example, when a loan closes, the excess amount is refunded.
Refund Reversal This refers to an OLT transaction created when the refund to the borrower is reversed. Regular Disbursal This refers to LDT. Regular Interest Posting This refers to IPT. Regular Payment This refers to LPT. Reschedule This refers to the transaction when loan is rescheduled. Settled This refers to an LPT created when a loan is settled or paid off, and the loan is then closed. Sold This refers to an LPT created when a contract is sold, and the loan is then closed. Delinquent Pmt Plan Reversal This refers to the transaction created when you apply delinquent payment plan from quick menu and then the reversal of that. Deposit Payment This refers to the transaction when amount from LPT goes to deposit. Disbursal Reversal This refers to the LDT reversal. Due Date Change This refers to the transaction when you change the due date. Due Day Change This refers to the transaction when bill gets generated. Excess Payment The delta amount which is paid by the customer, which is more than what is due at that point of time on a loan. This refers to an LPT transaction of the type excess amount. Extension An operation of rescheduling which helps to increase or decrease the tenure of the loan. This refers to an OLT. Extension Reversal This operation helps to undo the extension transaction that has been done on a loan. This refers to an OLT. Index Rate Change This refers to the transaction when rate of index is changed. IOA BILL This refers to a transaction created when bill is created to pay Interest Posted on unpaid Due Principal/Interest. IOA on Unpaid Principal/Interest This refers to the type of IPT created when interest is applied on the due amount of unpaid principal or interest. Loan Amount Adjustment-Add This refers to the type of OLT that is applicable only for FIT-enabled loans and is created when the loan amount is increased. You can access it at Quick Menu> Loan Actions>Loan Amount Adjustment with +Ve value. Loan Amount Adjustment-Subtract This refers to the type of OLT that is applicable only for FIT-enabled loans and is created when the loan amount is decreased. You can access it at Quick Menu> Loan Actions> Loan Amount Adjustment with -Ve value. Payment Change This refers to the transaction when Payment Amount Change is made from Quick Menu. Payment Change Reversal This refers to the transaction when payment change is reversed. Payment Reversal This refers to the transaction when payment is reversed. Payment Tolerance Change This refers to a type of OLT and can be accessed at Quick Menu> Payment Tolerance change action. Applicable for bill , change the percent or the amount for the payment tolerance. PayOff Quote Generation This refers to the transaction when payoff quote is generated, OLT is created. PREPAYMENT BILL Prepayment bill is a type of bill which is created if user pays future installment in FAMZ types of loans. For each future installment, there is a bill which gets created. Principal Adjustment - Add This refers to the transaction when LDT is created for principal adjustment addition from Loan Quick Menu.
Principal Adjustment - Sub This refers to the transaction when LPT is created for principal adjustment subtract. PrincipalAdjustment-Add This is deprecated. Rate Change This refers to an OLT created when Custom Rate is applied (on Floating rate loan), or accessed at Quick Menu>Loan Actions>Rate Change (for Fixed rate loan).It a type of rescheduling operation that helps a user to change the rate of interest on a loan during the active lifecycle of the loan. Rate Change Reversal This operation is used to undo the rate change operation. It refers to an OLT type pf transaction Waived This refers to the transaction when charge is waived. Write-Off Recovery This refers to LPT of type write-off recovery. This displays a list of transaction statements that have the following details of a transaction:
Transaction Details Description Name This is the unique name for each transaction. Transaction Date The date on which this transaction was created. Transaction Amount The amount that was transacted. Principal Remaining This is the remaining principal after the transaction was made. Balance This is the loan balance after the transaction was made. Payoff This is the outstanding payoff after the transaction was made. Delinquent Amount This is the amount delinquent after the transaction was made. Interest Rate This is the rate of interest at the time of this transaction. Reserve Amount This stores the Reserve Amount on the contract before the transaction.
The Reserve Amount of the contract after the transaction is stored in a field named Current Reserve Amount of the LTS.
Cr/Dr Indicator This indicates whether the transaction is a Credit or a Debit.
Following are the values for different types of transactions:
Transaction Cr/Dr Indicator Payment Debit Payment Reversal Credit Disbursal Credit Disbursal Reversal Debit Charge Credit IPT Debit
Note:For all other cases, Cr/Dr Indicator will be blank.
For example, let us say a loan amount of $10,000 is disbursed. In this case, there is an LDT created for which the value of Cr/Dr Indicator on its LTS is Credit. And when this transaction is reversed, then the Cr/Dr Indicator for the LDT reversal is Debit.
Adjusted Interest Amount This field displays the difference between the old IPT and new IPT being re-created because of backdated transaction or reversals. Adjusted Interest Type This field displays the following values:
- Credit: if the New IPT amount is lesser than the old IPT amount.
- Debit: if the New IPT amount is greater than the old IPT amount.
Transaction Name This is the type of transaction made. This name can be changed in the loan servicing configuration as seen in the Transaction Statement Configuration.
Transaction Link This links to the actual transaction where the transaction was made.
Transaction Statement for Pre-paid fees in LDT
Before the Summer'22 release, when a Loan Disbursal Transaction (LDT) was created (for any actions such as Regular Disbursal(+Fee), Refinance, Principal Adjustment, and more), Loan Transaction Summary(LTS) was only created for LDT, and not for any Disbursal Transaction Distribution's (DTD) associated with it, due to which, in the Loan Transaction Statement, the breakup of LDT was not available.
With the Summer'22 release, the system generates a transaction statement for any pre-paid fees present during disbursal.
Example
Let us say a loan is created with the following values:
Field | Value |
---|---|
Loan Amount | $20,000 |
Pre-Paid Fee | $2,000 |
Add Fee to Loan Amount | True |
Then, LDT and LTS are created for Transaction Amount = $22,000.
This is depicted in the following image:
Transaction Statement Configuration
A Transaction Statement Configuration gives you a list of all the types of transactions that can exist in a loan contract.
With the help of a Transaction Statement Configuration, you can configure the transactions that you want to view in the Loan Transaction Statement of your contract.
You can perform the following types of configurations:
Change the Transaction Name
You can change the name of the transaction that would be stored in the Loan Transaction Summary table and displayed in the Loan Transaction Statement window.
Track the Transaction Types
You can select any transaction type that you want to store in the Loan Transaction Summary table with the help of this configuration.
For example, if you enable the tracking for a Regular Payment type of transaction in the configuration, then any regular payment transactions made in the contract after the enabling are stored in the Loan Transaction Summary table, and you can then see them in the list of transactions in the Loan Transaction Statement.
However, if the tracking for this Regular Payment type of transaction is disabled, then any regular payment transaction made in a contract after the disabling cannot be viewed in the list of transactions in the Loan Transaction Statement, as it is not stored in the Loan Transaction Summary table, and will not appear in the loan transaction statement in future too.
Thus, the Transaction Statement Configuration assists in deciding the transactions to be stored in the Loan Transaction Summary table and to be seen in the list of Loan Transaction Statement.
Configure a Transaction Statement
Prerequisites
The following is the prerequisite to configuring a transaction statement:
At least one transaction type exists at the organization level.
Steps
Perform the following steps to configure a transaction statement:
Log in to your Salesforce account.
Click the App Launcher.
Search for CL Loan, and then click it.
-
Go to Servicing Configuration > Misc. > Manage > Transactions Statement Configuration.
This displays a list of the types of transaction existing in CL Loan.
-
Click Edit.
This makes the values in the Transaction Names and the Enable Tracking columns editable.
-
Update the required fields as explained in the following table, and click Save:
Fields Action and Information API Name This is the name of the API that exists in CL Loan and that is internally used for the transaction types in the Loan Transaction Statement. Transaction Type This is the type of record of the transaction that exists in different tables in CL Loan and that is internally used for the Loan Transaction Statement. Transaction Name Update the name of the transaction as it must appear in the list of Loan Transaction Statement.
A Transaction name is a unique name given to a particular type of transaction made in a contract.
For example, as seen in the following image, the same transaction type Regular can have different transaction names such as Regular Disbursal, Regular Interest Posting, Regular Payment as these correspond to the different API Names in the Transaction Summary Configuration.
Enable Tracking Select or deselect the checkbox corresponding to a transaction type to include or exclude a transaction type in a transaction statement.
You can also click Select All or
De select All to include or exclude all the transaction types in the transaction statement.
Note:- If adjustment entry is enabled on the product, ensure that you do not deselect those transactions statements that are used for the calculations of adjustment entry and those that are related to the adjustment entry. This means that all the transactions that are related to the adjustment entry are saved.
- To save a particular transaction summary in the Loan Transaction Summary table, the Enable Tracking checkbox for that type of transaction must be selected.
Example
Let us say, a contract is created on 5/5/2012, and Enable Tracking is enabled for all transactions in the Transaction Statement Configuration.
Then a loan of $10,000 is disbursed on the same day. After a month, on 6/5/2012, a payment transaction of $879.16 is made.
The following transactions are recorded in the system:
Date Transaction Name Transaction Amount Enable Tracking 5/5/2012 Regular Disbursal $10,000 Enabled 6/5/2012 BILL / DUE DATE $879.16
Enabled 6/5/2012 Regular Interest Posting $83.33
Enabled 6/5/2012 Regular Payment $879.16
Enabled This generates a transaction statement of the transactions tracked in the system as follows:
Now say, we enable only the Regular Payment in Transaction Statement Configuration as illustrated in the following image:
After enabling, let us say on 7/5/2012, we disburse $5000, and then after a month on 8/5/2012, we make a payment transaction of $2000.
The following transactions are then recorded in the system:
Date Transaction Name Transaction Amount Enable Tracking 7/5/2012 Regular Disbursal $5000 Disabled 8/5/2012 BILL / DUE DATE $1,356.75 Disabled 8/5/2012 Regular Interest Posting $118.37
Disabled 8/5/2012 Regular Payment $2000
Enabled However, the transaction statement generates the following list of transaction summaries:
The above statement displays only the regular payment made, out of the other transactions done recently. It also displays the previous transactions that were stored and tracked by the Enable Tracking flag. However, it does not display those transactions that were not stored and tracked in the Transaction Summary Configuration.
Note:Based on the Enable Tracking flag in the Transaction Summary Configuration, you can insert a particular transaction into the Loan Transaction Summary table. However, this does not change or delete the transactions that are already inserted into the table.
Create a case with Salesforce to set the loan__last_transaction_id__c field as External ID
Reason
The loan__last_transaction_id__c field of the loan__loan_transaction_summary__c needs to be set as an External ID so that the queries on the object will not fail. This is to improve the query cost.
To understand this, let us understand a standard query. A standard query for querying summary records for a contract or set of contracts looks like this:
SELECT Id, Name, .... loan__loan_transaction_summary__c WHERE loan__last_transaction_id__c in ('a1o0K000004p8QvQAI')
As per Salesforce, a query is selective when it contains filters on indexed fields and within a selective threshold.
For more information on this, see: Improve Performance of SOQL Queries using a Custom Index (salesforce.com)
However, the preceding query is non-selective. So the loan actions will receive an error message when a non-selective query in a trigger executes against an object that contains more than 200,000 records. It is possible to have a huge number of records for this table.
Solution
The solution here is to index the field, loan_last_transaction_id_c, automatically. To do that, this field must be marked as External ID in field metadata. But Salesforce says that it is not possible to change field metadata after the package has been created. So, you have to create a case with Salesforce to set this field as External ID so that queries on the object will not fail.
Any customers installing the Q2 Loan Servicing package must perform this step as one of the first things. When their data size increases, there's a chance that jobs, loan servicing, or more can start failing.