Out of order reversal for multiple LPTs through an ACH return file
Overview
Before the December 2023 release, through an ACH return file, if contract-wise single LPTs are passed to the out-of-order payment reversal logic of Q2 Loan Servicing, then reversal and related reapplication of the LPTs worked successfully at the contract level. However, if multiple LPTs from the same contract or multiple LPTs related to different contracts are received as part of the ACH return file, the system was capable of reversing only the latest LPT.
To resolve this, from the December 2023 release, Q2 Loan Servicing has been enhanced to support out-of-order payment reversals for multiple Loan Payment Transactions (LPTs) through an ACH return file. Multiple LPTs from single and multiple contracts through an ACH return file can now be reversed utilizing this enhanced out-of-order payment reversal logic.
Example
Let us say there are following contracts with the LPTs.
Contract | LPT |
---|---|
Contract-1 |
LPT-1, LPT-2, LPT-3, LPT-4 LPT-1 being the oldest and LPT-4 being the latest. |
Contract-2 |
LPT-5, LPT-6, LPT-7, LPT-8 LPT-5 being the oldest and LPT-8 being the latest. |
Contract-3 |
LPT-9, LPT-10, LPT-11, LPT-12 LPT-9 being the oldest and LPT-12 being the latest. |
Contract-4 |
LPT-13, LPT-14, LPT-15, LPT-16 LPT-13 being the oldest and LPT-16 being the latest. |
Now, say, an ACH Return file has the multiple LPTs from different contracts to be reversed as follows:
Contract-1: LPT-1
Contract-1: LPT-2
Contract-2: LPT-7
Contract-2: LPT-8
Contract-3: LPT-10
Contract-3: LPT-12
Contract-4: LPT-16
The system then reverses the LPTs contract-wise in the order from the latest to the oldest LPT that needs to be reversed, and then reapplies the LPTs after the reversed LPT in the order from the oldest to the latest.
Thus, the system reverses and then reapplies the LPTs in the following order:
As the first LPT in the ACH file is LPT-1, the system looks at Contract-1.
-
It first reverses in the following order:
LPT-4
LPT-3
LPT-2
LPT-1
-
Then reapplies in the following order:
LPT-3
LPT-4
Moving forward in the ACH file, the system finds LPT-7 of Contract-2, so the system looks at Contract-2.
-
It first reverses in the following order:
LPT-8
LPT-7
Then does not reapply as there are no LPTs after 8 in Contract-2.
Then the system find the LPT-10 of Contract-3 to be reversed, so it looks into Contract-3.
-
It first reverses in the following order:
LPT-12
LPT-11
LPT-10
Then reapplies LPT-11.
Then the system find the LPT-16 of Contract-4 to be reversed, so it looks into Contract-4.
-
It first reverses in the following order:
LPT-16
Then does not reapply any LPT as there are no LPTs after LPT-16.
Unique scenarios
With this enhancement, the system includes some special cases that are as follows:
-
The system does not regenerate an LPT with the Payment Type as Excess in an FAMZ loan while using the out-of-order payment reversal through an ACH return file
Let us understand this scenario with the help of an example by looking at the following order of actions created in the system:
Let us say that there is a loan contract created on March 1 and a bill gets generated on April 1 of an amount of $1,000.
On April 1, pay the bill completely by creating an LPT-1 of the bill amount.
Create another LPT-2 to pay an additional $500. This additional amount goes to Excess as the bill is already paid.
On May 1, the system generates an LPT-3 with the Payment Type as Excess for the additional amount of $500.
Now if we try to reverse LPT-1 using out of order payment reversal through ACH return file, then LPT-3 gets reversed first, followed by LPT-2 and finally LPT-1.
Once the LPT-1 of $1,000 gets reversed, the April 1 bill gets unpaid too.
After that, the system reapplies LPT-2. This pays the April 1 bill partially.
As the LPT-2 amount of $500 is used completely, there is no excess amount remaining in the system due to which the system does not regenerate an LPT with Payment Type as Excess.
-
No LPTs are reversed if there is an LPT that is not accessible due to the EventReversalCount limit
Let us understand this scenario with the help of an example by looking at the following order of actions created in the system:
-
Let us say there is a contract LA-1 that has the following LPTs:
LPT-1 in January
LPT-2 in February
LPT-3 in March
LPT-4 in April
LPT-5 in May
Let us say that the EventReversalCount set on the org is 3.
ACH return file with LPT-1 and LPT-4 is received.
-
As the EventReversalCount is 3, the system reverses LPT-5, LPT-4, and then LPT-3, and not able to go beyond that. Thus, it is not able to reverse the required LPT-1 and throws an error:
Error in Batch_Process_Log__c : 'Loan Payment LPT-1 can not be accessed with Event Reversal Count.'
The contract is then removed from processing and none of the LPTs are reversed or reapplied.
-
-
The system does not support more than one LPT reversal through an ACH return file if the Enable Adjustment Entry flag is set to true
Let us understand this scenario with the help of an example by looking at the following order of actions created in the system:
Let us say more than one LPT are received as part of the ACH return file for a contract that has the Enable Adjustment Entry flag set to true.
-
In this case, the system displays an error message as follows:
Error in Batch_Process_Log__c : 'For Loan Account LAI-1(CL Contract ID) Out of Order Reversal not allowed as Adjustment Entry is Enabled.'
And the system removed this contract from the ACh return file processing.