Skip to main content
POST
cURL

Overview

This endpoint cancels servicing for a specific loan, stopping all automated communications and scheduled payments. Use this when a loan should no longer be actively serviced by the platform. This is a collections operation. To close an origination application that was funded, withdrawn, or rejected, use Close Origination instead. To stop servicing every loan a customer owns, use Cancel Customer Servicing.

What Gets Cancelled

When you call this endpoint, the following actions are taken:
  • Loan Status: Sets the loan’s servicing status to NOT_SERVICING
  • Stop Reason: Records the reason for stopping servicing (defaults to API_REQUEST)
  • Scheduled Payments: Cancels all pending scheduled payments for the loan
  • Scheduled Calls: Cancels all pending scheduled calls
  • Scheduled Emails: Cancels all pending scheduled emails
  • Scheduled SMS: Cancels all pending scheduled SMS messages
  • Call Schedules: Cancels all active loan call schedules
  • Email Schedules: Cancels all active loan email schedules
  • SMS Schedules: Cancels all active loan SMS schedules
  • Borrower Portal: Hides the loan from the borrower portal
Payment-plan records remain in place; their unpaid scheduled installments are cancelled. Payments already submitted to a processor are not reversed. Repeated requests recheck payment and communication cleanup while preserving an existing stop reason.

Use Cases

  • Customer has paid off their loan in full
  • Loan has been sold to another servicer
  • Customer filed for bankruptcy
  • Fraud has been detected on the account
  • Customer is deceased
  • Customer is in the military (SCRA protection)
  • Loan was created by mistake and needs to be removed from servicing

Stop Servicing Reasons

You can optionally provide a reason for stopping servicing. Retrieve the current accepted values with List Stop Servicing Reasons instead of hardcoding a list. The same catalog applies to loan and customer cancellation. Send the selected case-sensitive string as reason; omitting it defaults to API_REQUEST. This records a stop reason; it does not invoke the corresponding bankruptcy, dispute, or other flag workflow.

Request Body

The request body is optional. If not provided, the reason defaults to API_REQUEST.
note is optional free-form text, trimmed before storage, with a limit of 2,000 characters. Omit it or send null when no note is needed; blank notes are rejected. Common SSN, card/account-number, email and phone patterns are redacted before storage in the loan’s servicing audit history. Redaction is pattern-based, not a guarantee of removing every sensitive detail. An identical repeated request does not duplicate the latest audit entry. A different note is retained even if servicing was already stopped, without replacing the original stop reason.

Response

The response includes counts of all cancelled items:

Error Responses

For 422 responses, detail is a string when the supplied reason is not accepted, or an array of validation errors when the request body has an invalid type or structure (for example, {"reason": 123}). Each validation error includes loc (the field location), msg (the message), and type (the error code); additional fields may be present. Clients should handle both forms.

Authorizations

X-API-Key
string
header
required

Path Parameters

id
string
required

External reference ID of the loan to cancel servicing for

Body

application/json

Optional reason for stopping servicing. Defaults to API_REQUEST if not specified.

reason
enum<string>

Reason for stopping servicing. Retrieve current accepted values with GET /loans/stop-servicing-reasons. Defaults to API_REQUEST if not specified.

Available options:
PAID_OFF,
BANKRUPTCY,
FRAUD_CLAIM,
MILITARY,
DECEASED,
INCARCERATED,
DEBT_MANAGEMENT_COMPANY,
NO_LOGIN_2M,
NO_PAYMENT_OR_PLAN_3M,
NO_PLAN_PAYMENT_2M,
NO_PAYMENT_OR_PLAN_4M,
SOLD_OFF,
MISTAKE,
DEBT_DISPUTE,
COMPLAINT_TRIGGER,
HISTORICAL_INELIGIBLE,
DUPLICATE,
REFUSES_TO_PAY,
API_REQUEST,
LMS_CLOSED,
DATA_DEFECT_HOLD,
COERCED_DEBT_CLAIM,
TRANSFERRED_TO_FINOSU
Example:

"PAID_OFF"

note
string | null

Optional free-form audit note (1–2000 characters after trimming). Common financial-secret and contact-detail patterns are redacted before storage. Does not change the selected reason or invoke a flag workflow.

Required string length: 1 - 2000
Example:

"Servicing recalled at the lender's request."

Response

Loan servicing cancelled successfully

id
string
required

Loan external reference ID

servicingStatus
string
required

New servicing status (NOT_SERVICING)

Example:

"NOT_SERVICING"

stopServicingReason
string
required

Reason for stopping servicing

Example:

"PAID_OFF"

cancelledScheduledPayments
integer
required

Number of scheduled payments cancelled

Example:

3

cancelledCallSchedules
integer
required

Number of call schedules cancelled

Example:

1

cancelledEmailSchedules
integer
required

Number of email schedules cancelled

Example:

1

cancelledSmsSchedules
integer
required

Number of SMS schedules cancelled

Example:

1

cancelledCalls
integer
required

Number of scheduled calls cancelled

Example:

5

cancelledEmails
integer
required

Number of scheduled emails cancelled

Example:

2

cancelledSms
integer
required

Number of scheduled SMS cancelled

Example:

3