Skip to main content

Loans

The loan system supports six product types with a multi-level approval workflow. Users apply, upload documents, and track their application through approval levels — from loan officer to board.

Loan Products

ProductAmount RangeTypical TenureApproval Speed
Quick Cash₦5,000 – ₦500,0001–6 months24 hours
Personal₦100,000 – ₦10,000,0003–36 months3–5 days
Salary Advance₦10,000 – ₦200,0005 daysSame day
Mortgage₦1,000,000+60–360 months2–4 weeks
Asset FinanceVaries12–60 months1–2 weeks
Business₦500,000 – ₦50,000,0006–60 months1–2 weeks

List Available Products

GET /api/v1/loan-products

Calculate Repayment

GET /api/v1/loan-products/:id/calculator?amount=500000&tenureMonths=12
{
"success": true,
"data": {
"requestedAmount": 500000.00,
"tenureMonths": 12,
"interestRate": 18.5,
"monthlyRepayment": 45833.33,
"totalInterest": 50000.00,
"totalRepayment": 550000.00
}
}

Application Flow

                    ┌───────────┐
│ Eligibility│
│ Check │
└─────┬─────┘

┌─────▼─────┐
│ Submit │
│Application │
└─────┬─────┘

┌─────▼─────┐
│ Upload │
│ Documents │
└─────┬─────┘

┌───────────▼───────────┐
│ Approval Workflow │
│ (multi-level review) │
└───────────┬───────────┘

┌────────┼────────┐
▼ ▼
┌──────────┐ ┌──────────┐
│ Approved │ │ Rejected │
└────┬─────┘ └──────────┘

┌─────▼─────┐
│Disbursement│
│ (to wallet)│
└─────┬─────┘

┌─────▼─────┐
│ Repayment │
│ Schedule │
└───────────┘

Step 1: Check Eligibility

GET /api/v1/loans/eligibility
{
"success": true,
"data": {
"eligible": true,
"maxAmount": 2000000.00,
"availableProducts": ["quick_cash", "personal", "salary_advance"],
"existingLoans": 0,
"creditScore": 720
}
}

Step 2: Submit Application

curl -X POST https://api.korastratum.com/api/v1/banking/loans/apply \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: fmfb" \
-H "Content-Type: application/json" \
-d '{
"productType": "personal",
"requestedAmount": 500000.00,
"tenureMonths": 12,
"loanPurpose": "Business expansion",
"employmentStatus": "self_employed",
"monthlyIncome": 200000.00
}'

Response:

{
"success": true,
"data": {
"applicationId": "d4c3b2a1-...",
"applicationNumber": "LN20260227001",
"status": "submitted",
"approvalStatus": "pending",
"requestedAmount": 500000.00,
"approvedAmount": null,
"tenure": 12,
"interestRate": null,
"approvalLevel": "loan_officer",
"nextReviewDate": "2026-02-28T00:00:00Z",
"documents": {
"required": ["proof_of_income", "bank_statement", "id_document"],
"uploaded": []
}
}
}

Step 3: Upload Documents

POST /api/v1/loans/documents/upload

Submit as multipart/form-data with the loan application ID and document type.

Step 4: Track Approval

GET /api/v1/loans/approval-status

Approval Workflow

The required approval level depends on the loan amount:

Amount RangeApproval Level
≤ ₦500,000Loan Officer
≤ ₦2,000,000Senior Loan Officer
≤ ₦10,000,000Branch Manager
≤ ₦50,000,000Regional Manager
≤ ₦100,000,000Credit Committee
> ₦100,000,000Board

Applications progress through levels automatically. Each level can approve, reject, or escalate.

Disbursement

Once approved, the loan amount is credited directly to the user's primary wallet. The response includes the approved terms:

{
"success": true,
"data": {
"applicationId": "d4c3b2a1-...",
"status": "disbursed",
"approvedAmount": 500000.00,
"interestRate": 18.5,
"monthlyRepayment": 45833.33,
"firstPaymentDate": "2026-03-27",
"disbursementWalletId": "a1b2c3d4-..."
}
}

Repayment

View Schedule

GET /api/v1/loans/repayment-schedule
{
"success": true,
"data": {
"schedule": [
{
"installment": 1,
"dueDate": "2026-03-27",
"principal": 41666.67,
"interest": 4166.67,
"total": 45833.33,
"status": "pending"
}
],
"totalPrincipal": 500000.00,
"totalInterest": 50000.00,
"totalAmount": 550000.00
}
}

Make a Payment

POST /api/v1/loans/repay
{
"loanId": "d4c3b2a1-...",
"amount": 45833.33,
"sourceWalletId": "a1b2c3d4-..."
}

List User's Loans

GET /api/v1/loans

Returns all loans with their current status, outstanding balance, and next payment date.

Next Steps