Your First Product

Loading Your First Product Into Canopy#

Check out our video tutorial on loading products into Canopy!

Understanding The Role Products Play In Canopy#

In Canopy, you will often have a set of general rules that applies to an entire category of accounts. For instance, you may want a group of accounts to have a six month zero-payment promotional period with 1 month-long cycles. The combination of this set of rules is a product into which you can enroll any account.

Once enrolled, the account will implement the policies of the product. Its statement cut dates will be scheduled per the one-month rule, its minimum payments will apply the six-month promotion, and so on. In addition, you may onboard the account with its own additional ruleset - such as an interest rate that makes sense for your risk-based pricing model.

As such, accounts enrolled in the same product can have different rules - they can have their own credit limits, interest rates, statuses, fee structure, and more.

In general, you create a product in Canopy just once, and you may enroll accounts into it on an ongoing basis thereafter.

Structuring Your First Product#

Creating a product in Canopy is as simple as one API call; however, the parameters used in that API call will require some thoughtfulness as to what general product construct makes the most sense for your business call. You can find a full list of parameters and their descriptions in the products section of our API Reference.

Let's take a quick look through the API call structure.

You'll see four key sections

  • product_overview: These fields do not drive any logic within our SOR, but they are useful for categorizing and organizing products for reporting and UI rendering. As they are fairly self-evident, we will not explore them further in this walkthrough.
  • product_lifecycle_policies: These consist of a set of policies that will apply to the entire product lifecycle - regardless of whether the product is in a promotional period or not. These policies are further subdivided into payment_due_policies, fee_policies, billing_cycle_policies, interest_policies, and default_attributes.
    • cycle_interval: Note - a 1 month setup will prioritize cutting the cycle in exactly the next month. So if the account is effective on the 15th, the statement will cut on the 15th of the next month. However, if this month's cycle cuts on the 31st, the next cycle will cut on the 30th (or 28th) to stay within the appropriate month window, sticking to the "last day of the month".
    • Default Attributes, unlike the remainder of the policies, are default values that can be overridden for any accounts enrolled in the product.
  • promotional_policies: These consist of policies to be applied for a promotional period. One of these, of course, is the length of the promotional period. If the length is set to zero, none of these policies will apply to the product. The timer on the promotional period starts from the moment of account creation.
  • post_promotional_policies: These consist of post-promotional policies. At the end of the promotional period, the account will automatically roll into the post-promotional period.

Let's explore this setup deeper with a few examples.

Example 1: Basic Installment Product#

Product Lifecycle Policies#

Payment Due Policies#
  • We want accounts created for this product to turn delinquent after two missed payments and charged-off after three. So we'll set delinquent_on_n_consecutive_late_fees to 2, and charge_off_on_n_consecutive_late_fees to 3.
Fee Policies#
  • We want our customers to have a five day late fee grace period before fees are incurred, so let's set late_fee_grace to 5 days
Billing Cycle Policies#

This is the most interesting section. Here, we define the core intervals that will drive the lifecycle of activity for accounts enrolled in this product.

  • We want our customers to get statements once a month, with payments due 5 days prior to cycle cut, so let's set cycle_interval to 1 month and cycle_due_interval to -5

  • Let's ignore first_cycle_interval for this tutorial, as we do not want an introductory window before the regular billing cycle starts.

  • Let's use the default value for close_of_business_time. for product_timezone Americas/New_York makes sense for our business. This lets Canopy understand exactly what time each day to cut the statement for accounts that have a statement cut on any given day and are enrolled in this product.

Interest Policies#
  • We can use default values here for now
Default Attributes#
  • Since we're plannning on overriding credit limit for each account through risk-based pricing, we can set any value as a default credit limit. Let's set 0

Promotional Policies#

Let's set a promo_len of 0 cycles since we're creating a basic installment program with no promotions. We can use defaults for the remaining parameters.

Post-promotional Policies#

  • Now, to the crux of our config, let's set post_promo_min_pay_type to AM, which let's Canopy know to amortize the loan amount for this account, setting up a simple, traditional installment product.
  • We can use the defaults for all remaining values, as we'll set implementation values such as interest rate for each account in real-time as we originate each new customer.

That's it! Our simple installment product has been created, and we are ready to start onboarding accounts.