Loans

Add loan

Create a new loan

POST {base url}/v1/loans

Headers

Name
Type
Description

Authorization header*

string

API user secret key

Request Body

Name
Type
Description

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

loanApplicationDate

string

application date

{
    "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

Name
Type
Description

Authorization header*

string

API user secret key

Path Param

Name
Type
Description

loanId*

String

id of the loan to be updated

Request Body

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Descriopiton

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

Name
Type
Description

loanId

uuid

id of the loan

Request Body

Name
Type
Description

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

Name
Type
Description

loanId

uuid

id of the loan

Request Body

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Value

Authorization header *

API secret key

Request Param

Name
Type
Decsription

loanId

uuid

id of the loan

Body

Name
Type
Description

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.

disburseDate

string

loan disburse date

Response

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

Last updated