mariiaKraievska commented on code in PR #4954: URL: https://github.com/apache/fineract/pull/4954#discussion_r2276409084
########## fineract-doc/src/docs/en/chapters/features/contract-termination.adoc: ########## @@ -0,0 +1,259 @@ += Contract Termination + +== Overview + +Contract Termination in Apache Fineract is a loan management feature that allows financial institutions to terminate loan contracts. When applied to loans with unpaid installments, this functionality accelerates the maturity date and makes the outstanding loan balance immediately due as of the termination date. + +== Purpose + +This functionality enables financial institutions to: + +* Terminate loan contracts when required by business rules +* Accelerate payment schedules by making outstanding balances immediately due +* Maintain proper loan status tracking and accounting +* Support charge-off and recovery operations on terminated loans + +== Supported Loan Type + +[IMPORTANT] +==== +Contract Termination is only supported for: + +* Progressive Loan Schedules +* Active loan accounts + +Other loan schedule types and inactive loan states are not supported. +==== + +== Business Rules + +=== Eligibility Requirements + +Contract termination can only be applied when: + +* *Loan Status*: The loan must be in `Active` status +* *Schedule Type*: Only `Progressive` loan schedule type is supported +* *Not Charged Off*: Loan must not be in charged-off state +* *Not Already Terminated*: Loan must not already have contract termination applied + +=== Termination Date Rules + +* Contract termination can only be done as of the current business date +* Backdated termination is not allowed +* No future-dated termination permitted + +=== Schedule Impact + +When contract termination is applied: + +* *Maturity Acceleration*: If unpaid installments exist, the loan maturity date is accelerated to the termination date +* *Interest Calculation*: Interest is calculated only until the contract termination date +* *Maturity Date Updated*: The loan maturity date is updated to the contract termination date +* *Principal Outstanding*: The full outstanding principal balance becomes due +* *Delinquency Bucketing*: Continues as per the new accelerated schedule + +=== Post-Termination Operations + +After contract termination: + +* *Charge-off Allowed*: Terminated loans can be charged off +* *Charge-backs Allowed*: Terminated loans support charge-back transactions +* *Future Installments*: All installments scheduled after termination date are removed from the schedule +* *Accrual Activities*: Accrual and accrual activity transactions stop after termination +* *Backdated Payments*: Backdated payments and reversals are allowed +* *Contract Termination Reversal*: The termination can be undone/reversed + +=== Special Handling + +==== Post-Maturity Termination + +If contract termination is done after the original maturity date: + +* No schedule acceleration occurs (installments and maturity date remain unchanged) +* Interest calculation follows normal rules up to the original maturity date +* The loan remains in its current state without forced acceleration + +==== Contract Termination Reversal + +* Contract termination can be undone/reversed +* Schedule will be recalculated and reapplied accordingly +* All associated transactions are properly reversed and replayed + +== Transaction Types + +=== Contract Termination Transaction + +The Contract Termination transaction in Apache Fineract performs the following actions: + +* *Accelerates Payment Schedule*: Makes all outstanding amounts immediately due +* *Creates Distinct Transaction*: Tracked separately with transaction type "Contract Termination" +* *Updates Loan Sub-Status*: Changes loan sub-status to `CONTRACT_TERMINATION` (value: 900) +* *Triggers Schedule Recalculation*: Updates repayment schedule with accelerated terms +* *No Accounting Entries*: Contract termination itself does not generate accounting entries +* *Stops Accrual Activity*: Interest accrual and accrual activities cease after termination + Review Comment: Perhaps we should also mention that during the processing of a “Contract Termination” transaction, depending on the situation, either an ‘Accrual’ or “Accrual Adjustment” transaction can be additionally created and journal entries and bussiness events for it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
