logo

Canopy Release Notes

New features and fixes will be reported here.
12 days ago

Minor Updates

Update to Canopy v2 docs link:

Update to Restructure Endpoint and Webhook Scheme

A minor update to the structure of the payload for the loan restructure GET endpoint and webhook for consistency.
Current Format:
json
{ "loan_line_item": { "account_id": "can_123", "line_item_id": "can_456", "effective_at": "2018-07-20T09:12:30+00:00" }, ... }
New Format:
json
{ "account_id": "can_123", "line_item_id": "can_456", "effective_at": "2018-07-20T09:12:30+00:00" ... }

25 days ago

New V2 Feature:

New Functionality: Offsets to Specific Loans

In the past we only supported account balance offsets. Now we support the ability to offset specific line item loans and allocate to amounts within that line item. You can Offset loans via the API and also inside of CanopyOS!

How do I use the new feature in CanopyOS?

We have expanded the experience of individual loans in CanopyOS!
This will allow you to access more actions that can be done to specific loans.
Image without caption
With the new Offsets drawer you can now select an offset and get a high level view of the affects before you submit it.
Image without caption
There are two types of Offsets, Debit Offsets and Credit Offsets.
Image without caption
  • Debit Offsets decrease the balance of a loan
  • Credit Offsets increase the balance of a loan
You can also choose allocation of the offset which can vary depending on the loan you are offsetting
  • Allocation Options: Principal, Interest, and Amortized Fees
You can still offset the account by accessing it in the Manage Button Menu on the Account Overview
Image without caption
Here you can apply offsets to the account balances
Image without caption

How do I use the new feature in LoanLab?

We also ensured you can make these actions inside of LoanLab as you simulate and create test cases for SafeGaurd. You can add them with a few easy steps:
  • When creating actions you can select Apply Offset
Image without caption
  • First you must choose if you wish to Debit or Credit with your offset.
  • Then, when you have the Apply Offset card open you can select where the balance should be allocated
    • You can select a individual loan that has been created on the account, or apply it to the account balance
Image without caption
  • Lastly, you can set up the details of the Offset below that
    • Choose the amount, allocation, and status of the offset to validate behavior in our system
Image without caption

FAQ

  1. What happens when I offset for more than the balance of a given allocation on a loan?
    1. When applying a debit offset that is more than the allotted amount in a given allocation, the remainder will be poured into the loan using typical payment pouring logic
      1. When there is no balance left on the loan the offset will pour into the account using the typical payment pouring logic
  1. Where can I see offsets?
    1. They will be present in the Transaction History and Recent Transaciton views. They will also have the loan that they are correlated to on their details drawer view.

Feature
API
CanopyOS
1 month ago

Features

Portfolio Analytics Dashboard

Canopy is excited to announce a significant update to CanopyOS with the launch of our new analytics dashboard. This innovative feature sets a new benchmark by providing instant, detailed insights into loan portfolio performance directly within CanopyOS. With immediate access to essential metrics like customer count, account numbers, and upcoming payment amounts, the dashboard simplifies the decision-making process and enhances operational efficiency for lenders, ensuring a more integrated and seamless experience.
Image without caption

Loan Restructuring Enhancements

📌
Please be aware that these new features are currently available only to customers on Canopy V2.
Canopy is thrilled to announce an innovative update to our loan restructuring functionality, designed to offer lenders unmatched simplicity and adaptability in their restructuring efforts. This upgrade introduces a range of flexible options that significantly enhance the restructuring process.
New Enhancements in Loan Restructuring on Canopy v2:
  • Consolidation Capability: Allows for the merging of multiple loans into one, streamlining management.
  • Advanced Financial Options: Provides the flexibility to manage outstanding interest and fees with the option to offset and more optionality coming soon.
  • Enhanced Clarity with Contextual Notes: Enables the addition of notes for clearer understanding and documentation of restructuring decisions.
  • Ability to Change Min Pay Calculations: Offers the ability to alter the method used for calculating minimum payments, facilitating tailored repayment strategies.
  • Increased Transparency: Introduces a dedicated restructuring API endpoint and webhook notifications for more transparent communication.
This beta release is just the start, with more improvements on the horizon, including the ability to do loan restructures through CanopyOS.

New API Endpoint: Create Business Customer Entity

In the past Canopy had only one Create Customer Entity input when creating them in our system. We understand that this created a frustrating experience so we solved this problem. You can now use the new Create Business Customer Entity to add business borrowers into your ledger.
What can I do now?
Now you can create business customers easily and set up business structures in your system.
Legacy format restrictions:
  • Historically you would use the create customer endpoint and use the customer_type field to select business.
    • The required fields on the call create an undesired experience
  • Businesses could only be individuals or Parent-Entities.
    • A business could not be a Child-Entity

How do I use this?

Historically you would use the create customer endpoint and use the customer_type field to select business. The required fields on the call create an undesired experience so you can now use the endpoint in the example below to ensure clean data is imported into your system.
Example:
Here is how you would add a business to Canopy’s API using the new endpoint
python
import requests import json url = "https://<<environment_url>>/customers/business" payload = json.dumps({ "customer_id": "test-customer", "customer_parent_id": "parent-test-customer", "business_legal_name": "Bravado, Inc.", "doing_business_as": "Bravador", "phone_number": "15555555555", "address_line_one": "12 Strawberry Road", "address_line_two": "Suite 101", "address_city": "Atlanta", "address_state": "GA", "address_zip": "90209-1000", "business_ein": "888-888888", "business_type": "llc", "email": "testcustomer@example.com", "assign_to_accounts": [ { "account_id": "31mNprzLd2bKl6koVna68ARM", "customer_account_role": "PRIMARY", "customer_account_external_id": "4465220133024156", "designation": "INDIVIDUAL" } ], }) headers = { 'Authorization': 'Bearer <<bearer_token>>', 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text)

What type of scenarios can be covered?

