Skip to content

FINERACT-2476: Enable Group Savings Accounts as Guarantors with Guarantee Percentage Requirements#5827

Open
rhopman wants to merge 1 commit intoapache:developfrom
symbaglobal:FINERACT-2476-group-savings-account-guarantor
Open

FINERACT-2476: Enable Group Savings Accounts as Guarantors with Guarantee Percentage Requirements#5827
rhopman wants to merge 1 commit intoapache:developfrom
symbaglobal:FINERACT-2476-group-savings-account-guarantor

Conversation

@rhopman
Copy link
Copy Markdown
Contributor

@rhopman rhopman commented May 6, 2026

Group savings accounts should be usable as guarantors regardless of guarantee percentage requirements, as long as:

  • The guarantor account is active
  • Sufficient funds are available
  • The account is not in a restricted state
  • Standard guarantor business rules are met (excluding self-guarantee check for group accounts)

Checklist

  • Write the commit message as per our guidelines
  • Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
  • Create/update unit or integration tests for verifying the changes made.
  • Follow our coding conventions.
  • Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
  • This PR must not be a "code dump". Large changes can be made in a branch, with assistance. Ask for help on the developer mailing list.

Copy link
Copy Markdown
Member

@Aman-Mittal Aman-Mittal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please address review comments and also maintain documentation in fineract-doc

I think we can discuss this usecase more in dev list

return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
}

@SuppressWarnings({ "rawtypes", "unchecked" })
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why we are suppressing warnings here


// TODO: Rewrite to use fineract-client instead!
// Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long,
// org.apache.fineract.client.models.PostLoansLoanIdRequest)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think You should not write anymore test cases here.

|| guarantorFundingDetails.getStatus().isCompleted()) {
if (guarantor.isSelfGuarantee()) {
SavingsAccount savingsAccount = guarantorFundingDetails.getLinkedSavingsAccount();
if (savingsAccount.isGroupAccount()) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just trying to understand the intended business behavior here:

for client loans, if the borrower belongs to the same group whose savings account is being used as guarantee, should that still be classified as an external guarantee?

Right now it looks like only loan.getGroupId() is considered for self-guarantee classification.

if (savingsAccount.isGroupAccount()) {
// Group loan with the same group's savings account → self-guarantee
// Client loan or different group's savings → external guarantee
if (loan.getGroupId() != null && loan.getGroupId().equals(savingsAccount.getGroupId())) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right now code seems to be handling

Case Classification
Group loan + same group savings self
Client loan + same group savings external

Please confirm me about this case I am also new to this logic

Case Classification
Client belongs to same guarantor group maybe self / partial self

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants