Skip to main content
POST
cURL

Overview

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

What Gets Cancelled

When you call this endpoint, the following actions are taken for all loans owned by the customer:
  • Loan Status: Sets all loans’ servicing status to NOT_SERVICING
  • Stop Reason: Records the reason for stopping servicing (defaults to API_REQUEST)
  • Scheduled Payments: Cancels all pending scheduled payments
  • 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 loans 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 each loan’s existing stop reason.

Use Cases

  • Customer has paid off all their loans
  • Customer is leaving the platform entirely
  • Customer filed for bankruptcy
  • Fraud has been detected across the customer’s accounts
  • Customer is deceased
  • Customer requested to be removed from all 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 each affected 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 the total count of all cancelled items across all loans:

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 customer

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

Customer servicing cancelled successfully

id
string
required

Customer ID (reference_id)

loansUpdated
integer
required

Number of loans set to NOT_SERVICING

Example:

3

stopServicingReason
string
required

Reason for stopping servicing

Example:

"PAID_OFF"

cancelledScheduledPayments
integer
required

Total scheduled payments cancelled across all loans

Example:

9

cancelledCallSchedules
integer
required

Total call schedules cancelled

Example:

3

cancelledEmailSchedules
integer
required

Total email schedules cancelled

Example:

3

cancelledSmsSchedules
integer
required

Total SMS schedules cancelled

Example:

3

cancelledCalls
integer
required

Total scheduled calls cancelled

Example:

15

cancelledEmails
integer
required

Total scheduled emails cancelled

Example:

6

cancelledSms
integer
required

Total scheduled SMS cancelled

Example:

9