The goal of the new feature functionality is to enable your team to add business information into Canopy without needing to follow the more restrictive requirements of the legacy way of doing it. Which means new functionality is available as well!
What will this enable?
In the future we will expand the functionality of hierarchy and relationships between entities. This is a step towards that future. Today, however we have unlocked some awesome functionality for your teams.
  • You can create business structures using the new /customers/business endpoint
    • using the "customer_parent_id" you can set a new business’s parent entity to a pre-existing customer in our system using it’s customer_id
    • This means you can assign business entities under people or other businesses

FAQ

  1. How do I create a person entity?
    1. You still use the legacy API endpoint and it will not be deprecated to ensure API functionality for pre-existing data records.
    2. We do highly recommend using this new endpoint moving forward for all business Customer Entities to ensure your program can access features built specifically for commercial lending.
  1. Can I merge my existing data to the new endpoint?
    1. Yes, but this will take intervention from our Client Delivery team and may need development based on your specific use case. Please contact your account representative if you are interested.

Feature
CanopyOS
2 months ago

Features

Filter Accounts by Tag

As an enhancement to our recently released Account Tagging feature, we have added the ability to filter your accounts by the tags that are applied to them.
To take advantage of this feature, navigate to your list of accounts in CanopyOS, select the Filter option, and choose which Tags you would like to filter for.
Image without caption

Feature
CanopyOS
2 months ago

Features

Tag Management Page

As an enhancement to our recently released Account Tagging feature, we have added a page within CanopyOS to make it even easier to add and management Tag Options. You can now add, deactivate, and see all Tag Options from directly within CanopyOS.
This new page can be found by selecting Tag Options from the Admin menu.
Image without caption

Bug Fixes

  1. Updated the endpoint to get a specific statement so that it returns the correct line item ids within it.

2 months ago

Feature Releases

Account Tagging Enhancements

As an enhancement to our recently released Account Tagging feature, we have added the following enhancements.
  1. Historic Audit Log Table in DataDirect
    1. Accounts_Tags_Log: This new table is an audit log of historical changes of tags that were applied and/or removed from a given account. [Documentation]
  1. Account Tag Webhook
    1. When a Tag is applied or removed from an account, you can now subscribe to webhook notifications of these events. This new webhook is also available in Canopy Connect to trigger workflows from.
    2. account_tag_applied
    3. account_tag_removed

Business Information and Structures Accessible in CanopyOS!

We recognize that you cannot add business information easily into our system, and we would like to alleviate some of the frustrations around handling borrowers who are businesses. We also noticed our system was forcing undesirable data to be passed in some cases, which we want to clear up. Last, we wanted to enable more complicated business structures to be serviced easily.
We will be rolling this feature out slowly to select customers
Once this feature is enabled you can:
  1. Easily view the Associated Entities to an individual Customer Entity
  1. Edit Business Information inside of CanopyOS
  1. View business structures inside of CanopyOS
New Terms
  • Entity - A person or business that has a stakeholder relationship
    • ei: an Account or Customer in Canopy’s API. They include Customers(Type: Person or Business), Suppliers/Merchants, Beneficial Owners, Payout Entities
  • Associated Entities - Refers to the concept of how people and businesses are tied together in complex commercial financing relationships.
  • Associated Entities Table - The UI component that allows you to see the entities associated to a customer
  • Associated Entities Tab - The new tab view under the Customer Detail Page to hold the Associated Entities Table

Associated Entities - How does it work?

  1. Start off with the Customer Table being updated for easier identifying and filtering businesses vs people
    1. Image without caption
  1. You can now manage Business information on a specific customer!
    1. We created an experience to help you understand the business structures in your system today. Below, you can see the new view of a Customer that is a business.
      1. Image without caption
    2. You can update business details in the new drawer
      1. Image without caption
  1. When pulling up individuals from the business, you can now easily see what business they are associated to.
    1. Image without caption
  1. Finally, we added a view to Customer Detail pages to allow you to view business structures better in our system. Associated Entities refers to the connections of other entities in our system.
    1. Image without caption

What type of scenarios can be covered?

The goal of the new feature functionality is to enable the visualization and use of business structures in CanopyOS.
Opening your team to be able to do things like:
  • Figure out how many controllers have been added under a business
  • See what business an individual works for on their customer detail page
  • Be able to update business details and information operationally inside of the UI
  • Quickly filter by business or person when searching for customers

F.A.Qs

  1. Does this effect any older client data I have in my system?
    1. No, we created a solution that will support data that has been added to the Customers Table. This experience so that you can better view and edit this information
  1. Can I create business structures inside of CanopyOS?
    1. No, the goal of this experience is so you can view the business structures that you programmatically add to your ledger
  1. What business structures can I see in CanopyOS now?
    1. a Business with multiple controllers
    2. a Business with multiple subsidiaries
    3. a Person with multiple businesses


2 months ago

Feature Releases

DataDirect Account Tag Tables

As an enhancement to our recently released Account Tagging feature, the associated tables are now also available in DataDirect.
Combining Account Tagging with DataDirect offers a robust solution for flexible and dynamic reporting and analytics.
Tables now available:
  1. Accounts_Tags: a list of accounts and any tags actively applied to them. [Documentation]
  1. Tags: a list of all Tag Options and their associated details. [Documentation]

3 months ago

Feature Releases

Account Tagging

Canopy is excited to introduce our new Account Tagging feature. This practical tool allows customers to assign multiple, custom-defined attributes to their accounts, simplifying and improving account management. With Account Tagging, identifying specific accounts for reporting and operational tasks becomes simple and flexible.
You’ll notice the account view CanopyOS now has a new Account Tags card. You can apply new Tags to an account by hitting the Manage button.
Image without caption
You’ll notice Canopy has added a few Tag Options to get you going. You can remove these and add more at anytime through our API. See our API docs here.
Coming Soon: Stay tuned as we're working on further enhancements that will enable you to manage Tag Options directly through CanopyOS, adding even more convenience to your experience.
Coming Soon: Stay tuned as we're working on further enhancements that will enable you to manage Tag Options directly through CanopyOS, adding even more convenience to your experience.
🔗 For more information, please see our CanopyOS Account Tagging Docs Guide.

