Skip to content

Close loan

Request

Closing a loan

  • For line of credit - Prevents new draws from being opened and closes existing draws to block new purchases.
  • For installment loan with multiple advances - Prevents new advances from being created and cancels existing scheduled advances.
  • Stops further credit extension while maintaining existing balances and payment obligations.

After closing a line of credit, the loan and all its draws will automatically transition to paidOff status once all of the following conditions are met:

  • The line and all its draws have no outstanding balance.
  • There are no pending transactions on the line or any of its draws.
  • There are no pending, authorized, or blocking disputed purchases on the line or any draw.
  • There are no open bankruptcy cases associated with the line.

A line of credit or any of its draws in paidOff status cannot be reopened.

Security
oauth2(Required scopes: loan:close) or bearerAuth or apiKeyHeader
Path
personIdstring(AnyId)^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+$write-onlyrequired

A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

loanIdstring(AnyId)^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+$write-onlyrequired

The unique identifier of the Loan we wish to retrieve. Can be Peach or lender's external identifier.

Bodyapplication/jsonrequired
caseIdstring

An identifier for an existing case.

closeReasonstring(CloseReason)

The description of the reason why the account was closed. If passed, the closeReason value will be used in the locLineClosed communication template. Make sure to phrase the copy as a full sentence or paragraph.

closeReasonDetailsstring(CloseReasonDetails)

The reason why the account was closed. The reasons:

  • requestedByBorrower - a borrower requested to close the account.
  • inactivity - the account was closed by lender due to inactivity.
  • terms - the account was closed by lender because it was created with wrong terms or terms changed later (e.g. re-underwriting, charge off, bankruptcy).
  • technicalIssue - the account was closed by lender due to a technical issue.
  • fraud - the account was closed by lender due to fraud.
  • other - the account was closed by lender due to a reason not listed above.
Default:"other"
Enum:"requestedByBorrower""inactivity""terms""technicalIssue""fraud""other"
closeRequestedByBorrowerboolean or null(CloseRequestedByBorrower)

Set to true if a borrower requested to close the account. Note: This attribute has been deprecated, and you should use closeReasonDetails instead.

  • If you pass both closeRequestedByBorrower and closeReasonDetails, the system will ignore the closeRequestedByBorrower attribute.
  • If you pass closeRequestedByBorrower but not closeReasonDetails, the system will set closeReasonDetails=requestedByBorrower.
closedAtstring, (date-time)(LoanCloseClosedAt)

The timestamp when the line of credit or draw was closed in your legacy system. Can only be set on loans with migrationStatus=prepMigration. Must be at least one second after the loan's activation and cannot be in the future. Defaults to the current time.

sendNoticeboolean(LoanCloseSendNotice)

When set to true, the system will send a locLineClosed notice to the borrower.

Default:true
POST
/people/{personId}/loans/{loanId}/close
curl -i -X POST \
  'https://sandboxapi.peach.finance/api/people/{personId}/loans/{loanId}/close' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "caseId": "string",
    "closeReason": "string",
    "closeReasonDetails": "requestedByBorrower",
    "closeRequestedByBorrower": true,
    "closedAt": "2019-08-24T14:15:22Z",
    "sendNotice": true
  }'

Responses

Success no content