Expected Payments

This object represents the expected loan payments on due dates. Expected payments are what we expect to receive from a borrower on a specific date. Expected payments are created as a result of loan amortization. The amounts and due dates can change during lifetime of a loan. For example, a borrower might change due dates frequency from monthly to weekly and it will lower periodic payment amount.

Get loan expected payments

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[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^ext-|^[A-Z]{2}-[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.

Responses
200

Success

get/people/{personId}/loans/{loanId}/expected-payments
Response samples
application/json
{
  • "count": 0,
  • "data": {
    }
}

Change due dates schedule

Change due date allows the customer to change the frequency of a loan and/or the specific day(s) that due dates will fall on.

For accounts/loans with frequency!=singleTerm (aka non-single term), modifications to the expected payments schedule resulting from Change Due Date do not impact the current period. Changes are only effective starting in the next period.

For accounts/loans with frequency=singleTerm, only specific days can be modified. The change impacts the current (single) period of the loan. The caller must pass dueDatesFrequency=singleTerm.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[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^ext-|^[A-Z]{2}-[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
previewMode
boolean
Default: false

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

dueDatesFrequency
string
Default: "monthly"

The frequency of due dates.

Enum: "weekly" "everyTwoWeeks" "twiceMonthly" "monthly" "singleTerm"
specificDays
Array of any or null

Specific days designates 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).

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 number 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].

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.

agreementDocumentId
string

The document desciptor ID corresponding to the accepted loan term change agreement. This is required unless previewMode=true or isShowRevisedTermsOnFrequencyChange=false on the loan type.

caseId
string

An identifier for an existing case.

sendNotice
boolean
Default: true

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

Responses
200

Success

post/people/{personId}/loans/{loanId}/expected-payments
Request samples
application/json
{
  • "previewMode": false,
  • "dueDatesFrequency": "weekly",
  • "specificDays": [
    ],
  • "agreementDocumentId": "string",
  • "caseId": "string",
  • "sendNotice": true
}
Response samples
application/json
{
  • "count": 0,
  • "data": {
    }
}

Get draw expected payments

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[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^ext-|^[A-Z]{2}-[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.

drawId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The draw identifier.

Responses
200

Success

get/people/{personId}/loans/{loanId}/draws/{drawId}/expected-payments
Response samples
application/json
{
  • "count": 0,
  • "data": {
    }
}

Defer single due date

Defer single due date takes the amount in a selected due date and defers the amount to another due date in the future. The deferral amount can be moved to an existing due date or alternatively, to a new due date added after the last existing due date. These two options are mutually exclusive.

Fees associated with the amount in the period to be deferred will not be moved.

Only applicable to installment loans.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[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^ext-|^[A-Z]{2}-[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
previewMode
boolean
Default: false

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

selectedDueDate
required
string <date>

The selected due date to defer. It can be the due date of the current period or a future due date in the loan schedule.

newDueDate
string <date>

The proposed new due date, chosen from an existing due date after the selected date. The addAfterLastDueDate field should be toggled to false if utilizing this option.

addAfterLastDueDate
boolean
Default: false

true to move the new due date to a date after the last due date. The date will be calculated based upon the existing loan cadence. The newDueDate field should be left empty if utilizing this option.

agreementDocumentId
string

The document desciptor ID corresponding to the accepted loan term change agreement.

waiveFee
boolean
Default: false

true to charge a fee for deferral of a due date. The fee amount is defined as part of the loan type.

sendNotice
boolean
Default: true

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

caseId
string

An identifier for an existing case.

Responses
200

Success

post/people/{personId}/loans/{loanId}/defer-due-date
Request samples
application/json
{
  • "previewMode": false,
  • "selectedDueDate": "2019-08-24",
  • "newDueDate": "2019-08-24",
  • "addAfterLastDueDate": false,
  • "agreementDocumentId": "string",
  • "waiveFee": false,
  • "sendNotice": true,
  • "caseId": "string"
}
Response samples
application/json
{
  • "count": 0,
  • "data": {
    }
}

Change loan terms

Change loan terms creates a customer payment plan for the borrower. There are several options:

The first option is passing in duration, which we use to calculate the new recurring amount going forward. The second option is passing in the recurringAmount, which we use to calculate the the remaing duration of the loan. The third option is not passing either duration or recurringAmount, in which case the behavior is similar to the Change Due Date endpoint.

Unlike the Change Due Date endpoint, for the Change Loan Terms endpoint, any modifications to the amount in the expected payments schedule resulting from Change Loan Terms are effective from the current period. But modifications to the dueDate in the expected payments schedule are only effective starting in the next period.

For all three options, it is optional to specify a new frequency and/or specific days. Passing in duration and recurring amount at the same time is an invalid request. Change loan terms will cancel any due date deferrals for the current or future periods.

Only applicable to installment loans.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[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^ext-|^[A-Z]{2}-[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
previewMode
boolean
Default: false

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

dueDatesFrequency
string
Default: "monthly"

The frequency of due dates.

Enum: "weekly" "everyTwoWeeks" "twiceMonthly" "monthly" "singleTerm"
specificDays
Array of any or null

Specific days designates 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).

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 number 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].

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.

agreementDocumentId
string

The document desciptor ID corresponding to the accepted loan term change agreement. This is required unless previewMode=true or isShowRevisedTermsOnFrequencyChange=false on the loan type.

caseId
string

An identifier for an existing case.

sendNotice
boolean
Default: true

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

recurringAmount
number <float>

The requested recurring amount under the new payment plan.

duration
number <integer>

The remaining duration - in months starting from the current day - under the new payment plan.

Responses
200

Success

post/people/{personId}/loans/{loanId}/payment-plan
Request samples
application/json
{
  • "previewMode": false,
  • "dueDatesFrequency": "weekly",
  • "specificDays": [
    ],
  • "agreementDocumentId": "string",
  • "caseId": "string",
  • "sendNotice": true,
  • "recurringAmount": 0,
  • "duration": 0
}
Response samples
application/json
{
  • "count": 0,
  • "data": {
    }
}

Defer schedule

Defer schedule allows lenders to shift the entire expected payments schedule. There are two use cases:

Defer during the first period of the loan. In this scenario we "extend" the first period by the requested buffer (while honoring frequency and specific days). As a result, the first due date will be shifted in the future (and all subsequent due dates).

Defer after the first period has passed. In this scenario, we defer all due dates that fall between "today's date" and "today's date + buffer days" to the end of the loan one by one. It will extend the term of the loan by the number of periods equal to number of due dates that were deferred. If the current date falls on a due date, it will not be deferred as the period has ended.

Only applicable to installment loans.

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
personId
required
string^ext-|^[A-Z]{2}-[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^ext-|^[A-Z]{2}-[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
previewMode
boolean
Default: false

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

bufferToPushOutSchedule
required
number or null <integer>

When deferring during the first period, this represents the number of calendar days that will be added to today's date. The resulting date will be used to push out due dates (today's date + buffer days). Interest will continue to accrue.

When deferring after the first period, we defer all due dates that fall between "today's date" and "today's date + buffer days" to the end of the loan one by one. If the current date falls on a due date, it will not be deferred as the period has ended.

agreementDocumentId
string

The document desciptor ID corresponding to the accepted loan term change agreement.

waiveFee
boolean
Default: false

true to charge a deferral fee. The fee amount is defined as part of the loan type.

sendNotice
boolean
Default: true

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

caseId
string

An identifier for an existing case.

Responses
200

Success

post/people/{personId}/loans/{loanId}/defer-schedule
Request samples
application/json
{
  • "previewMode": false,
  • "bufferToPushOutSchedule": 0,
  • "agreementDocumentId": "string",
  • "waiveFee": false,
  • "sendNotice": true,
  • "caseId": "string"
}
Response samples
application/json
{
  • "count": 0,
  • "data": {
    }
}