FAQ

What’s the difference between Tags, External Fields, and Account Statuses? When do I use each?
There are Tag Options available that are the same as some account statuses, what's the difference?
What’s the difference between a Tag Option and an Account Tag?
What does disabling a Tag Option do?
What is the purpose of the color and description setting on a Tag Option?
How can I identify which accounts a tag is applied to?
Can I see a history of which tags were applied to an account previously?
What functionality is available?

3 months ago

Bug Fixes:

  • Bug fix to available_credit_cents to respect pending_pmt_affects_avail_credit when making a GET /statement request.

API
Improvement
3 months ago

New API Functionality: Enabling Greater Flexibility in JSON Formats for external_fields

In the past we specified the format below when entering external field information to account, line_items, product, payout_entity, finance_request
  • Legacy format of key-values:
    • plain text
      [ { "key": "example_key", "value": "example_value" }, { "key": "example_key2", "value": "example_value2" } ]
What can I do now?
Now, we support any valid JSON object in external_fields:
  • JSON type:
    • plain text
      { "example_key": "example_value" }
  • Array of JSON:
    • plain text
      [ { "example_key": "example_value" }, { "example_key": "example_value" } ]
      💡
      CanopyOS will only display external fields in the legacy format

How do I use this?

This functionality expands what information into the external_fields you can input.
You can now use any valid JSON to pass multiple data points and more sophisticated information.
⚠️
We recommend standardizing around a single style of JSON formatting per entity to simplify parsing
Example:
If I wanted to add external fields to an account, I would set up a call to our API, like the example below
python
import requests import json url = "https://<<environment_url>>/accounts/<<account_id>>/external_fields" payload = json.dumps([ { "key": "test_key", "value": "test_value" }, [ { "key": "test_key", "value": "test_value" }, { "key": "test_key", "value": "test_value" } ] ]) headers = { 'Authorization': 'Bearer <<bearer_token>>', 'Content-Type': 'application/json' } response = requests.request("PUT", url, headers=headers, data=payload) print(response.text)

What type of scenarios can be covered?

The goal of the new feature functionality is to enable more sophisticated data connections to other systems that run your program
Opening your team to be able to do things like:
  • Being able to view and reference more non-Canopy data points within Data Direct Reporting for more advanced insights
  • Enable more systems to connect with Canopy and allow different data shapes to be passed into Canopy
  • Allow your team to add crucial data points needed for delinquency reporting, remediation, origination, and restructuring in our product experiences
What will this enable going forward?
With this feature we are releasing more flexibility on top of it very shortly. We will be expanding more functionality in the future to enable more sophisticated account tagging and external fields of client data.
This release is the first step towards more advance data correlations from external systems!
Feature Enablement:
  • External Field JSON Objects visible inside CanopyOS
  • Account Tagging
    • The ability to apply multiple, dynamically defined labels or attributes to accounts, enabling more precise and flexible account management and reporting.

FAQ

  1. What formats are available to be entered?
    1. The examples above show the formats excepted by our API with this new functionality
  1. Can I pass in multiple formats onto the same data object?
    1. NO, you cannot use multiple formats on an any object in the external fields column
  1. What if I already use one format, how can my team switch to a more preferred format?
    1. There are a few important aspects to note:
      1. The data that is sent in the body of the request will fully override any values that were previously assigned to the account’s external fields. If you are intending to only update a single key value, we recommend doing a GET /account call first to retrieve the previous values, updating the relevant portion, and then providing that as your body for the request.
      2. The endpoint will accept any valid JSON object, however, if the key/value structure above is not used, you risk breaking your CanopyOS view for the given account.
      3. Changes to the external fields on an account do not trigger the account_update webhook.

API
Feature
3 months ago
New API Value Added: net_available_credit_cents
Represents the account's credit limit minus the total of principal, interest, and fee balances.
This new field can be found on the following objects in the API:
  1. account → summary
  1. statement → open_to_buy
Noteworthy:
  • This new field is in addition to available_credit_cents, which is the account's credit limit minus the principal balances.
  • The new net_available_credit_cents field does take into account the value configured for pending_pmt_affects_avail_credit, which determines if a pending payment affects the available credit on an account.
Image without caption

🗂️
CanopyOS
Feature
2 months ago

Business Information and Structures Accessible in CanopyOS!

We recognize that you cannot add business information easily into our system and we would like to elevate some of the frustrations around handling borrowers that are businesses. We also noticed our system was forcing undesirable data to be passed in some cases, which we want to clear up. Last, we wanted to enable more complicated business structures to be serviced easily.

You can now:

  1. Easily view the Associated Entities to an individual Customer Entity
  1. Edit Business Information inside of CanopyOS
  1. View business structures inside of CanopyOS

New Terms

Entity - A person, or business that has a stakeholder relationship
ei: an Account or Customer in Canopy’s API. They include Customers(Type: Person or Business), Suppliers/Merchants, Beneficial Owners, Payout Entities
Associated Entities - Refers to the concept of how people and businesses are tied together in commercial financing in complex relationships.
Associated Entities Table - The UI component that allows you to see the entities associated to a customer
Associated Entities Tab - The new tab view under the Customer Detail Page to hold the Associated Entities Table

How does it work?

  1. Start off with the Customer Table being updated for easier identifying and filtering businesses vs people
    1. Image without caption
  1. You can now manage Business information on a specific customer!
    1. We created an experience to help you understand the business structures in your system today. Below you can see the new view of a Customer that is a business.
      1. Image without caption
    2. You can update business details in the new drawer
      1. Image without caption
  1. When pulling up individuals from the business, you can now easily see what business they are associated to.
    1. Image without caption
  1. Finally we added a view to Customer Detail pages to allow you to view business structures better in our system. Associated Entities refers to the connections of other entities in our system.
    1. Image without caption

