Rates

This object represents the interest and promo rates of the loan. You can modify interest and promo rates at any time. If a rate is modified or added with an effective date in the past, we will recalculate loan balances retroactively and future expected payments from the effective date. If a rate is modified or added with effective date in the future, we will recalculate future expected payments only.

Add loan rate

This endpoint is used for adding rates. A loan can have multiple rates. If two or more interestRate overlap on the same date we use the lowest value. If two or more promoRate overlap on the same date, we take the sum of the promo rates for the given day, and cap this rate at the maximum interest rate for the given day (to avoid accruing negative interest).

The added interestRate must be within the bounds of any corresponding minimum and maximum rate range configuration that is found on the loan type (if any).

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
object (Interest rate)

An interest rate on a loan.

The system will treat the provided value according on the interest type that was set at the time of origination (see atOrigination.interestType attribute.)

To remind, interestType can have one of the following values: absolute or spread.

absolute - interest rates defined as absolute will use the value as provided in the annualRate attribute without adding the Index Interest Rate.

  • Negative interest annualRate value is not allowed.
  • If the provided annualRate is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.

spread - interest rates defined as spread will calculate an absolute rate by adding the relative loan rate (aka spread) provided in the annualRate attribute to the Index Interest Rate effective on the date the interest is accrued. In case the Index Interest Rate is not set, the system will assume that the Index Interest Rate value is zero on the date the interest is accrued.

  • Negative interest spread annualRate value is allowed, but the system will default to zero if the addition of the Index Interest Rate still results in a negative rate.
  • If the calculated absolute rate, annualRate (aka spread) plus Index Interest Rate, is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.
object (Promo rate)

A promo rate on a loan. If the annual interest rate is 0.25 and the promo rate for the corresponding period is 0.05, the net interest rate after application of the promo rate would be 0.2.

caseId
string

An identifier for an existing case.

Responses
201

Success

