Skip to main content

Reference

Smart Loans

Enterprise only

Bank-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

GET/v1/lending/products

Catalog of lending products offered through the integration.

Query parameters

FieldTypeRequiredNotes
limitintegernoDefault 20, max 50.
offsetintegernoSkip 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

GET/v1/lending/eligibility

Returns 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

POST/v1/lending/apply

Submits a loan application against a pre-qualified offer.

Body

FieldTypeRequiredNotes
offerIdstringyesFrom the eligibility response.
requestedAmountKobointegeryesMust be ≤ offer maxAmountKobo.
requestedTenorMonthsintegeryes
purposestringyesFree-form purpose description.
documentsarrayyes{ type, storageRef }[] — Firebase Storage refs to uploaded docs.
disbursementAccountIdstringyesBank account to receive proceeds.
repaymentAccountIdstringyesBank account for auto-debit.
acceptedTermsbooleanyesMust be true.

Response — 201

Returns applicationId, status: "submitted", submittedAt, and an estimatedDecisionDate. A loan.application.submitted webhook fires.

List active smart loans

GET/v1/lending/loans

Returns active loans for the business with amortization schedules.

Query parameters

FieldTypeRequiredNotes
limitintegernoDefault 50, max 100.
offsetintegerno
statusstringnoactive, fully_paid, defaulted, restructured.

Get a single loan

GET/v1/lending/loans/{loanId}

Full loan document with complete amortization schedule and installment history.

Sync disbursement

POST/v1/lending/loans/{loanId}/disbursement-sync

Called 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

FieldTypeRequired
externalReferencestringyes
productCodestringyes
principalKobointegeryes
interestRatenumberyes
tenorMonthsintegeryes
monthlyRepaymentKobointegeryes
disbursementDatestring (ISO)yes
disbursementAccountIdstringyes
repaymentAccountIdstringyes
installmentSchedulearrayyes

Sync repayment

POST/v1/lending/loans/{loanId}/repayment-sync

Called 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

GET/v1/lending/loans/{loanId}/covenants

Returns 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

GET/v1/lending/metrics

Returns 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

Reference index

Back to all modules