What type of scenarios can be covered?

The goal of the new feature functionality is to enable the visualization and use of business structures in CanopyOS.
Opening your team to be able to do things like:
  • Figure out how many controllers have been added under a business
  • See what business an individual works for on their customer detail page
  • Be able to update business details and information operationally inside of the UI
  • Quickly filter by business or person when searching for customers

F.A.Qs

  1. Does this effect any older client data I have in my system?
    1. No, we created a solution that will support data that has been added to the Customers Table. This experience so that you can better view and edit this information
  1. Can I create business structures inside of CanopyOS?
    1. No, the goal of this experience is so you can view the business structures that you programmatically add to your ledger
  1. What business structures can I see in CanopyOS now?
    1. a Business with multiple controllers
    2. a Business with multiple subsidiaries
    3. a Person with multiple businesses

CanopyOS
4 months ago
CanopyOS now supports two-factor authentication. You can enable this new setting by selecting Settings from the Admin menu in CanopyOS.
For more details on how two-factor authentication works within Canopy, please visit the authentication section in our CanopyOS Docs.
Image without caption

CanopyOS
Improvement
4 months ago
Now it is easier to search for Line Item Transactions in CanopyOS! We have created a stand-alone tab on the Account Detail Page to allow you to view and filter all Line Item Transactions on an individual account.
Image without caption
Using advanced filtering, you can now find specific Line Item Transactions, groups, or windows of time to help you understand the history of an account. You can also search by line_item_id
Image without caption

The Account Detail Page has been simplified. The transactions table now shows the first few transactions. We also gave you a shortcut button to take you to the new page
Image without caption

Previous State:

Image without caption

New State:

Image without caption
  • You are now prompted to search the larger view to access the new filtering.
  • Some of the columns have changed names to better reflect what data it is showing from the API
    • Description → Line Item Type — Allocation
      • This is how we represent the information today in Canopy. We use the line_item_type and the allocation to fill this column.
      • The description is another field in the API that has different information.

Editable External Fields for Accounts Endpoint
4 months ago
We have released a new endpoint to allow for editing external fields associated with an account.
You can now make the following API request to set the external fields for a given account:
PUT /account/{{account_id}}/external_fields
The body of your request should be in the same format used to provide key value pairs when adding external fields when creating an account.
Example:
json
[ { "key": "key 1", "value": "value 1" }, { "key": "key 2", "value": "value 2" } ]
There are a few important aspects to note:
  1. The data that is sent in the body of the request will fully override any values that were previously assigned to the account’s external fields. If you are intending to only update a single key value, we recommend doing a GET /account call first to retrieve the previous values, updating the relevant portion, and then providing that as your body for the request.
  1. The endpoint will accept any valid JSON object, however, if the key/value structure above is not used, you risk breaking your CanopyOS view for the given account.
  1. Changes to the external fields on an account do not trigger the account_update webhook.

API
Fix
5 months ago
Bug fix to surface the correct min_pay_am_interest_cents value on the final statement of a paid off account.

CanopyOS
Improvement
5 months ago
Now it is easier for customers using Multi-Loan products to visually tell apart Restructured and Active Loans on the Account view inside Canopy OS.
The two Loan status cards will be represented by the following designs:
Image without caption
Plus, once you click on a restructured Loan card, you will have a link to show the new Loan (post-restructuring) inside the Transaction Detail drawer.
Image without caption

API
Improvement
5 months ago
Today, our system only allows you to define interest policy for your borrowers at a template (a.k.a. Product) level. The interest policy governs the amount of interest accrued on a borrower’s account (using that policy template, a.k.a. Product).
Previously, the only way to define it was via providing a predefined calculation method (interest_calc_method) in your POST …/products request. Some of the accepted values include monthly_ending_bal_360, cycle_start_365 etc. Read more here
Underneath, there is a formula:
Now, however, we added new fields which allow you to tweak individual configurations that make up that calculation method:
  • interest_accrual_interval - Interval that specifies when interest is calculated and accrued on the account. E.g. 1 day, 7 days, 1 week, 1 month etc.
  • interest_calc_balance_type - Target balance (Principal in the formula) to be used when calculating interest accrual relative to the cycle. E.g. STARTING, ENDING, AVERAGE
  • interest_year_length - The number of days a year has in the interest calculation formula. E.g. 360, 365
You can fill in the corresponding fields within  product_lifecycle_policies.interest_policies.
AND
you should ALSO specify your own label/ Name for that interest calculation method under interest_calc_method. e.g. “My_new_calculation_method”. That’s a terrible example, but feel free to name it the way you like!

CanopyOS
Fix
5 months ago
For Users of Canopy’s Finance Request Workflow:
A bug occurred that caused users in timezones behind the product timezone to observe mismatched values for “Requested Outlay Date” on the “Request Details card” compared to the “Modify Request Details form”. This bug made it possible for “Requested Outlay Date” to be inadvertently changed, as the incorrect value in the form field would be propagated to the database when the form was saved.
This bug has been fixed and users should observe the same date for “Requested Outlay Date” in all cases, regardless of their local timezone.

Improvement
DataDirect
5 months ago
We heard from you that it was difficult to understand our tables and columns in DataDirect, hence we invested into creating a Data Dictionary.
Now you should be able to navigate to each table, see the column name, type and definition.
Would like to find every table that has the column you have in mind? You can use the search bar to find every instance!
Image without caption

API
Improvement
5 months ago
As a quality-of-life improvement, you should be now able to filter the GET /Customers response by:
  • customer_type - can be either person or business
  • business_ein - EIN of the business, expected input format in NN-NNNNNNN.
    • as part of the search_parameters query parameter
