The Date-Time
you would like the system to return the data as of. IE tell me what the products were as if I had asked on 2020-10-20 00:00:00 EST
. If empty it defaults to current time.
API Overview
Canopy allows you to easily manage credit products from a servicing and compliance perspective - whether newly launched or migrated from existing systems. Using Canopy, you can track balances and transactions for each user of your product, both in real-time and historically. You can access and track information related to disputes, see how various policy and product changes would impact your users, and readily generate compliance reports and minimize your risk with all real-time information always on hand.
Simply configure your product’s policies through our Policy Management Dashboard, and then you can immediately begin adding users and relying on Canopy for accurate servicing information.
Getting Started
Get started in three easy steps.
1) Contact us to request API Keys
2) Configure policies
a) For most uses, we recommend using the Policy Management Dashboard
b) If you will be configuring many credit products programmatically or require niche configurations, you can also configure products in Canopy directly through our Policy Management API.
3) Once your product is configured and launched in Canopy, you have access to the full power of the Servicing API! You can take advantage of our sample workflows, or construct your own using this API documentation.
Authentication
To request an API key, contact us.
This is the documentation for version 1.3
of the API. Last update on Jul 13, 2020.
https://sandbox.canopyservicing.com
Get all available products
If you have configured and launched multiple products within Canopy, retrieve information related to all of your configured products at once.
URL parameters
-
effective_as_of_date string(date-time)
Responses
-
• 200 array[object]
Array of Products
-
product_id Required / string(uuid)
The Canopy-generated ID for the product.
-
name string
Name of Product. (i.e. Express Card).
-
description string
Description of the Product.
-
created_at string(date-time)
The
Date-Time
that this product was created on the server. -
type string
The Type of Product
Values are
credit
. -
policies Required / object
An object of policies that drive product behaviour.
-
policies.base_policy_config object
A base group of policies that define a Product/Plan/Promo
-
policies.base_policy_config.min_pay object
The configured minimum payment required for a given pay period.
-
policies.base_policy_config.min_pay.percentage number
The percentage of total balance calculated for min pay. (i.e. 20 means 20%)
-
-
policies.base_policy_config.billing_cycle object
The Billing Cycle Object
-
policies.base_policy_config.billing_cycle.period string(interval)
The length of the billing cycle. after which a statement is generated, and a due date assigned. IE '1 month' '3 months' or '7 days' (most common is monthly)
-
policies.base_policy_config.billing_cycle.billing_due_date_interval string(interval)
The amount of time you would like between the statement cut and the billing due date. IE '25 days'. Cannot exceed the start of the next billing cycle and generally needs to be at least 21 days.
-
-
policies.base_policy_config.interest_policies object
the Interest Object
-
policies.base_policy_config.interest_policies.type string
Values are
compound
. -
policies.base_policy_config.interest_policies.method string
the actual base formula used to calculate and assign interest
Values are
average daily balance
. -
policies.base_policy_config.interest_policies.day_calc_type string
Affects the base calculation by determining how many days there are in a given year.
Values are
365
. -
policies.base_policy_config.interest_policies.interest_calc_time string(date-time)
The interest for this policy calculated based on this time + the interval time
-
-
policies.base_policy_config.close_of_business_and_timezone string(date-time)
Time and timezone of the close of business. This is used for statement cuts and partner-level and issuing bank-level reconciliation
-
-
-
default_attributes object
-
default_attributes.rate number
The percent default rate for this interest policy (i.e. 3.2 means a 3.2% rate). This default rate can be overridden on a per-account basis if a
rate
is selected at the time of assigning an account to a product. Rates for an account can also be updated post-account creation. -
default_attributes.credit_limit number
The default maximum principal credit (in cents) available for a customer account. This default limit can be overridden on a per-account basis if a
credit_limit
is selected at the time of assigning an account to a product. Credit limits for an account can also be updated post-account creation.
-
-
current_accounts array[string](uuid)
Account ID which was generated by Canopy at the time of account creation.
-
-
• 404
No Products
GET https://sandbox.canopyservicing.com/products
curl \
-X GET https://sandbox.canopyservicing.com/products \
-H "Content-Type: application/json"
[
{
"product_id": "8fe1eb97-d640-45d6-83bb-f415ddf97a51",
"name": "Blue Cash Express",
"description": "Student credit card.",
"created_at": "2019-03-20T09:12:28Z",
"type": "credit",
"policies": {
"base_policy_config": {
"min_pay": {
"percentage": "20"
},
"billing_cycle": {
"period": "1 month",
"billing_due_date_interval": "25 days"
},
"interest_policies": {
"type": "compound",
"method": "average daily balance",
"day_calc_type": "365",
"interest_calc_time": "2020-09-20T09:02:28Z"
},
"close_of_business_and_timezone": "2020-03-20T09:12:28Z"
}
},
"default_attributes": {
"rate": "3.2",
"credit_limit": "600000"
},
"current_accounts": [
"28c152ec-49f7-4a18-9b75-34905db3bcb5"
]
}
]
No content
Create a new product
At its core, Canopy allows you to create credit products that meet the specific needs of your users. We offer robust options to configure these products within our system.
For most use cases, we recommend configuring products by using the Policy Management Dashboard; however, you can also configure and manage products programmatically.
Request body for creating a new product.
The following fields are minimum requirements for products to be published with the live
status:
- name
- default_rate
- default_credit_limit_cents
policies
(with an appropriate Base Policy Configuration)
Body
-
name Required / string
The Name of the Product
-
type string
The Type of Product. If not included, defaults to
credit
Values are
credit
. -
default_rate number
The percentage default rate for accounts created under this interest policy (i.e. 5.2 indicates a 5.2% interest rate). You may customize rates for each account by overriding this default rate at the time of account creation or updating the rate for a given account.
-
default_credit_limit_cents integer
The default total oustanding amout of money (in cents) that an account created under this product could borrow. You may customize rates for each account by overriding this default rate at the time of account creation or updating the rate for a given account.
-
description string
Description of the Product.
-
status string
The status to publish this product with. This can only be
live
if all fields necessary for product creation are populated.
If not included and all fields necessary for product creation are populated, the product will publish to thelive
state.
If not included and any necessary fields for product creation are not populated, the product will publish to thedraft
state.Values are
draft, live
. -
policies object
An Object of policies that drive Product behaviour.
-
policies.base_policy_config object
A base group of policies that define a Product/Plan/Promo
-
policies.base_policy_config.min_pay object
The configured minimum payment required for a given pay period.
-
policies.base_policy_config.min_pay.percentage number
The percentage of total balance calculated for min pay. (i.e. 20 means 20%)
-
-
policies.base_policy_config.billing_cycle object
The Billing Cycle Object
-
policies.base_policy_config.billing_cycle.period string(interval)
The length of the billing cycle. after which a statement is generated, and a due date assigned. IE '1 month' '3 months' or '7 days' (most common is monthly)
-
policies.base_policy_config.billing_cycle.billing_due_date_interval string(interval)
The amount of time you would like between the statement cut and the billing due date. IE '25 days'. Cannot exceed the start of the next billing cycle and generally needs to be at least 21 days.
-
-
policies.base_policy_config.interest_policies object
the Interest Object
-
policies.base_policy_config.interest_policies.type string
Values are
compound
. -
policies.base_policy_config.interest_policies.method string
the actual base formula used to calculate and assign interest
Values are
average daily balance
. -
policies.base_policy_config.interest_policies.day_calc_type string
Affects the base calculation by determining how many days there are in a given year.
Values are
365
. -
policies.base_policy_config.interest_policies.interest_calc_time string(date-time)
The interest for this policy calculated based on this time + the interval time
-
-
policies.base_policy_config.close_of_business_and_timezone string(date-time)
Time and timezone of the close of business. This is used for statement cuts and partner-level and issuing bank-level reconciliation
-
-
Responses
-
• 204 object
Product Created
-
name string
The name of the product
-
product_id string(uuid)
An ID for your newly created product, generated by Canopy.
-
status string
The Status of a Product (i.e.
live
ordraft
). Products with thedraft
status require additional policy configurations to launch.
-
-
• 422
Invalid input
POST https://sandbox.canopyservicing.com/products
curl \
-X POST https://sandbox.canopyservicing.com/products \
-H "Content-Type: application/json" \
-d '{"name":"Blue Cash Express","type":"credit","default_rate":"5.2","default_credit_limit_cents":"700000","description":"Consumer credit card","status":"draft","policies":{"base_policy_config":{"min_pay":{"percentage":"20"},"billing_cycle":{"period":"1 month","billing_due_date_interval":"25 days"},"interest_policies":{"type":"compound","method":"average daily balance","day_calc_type":"365","interest_calc_time":"2020-09-20T09:02:28Z"},"close_of_business_and_timezone":"2020-03-20T09:12:28Z"}}}'
{
"name": "Blue Cash Express",
"type": "credit",
"default_rate": "5.2",
"default_credit_limit_cents": "700000",
"description": "Consumer credit card",
"status": "draft",
"policies": {
"base_policy_config": {
"min_pay": {
"percentage": "20"
},
"billing_cycle": {
"period": "1 month",
"billing_due_date_interval": "25 days"
},
"interest_policies": {
"type": "compound",
"method": "average daily balance",
"day_calc_type": "365",
"interest_calc_time": "2020-09-20T09:02:28Z"
},
"close_of_business_and_timezone": "2020-03-20T09:12:28Z"
}
}
}
{
"name": "Blue Cash Express",
"product_id": "44c7298f-b515-4dc3-84b2-21186e1b1d3b",
"status": "live"
}
No content
Get info on a particular product
Using the product_id
which was generated when the product was launched, retrieve information pertaining to a specific product.
URL parameters
-
product_id Required / string(uuid)
Product ID
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the Products were as if I had asked on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
Responses
-
• 200 object
Product
-
product_id Required / string(uuid)
The Canopy-generated ID for the product.
-
name string
Name of Product. (i.e. Express Card).
-
description string
Description of the Product.
-
created_at string(date-time)
The
Date-Time
that this product was created on the server. -
type string
The Type of Product
Values are
credit
. -
policies Required / object
An object of policies that drive product behaviour.
-
policies.base_policy_config object
A base group of policies that define a Product/Plan/Promo
-
policies.base_policy_config.min_pay object
The configured minimum payment required for a given pay period.
-
policies.base_policy_config.min_pay.percentage number
The percentage of total balance calculated for min pay. (i.e. 20 means 20%)
-
-
policies.base_policy_config.billing_cycle object
The Billing Cycle Object
-
policies.base_policy_config.billing_cycle.period string(interval)
The length of the billing cycle. after which a statement is generated, and a due date assigned. IE '1 month' '3 months' or '7 days' (most common is monthly)
-
policies.base_policy_config.billing_cycle.billing_due_date_interval string(interval)
The amount of time you would like between the statement cut and the billing due date. IE '25 days'. Cannot exceed the start of the next billing cycle and generally needs to be at least 21 days.
-
-
policies.base_policy_config.interest_policies object
the Interest Object
-
policies.base_policy_config.interest_policies.type string
Values are
compound
. -
policies.base_policy_config.interest_policies.method string
the actual base formula used to calculate and assign interest
Values are
average daily balance
. -
policies.base_policy_config.interest_policies.day_calc_type string
Affects the base calculation by determining how many days there are in a given year.
Values are
365
. -
policies.base_policy_config.interest_policies.interest_calc_time string(date-time)
The interest for this policy calculated based on this time + the interval time
-
-
policies.base_policy_config.close_of_business_and_timezone string(date-time)
Time and timezone of the close of business. This is used for statement cuts and partner-level and issuing bank-level reconciliation
-
-
-
default_attributes object
-
default_attributes.rate number
The percent default rate for this interest policy (i.e. 3.2 means a 3.2% rate). This default rate can be overridden on a per-account basis if a
rate
is selected at the time of assigning an account to a product. Rates for an account can also be updated post-account creation. -
default_attributes.credit_limit number
The default maximum principal credit (in cents) available for a customer account. This default limit can be overridden on a per-account basis if a
credit_limit
is selected at the time of assigning an account to a product. Credit limits for an account can also be updated post-account creation.
-
-
current_accounts array[string](uuid)
Account ID which was generated by Canopy at the time of account creation.
-
-
• 404
No Products found
GET https://sandbox.canopyservicing.com/products/{product_id}
curl \
-X GET https://sandbox.canopyservicing.com/products/{product_id} \
-H "Content-Type: application/json"
{
"product_id": "8fe1eb97-d640-45d6-83bb-f415ddf97a51",
"name": "Blue Cash Express",
"description": "Student credit card.",
"created_at": "2019-03-20T09:12:28Z",
"type": "credit",
"policies": {
"base_policy_config": {
"min_pay": {
"percentage": "20"
},
"billing_cycle": {
"period": "1 month",
"billing_due_date_interval": "25 days"
},
"interest_policies": {
"type": "compound",
"method": "average daily balance",
"day_calc_type": "365",
"interest_calc_time": "2020-09-20T09:02:28Z"
},
"close_of_business_and_timezone": "2020-03-20T09:12:28Z"
}
},
"default_attributes": {
"rate": "3.2",
"credit_limit": "600000"
},
"current_accounts": [
"28c152ec-49f7-4a18-9b75-34905db3bcb5"
]
}
No content
Update an existing product
Add additional configurations to a product. Products must be in the draft
state to be updated.
URL parameters
-
product_id Required / string(uuid)
Product ID
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the product information was as if I had asked on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
Body
-
name Required / string
The Name of the Product
-
type string
The Type of Product. If not included, defaults to
credit
Values are
credit
. -
default_rate number
The percentage default rate for accounts created under this interest policy (i.e. 5.2 indicates a 5.2% interest rate). You may customize rates for each account by overriding this default rate at the time of account creation or updating the rate for a given account.
-
default_credit_limit_cents integer
The default total oustanding amout of money (in cents) that an account created under this product could borrow. You may customize rates for each account by overriding this default rate at the time of account creation or updating the rate for a given account.
-
description string
Description of the Product.
-
status string
The status to publish this product with. This can only be
live
if all fields necessary for product creation are populated.
If not included and all fields necessary for product creation are populated, the product will publish to thelive
state.
If not included and any necessary fields for product creation are not populated, the product will publish to thedraft
state.Values are
draft, live
. -
policies object
An Object of policies that drive Product behaviour.
-
policies.base_policy_config object
A base group of policies that define a Product/Plan/Promo
-
policies.base_policy_config.min_pay object
The configured minimum payment required for a given pay period.
-
policies.base_policy_config.min_pay.percentage number
The percentage of total balance calculated for min pay. (i.e. 20 means 20%)
-
-
policies.base_policy_config.billing_cycle object
The Billing Cycle Object
-
policies.base_policy_config.billing_cycle.period string(interval)
The length of the billing cycle. after which a statement is generated, and a due date assigned. IE '1 month' '3 months' or '7 days' (most common is monthly)
-
policies.base_policy_config.billing_cycle.billing_due_date_interval string(interval)
The amount of time you would like between the statement cut and the billing due date. IE '25 days'. Cannot exceed the start of the next billing cycle and generally needs to be at least 21 days.
-
-
policies.base_policy_config.interest_policies object
the Interest Object
-
policies.base_policy_config.interest_policies.type string
Values are
compound
. -
policies.base_policy_config.interest_policies.method string
the actual base formula used to calculate and assign interest
Values are
average daily balance
. -
policies.base_policy_config.interest_policies.day_calc_type string
Affects the base calculation by determining how many days there are in a given year.
Values are
365
. -
policies.base_policy_config.interest_policies.interest_calc_time string(date-time)
The interest for this policy calculated based on this time + the interval time
-
-
policies.base_policy_config.close_of_business_and_timezone string(date-time)
Time and timezone of the close of business. This is used for statement cuts and partner-level and issuing bank-level reconciliation
-
-
Responses
-
• 204 object
Product Created
-
name string
The name of the product
-
product_id string(uuid)
An ID for your newly created product, generated by Canopy.
-
status string
The Status of a Product (i.e.
live
ordraft
). Products with thedraft
status require additional policy configurations to launch.
-
-
• 422
Invalid input
PUT https://sandbox.canopyservicing.com/products/{product_id}
curl \
-X PUT https://sandbox.canopyservicing.com/products/{product_id} \
-H "Content-Type: application/json" \
-d '{"name":"Blue Cash Express","type":"credit","default_rate":"5.2","default_credit_limit_cents":"700000","description":"Consumer credit card","status":"draft","policies":{"base_policy_config":{"min_pay":{"percentage":"20"},"billing_cycle":{"period":"1 month","billing_due_date_interval":"25 days"},"interest_policies":{"type":"compound","method":"average daily balance","day_calc_type":"365","interest_calc_time":"2020-09-20T09:02:28Z"},"close_of_business_and_timezone":"2020-03-20T09:12:28Z"}}}'
{
"name": "Blue Cash Express",
"type": "credit",
"default_rate": "5.2",
"default_credit_limit_cents": "700000",
"description": "Consumer credit card",
"status": "draft",
"policies": {
"base_policy_config": {
"min_pay": {
"percentage": "20"
},
"billing_cycle": {
"period": "1 month",
"billing_due_date_interval": "25 days"
},
"interest_policies": {
"type": "compound",
"method": "average daily balance",
"day_calc_type": "365",
"interest_calc_time": "2020-09-20T09:02:28Z"
},
"close_of_business_and_timezone": "2020-03-20T09:12:28Z"
}
}
}
{
"name": "Blue Cash Express",
"product_id": "44c7298f-b515-4dc3-84b2-21186e1b1d3b",
"status": "live"
}
No content
URL parameters
-
product_id Required / string(uuid)
The Canopy-generated ID for your product.
Responses
-
• 204 object
Product deleted
-
name string
The name of the product
-
product_id string(uuid)
The ID of the deleted product.
-
DELETE https://sandbox.canopyservicing.com/products/{product_id}
curl \
-X DELETE https://sandbox.canopyservicing.com/products/{product_id}?product_id=string \
-H "Content-Type: application/json"
{
"name": "string",
"product_id": "44c7298f-b515-4dc3-84b2-21186e1b1d3b"
}
Get summary details for a specific product.
For analytic purposes, retrieve commonly needed summary statistics computed for a specific product.
URL parameters
-
product_id Required / string(uuid)
Product ID
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the product summary information was on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
Responses
-
• 200 object
Response for a request for summary data for a specific product.
-
total_account_count number
Total number of accounts under the product.
-
total_credit_issued number
Total amount (in cents) of credit issued to accounts under the product.
-
utilization number
The percent utilization rate of the product. (i.e. 30 means 30% utilization).
-
product_id string(uuid)
The Canopy-generated ID for the product.
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the product information was as if I had asked on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
-
-
• 404
Account not found
GET https://sandbox.canopyservicing.com/products/{product_id}/summaries
curl \
-X GET https://sandbox.canopyservicing.com/products/{product_id}/summaries \
-H "Content-Type: application/json"
{
"total_account_count": "10005",
"total_credit_issued": "25500000",
"utilization": "30",
"product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d",
"effective_as_of_date": "2017-06-20T09:12:14Z"
}
No content
Get all available Accounts
Get details for all accounts linked to any of your products. Results are sorted by the date the account was created.
URL parameters
-
offset number
The zero-indexed starting point for paginated account requests sorted by account created date.
-
limit number
The maximum number of accounts to be returned. Defaults to 100.
Responses
-
• 200 object
Array of Accounts
-
accounts array[object]
An array of information for all accounts within the requested range.
-
accounts.account_id string(uuid)
This is generated by Canopy. A unique ID for the account.
-
accounts.account_status string
The Status of the Account. Active upon account creation.
-
accounts.account_status_subtype string
The subtype of the Status of the Account. Null upon account creation.
-
accounts.effective_at string(date-time)
The
Date-Time
that this account became/becomes active. -
accounts.created_at string(date-time)
The
Date-Time
which the account was created in the API. -
accounts.product_id string(uuid)
The Product ID of the account.
-
accounts.external_account_ids array[object]
An Array of External Account IDs. These should be used to connect accounts created in Canopy to Users in your system and any connected external systems.
-
accounts.external_account_ids.name string
Name of the External Party
-
accounts.external_account_ids.id string
External Account ID
-
-
accounts.credit_limit_cents integer
Total Amount (in cents) that this account can borrow.
-
accounts.rate number
The percentage interest applied to the account (i.e. 6.2 means 6.2%)
-
-
total_account_count number
Total number of accounts
-
-
• 404
No accounts found
GET https://sandbox.canopyservicing.com/accounts
curl \
-X GET https://sandbox.canopyservicing.com/accounts \
-H "Content-Type: application/json"
{
"accounts": [
{
"account_id": "5fb3a288-5f6c-440f-b079-b06c828b7768",
"account_status": "suspended",
"account_status_subtype": "suspended-bankruptcy",
"effective_at": "2018-03-20T09:12:28Z",
"created_at": "2017-06-20T09:12:14Z",
"product_id": "d119341c-47fd-4a55-bce7-28406dacfa20",
"external_account_ids": [
{
"name": "Umbrella Corporation",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
],
"credit_limit_cents": "400000",
"rate": "6.2"
}
],
"total_account_count": 42.0
}
No content
Create a new customer account
An account should be created for each end user of each of your products. Once created, you will be able to add line_items
to the account.
Body
-
product_id Required / string(uuid)
the Product ID of the account
-
external_ids array[object]
An array of static references to ID fields in a third party system.
-
external_ids.name string
Name of the External Party
-
external_ids.id string
External Account ID
-
-
credit_limit_cents integer
Total Amount (in cents) that this account can borrow.
-
rate number
The percentage interest applied to the account (i.e. 6.2%)
Responses
-
• 201 object
New Account Created
-
account_id string(uuid)
This is generated by Canopy. A unique ID for the account.
-
account_status string
The Status of the Account. Active upon account creation.
-
account_status_subtype string
The subtype of the Status of the Account. Null upon account creation.
-
effective_at string(date-time)
The
Date-Time
that this account became/becomes active. -
created_at string(date-time)
The
Date-Time
which the account was created in the API. -
product_id string(uuid)
The Product ID of the account.
-
external_account_ids array[object]
An Array of External Account IDs. These should be used to connect accounts created in Canopy to Users in your system and any connected external systems.
-
external_account_ids.name string
Name of the External Party
-
external_account_ids.id string
External Account ID
-
-
credit_limit_cents integer
Total Amount (in cents) that this account can borrow.
-
rate number
The percentage interest applied to the account (i.e. 6.2 means 6.2%)
-
-
• 405
Invalid input
POST https://sandbox.canopyservicing.com/accounts
curl \
-X POST https://sandbox.canopyservicing.com/accounts \
-H "Content-Type: application/json" \
-d '{"product_id":"d119341c-47fd-4a55-bce7-28406dacfa20","external_ids":[{"name":"Globex Corporation","id":"22445702-a389-431f-927d-07b8d0750787"}],"credit_limit_cents":"400000","rate":"6.2"}'
{
"product_id": "d119341c-47fd-4a55-bce7-28406dacfa20",
"external_ids": [
{
"name": "Globex Corporation",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
],
"credit_limit_cents": "400000",
"rate": "6.2"
}
{
"account_id": "5fb3a288-5f6c-440f-b079-b06c828b7768",
"account_status": "suspended",
"account_status_subtype": "suspended-bankruptcy",
"effective_at": "2018-03-20T09:12:28Z",
"created_at": "2017-06-20T09:12:14Z",
"product_id": "d119341c-47fd-4a55-bce7-28406dacfa20",
"external_account_ids": [
{
"name": "Umbrella Corporation",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
],
"credit_limit_cents": "400000",
"rate": "6.2"
}
No content
URL parameters
-
account_id Required / string(uuid)
Account ID
Responses
-
• 200 object
Successful query of information for a specific account
-
account_id string(uuid)
This is generated by Canopy. A unique ID for the account.
-
account_status string
The Status of the Account. Active upon account creation.
-
account_status_subtype string
The subtype of the Status of the Account. Null upon account creation.
-
effective_at string(date-time)
The
Date-Time
that this account became/becomes active. -
created_at string(date-time)
The
Date-Time
which the account was created in the API. -
product_id string(uuid)
The Product ID of the account.
-
external_account_ids array[object]
An Array of External Account IDs. These should be used to connect accounts created in Canopy to Users in your system and any connected external systems.
-
external_account_ids.name string
Name of the External Party
-
external_account_ids.id string
External Account ID
-
-
credit_limit_cents integer
Total Amount (in cents) that this account can borrow.
-
rate number
The percentage interest applied to the account (i.e. 6.2 means 6.2%)
-
-
• 404
Account not found
GET https://sandbox.canopyservicing.com/accounts/{account_id}
curl \
-X GET https://sandbox.canopyservicing.com/accounts/a361c813-92e5-4765-82ea-9df368a81a89 \
-H "Content-Type: application/json"
{
"account_id": "5fb3a288-5f6c-440f-b079-b06c828b7768",
"account_status": "suspended",
"account_status_subtype": "suspended-bankruptcy",
"effective_at": "2018-03-20T09:12:28Z",
"created_at": "2017-06-20T09:12:14Z",
"product_id": "d119341c-47fd-4a55-bce7-28406dacfa20",
"external_account_ids": [
{
"name": "Umbrella Corporation",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
],
"credit_limit_cents": "400000",
"rate": "6.2"
}
No content
URL parameters
-
account_id Required / string(uuid)
Account ID
Body
-
rate number
The percentage default rate for accounts created under this interest policy (i.e. 5.2 indicates a 5.2% interest rate). You may customize rates for each account by overriding this default rate at the time of account creation or updating the rate for a given account.
-
credit_limit_cents integer
The default total oustanding amout of money (in cents) that an account created under this product could borrow. You may customize rates for each account by overriding this default rate at the time of account creation or updating the rate for a given account.
Responses
-
• 201
New Account Created
-
• 405
Invalid input
PUT https://sandbox.canopyservicing.com/accounts/{account_id}
curl \
-X PUT https://sandbox.canopyservicing.com/accounts/a361c813-92e5-4765-82ea-9df368a81a89 \
-H "Content-Type: application/json" \
-d '{"rate":"5.2","credit_limit_cents":"700000"}'
{
"rate": "5.2",
"credit_limit_cents": "700000"
}
No content
No content
URL parameters
-
account_id Required / string(uuid)
Account ID
Responses
-
• 204
Account Deleted
-
• 404
Account not found
DELETE https://sandbox.canopyservicing.com/accounts/{account_id}
curl \
-X DELETE https://sandbox.canopyservicing.com/accounts/{account_id} \
-H "Content-Type: application/json"
No content
No content
Get line items for a specific account.
Line Items for an Account consist of charges
to the account and payments
by the account holder. Results are paginated and sorted by line item effective date.
URL parameters
-
account_id Required / string(uuid)
Account ID
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the line items were on2020-10-20 00:00:00 EST
. If empty it defaults to current time. -
line_item_type string
The type of line items you would like to view. Options are
charges
andpayments
. If not provided, no filters will be applied. -
offset number
The zero-indexed starting point for paginated line item requests sorted by line item effective date.
-
limit number
The maximum number of line items to be returned. Defaults to 100.
Responses
-
• 200 array[object]
Array of Line Items and their corresponding balances at their effective dates and times.
-
account_id string(uuid)
The account associated with the line item
-
line_item_id string(uuid)
-
line_item_status string
the corresponding Status for a line item
Values are
posted
,valid
,invalid
,declined
,authorized
,void
,pending
,successful
, andunsuccessful
. -
type string
The Line Item Type. Either
charge
orpayment
.Values are
charge
andpayment
. -
originating_amount_cents number
The originating amount of money (in cents) relating to this line item.
-
balance_amount_cents number
The current balance of the line item, which accounts for interest accrued per the
product's
interest policy and theaccount's
interest rate attribute. -
merchant_data object
-
merchant_data.name string
-
merchant_data.id string
-
merchant_data.mcc_code number
-
merchant_data.phone_number string(phonenumber)
-
-
effective_at string(date-time)
The
Date-Time
that this account became/becomes active -
created_at string(date-time)
The
Date-Time
which the account was created in the API -
product_id string(uuid)
the Product ID of the account
-
description string
A description of this particular line item if any. More common for adjustments.
-
reference_id string
User ID in your system to associate with the payment for the account defined in Canopy.
-
dispute_id string(uuid)
The ID for a dispute if present for this line item.
-
external_ids array[object]
An array of static references to ID fields in a third party system.
-
external_ids.name string
Name of the External Party
-
external_ids.id string
External Account ID
-
-
line_item_count string
Total number of line items for the account.
-
-
• 404
Account not found
GET https://sandbox.canopyservicing.com/accounts/{account_id}/line_items
curl \
-X GET https://sandbox.canopyservicing.com/accounts/{account_id}/line_items \
-H "Content-Type: application/json"
[
{
"account_id": "2911ff2a-bebe-4c85-8d19-e6001015a8e3",
"line_item_id": "ce9ed376-f151-435f-a59c-9e3cc183bbea",
"line_item_status": "posted",
"type": "charge",
"originating_amount_cents": 42.0,
"balance_amount_cents": 42.0,
"merchant_data": {
"name": "string",
"id": "string",
"mcc_code": 42.0,
"phone_number": "string"
},
"effective_at": "2018-07-20T09:12:30Z",
"created_at": "2018-06-20T09:12:30Z",
"product_id": "158cd7a1-d813-42d2-90a3-9a91c43f18f8",
"description": "Refund for invalid purchase",
"reference_id": "e39c6b0d-5793-49c5-bee7-a2dbf8808f3a",
"dispute_id": "string",
"external_ids": [
{
"name": "Globex Card Processing",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
],
"line_item_count": "string"
}
]
No content
URL parameters
-
account_id Required / string(uuid)
Account ID
-
line_item_id Required / string(uuid)
Line Item ID
Responses
-
• 204 object
Response upon successful creation of a dispute
-
account_id string(uuid)
-
line_item_id string(uuid)
-
dispute_id string(uuid)
-
-
• 404
Account not found
POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/{line_item_id}/disputes
curl \
-X POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/{line_item_id}/disputes \
-H "Content-Type: application/json"
{
"account_id": "string",
"line_item_id": "string",
"dispute_id": "string"
}
No content
URL parameters
-
account_id Required / string(uuid)
Account ID
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the account information was on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
Responses
-
• 200 object
-
available_credit_balance number
The total available credit balance (in cents) for the account.
-
total_balance number
The total balance (in cents) associated with the account.
-
account_id string(uuid)
The Canopy-generated ID for the account
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the account information was as if I had asked on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
-
-
• 404
Account not found
GET https://sandbox.canopyservicing.com/accounts/{account_id}/summaries
curl \
-X GET https://sandbox.canopyservicing.com/accounts/{account_id}/summaries \
-H "Content-Type: application/json"
{
"available_credit_balance": "600000",
"total_balance": "400000",
"account_id": "111eff36-cbec-4119-b188-b76200e804d8",
"effective_as_of_date": "2018-07-20T09:10:14Z"
}
No content
Get a list of all statements for a specific account
List of statements for the account. To view line items for a specific statement, use the /accounts/{account_id}/statements
route
URL parameters
-
account_id Required / string(uuid)
Account ID
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the account information was on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
Responses
-
• 200 object
-
account_id string(uuid)
The Canopy-generated ID for the account
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the account information was as if I had asked on2020-10-20 00:00:00 EST
. If empty it defaults to current time. -
statements_list array[object]
An array of statements included in the billing cycle.
-
statements_list.statement_id string(uuid)
A Canopy-generated ID for the statement
-
statements_list.available_credit_balance number
The total available credit balance (in cents) for the account.
-
statements_list.total_balance number
The total balance (in cents) associated with the account.
-
statements_list.min_pay_due_date string(date-time)
The
Date-Time
at which the minimum payment is due. -
statements_list.min_pay_amount_cents number
The minimum amount (in cents) due for this statement.
-
statements_list.billing_cycle_start_date string(date-time)
The inclusive starting
Date-Time
that defines which transations are part of this statement. -
statements_list.billing_cycle_end_date string(date-time)
The inclusive ending
Date-Time
that defines which transations are part of this statement.
-
-
GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements_list
curl \
-X GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements_list \
-H "Content-Type: application/json"
{
"account_id": "111eff36-cbec-4119-b188-b76200e804d8",
"effective_as_of_date": "2018-07-20T09:10:14Z",
"statements_list": [
{
"statement_id": "string",
"available_credit_balance": "600000",
"total_balance": "400000",
"min_pay_due_date": "2021-05-04T09:42:00+00:00",
"min_pay_amount_cents": 42.0,
"billing_cycle_start_date": "2021-05-04T09:42:00+00:00",
"billing_cycle_end_date": "2021-05-04T09:42:00+00:00"
}
]
}
Get a statement for a given date for a specific account.
This will return the most recent Statement information based on the effective_as_of_date
. Relevant dates for an account's historical statements can be obtained from the accounts/{account_id}/statements_list
route.
URL parameters
-
account_id Required / string(uuid)
Account ID
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the account information was on2020-10-20 00:00:00 EST
. If empty it defaults to current time.
Responses
-
• 200 object
-
available_credit_balance number
The total available credit balance (in cents) for the account.
-
total_balance number
The total balance (in cents) associated with the account.
-
account_id string(uuid)
The Canopy-generated ID for the account
-
effective_as_of_date string(date-time)
The
Date-Time
you would like the system to return the data as of. IE tell me what the account information was as if I had asked on2020-10-20 00:00:00 EST
. If empty it defaults to current time. -
min_pay_due_date string(date-time)
The
Date-Time
at which the minimum payment is due. -
min_pay_amount_cents number
The minimum amount (in cents) due for this statement.
-
billing_cycle_start_date string(date-time)
The inclusive starting
Date-Time
that defines which transations are part of this statement. -
billing_cycle_end_date string(date-time)
The inclusive ending
Date-Time
that defines which transations are part of this statement. -
line_items array[object]
An array of line items included in the billing cycle.
-
line_items.account_id Required / string(uuid)
The account associated with the line item
-
line_items.line_item_id Required / string(uuid)
-
line_items.line_item_status Required / string
the corresponding Status for a line item
Values are
posted
,valid
,invalid
,declined
,authorized
,void
,pending
,successful
, andunsuccessful
. -
line_items.type Required / string
The Line Item Type. Either
charge
orpayment
.Values are
charge
andpayment
. -
line_items.originating_amount_cents number
The originating amount of money (in cents) relating to this line item.
-
line_items.balance_amount_cents number
The current balance of the line item, which accounts for interest accrued per the
product's
interest policy and theaccount's
interest rate attribute. -
line_items.rate number
The percentage rate applied to this line item (i.e. 15.5 means 15.5%). If it was not set at the time of charge creation, its default value is the default rate of the account.
-
line_items.merchant_data object
-
line_items.merchant_data.name string
-
line_items.merchant_data.id string
-
line_items.merchant_data.mcc_code number
-
line_items.merchant_data.phone_number string(phonenumber)
-
-
line_items.effective_at Required / string(date-time)
The
Date-Time
that this line item became/becomes active -
line_items.created_at Required / string(date-time)
The
Date-Time
which the line item was created in the API -
line_items.product_id Required / string(uuid)
the Product ID of the account
-
line_items.description string
A description of this particular line item if any. More common for adjustments.
-
line_items.reference_id Required / string
User ID in your system to associate with the payment for the account defined in Canopy.
-
line_items.dispute_id string(uuid)
The ID for a dispute if present for this line item.
-
line_items.external_ids array[object]
An array of static references to ID fields in a third party system.
-
line_items.external_ids.name string
Name of the External Party
-
line_items.external_ids.id string
External Account ID
-
-
-
-
• 404
Account not found
GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements
curl \
-X GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements \
-H "Content-Type: application/json"
{
"available_credit_balance": "600000",
"total_balance": "400000",
"account_id": "111eff36-cbec-4119-b188-b76200e804d8",
"effective_as_of_date": "2018-07-20T09:10:14Z",
"min_pay_due_date": "2021-05-04T09:42:00+00:00",
"min_pay_amount_cents": 42.0,
"billing_cycle_start_date": "2021-05-04T09:42:00+00:00",
"billing_cycle_end_date": "2021-05-04T09:42:00+00:00",
"line_items": [
{
"account_id": "2911ff2a-bebe-4c85-8d19-e6001015a8e3",
"line_item_id": "ce9ed376-f151-435f-a59c-9e3cc183bbea",
"line_item_status": "posted",
"type": "charge",
"originating_amount_cents": 42.0,
"balance_amount_cents": 42.0,
"rate": "15.5%",
"merchant_data": {
"name": "string",
"id": "string",
"mcc_code": 42.0,
"phone_number": "string"
},
"effective_at": "2018-07-20T09:12:30Z",
"created_at": "2018-06-20T09:12:30Z",
"product_id": "158cd7a1-d813-42d2-90a3-9a91c43f18f8",
"description": "Refund for invalid purchase",
"reference_id": "e39c6b0d-5793-49c5-bee7-a2dbf8808f3a",
"dispute_id": "string",
"external_ids": [
{
"name": "Globex Card Processing",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
]
}
]
}
No content
URL parameters
-
account_id Required / string(uuid)
Account ID
Body
-
amount_cents Required / integer
The Integer Amount of the Charge in Cents
-
effective_at Required / string(date-time)
The
Date-Time
that the charge should be recorded to the account. Although the charge is being added to Canopy today, it can actually be effective as of 10 days ago. -
rate number
The percentage rate to be applied to this charge (i.e. 15.5 means 15.5%). If not included, defaults to the rate for the acount.
-
merchant_data Required / object
-
merchant_data.name string
-
merchant_data.id string
-
merchant_data.mcc_code Required / number
-
merchant_data.phone_number string(phonenumber)
-
-
reference_id string
A unique ID generated in your system to associate with the Charge.
-
external_ids array[object]
An array of static references to ID fields in a third party system.
-
external_ids.name string
Name of the External Party
-
external_ids.id string
External Account ID
-
Responses
-
• 204 object
Charge Created
-
line_item_id string(uuid)
The ID in Canopy's system for this line item.
-
-
• 401
You are not authenticated
-
• 403
You are not authorized
-
• 404
Account not found
POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/charges
curl \
-X POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/charges \
-H "Content-Type: application/json" \
-d '{"amount_cents":"200","effective_at":"2020-07-20T09:11:28Z","rate":"15.5%","merchant_data":{"name":"string","id":"string","mcc_code":42.0,"phone_number":"string"},"reference_id":"e39c6b0d-5793-49c5-bee7-a2dbf8808f3a","external_ids":[{"name":"Globex Card Processing","id":"22445702-a389-431f-927d-07b8d0750787"}]}'
{
"amount_cents": "200",
"effective_at": "2020-07-20T09:11:28Z",
"rate": "15.5%",
"merchant_data": {
"name": "string",
"id": "string",
"mcc_code": 42.0,
"phone_number": "string"
},
"reference_id": "e39c6b0d-5793-49c5-bee7-a2dbf8808f3a",
"external_ids": [
{
"name": "Globex Card Processing",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
]
}
{
"line_item_id": "e58b78c3-0df8-4895-b10c-0fa88b266119"
}
No content
No content
No content
URL parameters
-
account_id Required / string(uuid)
Account ID
Body
-
amount_cents integer
The Integer Amount of the Payment in Cents
-
effective_at string(date-time)
The
Date-Time
that the payment should be recorded to the account. Although the payment is being added to Canopy today, it can actually be effective as of 10 days ago. -
reference_id string
A unique ID generated in your system to associate with the Payment.
-
external_ids array[object]
An array of static references to ID fields in a third party system.
-
external_ids.name string
Name of the External Party
-
external_ids.id string
External Account ID
-
Responses
-
• 204 object
Charge Created
-
line_item_id string(uuid)
The ID in Canopy's system for this line item.
-
-
• 404
Account not found
POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/payments
curl \
-X POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/payments \
-H "Content-Type: application/json" \
-d '{"amount_cents":"200","effective_at":"2020-07-20T09:11:28Z","reference_id":"e39c6b0d-5793-49c5-bee7-a2dbf8808f3a","external_ids":[{"name":"Globex Card Processing","id":"22445702-a389-431f-927d-07b8d0750787"}]}'
{
"amount_cents": "200",
"effective_at": "2020-07-20T09:11:28Z",
"reference_id": "e39c6b0d-5793-49c5-bee7-a2dbf8808f3a",
"external_ids": [
{
"name": "Globex Card Processing",
"id": "22445702-a389-431f-927d-07b8d0750787"
}
]
}
{
"line_item_id": "464920a3-d531-422d-adfb-ce61e52255bf"
}
No content