Autopay

This object represents the current Autopay plan. The current Autopay plan must be canceled before creating a new plan. The autopay cadence can be aligned to due dates or can be on a different payment schedule.

Create Autopay plan

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

Request Body schema: application/json
required
Any of:
previewMode
boolean
Default: false

In previewMode=true, the loan doesn't change, and no changes are saved to the database.

isAlignedToDueDates
boolean

true - the Autopay payments will be aligned and processed on the loan's due dates.

false - the Autopay payments schedule will be different from the loan's due dates schedule.

If isAlignedToDueDates=false then paymentFrequency and specificDays must be provided.

If the frequency and specific days of autopay matches the loan, we assume that it is isAlignedToDueDates=true.

paymentFrequency
string

The Autopay payments frequency.

Enum: "weekly" "everyTwoWeeks" "twiceMonthly" "monthly"
Array of (string or null) or integers or null (SpecificDays)

Specific days designate the day(s) that due dates will fall on. The allowed values for specific day(s) depends on the paymentFrequency.

weekly - provide one number in the valid range 1-7. 1=Monday...7=Sunday.

For example: [1].

everyTwoWeeks - provide two inputs. The first input (required) is an integer in the valid range 1-7. 1=Monday...7=Sunday.

The second input is a date that indicates when to start the cycle. If the second input is not passed, the system will default to the first valid start date based on the first input (the day of week passed in). If this date is provided then it can override the minimum due date gap specified on the loan type.

For example: [1, "2020-09-16"].

twiceMonthly - provide two numbers in the valid range 1-31. 1=first day of a month. Use 31 to indicate the last day of a month.

For example: [1, 15] or [15, 31].

monthly - provide one or two numbers, depending on the loan type periodCalculationType configuration:

  • If periodCalculationType=dueDate, then provide one number in the valid range 1-31. This is the recurring due date. 1=first day of a month. Use 31 to indicate the last day of a month. For example: [1].
  • If periodCalculationType=statementDate, then provide one number in the valid range 1-31. This is the recurring statement date. 1=first day of a month. Use 31 to indicate the last day of a month. For example: [1].
  • If periodCalculationType=fixedStatementAndDueDates, then provide two numbers. First number represents a recurring statement date and the valid range is 1-31. Use 31 to indicate the last day of a month. Second number represents a recurring due date and the valid range is 1-28. Two numbers must be different. For example: [1, 15] - statements are on 1st and due dates are on 15th. Notes:
    • If the due date precedes the statement day, it's pushed to the next month. For example: [20, 10] and today is Oct 1, 2024. The first statement date is Oct 20, 2024 and the first due date is Nov 10th.
    • For February in non-leap years, if the statement date is ≥ 29 and the due date is 28, the statement date becomes March 1st.

singleTerm - provide one number to indicate duration as a number of calendar days or provide a valid calendar date in the future. This option is only valid for use on the installment type and at loan origination. For example: [90] or ["2020-09-16"].

For weekly, everyTwoWeeks, twiceMonthly, monthly: If specificDays is left null, then the system will calculate due dates according to the paymentFrequency relative to the origination or activation date (or use existing specific days in the case of change due date).

For singleTerm: The specificDays is mandatory.

paymentInstrumentId
required
string

The payment instrument ID with which this autopay plan will be charged through.

agreementDocumentId
string

The document ID for the signed autopay agreement. Required if previewMode=false.

caseId
string

An identifier for an existing case.

sendNotice
boolean
Default: true

When set to false, the system will NOT send a autopayEnabled notice to the borrower.

Responses
200

Success

post/people/{personId}/loans/{loanId}/autopay
Request samples
application/json
{
  • "previewMode": false,
  • "isAlignedToDueDates": true,
  • "paymentFrequency": "weekly",
  • "specificDays": [
    ],
  • "paymentInstrumentId": "string",
  • "agreementDocumentId": "string",
  • "caseId": "string",
  • "sendNotice": true
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get Autopay plan

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

query Parameters
statuses
Array of strings
Default: ["booked","modified"]

The comma separated list of status values of autopay expected payments to include in the results, which are merged by date. All autopay expected payments can still be accessed in the individualEntries field.

Items Enum: "booked" "skipped" "canceled" "modified" "draft" "processed"
Responses
200

Success

get/people/{personId}/loans/{loanId}/autopay
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update Autopay plan

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

Request Body schema: application/json
required
paymentInstrumentId
required
string

The payment instrument ID with which this autopay plan will be charged through.

agreementDocumentId
required
string

The document ID for the signed autopay agreement. Required if previewMode=false.

caseId
string

An identifier for an existing case.

sendNotice
boolean
Default: true

When set to false, the system will NOT send a autopayPaymentMethodUpdated notice to the borrower.

Responses
200

Success

put/people/{personId}/loans/{loanId}/autopay
Request samples
application/json
{
  • "paymentInstrumentId": "string",
  • "agreementDocumentId": "string",
  • "caseId": "string",
  • "sendNotice": true
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Cancel Autopay plan

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

loanId
required
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

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

query Parameters
cancellationReason
string
Default: "canceledByUser"

The cancellation reason.

Enum: "invalidPaymentMethod" "paymentMethodRemoved" "tooManyFailedAttempts" "loanFrozen" "loanAccelerated" "loanChargedOff" "loanPaidOff" "canceledByUser" "loanTermsChanged"
caseId
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

The case object unique identifier.

sendNotice
boolean
Default: true

When set to false, the system will NOT send a autopayCanceledBySystem notice to the borrower.

Responses
204

Success

delete/people/{personId}/loans/{loanId}/autopay

Request sandbox access