Some other filters that had been available prior to this release, and could help you get results of Business customers faster/ more efficiently via search_parameters query parameter:
  • doing_business_as - The DBA name of the Business
  • business_legal_name - The legal name of the Business

CanopyOS
5 months ago
The colors and other style details of text and other components in CanopyOS have been updated. Functionality remains unchanged.
Image without caption

Improvement
DataDirect
6 months ago
As part of our effort to rename Delinquency_report table into a more-aptly-named Past_due_report within DataDirect, we have added an identical Past_due_report table.
You can read more on the reasoning behind the name change in our documentation https://docs.canopyservicing.com/docs/delinquency.
Both tables are going to be available until the end of November, to give you enough time to update your scripts and ingest Past_due_report table going forward.
Delinquency_report table in DataDirect is getting deprecated on December 13th.

API
Improvement
5 months ago
As a quality-of-life improvement, you should be now able to filter the GET {account_id}/line_items response by:
  • line_item_type - to show different kinds of transactions on a specified account. can be one of the following:
    • CHARGE
    • PAYMENT
    • CREDIT_OFFSET
    • DEBIT_OFFSET
    • MANUAL_FEE
  • line_item_status - to show all transactions of the selected status:
    • AUTHORIZED
    • DECLINED
    • INVALID
    • OFFSET
    • PENDING
    • POSTED
    • PROCESSING
    • RETRO_VALID
    • REVERSED
    • ROLLED
    • SETTLED
    • SPLIT_INVALID
    • SPLIT_VALID
    • VALID
    • VOID
  • effective_at_before and effective_at_after - to see all transactions processed by our system within the time constraints (inclusive).
    • Both query parameters expect a timestamp input. e.g. 2020-04-21T00:00:00+00:00
  • max_original_amount_cents and min_original_amount_cents - to see all transactions with original amounts within absolute monetary value constraints (in cents).
    • Expects whole numbers (integer)

Product
Improvement
6 months ago
Canopy will add a new table to store all accounts recurring fee data with the appropriate relationship linking them back to the accounts table (relationship one to many - one account to many recurring fees linked by foreign key ‘account_id’ in accounts_recurring_fees)
New table added:accounts_recurring_fees
columns:
  • account_id uuid
  • external_account_id text
  • organization_id number
  • recurring_fee_interval interval
  • recurring_fee_amount_cents int
  • initial_delay_offset interval
  • is_fee_interval_floored boolean
  • recurring_fee_label text

CanopyOS
Improvement
6 months ago
Connect now presents a tutorial page to help a user get started on their first visit.

Improvement
API
6 months ago
The field credit_balance_cents has been added to the line item detail. In the Get Individual Line Item API request, you can now see how much each line item contributes to an account's credit balance.

CanopyOS
Improvement
6 months ago
Added an enhanced loading interstitial while previewing Payments and Payment Reversals in CanopyOS

CanopyOS
Feature
7 months ago
LoanLab now supports simulating restructuring a loan for an account! Loan restructuring provides various options of changing an existing loan's behavior. Learn more about Loan Restructuring in Canopy's system here.
Try it out by using the new Restructure Loan option from the action menu in LoanLab!

7 months ago
Per notice that has been communicated with customers, Canopy is introducing a change to the handling of credit balances that occur primarily as a result of payments that exceed the total balance of an account.
Going forward, when a new line item is created, the system will automatically check for an existing credit balance on the account and pour the credit balance towards the new charge line item. If the credit balance fully covers the new line item amount, no interest will be applied.
In cases where the credit balance does not fully cover the charge, the system will apply interest to the remaining balance of the charge after the credit balance has been applied.

8 months ago
We added a new enum to the promo_min_pay_type called INTEREST_AND_PERCENT_PRINCIPAL_V2. This new min pay type formula will combine all unpaid balance, newly accrued interest within the cycle, newly accrued fees within the cycle, and an allocated percentage of the principle.

beta
Product
8 months ago
We’re excited to announce the launch of our newest product, Canopy Connect!
Connect is a user friendly workflow builder that allows users to integrate Canopy with the other systems that power their lending program and automate manual processes.
Click on Connect in the menu of your CanopyOS UAT environment to learn more!

beta
Feature
8 months ago
We’re Excited To Launch Our New Preview System!!
Canopy’s new Preview capabilities are launching into Beta! Preview is supported for the Payment Creation, Payment Reversal, and Loan Creation API Endpoints.
Operations in the system of record are complex; often, a single operation results in many changes. For example, a single borrower payment alters balances, minimum payment obligations, amortization schedules, and more. The Preview API allows you to fully visualize all changes to the computational state of a borrower account prior to executing the operation.
Try it out in CanopyOS!
In CanopyOS, the Preview capabilities are now available in the Payment and Payment Reversal drawers.
While accessing the payment and reversal drawers, a new "Preview" button allows the operator to see what changes would occur to the account, new line items, allocation details, and even an updated amortization schedule where relevant.
These previews have no effect on the state of the account and can help operators make changes with confidence before committing to important account actions.
Image without caption
Using The Preview API
When the preview header is provided on a request for a supported API endpoint, a URL to the Preview endpoint with a fully formatted request will be returned. This endpoint returns all computationally relevant differences on the account from the operation being previewed.
This allows you to increase borrower transparency - for example, helping your borrowers understand the impact of payments they are considering making.
Preview helps operators and borrowers alike make good decisions and communicate effectively about the impact of changes they make before taking final action on an immutable ledger.
For further detail on the feature, check out the guide in our documentation.
Beta
We currently consider the Preview feature as a Beta release - we would love feedback from your team! Please reach out to your account representative if you’re interested in providing feedback. Before a full-featured launch, we’d like to better understand:
  • The situations in which you preview operations on an account
  • The information you’re aiming to learn from Previews
  • Any designs or experiences you’re interested in embedding in your borrower-facing applications to increase borrower transparency
  • Any unsupported operations for which you are interested in Previewing Activity

