Run in Apidog
Submits a loan application for a customer. When the customer is given as nuban, the loan is paid out to that savings account on Disburse Loan to Savings ; with a clientId, send linkedNuban for that. The response carries the new loan's loanAccountNo, which identifies the loan in every other request. The customer is named with exactly one of clientId or nuban (the number of one of the customer's savings accounts). With a clientId, linkedNuban must be an account of that customer, otherwise the request is refused with 403. Request Body# Field Name Type Required Description clientIdinteger FALSE The customer's client id. Required if nuban is not sent. nubanstring FALSE NUBAN of one of the customer's savings accounts. Required if clientId is not sent. linkedNubanstring FALSE Savings account to pay the loan out to when the customer is given as clientId. Must belong to that customer. productIdinteger TRUE Loan product. principalnumber TRUE Amount applied for. Must be 0.01 or greater. loanTermFrequencyinteger TRUE Length of the loan, in units of loanTermFrequencyType. loanTermFrequencyTypeinteger TRUE Unit of the loan term: 0 days, 1 weeks, 2 months, 3 years. numberOfRepaymentsinteger TRUE Number of repayments. repaymentEveryinteger TRUE Time between repayments, in units of repaymentFrequencyType. repaymentFrequencyTypeinteger TRUE Unit between repayments: 0 days, 1 weeks, 2 months. expectedDisbursementDatestring TRUE Format yyyy-MM-dd. interestRatePerPeriodnumber FALSE Interest rate per period. amortizationTypeinteger FALSE 0 equal principal payments, 1 equal installments. interestTypeinteger FALSE 0 declining balance, 1 flat. interestCalculationPeriodTypeinteger FALSE 0 daily, 1 same as the repayment period. transactionProcessingStrategyCodestring FALSE How repayments are applied. submittedOnDatestring FALSE Format yyyy-MM-dd. Defaults to today. loanTypestring FALSE Defaults to individual. externalIdstring FALSE Your own reference for the loan.
Response Body# Field Name Type Description loanAccountNostring Account number of the loan. loanIdinteger Internal loan id. clientIdinteger Customer the loan belongs to. resourceIdinteger Id of what was created or changed. changesobject The fields that changed. commandIdinteger Present instead of the change when the operation is waiting for approval.
Request 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
Body Params application/json
{
"nuban" : "0000000206" ,
"productId" : 1 ,
"principal" : 50000 ,
"loanTermFrequency" : 6 ,
"loanTermFrequencyType" : 2 ,
"numberOfRepayments" : 6 ,
"repaymentEvery" : 1 ,
"repaymentFrequencyType" : 2 ,
"interestRatePerPeriod" : 2 ,
"amortizationType" : 1 ,
"interestType" : 0 ,
"interestCalculationPeriodType" : 1 ,
"expectedDisbursementDate" : "2026-11-10" ,
"externalId" : "LN-2026-0001"
} Request Code Samples
curl --location '/core/loans' \
--header 'Content-Type: application/json' \
--data '{
"nuban": "0000000206",
"productId": 1,
"principal": 50000,
"loanTermFrequency": 6,
"loanTermFrequencyType": 2,
"numberOfRepayments": 6,
"repaymentEvery": 1,
"repaymentFrequencyType": 2,
"interestRatePerPeriod": 2,
"amortizationType": 1,
"interestType": 0,
"interestCalculationPeriodType": 1,
"expectedDisbursementDate": "2026-11-10",
"externalId": "LN-2026-0001"
}' Responses
{
"officeId" : 1 ,
"clientId" : 42 ,
"loanId" : 7 ,
"loanAccountNo" : "000000059" ,
"resourceId" : 7
}
Modified at 2026-11-08 04:52:29