<aside> 🎉 Congratulations! If you’re arriving at this document, you should be comfortable with the core workflows of using Canopy:
This guide is to help you understand how to adapt those core workflows to enforce the specific policies.
This document is more educational than it is tactical. We strongly recommend that you familiarize yourself with the concept of Policy Configuration before moving forward with the next two tutorials (Testing your Core Workflow, and Advanced Workflows)
</aside>
A policy is defined as: any behavior from Canopy’s system that you would like to see enforced over a borrower’s lifecycle.
As a computation engine, Canopy strives to enforce all policies that you ask it to for all of your borrowers, which are necessary for running your lending program. In order to make sure that Canopy is behaving as expected, you will need to - “in code” communicate “plain-english” policies to the system.
<aside> 🎯 The goal of this guide is to teach you how to ask (in code / by configuration) Canopy to enforce the policies you would like for it to enforce.
</aside>
At a high level, policies can be defined in Canopy in one of six places:
Configuration Layer Policies
product_id
, unless overridden at the account or line-item level. A common example is the cycle length of the borrower. These are configured in your create product
payload. Those that are safe to edit can be edited with subsequent API calls.product_id
, unless overridden at the line item level. A common example is the borrower’s interest rate. These are configured in your create account
payload. Those that are safe to edit can be edited with subsequent API calls.create line item
payloads.System Enforced Policies
create fee
and update account status
API endpoints. In this pattern, Canopy does not enforce the logic of your policy, but does enforce its outcome. This pattern is very common to get complex and highly policies up and running, and gives your team complete control over how the policy gets enforced in Canopy’s system.<aside> 💡 Enterprise contract? In large part, our enterprise contracts are scoped to include policies that we don’t support today. In order to scope these contracts, it’s helpful for you to get as close as you can to enforcing the policies you need to enforce, and then figuring out which policy, at which level, is needed to meet the specific needs of your lending program.
</aside>
Thanks for taking the time to understand Policies in Canopy! Our next guide will be about setting up your own testing workflows.