Loans

Add loan

Create a new loan

POST {base url}/v1/loans

Headers

NameTypeDescription

Authorization header*

string

API user secret key

Request Body

NameTypeDescription

loanProductId*

String

loan product id

name*

String

loan name

amount*

Number

loan amount(major)

interestRate

Number

loan interest rate

moratorium

Number

loan moratorium

tenure

Number

loan tenure

accountHolder*

String

id of the client/company

accountHolderType*

String

clients/companies

{
    "responseCode": "00",
    "status": "success",
    "message": "loan created successfully",
    "data": {
        "organizationId": "aee1a803-3835-4195-b732-a19f7c3702c8",
        "accountHolderType": "clients",
        "loanName": "third loan with repayment schedule",
        "amount": 10000,
        "accountNumber": "16050926853",
        "accountHolder": "d4c9f36f-ffbb-4c85-87cb-97c8fee6b9ad",
        "interestRate": 12,
        "moratorium": 6,
        "tenure": 90,
        "tranches": null,
        "state": "PENDING",
        "customData": {},
        "document": null,
        "depositAccount": null,
        "loanProductId": "798ca840-07c7-4226-ba10-52b722d8d968",
        "balances": {
            "totalAccruedFees": 0,
            "totalAccruedPenalty": 0,
            "totalAccruedinterest": 0,
            "totalPrincipalBalance": 10000
        },
        "gracePeriod": null,
        "riskState": null,
        "comment": null,
        "writtenOffDate": null,
        "approvedDate": null,
        "disbursedDate": null,
        "declinedDate": null,
        "nextRepaymentDate": null,
        "lastRepaymentDate": null,
        "id": "bd63129a-41d5-417c-a48a-c8377a901390",
        "totalDue": 0,
        "totalPaid": 0,
        "status": "inactive",
        "created_at": "2024-03-12T13:51:00.529Z",
        "updated_at": "2024-03-12T13:51:00.529Z"
    }
}

Update loan

PATCH {base url}/v1/loans

Update a single loan

Headers

NameTypeDescription

Authorization header*

string

API user secret key

Path Param

NameTypeDescription

loanId*

String

id of the loan to be updated

Request Body

NameTypeDescription

state*

string

Possible values are: APPROVED, DECLINED.

comment

text

{"message":"Loan updated successfully"}

Get all loan accounts

Get all loan accounts

GET {base url}/v1/loans

Get all loan accounts

{
    "responseCode": "00",
    "status": "success",
    "message": "Loans fetch successful",
    "data": [
        {
            "id": "bb630816-db35-4fe8-acdd-773a0387cdbd",
            "organizationId": "a5f38f16-6c44-408f-b7ff-6775f02b83ac",
            "loanName": "testing",
            "loanProductId": "fed36374-fcd2-4fac-a820-8100a6ae97af",
            "amount": 3000,
            "totalDue": 0,
            "totalPaid": 0,
            "accountNumber": "0000000427",
            "accountHolderType": "companies",
            "accountHolder": "05768940-15ed-450c-8d8e-70f36ffffff8",
            "tenure": 20,
            "customData": {},
            "document": null,
            "tranches": null,
            "status": "inactive",
            "state": "PENDING",
            "riskState": "PERFOMRING",
            "created_at": "2023-08-23T14:55:11.358Z",
            "updated_at": "2023-08-23T14:55:11.358Z",
            "firstName": null,
            "lastName": null,
            "clientkey": null,
            "name": "chowDeck",
            "accountholdername": "chowDeck",
            "companykey": "05768940-15ed-450c-8d8e-70f36ffffff8",
            "loanproductname": "test45",
            "currency": "NGN"
        }
    ]
}

Get loan account details

Get loan account details

GET {base url}/v1/loans

Get loan account details

Path Parameters

NameTypeDescription

loanId*

string

id of the loan.

{
    "responseCode": "00",
    "message": "Loan fetch successful",
    "data": {
        "id": "e7837f5f-5793-4b0f-bfc7-5f1e4926ace3",
        "organizationId": "ab3b150e-6a5d-429f-b499-f2d6ea99f668",
        "loanName": "No fees loan",
        "loanProductId": "29afa5b5-4d1b-4971-b407-bf421513a669",
        "amount": 100000,
        "totalDue": 0,
        "totalPaid": 0,
        "interestRate": 0,
        "gracePeriod": null,
        "accountNumber": "0000002825",
        "accountHolder": "a3ffa926-14ae-4a82-a9b7-9b27c7df7867",
        "accountHolderType": "clients",
        "tenure": 2,
        "customData": {
            "3rd": "33",
            "fffff": "ttgggg3",
            "4th boolean": "3333",
            "loan custom": "https://res.cloudinary.com/dtui4qk9s/image/upload/v1701709300/uploads/idmcp0elm7hi74jjubik.png"
        },
        "balances": {
            "totalAccruedFees": 0,
            "totalAccruedPenalty": 0,
            "totalAccruedinterest": 0,
            "totalPrincipalBalance": 0
        },
        "tranches": null,
        "status": "inactive",
        "document": null,
        "state": "WRITTENOFF",
        "riskState": "PERFOMRING",
        "comment": null,
        "created_at": "2023-12-04T17:01:43.122Z",
        "updated_at": "2023-12-07T16:55:10.568Z",
        "firstName": "no ref",
        "lastName": "client",
        "clientkey": "a3ffa926-14ae-4a82-a9b7-9b27c7df7867",
        "name": null,
        "accountholdername": null,
        "companykey": null,
        "loanproductname": "No fees loan",
        "currency": "NGN"
    }
}