post/people/{personId}/loans/{loanId}/rates
Request samples
application/json
{
  • "interestRate": {
    },
  • "promoRate": {
    },
  • "caseId": "string"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get loan rates

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.

Responses
200

Success

get/people/{personId}/loans/{loanId}/rates
Response samples
application/json
{
  • "data": {
    }
}

Get loan effective rates

This endpoint returns rates details of a loan for a given date(s). Interest rates: If two or more interest rates are active on the same date (aka overlap), the Peach system selects the lowest rate (also called effective rate) to accrue interest. Promo rates: If two or more promo rates are active on the same date (aka overlap), the Peach system sums up the rates as "effective" promo rate.

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
fromDate
string <date>

The from date. Pass the same value in the fromDate and toDate if you need to get the rates for a specific date.

toDate
string <date>

The to date. Pass the same value in the fromDate and toDate if you need to get the rates for a specific date.

Responses
200

Success

get/people/{personId}/loans/{loanId}/effective-rates
Response samples
application/json
{
  • "data": {
    }
}

Update loan rate

This endpoint is used for updating a single interest or promo rate. (don't pass both in the same call). The updating of an interest rate cannot lead to a gap in the loan where there is no reference interest rate.

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.

rateId
required
string

Unique identifier of an interest or promo rate.

Request Body schema: application/json
required
object (Interest rate)

An interest rate on a loan.

The system will treat the provided value according on the interest type that was set at the time of origination (see atOrigination.interestType attribute.)

To remind, interestType can have one of the following values: absolute or spread.

absolute - interest rates defined as absolute will use the value as provided in the annualRate attribute without adding the Index Interest Rate.

  • Negative interest annualRate value is not allowed.
  • If the provided annualRate is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.

spread - interest rates defined as spread will calculate an absolute rate by adding the relative loan rate (aka spread) provided in the annualRate attribute to the Index Interest Rate effective on the date the interest is accrued. In case the Index Interest Rate is not set, the system will assume that the Index Interest Rate value is zero on the date the interest is accrued.

  • Negative interest spread annualRate value is allowed, but the system will default to zero if the addition of the Index Interest Rate still results in a negative rate.
  • If the calculated absolute rate, annualRate (aka spread) plus Index Interest Rate, is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.
object (Promo rate)

A promo rate on a loan. If the annual interest rate is 0.25 and the promo rate for the corresponding period is 0.05, the net interest rate after application of the promo rate would be 0.2.

caseId
string

An identifier for an existing case.

Responses
200

Success

put/people/{personId}/loans/{loanId}/rates/{rateId}
Request samples
application/json
{
  • "interestRate": {
    },
  • "promoRate": {
    },
  • "caseId": "string"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Remove loan rate

This endpoint is used for removing a single interest or promo rate. The deletion of an interest rate cannot lead to a gap in the loan where there is no reference rate.

Rates where setAtActivation is true can only be deleted with a special force permission.

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.

rateId
required
string

Unique identifier of an interest or promo rate.

query Parameters
caseId
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

Filter by case's object unique identifier. Can be Peach or lender's external identifier.

Responses
204

Success

delete/people/{personId}/loans/{loanId}/rates/{rateId}

Add draw rate

This endpoint is used for adding rates. A draw can have multiple rates. If two or more interestRate overlap on the same date we use the lowest value. If two or more promoRate overlap on the same date, we take the sum of the promo rates for the given day, and cap this rate at the maximum interest rate for the given day (to avoid accruing negative interest).

The added interestRate must be within the bounds of any corresponding minimum and maximum rate range configuration that is found on the loan type (if any).

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.

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

The draw identifier.

Request Body schema: application/json
required
object (Interest rate)

An interest rate on a loan.

The system will treat the provided value according on the interest type that was set at the time of origination (see atOrigination.interestType attribute.)

To remind, interestType can have one of the following values: absolute or spread.

absolute - interest rates defined as absolute will use the value as provided in the annualRate attribute without adding the Index Interest Rate.

  • Negative interest annualRate value is not allowed.
  • If the provided annualRate is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.

spread - interest rates defined as spread will calculate an absolute rate by adding the relative loan rate (aka spread) provided in the annualRate attribute to the Index Interest Rate effective on the date the interest is accrued. In case the Index Interest Rate is not set, the system will assume that the Index Interest Rate value is zero on the date the interest is accrued.

  • Negative interest spread annualRate value is allowed, but the system will default to zero if the addition of the Index Interest Rate still results in a negative rate.
  • If the calculated absolute rate, annualRate (aka spread) plus Index Interest Rate, is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.
object (Promo rate)

A promo rate on a loan. If the annual interest rate is 0.25 and the promo rate for the corresponding period is 0.05, the net interest rate after application of the promo rate would be 0.2.

caseId
string

An identifier for an existing case.

Responses
201

Success

post/people/{personId}/loans/{loanId}/draws/{drawId}/rates
Request samples
application/json
{
  • "interestRate": {
    },
  • "promoRate": {
    },
  • "caseId": "string"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get draw rates

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.

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

The draw identifier.

Responses
200

Success

get/people/{personId}/loans/{loanId}/draws/{drawId}/rates
Response samples
application/json
{
  • "data": {
    }
}

Get draw effective rates

This endpoint returns rates details of a draw for a given date(s). Interest rates: If two or more interest rates are active on the same date (aka overlap), the Peach system selects the lowest rate (also called effective rate) to accrue interest. Promo rates: If two or more promo rates are active on the same date (aka overlap), the Peach system sums up the rates as "effective" promo rate.

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.

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

The draw identifier.

query Parameters
fromDate
string <date>

The from date. Pass the same value in the fromDate and toDate if you need to get the rates for a specific date.

toDate
string <date>

The to date. Pass the same value in the fromDate and toDate if you need to get the rates for a specific date.

Responses
200

Success

get/people/{personId}/loans/{loanId}/draws/{drawId}/effective-rates
Response samples
application/json
{
  • "data": {
    }
}

Update draw rate

This endpoint is used for updating a single interest or promo rate (don't pass both in the same call). The updating of an interest rate cannot lead to a gap in the loan where there is no reference interest rate.

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.

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

The draw identifier.

rateId
required
string

Unique identifier of an interest or promo rate.

Request Body schema: application/json
required
object (Interest rate)

An interest rate on a loan.

The system will treat the provided value according on the interest type that was set at the time of origination (see atOrigination.interestType attribute.)

To remind, interestType can have one of the following values: absolute or spread.

absolute - interest rates defined as absolute will use the value as provided in the annualRate attribute without adding the Index Interest Rate.

  • Negative interest annualRate value is not allowed.
  • If the provided annualRate is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.

spread - interest rates defined as spread will calculate an absolute rate by adding the relative loan rate (aka spread) provided in the annualRate attribute to the Index Interest Rate effective on the date the interest is accrued. In case the Index Interest Rate is not set, the system will assume that the Index Interest Rate value is zero on the date the interest is accrued.

  • Negative interest spread annualRate value is allowed, but the system will default to zero if the addition of the Index Interest Rate still results in a negative rate.
  • If the calculated absolute rate, annualRate (aka spread) plus Index Interest Rate, is outside of the range defined on the loan type, the system will accept the annualRate but will return a warning in the response's object ratesValidation.
object (Promo rate)

A promo rate on a loan. If the annual interest rate is 0.25 and the promo rate for the corresponding period is 0.05, the net interest rate after application of the promo rate would be 0.2.

caseId
string

An identifier for an existing case.

Responses
200

Success

put/people/{personId}/loans/{loanId}/draws/{drawId}/rates/{rateId}
Request samples
application/json
{
  • "interestRate": {
    },
  • "promoRate": {
    },
  • "caseId": "string"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Remove draw rate

This endpoint is used for removing a single interest or promo rate. The deletion of an interest rate cannot lead to a gap in the loan where there is no reference rate.

Rates where setAtActivation is true can only be deleted with a special force permission.

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.

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

The draw identifier.

rateId
required
string

Unique identifier of an interest or promo rate.

query Parameters
caseId
string (AnyId) ^ext-|^[A-Z][A-Z0-9]-[A-Z0-9]+-[A-Z0-9]+|^\d+...

Filter by case's object unique identifier. Can be Peach or lender's external identifier.

Responses
204

Success

delete/people/{personId}/loans/{loanId}/draws/{drawId}/rates/{rateId}

Request sandbox access