API
Improvement
5 months ago
Payment Reversals (or payment failure) in Canopy increase an account’s balance in two ways:
  • Reintroduced balances: The payment being reversed paid down some portion of interest, fees, and principal balances. This balance needs to be reintroduced by the reversal.
  • Retroactive balances: If the payment never occurred, overall interest and fees for the account may need to be higher. For example:
    • If the balance should have been higher, the borrower may need to have accrued more daily interest than they actually did
    • If the borrower’s payment helped them avoid a late fee, that payment’s failure means the late fee would have been assessed.
This release helps you granularize a payment reversal to understand how it breaks down to each of those categories:
  • Both when observing a statement and when observing a payment or payment_reversal line item.
See below for detailed changes to the API:
To improve visibility of retro-active events in our system (payment reversals in particular), we have added additional fields at the individual transaction (line_item) and a tallied-up cycle (statement) levels.
Both of those should give you a reversal breakdown (SPLITS) by balance types (PRINCIPAL, INTEREST, FEE), and whether that balance is re-introduced (existed before the payment and its subsequent reversal) or newly-introduced (net new balance as a result of the reversal).
At the line_item level (GET /line_item/{line_item_id}), we’ve added a new object called line_item_relationship_summary! It includes the following values:
  • payment_parent_id
  • splits_principal_cents
  • splits_interest_cents
  • splits_fees_cents
  • original_payment_amount_cents
  • newly_introduced_fees_cents
  • newly_introduced_interest_cents
  • payment_credit_balance_cents
Check out this section on the Transaction/Line_item level of the Retroactive-event processing Guide for more details, and the 200 Response to our GET /line_item/{line_item_id} for exact field definitions.

At the statement level (GET /statements/{statement_id}), within the cycle_summary object you will get tallied up values of balances (INTEREST, FEE, PRINCIPAL) as a result of ALL reversals that cycle:
  • cycle_payment_reversal_interest_cents
  • cycle_payment_reversal_interest_split_cents
  • cycle_total_payment_reversal_interest_cents
  • cycle_payment_reversal_fees_cents
  • cycle_payment_reversal_fees_split_cents
  • cycle_total_payment_reversal_fees_cents
  • cycle_payment_reversal_principal_split_cents
  • cycle_reversal_split_cents
All of that in addition to individual line item detail (line_item_relationship_summary) within an array of objects (line_items) for that cycle!
Check out this section on the Cycle/Statement level of the Retroactive-event processing Guide for more details, and the 200 Response to our GET /statements/{statement_id} for exact field definitions.

CanopyOS
Fix
Improvement
8 months ago
This release includes a number of minor CanopyOS improvements:
  • In the “Account Detail” view, secondary customers of an account were incorrectly marked as “P” for primary. Now, all related customers should have the correct role.
  • When submitting the “Account Status Change” form after changing the account status, sometimes the user would be unable to submit the form without changing the account substatus as well. This has been corrected.
  • Sorting of rows in the “Interest Rate drawer” on the “Account Detail” view could be non-deterministic, causing the ordering to change on successive renders. This issue has been corrected.
  • The “Admin” menu in the top bar has been moved to the left navigation.
    • Image without caption

Borrower Portal
Fix
8 months ago
Previously, the dashboard view for Borrower Portal included upcoming payments for closed accounts in the Upcoming Payment list as well as summing them into the “Payments Due This Month” amount.
Now, these payments are correctly excluded.

Improvement
Fix
8 months ago
We are enhancing the way we support account statuses by allowing any account in a closed status (regardless of sub status) to continue to stop all cycle related activity (statement generation, reoccurring fees, new charges) while now supporting payment activity (payments, refunds, credits, offsets). Payments will also following payment pouring logic for applicable line items.

CanopyOS
Fix
8 months ago
A bug in our release Aug 22, 2023 caused installment cards for embedded loans on the “Account Detail” view in CanopyOS to intermittently re-order, as well as amortization schedules for embedded loans to be incorrectly ordered.
A hotfix for this bug has been deploy: the ordering of installment cards and loan amortization schedules should now be fixed.

CanopyOS
Improvement
8 months ago
Previously, the Account Status Change form drawer available through the Manage menu in the Account Detail view did not have a notes field, unlike most of the other similar drawers. This meant that a user would potentially have to go through form submission twice: once to change the status, and once to add a note explaining the status change.
Now, Account Status Change form contains a note field which includes the context of which statuses the account changed from and to.
Image without caption
Image without caption

CanopyOS
Improvement
8 months ago
The design of the card component for embedded installment loans on the Account Detail view of CanopyOS has been improved.
Image without caption

CanopyOS
Fix
8 months ago
Previously, the statement detail view in LoanLab incorrectly displayed the statement’s minimum payment due for the “Previous Statement Min Pay” field due to mismapped fields in the frontend.
This error has been corrected.

CanopyOS
Improvement
8 months ago
Formerly, in the App Keys view in CanopyOS, there was a poor user experience when attempting to add application keys when:
  • Organization is already at the maximum number of application keys
  • Application key name has invalid characters
Now, we properly disable app key creation when the organization is at the maximum number of keys, and user should correctly observe form validation errors when entering an invalid application key name.

CanopyOS
Improvement
8 months ago
Formerly, the product detail card in the account detail view of CanopyOS did not display any recurring fees for the account product.
These fees will now appear on the product detail card correctly.

CanopyOS
Fix
8 months ago
Formerly, CanopyOS did not properly apply the product timezone in transaction detail drawers. In some cases, this resulted in a mismatch of dates between the “Transaction History” list and their respective transaction detail drawers.
This issue has been resolved, and all dates should now match between both views.

CanopyOS
Feature
9 months ago
Formerly, simulated accounts in LoanLab would simply inherit their promotional policies from the selected product.
Now, it is possible to override those policies at the account level through the LoanLab UI.
Image without caption

