Skip to main content
PUT
/
loans
/
{id}
cURL
curl --request PUT \
  --url https://api.example.com/loans/{id} \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "originalFundedAmount": 123,
  "originalTotalOwed": 123,
  "interestRate": 123,
  "apr": 123,
  "originationDate": "2023-12-25",
  "startDate": "2023-12-25",
  "totalBalance": 123,
  "payoffAmount": 123,
  "totalPayoffAmount": 123,
  "balanceAtTransfer": 123,
  "preTransferPayments": 123,
  "dueDate": "2023-12-25",
  "stopServicingReason": "<string>",
  "isSettled": true,
  "chargeoffDate": "2023-12-25",
  "chargeoffAmount": 123,
  "autopayEnabled": true,
  "noCallReason": "<string>",
  "noTextReason": "<string>",
  "noEmailReason": "<string>",
  "isVisibleInBorrowerPortal": true,
  "daysPastDueAtBoarding": 123,
  "daysSinceOriginationAtBoarding": 123,
  "externalLmsMetadata": {}
}
'
{
  "id": "<string>",
  "customerId": "<string>",
  "type": "<string>",
  "applicationStatus": "<string>",
  "originalFundedAmount": 123,
  "originalTotalOwed": 123,
  "interestRate": 123,
  "apr": 123,
  "originationDate": "2023-12-25",
  "startDate": "2023-12-25",
  "totalBalance": 123,
  "payoffAmount": 123,
  "totalPayoffAmount": 123,
  "balanceAtTransfer": 123,
  "preTransferPayments": 123,
  "amountDue": 123,
  "dueDate": "<string>",
  "servicingStatus": "<string>",
  "stopServicingReason": "<string>",
  "isSettled": true,
  "chargeoffDate": "<string>",
  "chargeoffAmount": 123,
  "autopayEnabled": true,
  "noCallReason": "<string>",
  "noTextReason": "<string>",
  "noEmailReason": "<string>",
  "isVisibleInBorrowerPortal": true,
  "daysPastDueAtBoarding": 123,
  "daysSinceOriginationAtBoarding": 123,
  "externalLmsMetadata": {},
  "portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "paymentPlanMinPercentage": 123,
  "paymentPlanMaxPercentage": 123,
  "taskType": "<string>"
}

Overview

Partially update a loan by its external reference ID. Only the fields that changed need to be sent — omitted fields are left unchanged.

Immutable Fields

The following fields cannot be changed via this endpoint:
  • id — The external loan reference (used as the path parameter)
  • customerId — The customer linkage
  • amountDue — The origination amount set at creation

Servicing Status Transitions

Setting servicingStatus to NOT_SERVICING via this endpoint also cancels all scheduled payments and communications for the loan, matching the behavior of POST /loans/{id}/cancel-servicing. You can optionally include stopServicingReason (defaults to API_REQUEST). For stopping servicing specifically, the dedicated POST /loans/{id}/cancel-servicing endpoint remains the primary path.

Request Body

Only send the fields you want to update:
{
  "totalBalance": 300.00,
  "payoffAmount": 300.00,
  "isSettled": false
}
Transition to NOT_SERVICING:
{
  "servicingStatus": "NOT_SERVICING",
  "stopServicingReason": "PAID_OFF"
}

Error Responses

Status CodeDescription
400Invalid enum value
404Loan not found
500Internal server error

Authorizations

X-API-Key
string
header
required

Path Parameters

id
string
required

External reference ID of the loan

Body

application/json

Fields to update

Partial update. Only send fields that changed. id, customerId, amountDue cannot be changed.

type
enum<string>
Available options:
CASH_ADVANCE,
PERSONAL_LOAN,
INSTALLMENT_LOAN
applicationStatus
enum<string>
Available options:
PENDING,
APPROVED,
FUNDED,
WITHDRAWN,
REJECTED
originalFundedAmount
number
originalTotalOwed
number
interestRate
number
apr
number
originationDate
string<date>
startDate
string<date>
totalBalance
number
payoffAmount
number
totalPayoffAmount
number
balanceAtTransfer
number
preTransferPayments
number
dueDate
string<date>
servicingStatus
enum<string>
Available options:
ACTIVE,
NOT_SERVICING
stopServicingReason
string
isSettled
boolean
chargeoffDate
string<date>
chargeoffAmount
number
autopayEnabled
boolean
noCallReason
string
noTextReason
string
noEmailReason
string
isVisibleInBorrowerPortal
boolean
daysPastDueAtBoarding
integer
daysSinceOriginationAtBoarding
integer
externalLmsMetadata
object

Response

Loan updated

id
string

External loan reference ID

customerId
string

External customer reference ID

type
string
applicationStatus
string
originalFundedAmount
number
originalTotalOwed
number
interestRate
number
apr
number
originationDate
string<date>
startDate
string<date>
totalBalance
number
payoffAmount
number
totalPayoffAmount
number
balanceAtTransfer
number
preTransferPayments
number
amountDue
number
dueDate
string
servicingStatus
string
stopServicingReason
string
isSettled
boolean
chargeoffDate
string
chargeoffAmount
number
autopayEnabled
boolean
noCallReason
string
noTextReason
string
noEmailReason
string
isVisibleInBorrowerPortal
boolean
daysPastDueAtBoarding
integer
daysSinceOriginationAtBoarding
integer
externalLmsMetadata
object
portfolioId
string<uuid>
paymentPlanMinPercentage
number
paymentPlanMaxPercentage
number
taskType
string