You are viewing the latest API docs through the legacy docs viewer. The modern viewer can be found here: https://docs.peachfinance.com/api-docs.

Rate Caps~~Internal

Get loan rate caps

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

404

Loan not found

get/people/{personId}/loans/{loanId}/rate-caps
Response samples
application/json
[
  • {
    }
]

Add loan rate cap

This endpoint is used for adding rate caps to a loan. If two or more rate caps overlap on the same date, we will use the lowest value. This defines the maximum interest rate that can accrue on a loan to ensure interest accrual never exceeds the cap. You can define the startDate and endDate for each rate cap.

If a rate cap is added for past periods and the interest rate exceeds the cap, we will replay the loan to apply the capped rate. If a rate cap is added for past periods and the effective interest rate is unchanged, we will not replay the loan.

  • Example: A borrower on active duty needs their rate capped at 36% per MLA regulations. If no rateCap is set, an index rate change could increase the loan rate beyond the regulatory limit.
  • Original rate: 28% spread + 5% index rate = 33% (under cap)
  • Updated rate: 28% spread + 9% index rate= 37% (over cap)
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
maxRate
required
number <float> (RateCapMaxRate) >= 0

The maximum spread interest rate that can accrue.

If the calculated rate on a given day is greater than maxRate, then the system will cap the rate and accrue a maximum of maxRate on the loan. Else, we will use the calculated rate.

Format is decimal. For example, 0.36 is 36% annual rate cap.

startDate
required
string <date> (RateCapStartDate)

Rate cap start date in product timezone, inclusive.

endDate
string or null <date> (RateCapEndDate)

Rate cap end date in product timezone, inclusive. If null, applies until end of loan/draw.

rateCapReason
required
string (RateCapReason)
Default: "other"

The reason for maxRate. This is not used for any compliance logic, only for informational purposes.

  • MLA - Military Lending Act (36% cap for active duty military)
  • SCRA - Servicemembers Civil Relief Act
  • federal - Other federal regulations
  • state - State-specific regulations
  • other - Other regulatory or business reasons
Enum: "MLA" "SCRA" "federal" "state" "other"
Responses
200

Success

400

Bad request - validation error

404

Loan not found

