Fees

This object contains information about the fees that are charged to the loan, including draw, origination or dynamic fees, such as late fees.

Get fee types

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

The loan type identifier.

Responses
200

Success

get/loan-types/{loanTypeId}/fee-types
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": [
    ]
}

Update origination fee

This endpoint allows lenders to change the origination fee amount. The system will update the origination fee amount and replay the loan from the activation date.

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
sync
boolean
Default: false

Make the process synchronous.

Request Body schema: application/json
required
feeAmount
number
Default: 0

The updated amount of the origination fee. The new amount cannot be higher than the amount passed on loan creation in atOrigination.

caseId
string

An identifier for an existing case.

Responses
204

Success

put/people/{personId}/loans/{loanId}/fees/origination
Request samples
application/json
{
  • "feeAmount": 0,
  • "caseId": "string"
}

Update draw fee

This endpoint allows lenders to change the draw fee amount. The system will update the draw fee amount and replay the loan from the draw activation date.

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
sync
boolean
Default: false

Make the process synchronous.

Request Body schema: application/json
required
feeAmount
number
Default: 0

The updated amount of the draw fee. The new amount cannot be higher than the amount passed on draw creation in atOrigination.

caseId
string

An identifier for an existing case.

Responses
204

Success

put/people/{personId}/loans/{loanId}/draws/{drawId}/fees/draw
Request samples
application/json
{
  • "feeAmount": 0,
  • "caseId": "string"
}

Get fees

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
includeDraws
boolean
Default: true

If set to true, includes the fees on all draws on the line of credit.

limit
integer [ 1 .. 100 ]
Default: 25

The maximum count of results to retrieve.

startingAfter
string

Return results starting after the provided object identifier.

endingBefore
string

Return results ending before the provided object identifier.

Responses
200

Success

get/people/{personId}/loans/{loanId}/fees
Response samples
application/json
{
  • "status": 0,
  • "total": 0,
  • "count": 0,
  • "nextUrl": "string",
  • "previousUrl": "string",
  • "data": [
    ]
}

Charge dynamic fee

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
sync
boolean
Default: false

Make the process synchronous.

Request Body schema: application/json
required
apiName
string (FeeApiName)

The identifier of the dynamic fee configuration for this loan. Only applicable to type=dynamicFee fee.

externalId
string

The lender's identifier for the fee.

previewMode
boolean

In previewMode=true, the fee is computed but not charged.

caseId
string

An identifier for an existing case.

feeAmount
number

The fee amount, which is required only if the fee type was configured as chargedLogic=adHoc and amountLogic=adHoc. In all other cases, the system will calculate the fee based on pre-configured logic.

customDisplayName
string or null

A custom description of the fee. If provided, this value will be displayed in Peach UI/App and Statements (or can be used by lender in their App). If the value is not provided, the Peach UI/App and Statements logic will use displayName attribute. To remind, the displayName is populated from the fee type configuration object.

chargeDate
string <date> (ChargeDate)

This attribute can be used only during the migration process of loans from another system to Peach. Any value passed for new loans that are created and activated from day zero (nonMigrated loans) on the Peach system will be ignored.

The effective date on which the fee was charged in the product timezone. In other words, this is when the fee was booked and written to the ledger. The charge date of the fee is different from the due date of the fee. The due date of the fee is expectedPayments.date. The chargeDate must be between the first and last dates (inclusive) of the period represented by expectedPayments.date (aka the due date). If the chargeDate is provided, you can also provide the chargeTimeOfDay. If the chargeDate is not provided, the system will charge the fee on the first day of the period.

object

See description of the chargeDate. The value can be provided only if the chargeDate attribute is passed. If chargeTimeOfDay is not provided, the Peach system will determine and set the time of day.

triggerPeriodId
string

The ID of the period that "triggered" the fee. For example, if a loan is late by 5 periods, which period is this particular late fee for?

object (FeesMigrationDetails)

Fees migration related details. This object should be used for lines that are migrated from another system to Peach. Don't use it for installment loan migration.

Responses
200

Success

409

Duplicate fee external id.

412

Fee not charged

post/people/{personId}/loans/{loanId}/fees
Request samples
application/json
{
  • "apiName": "modificationFee",
  • "externalId": "string",
  • "previewMode": true,
  • "caseId": "string",
  • "feeAmount": 0,
  • "customDisplayName": "string",
  • "chargeDate": "2019-08-24",
  • "chargeTimeOfDay": {
    },
  • "triggerPeriodId": "string",
  • "migration": {
    }
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": [
    ]
}

Cancel dynamic fees

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
loanFeeIds
Array of strings
caseId
string

An identifier for an existing case.

Responses
204

Canceled

423

Locked

post/people/{personId}/loans/{loanId}/cancel-fees
Request samples
application/json
{
  • "loanFeeIds": [
    ],
  • "caseId": "string"
}
Response samples
application/json
{
  • "message": "Loan is locked for updates. Please try again."
}

Cancel dynamic fee

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.

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

The loan fee identifier.

Request Body schema: application/json
optional
caseId
string

An identifier for an existing case.

Responses
204

Canceled

423

Locked

post/people/{personId}/loans/{loanId}/fees/{loanFeeId}/cancel
Request samples
application/json
{
  • "caseId": "string"
}
Response samples
application/json
{
  • "message": "Loan is locked for updates. Please try again."
}

Update dynamic fee

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.

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

The loan fee identifier.

Request Body schema: application/json
required
externalId
string or null

The lender's identifier for the fee.

customDisplayName
string or null

A custom description of the fee. If provided, this value will be displayed in Peach UI/App and Statements (or can be used by lender in their App). If the value is not provided, the Peach UI/App and Statements logic will use displayName attribute. To remind, the displayName is populated from the fee type configuration object.

Responses
204

Updated.

409

Duplicate fee external id.

423

Locked

put/people/{personId}/loans/{loanId}/fees/{loanFeeId}
Request samples
application/json
{
  • "externalId": "string",
  • "customDisplayName": "string"
}
Response samples
application/json
{
  • "message": "Loan is locked for updates. Please try again."
}

Request sandbox access