Canopy allows for a wide range of customizations to support your lending product's needs, and we are constantly evolving to meet the unique requests of our users. While you consider how to model your product and workflows on Canopy, please be aware of the following common processing features.
When a customer makes a repayment against their loan, Canopy applies that repayment to outstanding line item debts in a specific order known as payment pouring. Canopy's payment pouring process will first apply repayments to outstanding fees, then interest, then principal. Within each category (fee, interest, principal), older records will be repaid before newer records: the first fee entered for a customer will be repaid before the most recent fee.
The interest calculation for accounts occurs at the end of each account's billing cycle as defined by the
cycle_interval for the
product associated with the account. The interest rate calculation for accounts is calculated via the following formula:
Principal is the remaining principal in the account at the time of interest calculation.
Rate is the annual interest rate for your product.
Cycles is the number of billing periods in a year. This is derived from the product's
For example, a
cycle_interval of 1 month would break out to 12 cycles per year.
See our article on product configuration for additional settings for customizing your product's interest calculation logic.
Canopy allows for retroactive events to factor into remaining principal in order to calculate interest. For example, if an account's
billing cycle ends at the end of September and triggered an interest calculation,
then a purchase can be entered retroactively after the interest calculation has been performed that will affect the balance used in
end of month interest calculations based on purchase's
effective_date indicates when the payment was made by the customer, and Canopy will also save a
created_at date to flag when this payment record was applied to the customer's account, and update
the end of month interest according to this retroactive payment.
See more about transactions here.
When performing this interest calculation, the resulting interest is rounded down to the nearest cent.
We are committed to keeping integration as simple as possible. When interfacing with Canopy's API's, you can pass your own system's identifiers to identify the same resource in Canopy.
For example, if you have a a customer record in your system:
Then this customer be sent and retrieved with your id from the Canopy system of record:
This pattern can be used for accounts, line_items, products, and more. Please see our API documentation for a full list of entities that can be created and synchronized with your system.