Get loan schedule

Get loan schedule

GET {base url}/v1/loans/{loanId}/repayments

Request Param

NameTypeDescription

loanId

uuid

id of the loan.

{
    "responseCode": "00",
    "message": "Loan fetch successfully",
    "data": [
        {
            "id": "3df52413-295e-4de6-8230-6d9853265aef",
            "loanId": "e7837f5f-5793-4b0f-bfc7-5f1e4926ace3",
            "principal": 0,
            "interest": 0,
            "fee": 0,
            "penalty": 0,
            "totalDue": 0,
            "totalPaid": 0,
            "state": "WRITTENOFF",
            "dueDate": "2023-12-20",
            "created_at": "2023-12-04T17:01:43.122Z",
            "updated_at": "2023-12-07T16:55:10.228Z"
        },
        {
            "id": "39fa7101-a79d-4521-b285-bef2849309d7",
            "loanId": "e7837f5f-5793-4b0f-bfc7-5f1e4926ace3",
            "principal": 0,
            "interest": 0,
            "fee": 0,
            "penalty": 0,
            "totalDue": 0,
            "totalPaid": 0,
            "state": "WRITTENOFF",
            "dueDate": "2024-01-03",
            "created_at": "2023-12-04T17:01:43.122Z",
            "updated_at": "2023-12-07T16:55:10.228Z"
        }
    ]
}

Get loan transactions

Get loan transactions

GET {base url}/v1/loans/transactions

Get loan transactions

Query Parameters

NameTypeDescription

accountNumber*

string

account number generated for the loan.

{
    "status": "success",
    "message": "Transactions fetched successfully",
    "data": [],
    "pagination": {
        "currentPage": 1,
        "perPage": 15,
        "totalCount": 0,
        "totalPages": 0,
        "previousPage": 0,
        "nextPage": 0
    }
}

Get loan balances

Get loan balances

GET {base url}/v1/loans/{loanId}/balances

Get loan balances

Request Param

NameTypeDescriopiton

loanId

uuid

id of the loan

{
    "responseCode": "00",
    "message": "Loan balances fetch successfully",
    "data": {
        "balances": {}
    }
}

Repay loan

Repay loan

POST {base url}/v1/loans/transaction/{loanId}/repay

Repay loan

Request Param

NameTypeDescription

loanId

uuid

id of the loan

Request Body

NameTypeDescription

channel

string

id of the channel attached when disbursing internal loan.

amount*

number

amount(major)

{
    "responseCode": "00",
    "message": "loan repayment successful"
}

Loan payoff

Loan payoff

POST {base url}/v1/loans/transaction/{loanId}/payoff

Loan payoff

Request Param

NameTypeDescription

loanId

uuid

id of the loan

Request Body

NameTypeDescription

channel

string

channel

amount*

number

amount(major)

{
    "responseCode": "00",
    "message": "loan payoff successful"
}

Loan WriteOff

POST {base url}/v1/loans/transaction/{loanId}/payoff

Loan write-off

Request Body

NameTypeDescription

amount*

number

amount (major)

{
    "responseCode": "00",
    "message": "loan writeoff successful"
}

loan topup

Loan topup

POST {base url}/v1/loans/transaction/{loanId}/topup

Loan topup

Request Body

NameTypeDescription

amount *

number

loan amount (major)

interest

number

interest

tenure

number

tenure

firstRepaymentDate

string

first repayment date

{
    "responseCode": "00",
    "message": "Loan topup succesfull"
}

Liquidate loan

Liquidate loan

POST {base url}/v1/loans/transaction/{loanId}/liquidate

Liquidate loan

Request Body

NameTypeDescription

amount *

number

loan amount (major)

channel

string

channel

{
    "responseCode": "00",
    "message": "loan liquidate succesfull"
}

disburse loan

Disburse loan

POST {base url}/v1/loans/transaction/{loanId}/disburse

disburse loan

Headers

NameValue

Authorization header *

API secret key

Request Param

NameTypeDecsription

loanId

uuid

id of the loan

Body

NameTypeDescription

type *

string

type (INTERNAL/EXTERNAL)

accountNumber

string

nuban account number is required if type is INTERNAL

narration

string

narration

channel

string

channel is required if type is INTERNAL

changeFirstRepaymentDate *

boolean

change repayment date

firstRepaymentDate

string

new first repayment date. required if changeFirstRepaymentDate is set to true.

Response

{
    "responseCode": "00",
    "message": "Loan disbursed succesfully"
}

Last updated