Peach supports the following fee types:
Origination Fees
Origination fees are amount-only fees assessed at the time of loan approval. These fees can follow one of three charging logics: summed with the first payment, amortized equally across payment periods, or charged and paid separately at time of loan origination without regard to payment schedules.
Draw Fees
For lines of credit, draw fees are amount-only fees assessed each time a draw is approved. Like origination fees, draw fees can follow one of three charging logics: summed with the first payment of the draw, amortized equally across the draw's payment periods, or charged and paid separately at time of draw origination without regard to payment schedules.
Dynamic Fees:
Dynamic Fees include late fees, Non-Sufficient Funds (NSF) fees, foreign transaction fees, service fees, modification fees and more. Charged throughout the loan lifecycle, these fees are assessed based on account status or triggers. Late fees, for example, trigger based on a loan becoming overdue, whereas modification fees can be programmatically linked to execution of changes to a borrower's payment plan structure such as due date deferral or loan term changes. Every dynamic fee type is associated with a loan type ID, and any loan associated with that loan type can utilize those dynamic fees.
Origination and Draw fees are set at the loanType level and configured during the onboarding process by the Peach implementation team. These fees are typically charged when a loan is originated or a draw is created.
For origination fees, there are three charging options:
- On top of the first payment: The fee is added to the borrower's first scheduled payment.
- Applied equally to each period: The fee is divided equally and added to each scheduled payment for the duration of the loan.
- Charged at origination: The fee is charged upfront and is not included in any future amortized payments.
Peach supports various dynamic fee types, including:
- Foreign transaction fees
- Late fees
- Loan modification fees
- Purchase fees
- NSF (Non-Sufficient Funds) fees
- Service fees
Dynamic fees are configured during the onboarding process by the Peach implementation team. These fees are referenced by their apiName when creating each loan. If fee amounts or amount caps are to be set at origination (instead of being calculated automatically), they can be specified during the loan creation call.
During the life of a loan, fees are charged based on the behavior defined in the matching dynamic fee type configuration. This configuration is created using a specific endpoint provided by Peach.
Dynamic fees use three main components to determine their behavior:
- chargeLogic: Determines when a fee should be assessed
- amountLogic: Calculates the amount of the fee
- capLogic: Checks that the fee amount does not exceed annual or lifetime caps
Importantly, caps and amounts can be set on a state-by-state basis to ensure compliance with local regulations.
When creating a dynamic fee, you'll need to specify several parameters:
- Display Name: How the fee appears in the borrower portal's activity feed.
- API Name: The camelCase name used to reference the fee in API calls.
- Apply to Draw: For lines of credit, determines if the fee is applied at the draw level, or the line of credit level.
- Draw Logic: The draw fee application logic determines how fees are applied across multiple draws in a line of credit. The behavior varies based on the fee type:
- Standard Dynamic Fees: Can be applied to multiple draws and must be configured in
draw.atOrigination.fees.dynamicFeesat draw creation. Applies only to draws with matchingapiNamein their configuration. - NSF Fees: Assessed on any returned payment regardless of draw association, but can only be charged to a single designated draw specified by
apiNameindraw.atOrigination.fees.dynamicFees. - Late Fees: Assessed based on overall line of credit status but charged to a single designated draw. Will be charged even if the designated draw is current but the line of credit is overdue.
- Standard Dynamic Fees: Can be applied to multiple draws and must be configured in
- Charge Frequency: Determines when the fee is charged (e.g., every loan period, calendar period, or ad hoc).
- Buffer Days: Number of days after the
start_datebefore the fee is charged. - Day Type: Business or calendar days.
- Charge When No Outstanding Principal: Whether to charge the fee if there's no outstanding principal.
- Charge When Closed: Specifies whether fees continue to be charged when a Line of Credit (LOC) or Draw is closed.
- Failure Reasons: Specific reasons for charging the fee (primarily used for NSF fees).
The amount of the fee can be calculated in various ways. Here are the different Amount Logic Types:
| Type | Description | Example |
| fixed | The system will charge a fixed amount | fixedAmount = 2.5
$2.50 fee is charged |
| percentageOfPrincipal | The system will charge a percentage of the outstanding principal amount on the effective date of the fee | percentage = 0.05
outstandingPrincipalBalance = 100 $5.00 fee is charged |
| percentageOfAmountFinanced | The system will charge a percentage of the amountFinanced | percentage = 0.1
amountFinanced = 100 $10.00 fee is charged |
| percentageOfTotalOverdueBalance | The system will charge a percentage of the totalOverdueAmount | percentage = 0.05
totalOverdueAmount = 100 $5.00 fee is charged |
| percentageOfOverdueBalanceInPeriod | The system will charge a percentage of the overdue balance from the previous period. The amount used is the remainingAmount from the most recent overdue obligation | percentage = 0.05
totalOverdueAmount = 100 obligation.remainingAmount = 50 Obligation.isOverdue = true $2.50 fee is charged |
| percentageOfOverdueBalanceInPeriodCapped | The system will charge a percentage of the overdue balance from the previous period like the example above, except with a cap amount for each event | percentage = 0.20
amount = 10 obligation.remainingAmount = 100 $10 fee is charged as minimum of $10 or 20% of $100 ($20) |
| percentageOfOverduePrincipalBalanceCapped | The system will charge a percentage of the overdue principal balance on the effective date of the fee with a cap amount for each event | percentage = 0.10
amount = 5 outstandingPrincipalBalance = 100 $5.00 fee is charged |
| passedAtOrigination | The system will charge an amount based on the chargeLogic frequency | atOrigination.feeAmount = 10
$10.00 fee is charged |
For line of credit products, dynamic fees tied to purchases can use the following Purchase Fee Amount Logic Types:
| Type | Description | Example |
| percentageOfPurchase | The system will charge a percentage of the purchase amount | percentage = 0.10
purchaseAmount = 100 $10.00 fee is charged |
| percentageOfPurchaseAmountCapped | The system will charge the minimum of a percentage of the purchase amount or a fixedAmount | percentage = 0.10
fixedAmount = 5 purchaseAmount = 100 $5.00 fee is charged |
| percentageOfPurchaseAmountAtLeast | The system will charge the maximum of a percentage of the purchase amount or a fixedAmount | percentage = 0.10
fixedAmount = 5 purchaseAmount = 100 $10.00 fee is charged |
Amounts can also be configured by state or country to comply with local regulations.
Caps can be set to limit the total amount of fees charged. Here are the different Cap Logic Types:
| Type | Description |
| unlimited | The system will not cap fees |
| annualAmountCap | The system will cap the amount of annual fees |
| annualNumberCap | The system will cap the number of annual fees. yearStart and yearEnd can repeat the cap annually or limit to a specified number of years |
| totalAmountCap | The system will cap the amount of fees over the lifetime of the loan |
| totalAmountCapPassedAtOrigination | The system will use the feeCapAmount set during the create loan call atOrigination |
| totalPercentageOfAmountFinancedCap | The system will use the percentage from totalAmountCaps and amountFinanced during the create loan call atOrigination to cap total fees over the lifetime of the loan |
For Line of Credit products, there are additional Cap Logic Types:
| Type | Description |
| totalPercentageOfCreditLimitCap | The system will cap the total fees as a percentage of the credit limit |
| annualPercentageOfCreditLimitCap | The system will cap the annual fees as a percentage of the credit limit |
Caps can also be configured by state or country to ensure compliance with local regulations.
- NSF Fees: Can be configured with specific failure reasons to determine when they're charged.
- Foreign Transaction Fees: Applied based on the country code of the purchase.
- Custom Functions: For complex fee calculations, custom functions can be created and referenced in the fee configuration.
- State-Specific Configurations: Fees and caps can be configured differently for each state to comply with local regulations.
- Configuring Fees — Step-by-step guide to setting up fee structures via the API.
- Loan Lifecycle overview — Index of the full loan lifecycle from origination through closeout.