Cosmic Module

O

Qubits of DPK

March 23, 2026

Core Open Source

What This Module Is (Big Picture)

The guarantor module manages people who guarantee loans.
A guarantor is someone who:
  • agrees to take responsibility for a loan
  • provides additional security for the lender
  • may be required to cover the loan if the borrower defaults
This module manages:
  • guarantor definitions
  • linking guarantors to loans
  • tracking guarantee amounts
  • validating guarantee coverage

Layman Example

Customer A applies for a loan of ₹10,000.
The bank requires a guarantor.
Customer B agrees to act as guarantor.
If Customer A fails to repay, Customer B becomes responsible.
The fineract-guarantor module manages this relationship.

Where the Code Lives

Key Package

org.apache.fineract.portfolio.guarantor
Responsibilities include:
  • managing guarantor records
  • linking guarantors to loans
  • tracking guarantee limits
  • validating guarantor coverage

Core Domain Entity:

Guarantor.java

Path
fineract-guarantor/src/main/java/org/apache/fineract/portfolio/guarantor/domain/Guarantor.java
This entity represents a person guaranteeing a loan.

Key fields on

Guarantor

Types of Guarantees

Fineract supports multiple types of guarantors.

Example Guarantor Validation

If loan amount = ₹10,000
Guarantor may guarantee:
₹5,000
Multiple guarantors may combine to guarantee the full loan.
Example
Total guarantee = ₹10,000

Example Guarantee Validation Code

java
QUBITS OF DPK
1public boolean isGuaranteeSufficient(BigDecimal loanAmount, BigDecimal totalGuarantee) {
2    return totalGuarantee.compareTo(loanAmount) >= 0;
3}
This checks whether guarantor coverage is enough for the loan.

Linking Guarantors to Loans

Guarantors are associated with a loan account.
Example relationship
Loan
Guarantors
Client IDs
This allows the system to track which clients are backing a loan.

API Layer

Main controller
GuarantorApiResource
Example endpoints
java
QUBITS OF DPK
1GET  /v1/loans/{loanId}/guarantors
2POST /v1/loans/{loanId}/guarantors
3PUT  /v1/loans/{loanId}/guarantors/{guarantorId}
4DELETE /v1/loans/{loanId}/guarantors/{guarantorId}
These APIs allow administrators to:
  • add guarantors
  • update guarantors
  • remove guarantors
  • retrieve guarantor information

Read Services

Read services retrieve guarantor information.
Examples include:
  • retrieving guarantors for a loan
  • retrieving guarantor details
  • calculating total guarantees
These services are used during loan approval.

Write Services

Write services manage guarantor relationships.
Responsibilities include:
  • creating guarantor records
  • linking guarantors to loans
  • updating guarantee amounts
  • removing guarantors

Repository Layer

Exceptions

These ensure loan guarantees remain valid.

How It All Connects (Full Flow)

Example: Adding a guarantor to a loan
java
QUBITS OF DPK
1Loan Service
2Loan application
34Guarantor Service
5Add guarantor
67Guarantee Validation
8Check coverage
910Database (guarantor table)

Why This Module Matters

Guarantors reduce lending risk.
Financial institutions use guarantors to:
  • reduce default risk
  • increase borrower accountability
  • secure loans without collateral
This is extremely common in microfinance lending models.

One-Sentence Summary

fineract-guarantor manages loan guarantors who provide additional security by agreeing to repay the loan if the borrower defaults.