1. Loan Booking
Core Banking Services
  • Introduction
  • Terminologies
  • Webhooks
  • Authentication
  • Account
    • Product List
      GET
    • Create Account
      POST
    • Update Account
      PUT
    • Find Client
      POST
    • Accounts
      GET
    • Create Additional Account
      POST
    • Account Details By BVN
      GET
    • Get Client Addresses
      GET
    • Get Account Details
      GET
    • Get Account Summary
      GET
    • Client Images
      GET
    • Update BVN
      POST
    • Update Transaction Limit
      POST
    • Client Notifications
      PUT
    • Activate Client Account
      POST
    • Add Client Address
      POST
    • Update Client Address
      PUT
    • Get Full Account Details
      GET
    • Get Full Account Details By NUBAN
      GET
    • Upload Client Passport
      POST
    • Update NIN
      POST
    • Create Client
      POST
    • Get Directors
      GET
    • Create Directors
      POST
    • Update Directors
      PUT
    • Delete Director
      DELETE
    • Get Genders
      GET
    • Get Signatories
      GET
    • Create Signatories
      POST
    • Delete Signatory
      DELETE
    • Get Template
      GET
  • KYC
    • Get KYC Info
    • Update KYC
    • Get KYC Level
    • Auto Verify KYC
    • Get KYC Comparison Details
    • Face Comparison
    • Get KYC Info
    • Get KYC Settings
    • Get KYC Info
    • Create Face Liveness Session
    • Get KYC Log Details
    • Get KYC Logs
    • Set KYC Level
    • Set KYC Log Status
  • Transaction
    • Payment Types
    • Debit Account
    • Credit Account
    • Transaction History
    • Transaction Details [Legacy]
    • Transaction Details
    • Get All Transactions
  • Transfer
    • Interbank Transfer
      • Get Institutions
      • Name Inquiry
      • Interbank Transfer
      • InterBank Transfer Query
      • Transfer Details
      • Bulk Interbank Transfer
    • Intrabank Transfer
      • IntraBank Transfer
      • Intrabank Transfer To Virtual Accounts
      • Query Intrabank Transfer Status
      • Intrabank Transfer To Virtual Accounts
      • Query Intrabank Transfer To Virtual Account Status
  • Account Restrictions
    • Block Debit
    • Unblock Debit
    • Hold Amount
    • Release Amount
    • Block Account
    • Block Account Credits
    • Unblock Account
    • Unblock Account Credits
  • Reporting
    • Report Types
    • Get Report Parameters
    • Create Report
    • Report Details
    • Get Reports
  • Organisation
    • Get Address Types
    • Get Offices
    • Get States
  • Loans
    • Loans Guide
    • Loan Booking
      • Submit Loan Application
        POST
      • Update Loan Application
        PUT
      • Delete Loan Application
        DELETE
      • Approve Loan
        POST
      • Assign Loan Officer
        POST
      • Reject Loan
        POST
    • Loan Management
      • List Customer's Loans
      • Calculate Loan Schedule
      • Retrieve Loan
      • Disburse Loan
      • Disburse Loan to Savings
      • Recover From Guarantors
      • Calculate Loan Schedule with Term Variations
      • Create Loan Term Variations
      • Remove All Loan Term Variations
      • Unassign Loan Officer
      • Undo Loan Approval
      • Undo Loan Disbursal
      • Withdraw Loan
    • Loan Transactions
      • Foreclose Loan
      • Loan Pre-Closure Template
      • Make Loan Recovery Payment
      • Refund Active Loan by Cash
      • Enter Loan Repayment
      • Undo Loan Write-Off
      • Waive Loan Interest
      • Write Off Loan
      • Retrieve Loan Transaction
      • Adjust Loan Transaction
    • Loan Reschedule
      • Create Loan Reschedule Request
      • Retrieve Loan Reschedule Request
      • Approve Loan Reschedule Request
      • Preview Loan Reschedule
      • Reject Loan Reschedule Request
  • Schemas
    • Client
    • Product
    • ClientNotificationsRequest
    • ClientNotificationsResponse
    • ErrorDetail
    • ErrorResponse
    • ValidationErrorResponse
    • LoanCustomer
    • LoanApplicationRequest
    • LoanApproveRequest
    • LoanRejectRequest
    • LoanWithdrawRequest
    • LoanNoteRequest
    • LoanAssignOfficerRequest
    • LoanUnassignOfficerRequest
    • LoanDisburseRequest
    • LoanTransactionRequest
    • LoanAdjustTransactionRequest
    • LoanDateNoteRequest
    • LoanPassthroughRequest
    • LoanRescheduleRequest
    • LoanRescheduleApproveRequest
    • LoanRescheduleRejectRequest
    • LoanCommandResult
    • Loan
    • LoanSummary
    • LoanTransaction
    • LoanRescheduleRequestData
    • LoanSchedule
    • LoanTemplate
  1. Loan Booking

Approve Loan

POST
/core/loans/{loanAccountNo}/approve
Approves a loan application.
The customer is named with exactly one of clientId or nuban (the number of one of the customer's savings accounts). The loan must belong to that customer, otherwise the request is refused with 403.

Path Parameters#

Field NameTypeRequiredDescription
loanAccountNostringTRUEThe loan's account number, as returned when the loan was created.

Request Body#

Field NameTypeRequiredDescription
clientIdintegerFALSEThe customer's client id. Required if nuban is not sent.
nubanstringFALSENUBAN of one of the customer's savings accounts. Required if clientId is not sent.
approvedOnDatestringFALSEFormat yyyy-MM-dd. Defaults to today.
approvedLoanAmountnumberFALSEAmount approved, 0.01 or greater. Defaults to the amount applied for.
expectedDisbursementDatestringFALSEFormat yyyy-MM-dd.
notestringFALSENote recorded against the operation.

Response Body#

Field NameTypeDescription
loanAccountNostringAccount number of the loan.
loanIdintegerInternal loan id.
clientIdintegerCustomer the loan belongs to.
resourceIdintegerId of what was created or changed.
changesobjectThe fields that changed.
commandIdintegerPresent instead of the change when the operation is waiting for approval.

Request

Authorization
OAuth 2.0
Client Credentials
Add the parameter
Authorization
to Headers
,whose value is to concatenate the Token after the Bearer.
Example:
Authorization: Bearer ********************
Token URL: {{tpGatewayHostUrl}}/security/authenticate
or
Path Params

Body Params application/json

Example
{
  "clientId": 42,
  "approvedOnDate": "2026-11-06",
  "approvedLoanAmount": 45000,
  "note": "Approved after credit review"
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/core/loans/000000059/approve' \
--header 'Content-Type: application/json' \
--data '{
  "clientId": 42,
  "approvedOnDate": "2026-11-06",
  "approvedLoanAmount": 45000,
  "note": "Approved after credit review"
}'

Responses

🟢200Approved
application/json
Approved
Bodyapplication/json

Example
{
  "officeId": 1,
  "clientId": 42,
  "loanId": 7,
  "loanAccountNo": "000000059",
  "resourceId": 7,
  "changes": {
    "status": {
      "id": 200,
      "code": "loanStatusType.approved",
      "value": "Approved"
    }
  }
}
🟠400Validation failed
🟠401The merchant's account has not been granted this operation,
🟠403The loan is not the customer's, or your API user does not ha
🟠404Not found
🔴500The request could not be completed
Modified at 2026-11-08 04:52:40
Previous
Delete Loan Application
Next
Assign Loan Officer
Built with