Reference
Smart Loans
Enterprise onlyBank-partner lending module — product catalog, eligibility checks, applications, disbursement/repayment sync, covenant monitoring.
Smart Loans connects your bank partner's lending engine to Finora Business's real-time GL. Loan products are defined by the lender; pre-qualification, disbursement sync, and repayment sync use Finora Business's journal entries to keep the borrower's books accurate.
List loan products
/v1/lending/productsCatalog of lending products offered through the integration.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
limit | integer | no | Default 20, max 50. |
offset | integer | no | Skip N results. |
Response — 200
Each product includes productCode, minAmountKobo / maxAmountKobo,
interestRateRange, tenorRange, eligibilityCriteria,
requiredDocuments, and features. See smart-loans.ts for the full
shape.
Check eligibility
/v1/lending/eligibilityReturns pre-qualified offers computed from live Finora Business financials — revenue consistency, cash runway, debt ratios, receivables quality.
Response — 200
{
"success": true,
"data": {
"businessId": "biz_001",
"lendingMetrics": {
"revenueConsistency": 0.87,
"monthlyAvgRevenueKobo": 450000000,
"expenseToRevenueRatio": 0.62,
"debtToEquity": 0.3,
"cashRunwayDays": 45,
"overdueReceivablesPercent": 0.08
},
"offers": [
{
"offerId": "offer_001",
"productCode": "WCF-2026",
"maxAmountKobo": 500000000,
"interestRate": 22.5,
"tenorMonths": 12,
"monthlyRepaymentKobo": 46750000,
"expiresAt": "2026-05-09T23:59:59.000Z",
"preQualificationScore": 78
}
]
}
}Offers are time-limited. Submit the application before expiresAt or call
/eligibility again to recompute.
Submit a loan application
/v1/lending/applySubmits a loan application against a pre-qualified offer.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
offerId | string | yes | From the eligibility response. |
requestedAmountKobo | integer | yes | Must be ≤ offer maxAmountKobo. |
requestedTenorMonths | integer | yes | |
purpose | string | yes | Free-form purpose description. |
documents | array | yes | { type, storageRef }[] — Firebase Storage refs to uploaded docs. |
disbursementAccountId | string | yes | Bank account to receive proceeds. |
repaymentAccountId | string | yes | Bank account for auto-debit. |
acceptedTerms | boolean | yes | Must be true. |
Response — 201
Returns applicationId, status: "submitted", submittedAt, and an
estimatedDecisionDate. A loan.application.submitted webhook fires.
List active smart loans
/v1/lending/loansReturns active loans for the business with amortization schedules.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
limit | integer | no | Default 50, max 100. |
offset | integer | no | |
status | string | no | active, fully_paid, defaulted, restructured. |
Get a single loan
/v1/lending/loans/{loanId}Full loan document with complete amortization schedule and installment history.
Sync disbursement
/v1/lending/loans/{loanId}/disbursement-syncCalled by the bank partner when a loan is disbursed from core banking. Creates the Finora Business loan and posts the GL entry.
Posts DR Bank (1010) / CR Loan Liability (2050) for the disbursed
principal and fires the loan.disbursed webhook. Idempotent on
externalReference — duplicate calls return the existing loan.
Body
| Field | Type | Required |
|---|---|---|
externalReference | string | yes |
productCode | string | yes |
principalKobo | integer | yes |
interestRate | number | yes |
tenorMonths | integer | yes |
monthlyRepaymentKobo | integer | yes |
disbursementDate | string (ISO) | yes |
disbursementAccountId | string | yes |
repaymentAccountId | string | yes |
installmentSchedule | array | yes |
Sync repayment
/v1/lending/loans/{loanId}/repayment-syncCalled by the bank partner when an auto-debit is collected. Updates the loan balance and posts the GL entry.
Posts DR Loan Liability / DR Interest Expense / CR Bank and fires
loan.repayment.received.
Get loan covenants
/v1/lending/loans/{loanId}/covenantsReturns covenant compliance status computed from live Finora Business data.
Statuses are compliant (within threshold), warning (within 10% of
threshold), or breached. When a covenant transitions to breached, a
loan.covenant.breached webhook fires. Each covenant includes a 6-month
history array for trend visualisation.
Lending metrics
/v1/lending/metricsReturns the raw lending intelligence metrics used by the eligibility engine.
Response — 200
Includes revenueConsistency, monthlyAvgRevenueKobo,
expenseToRevenueRatio, debtToEquity, cashRunwayDays,
outstandingReceivablesKobo, overdueReceivablesPercent,
existingLoanBalanceKobo, and seasonalVariance — all computed from the
last 6 months of journal entries.
403 response for retail keys
{
"success": false,
"error": {
"code": "ENTERPRISE_ONLY",
"message": "This endpoint requires an enterprise subscription. Contact sales at https://finorabusiness.com/contact",
"requestId": "req_..."
}
}Building an SME lending product?
Smart Loans is designed for bank and fintech partners with their own credit engine. Finora Business provides the real-time financial data and GL automation. Contact sales to discuss the integration.
Related endpoints
- Business Intelligence — the scoring that feeds the eligibility engine
- Loans (retail) — the simpler retail loan CRUD
- Webhooks —
loan.disbursed,loan.repayment, covenant events
Reference index
Back to all modules