Loans
Add loan
Create a new loan
POST
{base url}/v1/loans
Headers
Authorization header*
string
API user secret key
Request Body
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
Authorization header*
string
API user secret key
Path Param
loanId*
String
id of the loan to be updated
Request Body
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
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
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
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
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
loanId
uuid
id of the loan
Request Body
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
loanId
uuid
id of the loan
Request Body
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
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
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
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
Authorization header
*
API secret key
Request Param
loanId
uuid
id of the loan
Body
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
Was this helpful?