Skip to main content
POST
/
v1
/
lms
/
loans
Originate a loan
curl --request POST \
  --url https://{baasHost}/api/v1/lms/loans \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "customerId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "productCode": "PERSONAL_LOAN_001",
  "principal": 100000,
  "numberOfRepayments": 3,
  "repaymentFrequency": "MONTHS",
  "expectedDisbursementDate": "2026-03-15",
  "createWalletProductCode": "CSAV",
  "fspFundId": 1
}
'
{
  "loanId": "5c9e2b3c-4d5e-6f7a-8b9c-1d2e3f4a5b6c",
  "externalLoanId": "45",
  "state": "PENDING",
  "customerId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "productId": 1
}

Authorizations

Authorization
string
header
required

Bearer token from POST /generate-token. Expires ~1h; on 401, re-generate and retry once.

Body

application/json
productCode
string
required
principal
number
required

Loan principal amount (e.g. 100000).

customerId
string<uuid>
numberOfRepayments
integer
repaymentEvery
integer
repaymentFrequency
enum<string>
Available options:
DAYS,
WEEKS,
MONTHS,
YEARS
interestRatePerPeriod
number
expectedDisbursementDate
string

yyyy-MM-dd

Strategy B: attach an existing wallet.

createWalletProductCode
string

Strategy C: auto-provision a wallet + auto-sweep standing instruction. Temporarily unavailable — open a wallet and use linkWalletId instead.

fspFundId
integer

Response

Loan created