CanopyOS
Improvement
9 months ago
Formerly, there was no way for a CanopyOS user to know the date on which an unpaid account will become delinquent.
Now this detail is available in the Upcoming Payment card of the account detail view.
Image without caption

Feature
Improvement
9 months ago
Support for multiple webhook URLs
  • Canopy now allows sending webhook notifications to multiple URLs. This is useful if you need multiple systems to act on the activity and changes that happen within Canopy.
  • You can now also limit which webhook events get sent to a particular URL. For example, if you only wanted to receive webhook notifications for account creation events, you can limit that through our new filter property.
  • For more details on this change, please see our Docs.
  • Updates to the Canopy roadmap can be reviewed here.
Other changes
  • Improving the performance of retroactive engine
  • Updates to reconciliation reporting for money movement customers

CanopyOS
Fix
9 months ago
Formerly, in some cases, after changing the “Requested Outlay Date” field in the “Modify Finance Request” form, and saving changes, an edge case caused timezone offsets to be applied incorrectly when the record was updated in the database, causing the “Requested Outlay Date” field to shift by one day.
This edge case has been identified and is now correctly handled, ensuring users should always observe the same “Requested Outlay Date” value after they save the form.

CanopyOS
9 months ago
The design of the global loader component in CanopyOS has been refreshed.

2️⃣
Product
Improvement
9 months ago
In order to improve the stability and enable faster development of new features, we’ve made a few infrastructure changes to DataDirect.
There are no changes to the customer experience or core functionality, however, the changes require new connection credentials to be created.
1.       Access our existing endpoint to retrieve new credentials via GET …/organization/data_direct
2.       Then, update your database client/ data warehouse/ data lake with those access credentials. That’s all!
You can see an example response (i.e. credentials) and more inside our documentation.

CanopyOS
9 months ago
The login experience for CanopyOS has been refreshed.
Image without caption

CanopyOS
Fix
9 months ago
Formerly, amortization schedule would display “paid” amounts in red if that payment had not been satisfied in full, regardless of current date.
Now, amortization schedule only displays “paid” amounts in red if the payment was not paid in full on time.

CanopyOS
Fix
9 months ago
Previously, in some instances, when rapidly clicked, CanopyOS pagination components could incorrectly paginate into negative page numbers.
An additional safeguard has been added to ensure this can no longer occur.

Improvement
9 months ago
  • Improvements to retro handler to increase reliability of reversals
  • Improvements to DataDirect platform stability to allow for greater reliability for larger lending programs
  • Improvements to platform stability to ensure uptime during hot fixes and releases

CanopyOS
Fix
9 months ago
Previously, snackbar notifications at top of screen could become stuck in some scenarios and not dismiss properly.
Snackbar notifications now more reliably dismiss, and can be manually dismissed by clicking the notification.

CanopyOS
Improvement
Fix
10 months ago
Previously, installment accounts in LoanLab had a fixed number of cycles (defaulting to the term of the loan). Two changes have been made:
  1. The default number of cycles has been increased to the term of the loan + 1, as no payment is expected the first cycle. This additional cycle enables LoanLab scenarios with strict repayment and observing final statement with $0.00 balance.
  1. The “Add a Cycle” button, formerly present only for revolving accounts, is now present on the timeline for installment accounts as well. This enables the user to create scenarios where borrower underpays (which will result in creation of an additional cycle).

CanopyOS
Fix
10 months ago
Previously, because the merchant notes form default value was not populated from the API, a merchant with note would have its note overwritten with an empty value when submitting the “edit merchant” form.
Now, the “edit merchant” form should correctly populate the existing merchant note as the default value, allowing it to be edited, and ensuring it is not overwritten with empty values.

CanopyOS
Fix
10 months ago
Previously, in the account detail view, when a drawer was opened by clicking an item in the “Manage” dropdown, in some cases the dropdown items would remain clickable while the drawer was open. This caused unintended behavior that could result in opening other drawers while interacting with the current drawer.
An additional safeguard has been added to ensure this does not occur.

10 months ago
  • Increased validation and monitoring of Canopy’s event system through internal tooling
  • Infrastructure changes
  • Additional automations related to Metro2 reporting through Bloom to account for Use of Retroactive Engine V2 in Payment Failures

10 months ago
  • Canopy has behaviorally changed handling of payment failures throughout the system to leverage our V2 Retroactive engine and to make the nature of behavior consistent with the reversal of settled payments.
  • All Impacted users have received full notice around these impacts and coordinated with the Accounts team.

10 months ago
  • Technical infrastructure improvements for system of record (non-user impacting)
  • Technical infrastructure enhancements for DataDirect (non-user impacting)
  • Performance improvements for event processing
  • Fix - Merchant Data inclusion for charges in DataDirect
  • Pending Payment refactor in test environments (impacted clients notified directly based on product usage patterns)

10 months ago
Improvements to NACHA, Loan Tapes, and balance review.

🧪
beta
Feature
CanopyOS
11 months ago
LoanLab now supports the ability to simulate the behavior of an account when strict payment is enabled.
The new setting can be found in the Advanced Details section of the Account Setup screen.
Strict payment turned on will limit min pay reduction to only payments. Refunds and debit offsets will not reduce min pay when off. This setting is often useful for consumer products at risk of refund fraud.
Image without caption

🧪
beta
CanopyOS
Feature
11 months ago
You can now test autopay behavior on an account through LoanLab!
This feature is useful for answering questions such as:
  1. What is the exact date and time that autopay will trigger?
  1. How much will autopay trigger for in different scenarios?
  1. Will autopay trigger at all given other transaction events on the account?
Check out the demo:

🧪
beta
CanopyOS
Improvement
11 months ago
LoanLab now allows you to search for the product you’d like to use for your simulation account.
Image without caption

CanopyOS
Fix
11 months ago
Previously, in LoanLab simulations, a bug with initial null values being coerced to false resulted in amortization schedules always appearing as if minimum payments due had not been met. Amortization schedules in LoanLab simulations should now correctly reflect payment activity on the simulated account.

