Skip to main content

Reference

Loans

Loan accounts with disbursement and repayment tracking. GL posts automatically.

The loans module tracks money borrowed or lent. Principal disburses on creation (or a separate disbursement event), and each repayment splits into principal and interest with the right GL posting.

List loans

GET/v1/loans

Returns all loans on the books.

Query parameters

FieldTypeRequiredNotes
businessIdstringyes
statusstringnoactive, closed, defaulted.
limitintegernoDefault 50, max 100.

Response — 200

{
  "success": true,
  "data": {
    "loans": [
      {
        "id": "loan_abc",
        "loanNumber": "LOAN-2026-001",
        "counterparty": "First Bank",
        "direction": "borrowed",
        "principalKobo": 500_000_000,
        "interestRate": 18,
        "interestType": "reducing_balance",
        "termMonths": 24,
        "startDate": "2026-01-01T00:00:00.000Z",
        "endDate": "2028-01-01T00:00:00.000Z",
        "outstandingKobo": 425_000_000,
        "status": "active",
        "createdAt": "2026-01-01T09:00:00.000Z"
      }
    ],
    "count": 1
  }
}

Get a single loan

GET/v1/loans/{id}

Fetches one loan with amortization summary.

Create a loan

POST/v1/loans

Records a loan. Disbursement JE posts on status `active`.

Body

FieldTypeRequiredNotes
counterpartystringyesLender name or borrower name.
directionstringyesborrowed or lent.
principalnumberyesNaira.
interestRatenumberyesAnnual percentage.
interestTypestringnoflat or reducing_balance. Defaults to reducing_balance.
termMonthsintegeryesLoan term in months.
startDateISO 8601yes
disburseOnCreatebooleannoIf true, sets status to active and posts the disbursement JE. Defaults to true.
notesstringno

Record a repayment

POST/v1/loans/{id}/repayments

Records a loan repayment. Splits into principal and interest and posts the JE.

Body

FieldTypeRequiredNotes
amountnumberyesTotal repayment in naira.
principalAmountnumbernoOverride the computed split.
interestAmountnumbernoOverride the computed split.
paymentDateISO 8601noDefaults to today.
paymentMethodstringnoSame list as other payment-taking endpoints.
referencestringno

If you omit principalAmount and interestAmount, the API splits the payment using the loan's schedule.

Related endpoints

Reference index

Back to all modules