post/people/{personId}/loans/{loanId}/rate-caps
Request samples
application/json
{
  • "maxRate": 0,
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "rateCapReason": "MLA"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update loan rate cap

This endpoint is used for updating a single rate cap on a loan.

If a rate cap is updated on a loan for past periods and the loan rate exceeds the cap, we will replay the loan to apply the capped rate. If a rate cap is added for past periods and the loan rate is not affected by the maxRate update, then we will not replay the loan.

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.

rateCapId
required
string (RateCapId) ^RC-[A-Z0-9]{4}-[A-Z0-9]{4}$

The unique identifier of the Rate Cap we wish to retrieve.

Example: RC-ABCD-1234
Request Body schema: application/json
required
maxRate
number <float> (RateCapMaxRate) >= 0

The maximum spread interest rate that can accrue.

If the calculated rate on a given day is greater than maxRate, then the system will cap the rate and accrue a maximum of maxRate on the loan. Else, we will use the calculated rate.

Format is decimal. For example, 0.36 is 36% annual rate cap.

startDate
string <date> (RateCapStartDate)

Rate cap start date in product timezone, inclusive.

endDate
string or null <date> (RateCapEndDate)

Rate cap end date in product timezone, inclusive. If null, applies until end of loan/draw.

rateCapReason
string (RateCapReason)
Default: "other"

The reason for maxRate. This is not used for any compliance logic, only for informational purposes.

  • MLA - Military Lending Act (36% cap for active duty military)
  • SCRA - Servicemembers Civil Relief Act
  • federal - Other federal regulations
  • state - State-specific regulations
  • other - Other regulatory or business reasons
Enum: "MLA" "SCRA" "federal" "state" "other"
Responses
200

Success

400

Bad request - validation error

404

Loan or rate cap not found

put/people/{personId}/loans/{loanId}/rate-caps/{rateCapId}
Request samples
application/json
{
  • "maxRate": 0,
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "rateCapReason": "MLA"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Delete loan rate cap

This endpoint is used for removing a single rate cap on a loan.

If a loan rate was capped at the maxRate and removing this rate cap updates the effective interest rate, then we will replay the loan. If a loan rate is not affected by the removal of this maxRate, then we will not replay the loan.

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.

rateCapId
required
string (RateCapId) ^RC-[A-Z0-9]{4}-[A-Z0-9]{4}$

The unique identifier of the Rate Cap we wish to retrieve.

Example: RC-ABCD-1234
Responses
200

Success

404

Loan or rate cap not found

delete/people/{personId}/loans/{loanId}/rate-caps/{rateCapId}
Response samples
application/json
{
  • "message": "Rate cap deleted successfully"
}

Get draw rate caps

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

404

Loan or draw not found

get/people/{personId}/loans/{loanId}/draws/{drawId}/rate-caps
Response samples
application/json
[
  • {
    }
]

Add draw rate cap

This endpoint is used for adding rate caps to a draw. If two or more rate caps overlap on the same date, we will use the lowest value. This defines the maximum interest rate that can accrue on a draw to ensure interest accrual never exceeds the cap. You can define the startDate and endDate for each rate cap.

If a rate cap is added for past periods and the interest rate exceeds the cap, we will replay the loan to apply the capped rate. If a rate cap is added for past periods and the effective interest rate is unchanged, we will not replay the loan.

  • Example: A borrower on active duty needs their rate capped at 36% per MLA regulations. If no rateCap is set, an index rate change could increase the loan rate beyond the regulatory limit.
  • Original rate: 28% spread + 5% index rate = 33% (under cap)
  • Updated rate: 28% spread + 9% index rate= 37% (over cap)
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
maxRate
required
number <float> (RateCapMaxRate) >= 0

The maximum spread interest rate that can accrue.

If the calculated rate on a given day is greater than maxRate, then the system will cap the rate and accrue a maximum of maxRate on the loan. Else, we will use the calculated rate.

Format is decimal. For example, 0.36 is 36% annual rate cap.

startDate
required
string <date> (RateCapStartDate)

Rate cap start date in product timezone, inclusive.

endDate
string or null <date> (RateCapEndDate)

Rate cap end date in product timezone, inclusive. If null, applies until end of loan/draw.

rateCapReason
required
string (RateCapReason)
Default: "other"

The reason for maxRate. This is not used for any compliance logic, only for informational purposes.

  • MLA - Military Lending Act (36% cap for active duty military)
  • SCRA - Servicemembers Civil Relief Act
  • federal - Other federal regulations
  • state - State-specific regulations
  • other - Other regulatory or business reasons
Enum: "MLA" "SCRA" "federal" "state" "other"
Responses
200

Success

400

Bad request - validation error

404

Loan or draw not found

post/people/{personId}/loans/{loanId}/draws/{drawId}/rate-caps
Request samples
application/json
{
  • "maxRate": 0,
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "rateCapReason": "MLA"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update draw rate cap

This endpoint is used for updating a single rate cap on a draw.

If a rate cap is updated on a draw for past periods and the draw rate exceeds the cap, we will replay the loan to apply the capped rate. If a rate cap is added for past periods and the draw rate is not affected by the maxRate update, then we will not replay the loan.

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.

rateCapId
required
string (RateCapId) ^RC-[A-Z0-9]{4}-[A-Z0-9]{4}$

The unique identifier of the Rate Cap we wish to retrieve.

Example: RC-ABCD-1234
Request Body schema: application/json
required
maxRate
number <float> (RateCapMaxRate) >= 0

The maximum spread interest rate that can accrue.

If the calculated rate on a given day is greater than maxRate, then the system will cap the rate and accrue a maximum of maxRate on the loan. Else, we will use the calculated rate.

Format is decimal. For example, 0.36 is 36% annual rate cap.

startDate
string <date> (RateCapStartDate)

Rate cap start date in product timezone, inclusive.

endDate
string or null <date> (RateCapEndDate)

Rate cap end date in product timezone, inclusive. If null, applies until end of loan/draw.

rateCapReason
string (RateCapReason)
Default: "other"

The reason for maxRate. This is not used for any compliance logic, only for informational purposes.

  • MLA - Military Lending Act (36% cap for active duty military)
  • SCRA - Servicemembers Civil Relief Act
  • federal - Other federal regulations
  • state - State-specific regulations
  • other - Other regulatory or business reasons
Enum: "MLA" "SCRA" "federal" "state" "other"
Responses
200

Success

400

Bad request - validation error

404

Loan, draw, or rate cap not found

put/people/{personId}/loans/{loanId}/draws/{drawId}/rate-caps/{rateCapId}
Request samples
application/json
{
  • "maxRate": 0,
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "rateCapReason": "MLA"
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Delete draw rate cap

This endpoint is used for removing a single rate cap on a draw.

If a draw rate was capped at the maxRate and removing this rate cap updates the effective interest rate, then we will replay the loan. If a loan rate is not affected by the removal of this maxRate, then we will not replay the loan.

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.

rateCapId
required
string (RateCapId) ^RC-[A-Z0-9]{4}-[A-Z0-9]{4}$

The unique identifier of the Rate Cap we wish to retrieve.

Example: RC-ABCD-1234
Responses
200

Success

404

Loan, draw, or rate cap not found

delete/people/{personId}/loans/{loanId}/draws/{drawId}/rate-caps/{rateCapId}
Response samples
application/json
{
  • "message": "Rate cap deleted successfully"
}

Request sandbox access