Improvement
API
11 months ago
Improvements to our how our API verifies authentication tokens—expect to see faster response times across the product.

CanopyOS
Improvement
11 months ago
Previously, CanopyOS did not provide insight into which payment was reversed. Now, once a reversal has processed, users will observe a reversed tag in the Transaction History list on the reversed payment.
Image without caption

Borrower Portal
Improvement
11 months ago
New account_status filter on Upcoming Payments list view is now applied to CSV download results as well.

Borrower Portal
Feature
11 months ago
Added a new filter for Upcoming Payments list view and backing API to enable filtering results by account_overview.account_status.

Borrower Portal
Fix
11 months ago
Previously, Upcoming Payments list view included payments for accounts in all statuses including CLOSED. This caused confusion as these payments are no longer expected to be made.
By default, this view now applies a filter that excludes accounts in CLOSED status. See new account_status filter for more details.
Image without caption

Borrower Portal
Fix
11 months ago
Previously, if user paginated forward on the Upcoming Payments list view, and then applied a filter, pagination parameters were not cleared.
This resulted in unexpected UI state where user appeared to be on a page greater than 1, but usually observed an empty list.
Now, when applying filters, pagination is reset and user will observe first page of new result set correctly.

CanopyOS
Improvement
11 months ago
Previously detail statistics for revolving accounts included a redundant minimum due amount:
Image without caption
Now, detail statistics for revolving accounts shows in its place the total interest, sourced from account.summary.interest_balance_cents:
Image without caption

CanopyOS
Fix
11 months ago
Previously, min pay principal amount in statements for revolving accounts was being sourced from the incorrect attribute and thus would be appear as -. Now it is correctly sourced from min_pay_details.min_pay_revolving_principal_cents

CanopyOS
Fix
11 months ago
Previously, current interest rate in SCRA drawer was wrong in some scenarios. The current interest rate shown is now correctly sourced from from account.summary.interest_rate_percent.

beta
Feature
1 year ago

🧪
beta
1 year ago
While LoanLab continues to be in beta, we are continuously working to iterate and improve it.
A few enhancements and fixes we’ve recently released:
  1. Action Timeline Enhancements:
    1. Your Action Timeline view in LoanLab will now automatically expand the Cycle that has your last played Action.
    2. Fixes to improve the performance of Action playing.
  1. Welcome Page: We’ve enhanced the Welcome Page to give better clarity and instruction on how to use LoanLab
  1. Additional Recurring Fee Interval options.
  1. Additional transaction status options.
  1. A number of miscellaneous bug fixes.
Noticed a bug? Want to request a feature? Want to let us know you’re enjoying the tool? Tell us about it here →

🧪
beta
Product
1 year ago
INNOVATE. SIMULATE. OPERATE.
LoanLab is powerful loan simulation platform that empowers you to experiment, validate, and optimize your credit and lending programs with confidence. Simulate the entire lifecycle of a loan, test different policies and actions, and observe real-time effects.
LoanLab can be found in the CanopyOS menu of your UAT environment.
Image without caption

🔄
Improvement
1 year ago
DataDirect has added a new Refresh History Table to assist you in identifying the date and time of the last refresh of a particular table. This will also let you know the exact time at which a tables’ data is representative of.

Improvement
1 year ago
A number of additional fields that were previously only available through our API are now also available through DataDirect as well. All available fields can be found in the DataDirect Getting Started Guide.

🥼
beta
Improvement
1 year ago
Past Due Assessments on Failed Payments
When a payment is initiated before a due date, but fails after the due date, all past due assessments can now be applied. This reduces fraud risk and guards against borrowers making a payment they know will fail in order to stay in the grace period, avoid fees, or avoid delinquency.

🎋
v1
Improvement
1 year ago
Canopy's webhooks that previously fired only in real-world time, can now fire in response to testing accounts using Controlled Processing.

🪁
v1
Improvement
1 year ago
You can now optionally configure installment loans to limit their interest generation to the loan duration.

🥎
beta
Feature
1 year ago
You can now safely modify the terms of a loan while preserving the history of loan activity. This supports a variety of use-cases depending on your loan agreement with your borrower. This allows you to enhance your lending programs to give borrowers more flexibility over their repayments, and adjust the structure of your loans to meet the changing needs of your borrowers.

Fix
1 year ago
We are happy to restore automatic hourly refreshes for DataDirect users who have experienced once-per-day refreshes for the last week.

🧮
v1
Feature
1 year ago
Canopy has added the capability to charge interest on installment products (loans) using the average daily ending balance of the loan. Interest is calculated by multiplying the daily periodic interest rate by the mean ending balance of the loan across all days in the cycle in question.

〰️
Feature
1 year ago
Fine-grained transaction details from Galileo authorizations & adjustments are now present in Canopy line_item metadata for users of the Canopy Galileo issuer-processor integration.

🪑
Improvement
1 year ago
Within the Canopy Lithic Integration, expired authorizations now sync Canopy line item statuses to VOID.

📤
Improvement
1 year ago
For users of the Canopy Lithic Integration, Canopy is now prepared for Lithic’s published breaking changes taking effect on February 8th, 2023. No action is needed on your part.

⛏️
Improvement
1 year ago
You should now expect improved performance when querying Line Item history for accounts, even if they have many line items.

👀
Improvement
1 year ago
Canopy has an allocation feature that may be applied to balance offsets to designate that the offset can be applied to a specific balance bucket (fees, interest, principal, or deferred interest). Previously, when applying an offset with an allocation, subsequently querying the offset did not let you know which balance bucket the offset was applied to. The allocation parameter is now included in the response, so you can see which balance bucket an offset was applied to!

🎫
beta
Feature
1 year ago
You can now react to changes in an account’s calculations — any activity that changes a computed value for an account will automatically get sent to your subscribed webhook URL.
Powered by Notaku