Version deployed on Jul 26, 2020.

Canopy Servicing Core API

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 26, 2020.

Base URL
https://sandbox.canopyservicing.com

Products

Create and launch credit products within the Canopy system.

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)

    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.

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.

    • status string

      The status of a Product (i.e. live or draft). Products with the draft status require additional policy configurations to launch.

      Values are VALID.

    • policies Required / object

      An object of policies that drive product behavior.

      • policies.base_policy_config object

        The configured minimum payment required for a given pay period.

        • policies.base_policy_config.percentage number

          The percentage of total balance calculated for min pay. (i.e. 20 means 20%)

    • product_summary object

      Summary of product information.

      • product_summary.accounts_overview object
        • product_summary.accounts_overview.account_count_total integer

          Total number of accounts under the product.

        • product_summary.accounts_overview.account_count_delinquent integer

          Total number of delinquent accounts under the product.

      • product_summary.total_credit_issued_cents integer

        Total amount (in cents) of credit issued to accounts under the product.

      • product_summary.utilization_rate number

        The percent utilization rate of the product.

      • product_summary.product_id string(uuid)

        The Canopy-generated ID for the product.

      • product_summary.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 on 2020-01-20 00:00:00 EST". If empty defaults to current time.

    • 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_cents integer

        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.

  • 404

    No Products

Definition
GET https://sandbox.canopyservicing.com/products
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/products \ -H "Content-Type: application/json"
Response example (200)
[ { "product_id": "8fe1eb97-d640-45d6-83bb-f415ddf97a51", "name": "Blue Cash Express", "description": "Student credit card.", "created_at": "2019-03-20T09:12:28Z", "type": "CREDIT", "status": "VALID", "policies": { "base_policy_config": { "percentage": "20" } }, "product_summary": { "accounts_overview": { "account_count_total": 10005, "account_count_delinquent": 200 }, "total_credit_issued_cents": 25500000, "utilization_rate": 30.34, "product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d", "effective_as_of_date": "2017-06-20T09:12:14Z" }, "default_attributes": { "rate": 3.2, "credit_limit_cents": 600000 } } ]
Response example (404)
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 the live state.
    If not included and any necessary fields for product creation are not populated, the product will publish to the draft state.

    Values are draft, live.

  • policies object

    An Object of policies that drive Product behaviour.

    • policies.base_policy_config object

      The configured minimum payment required for a given pay period.

      • policies.base_policy_config.percentage number

        The percentage of total balance calculated for min pay. (i.e. 20 means 20%)

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 or draft). Products with the draft status require additional policy configurations to launch.

  • 422

    Invalid input

Definition
POST https://sandbox.canopyservicing.com/products
cURL example
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":{"percentage":"20"}}}'
Request payload example
{ "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": { "percentage": "20" } } }
Response example (204)
{ "name": "Blue Cash Express", "product_id": "44c7298f-b515-4dc3-84b2-21186e1b1d3b", "status": "live" }
Response example (422)
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 on 2020-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.

    • status string

      The status of a Product (i.e. live or draft). Products with the draft status require additional policy configurations to launch.

      Values are VALID.

    • policies Required / object

      An object of policies that drive product behavior.

      • policies.base_policy_config object

        The configured minimum payment required for a given pay period.

        • policies.base_policy_config.percentage number

          The percentage of total balance calculated for min pay. (i.e. 20 means 20%)

    • product_summary object

      Summary of product information.

      • product_summary.accounts_overview object
        • product_summary.accounts_overview.account_count_total integer

          Total number of accounts under the product.

        • product_summary.accounts_overview.account_count_delinquent integer

          Total number of delinquent accounts under the product.

      • product_summary.total_credit_issued_cents integer

        Total amount (in cents) of credit issued to accounts under the product.

      • product_summary.utilization_rate number

        The percent utilization rate of the product.

      • product_summary.product_id string(uuid)

        The Canopy-generated ID for the product.

      • product_summary.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 on 2020-01-20 00:00:00 EST". If empty defaults to current time.

    • 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_cents integer

        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.

  • 404

    No Products found

Definition
GET https://sandbox.canopyservicing.com/products/{product_id}
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/products/{product_id} \ -H "Content-Type: application/json"
Response example (200)
{ "product_id": "8fe1eb97-d640-45d6-83bb-f415ddf97a51", "name": "Blue Cash Express", "description": "Student credit card.", "created_at": "2019-03-20T09:12:28Z", "type": "CREDIT", "status": "VALID", "policies": { "base_policy_config": { "percentage": "20" } }, "product_summary": { "accounts_overview": { "account_count_total": 10005, "account_count_delinquent": 200 }, "total_credit_issued_cents": 25500000, "utilization_rate": 30.34, "product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d", "effective_as_of_date": "2017-06-20T09:12:14Z" }, "default_attributes": { "rate": 3.2, "credit_limit_cents": 600000 } }
Response example (404)
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 on 2020-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 the live state.
    If not included and any necessary fields for product creation are not populated, the product will publish to the draft state.

    Values are draft, live.

  • policies object

    An Object of policies that drive Product behaviour.

    • policies.base_policy_config object

      The configured minimum payment required for a given pay period.

      • policies.base_policy_config.percentage number

        The percentage of total balance calculated for min pay. (i.e. 20 means 20%)

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 or draft). Products with the draft status require additional policy configurations to launch.

  • 422

    Invalid input

Definition
PUT https://sandbox.canopyservicing.com/products/{product_id}
cURL example
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":{"percentage":"20"}}}'
Request payload example
{ "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": { "percentage": "20" } } }
Response example (204)
{ "name": "Blue Cash Express", "product_id": "44c7298f-b515-4dc3-84b2-21186e1b1d3b", "status": "live" }
Response example (422)
No content

Delete an existing product

Delete an existing product. Product status must be draft to be deleted.

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.

Definition
DELETE https://sandbox.canopyservicing.com/products/{product_id}
cURL example
curl \ -X DELETE https://sandbox.canopyservicing.com/products/{product_id}?product_id=string \ -H "Content-Type: application/json"
Response example (204)
{ "name": "string", "product_id": "44c7298f-b515-4dc3-84b2-21186e1b1d3b" }

Get all accounts created under a specific product

Returns all accounts created under a specific product. Results are paginated.

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
    • current_accounts array[string](uuid)

      Account ID

  • 404

    Account not found

Definition
GET https://sandbox.canopyservicing.com/products/{product_id}/accounts
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/products/{product_id}/accounts \ -H "Content-Type: application/json"
Response example (200)
{ "current_accounts": [ "5e860ad7-5fff-4130-844c-ec9ead83a025" ] }
Response example (404)
No content

Accounts

Manage the way your users use credit products you've launched in Canopy

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 on 2020-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.

    • accounts_overview object
      • accounts_overview.account_count_total integer

        Total number of accounts under the product.

      • accounts_overview.account_count_delinquent integer

        Total number of delinquent accounts under the product.

    • total_credit_issued_cents integer

      Total amount (in cents) of credit issued to accounts under the product.

    • utilization_rate number

      The percent utilization rate of the product.

    • 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 on 2020-01-20 00:00:00 EST". If empty defaults to current time.

  • 404

    Account not found

Definition
GET https://sandbox.canopyservicing.com/products/{product_id}/summaries
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/products/{product_id}/summaries \ -H "Content-Type: application/json"
Response example (200)
{ "accounts_overview": { "account_count_total": 10005, "account_count_delinquent": 200 }, "total_credit_issued_cents": 25500000, "utilization_rate": 30.34, "product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d", "effective_as_of_date": "2017-06-20T09:12:14Z" }
Response example (404)
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 object
        • accounts.product.product_id Required / string(uuid)

          The Canopy-generated ID for the product.

        • accounts.product.name string

          Name of Product, i.e. Express Card.

        • accounts.product.description string

          Description of the Product.

        • accounts.product.created_at string(date-time)

          The Date-Time that this product was created on the server.

        • accounts.product.type string

          The Type of Product

          Values are CREDIT.

        • accounts.product.status string

          The status of a Product (i.e. live or draft). Products with the draft status require additional policy configurations to launch.

          Values are VALID.

        • accounts.product.policies Required / object

          An object of policies that drive product behavior.

          • accounts.product.policies.base_policy_config object

            The configured minimum payment required for a given pay period.

            • accounts.product.policies.base_policy_config.percentage number

              The percentage of total balance calculated for min pay. (i.e. 20 means 20%)

        • accounts.product.product_summary object

          Summary of product information.

          • accounts.product.product_summary.accounts_overview object
            • accounts.product.product_summary.accounts_overview.account_count_total integer

              Total number of accounts under the product.

            • accounts.product.product_summary.accounts_overview.account_count_delinquent integer

              Total number of delinquent accounts under the product.

          • accounts.product.product_summary.total_credit_issued_cents integer

            Total amount (in cents) of credit issued to accounts under the product.

          • accounts.product.product_summary.utilization_rate number

            The percent utilization rate of the product.

          • accounts.product.product_summary.product_id string(uuid)

            The Canopy-generated ID for the product.

          • accounts.product.product_summary.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 on 2020-01-20 00:00:00 EST". If empty defaults to current time.

        • accounts.product.default_attributes object
          • accounts.product.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.

          • accounts.product.default_attributes.credit_limit_cents integer

            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.

      • 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.total_balance number

        The total balance (in cents) associated with the account.

      • 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%)

      • accounts.available_credit_balance number

        The total available credit balance (in cents) for the account.

      • accounts.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 on 2020-10-20 00:00:00 EST. If empty it defaults to current time.

    • total_account_count number

      Total number of accounts

  • 404

    No accounts found

Definition
GET https://sandbox.canopyservicing.com/accounts
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/accounts \ -H "Content-Type: application/json"
Response example (200)
{ "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": { "product_id": "8fe1eb97-d640-45d6-83bb-f415ddf97a51", "name": "Blue Cash Express", "description": "Student credit card.", "created_at": "2019-03-20T09:12:28Z", "type": "CREDIT", "status": "VALID", "policies": { "base_policy_config": { "percentage": "20" } }, "product_summary": { "accounts_overview": { "account_count_total": 10005, "account_count_delinquent": 200 }, "total_credit_issued_cents": 25500000, "utilization_rate": 30.34, "product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d", "effective_as_of_date": "2017-06-20T09:12:14Z" }, "default_attributes": { "rate": 3.2, "credit_limit_cents": 600000 } }, "external_account_ids": [ { "name": "Umbrella Corporation", "id": "22445702-a389-431f-927d-07b8d0750787" } ], "total_balance": "400000", "credit_limit_cents": "400000", "rate": "6.2", "available_credit_balance": "600000", "effective_as_of_date": "2018-07-20T09:10:14Z" } ], "total_account_count": 42.0 }
Response example (404)
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 object
      • product.product_id Required / string(uuid)

        The Canopy-generated ID for the product.

      • product.name string

        Name of Product, i.e. Express Card.

      • product.description string

        Description of the Product.

      • product.created_at string(date-time)

        The Date-Time that this product was created on the server.

      • product.type string

        The Type of Product

        Values are CREDIT.

      • product.status string

        The status of a Product (i.e. live or draft). Products with the draft status require additional policy configurations to launch.

        Values are VALID.

      • product.policies Required / object

        An object of policies that drive product behavior.

        • product.policies.base_policy_config object

          The configured minimum payment required for a given pay period.

          • product.policies.base_policy_config.percentage number

            The percentage of total balance calculated for min pay. (i.e. 20 means 20%)

      • product.product_summary object

        Summary of product information.

        • product.product_summary.accounts_overview object
          • product.product_summary.accounts_overview.account_count_total integer

            Total number of accounts under the product.

          • product.product_summary.accounts_overview.account_count_delinquent integer

            Total number of delinquent accounts under the product.

        • product.product_summary.total_credit_issued_cents integer

          Total amount (in cents) of credit issued to accounts under the product.

        • product.product_summary.utilization_rate number

          The percent utilization rate of the product.

        • product.product_summary.product_id string(uuid)

          The Canopy-generated ID for the product.

        • product.product_summary.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 on 2020-01-20 00:00:00 EST". If empty defaults to current time.

      • product.default_attributes object
        • product.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.

        • product.default_attributes.credit_limit_cents integer

          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.

    • 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

    • total_balance number

      The total balance (in cents) associated with the account.

    • 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%)

    • available_credit_balance number

      The total available credit balance (in cents) 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 on 2020-10-20 00:00:00 EST. If empty it defaults to current time.

  • 405

    Invalid input

Definition
POST https://sandbox.canopyservicing.com/accounts
cURL example
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"}'
Request payload example
{ "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" }
Response example (201)
{ "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": { "product_id": "8fe1eb97-d640-45d6-83bb-f415ddf97a51", "name": "Blue Cash Express", "description": "Student credit card.", "created_at": "2019-03-20T09:12:28Z", "type": "CREDIT", "status": "VALID", "policies": { "base_policy_config": { "percentage": "20" } }, "product_summary": { "accounts_overview": { "account_count_total": 10005, "account_count_delinquent": 200 }, "total_credit_issued_cents": 25500000, "utilization_rate": 30.34, "product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d", "effective_as_of_date": "2017-06-20T09:12:14Z" }, "default_attributes": { "rate": 3.2, "credit_limit_cents": 600000 } }, "external_account_ids": [ { "name": "Umbrella Corporation", "id": "22445702-a389-431f-927d-07b8d0750787" } ], "total_balance": "400000", "credit_limit_cents": "400000", "rate": "6.2", "available_credit_balance": "600000", "effective_as_of_date": "2018-07-20T09:10:14Z" }
Response example (405)
No content

Get a specific Account

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 on 2020-10-20 00:00:00 EST. If empty it defaults to current time.

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 object
      • product.product_id Required / string(uuid)

        The Canopy-generated ID for the product.

      • product.name string

        Name of Product, i.e. Express Card.

      • product.description string

        Description of the Product.

      • product.created_at string(date-time)

        The Date-Time that this product was created on the server.

      • product.type string

        The Type of Product

        Values are CREDIT.

      • product.status string

        The status of a Product (i.e. live or draft). Products with the draft status require additional policy configurations to launch.

        Values are VALID.

      • product.policies Required / object

        An object of policies that drive product behavior.

        • product.policies.base_policy_config object

          The configured minimum payment required for a given pay period.

          • product.policies.base_policy_config.percentage number

            The percentage of total balance calculated for min pay. (i.e. 20 means 20%)

      • product.product_summary object

        Summary of product information.

        • product.product_summary.accounts_overview object
          • product.product_summary.accounts_overview.account_count_total integer

            Total number of accounts under the product.

          • product.product_summary.accounts_overview.account_count_delinquent integer

            Total number of delinquent accounts under the product.

        • product.product_summary.total_credit_issued_cents integer

          Total amount (in cents) of credit issued to accounts under the product.

        • product.product_summary.utilization_rate number

          The percent utilization rate of the product.

        • product.product_summary.product_id string(uuid)

          The Canopy-generated ID for the product.

        • product.product_summary.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 on 2020-01-20 00:00:00 EST". If empty defaults to current time.

      • product.default_attributes object
        • product.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.

        • product.default_attributes.credit_limit_cents integer

          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.

    • 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

    • total_balance number

      The total balance (in cents) associated with the account.

    • 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%)

    • available_credit_balance number

      The total available credit balance (in cents) 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 on 2020-10-20 00:00:00 EST. If empty it defaults to current time.

  • 404

    Account not found

Definition
GET https://sandbox.canopyservicing.com/accounts/{account_id}
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/accounts/a361c813-92e5-4765-82ea-9df368a81a89 \ -H "Content-Type: application/json"
Response example (200)
{ "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": { "product_id": "8fe1eb97-d640-45d6-83bb-f415ddf97a51", "name": "Blue Cash Express", "description": "Student credit card.", "created_at": "2019-03-20T09:12:28Z", "type": "CREDIT", "status": "VALID", "policies": { "base_policy_config": { "percentage": "20" } }, "product_summary": { "accounts_overview": { "account_count_total": 10005, "account_count_delinquent": 200 }, "total_credit_issued_cents": 25500000, "utilization_rate": 30.34, "product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d", "effective_as_of_date": "2017-06-20T09:12:14Z" }, "default_attributes": { "rate": 3.2, "credit_limit_cents": 600000 } }, "external_account_ids": [ { "name": "Umbrella Corporation", "id": "22445702-a389-431f-927d-07b8d0750787" } ], "total_balance": "400000", "credit_limit_cents": "400000", "rate": "6.2", "available_credit_balance": "600000", "effective_as_of_date": "2018-07-20T09:10:14Z" }
Response example (404)
No content

Update a customer account

Update rate and/or credit_limit_cents for an individual account.

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

Definition
PUT https://sandbox.canopyservicing.com/accounts/{account_id}
cURL example
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"}'
Request payload example
{ "rate": "5.2", "credit_limit_cents": "700000" }
Response example (201)
No content
Response example (405)
No content

Delete a specific Account

Deleting an account also deletes all of its associated line items.

URL parameters
  • account_id Required / string(uuid)

    Account ID

Responses
  • 204

    Account Deleted

  • 404

    Account not found

Definition
DELETE https://sandbox.canopyservicing.com/accounts/{account_id}
cURL example
curl \ -X DELETE https://sandbox.canopyservicing.com/accounts/{account_id} \ -H "Content-Type: application/json"
Response example (204)
No content
Response example (404)
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 on 2020-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 and payments. 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, and unsuccessful.

    • type string

      The Line Item Type. Either charge or payment.

      Values are charge and payment.

    • 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 the account's interest rate attribute.

    • total_interest_accrued_cents number

      The sum (in cents) of all interest charges, if any, applied to this line item

    • total_paid_down_cents number

      The sum (in cents) of all payment splits, if any, applied to this line item

    • 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

Definition
GET https://sandbox.canopyservicing.com/accounts/{account_id}/line_items
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/accounts/{account_id}/line_items \ -H "Content-Type: application/json"
Response example (200)
[ { "account_id": "2911ff2a-bebe-4c85-8d19-e6001015a8e3", "line_item_id": "ce9ed376-f151-435f-a59c-9e3cc183bbea", "line_item_status": "posted", "type": "charge", "originating_amount_cents": "2385", "balance_amount_cents": "2401", "total_interest_accrued_cents": "16", "total_paid_down_cents": "1125", "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" } ]
Response example (404)
No content

Create a dispute for a specific account's line item

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

Definition
POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/{line_item_id}/disputes
cURL example
curl \ -X POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/{line_item_id}/disputes \ -H "Content-Type: application/json"
Response example (204)
{ "account_id": "string", "line_item_id": "string", "dispute_id": "string" }
Response example (404)
No content

Get a list of all current and prior 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 on 2020-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 on 2020-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.

Definition
GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements_list
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements_list \ -H "Content-Type: application/json"
Response example (200)
{ "account_id": "111eff36-cbec-4119-b188-b76200e804d8", "effective_as_of_date": "2018-07-20T09:10:14Z", "statements_list": [ { "statement_id": "3627809b-ff07-4e41-b127-44260efb3b80", "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 on 2020-10-20 00:00:00 EST. If empty it defaults to current time.

Responses
  • 200 object
    • accounts_overview object
      • accounts_overview.account_count_total integer

        Total number of accounts under the product.

      • accounts_overview.account_count_delinquent integer

        Total number of delinquent accounts under the product.

    • total_credit_issued_cents integer

      Total amount (in cents) of credit issued to accounts under the product.

    • utilization_rate number

      The percent utilization rate of the product.

    • 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 on 2020-01-20 00:00:00 EST". If empty defaults to current time.

  • 404

    Account not found

Definition
GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/accounts/{account_id}/statements \ -H "Content-Type: application/json"
Response example (200)
{ "accounts_overview": { "account_count_total": 10005, "account_count_delinquent": 200 }, "total_credit_issued_cents": 25500000, "utilization_rate": 30.34, "product_id": "ca3cf4e9-5048-4461-a763-8f67b46dfd4d", "effective_as_of_date": "2017-06-20T09:12:14Z" }
Response example (404)
No content

Line items

Get information on a specific line item for a specific account

URL parameters
  • account_id Required / string(uuid)

    Account ID

  • line_item_id Required / string(uuid)

    Line Item 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 on 2020-10-20 00:00:00 EST. If empty it defaults to current time.

Responses
  • 204 object

    Detailed info about a specific line item

    • 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 the account's interest rate attribute.

    • total_interest_accrued_cents number

      The sum (in cents) of all interest charges, if any, applied to this line item

    • total_paid_down_cents number

      The sum (in cents) of all payment splits, if any, applied to this line item

    • 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 on 2020-10-20 00:00:00 EST. If empty it defaults to current time.

    • line_item_details array[object]
      • line_item_details.line_item_detail_id string(uuid)
      • line_item_details.date string(date-time)

        The date the detail was applied to the line item

      • line_item_details.type string

        The type of detail being applied to the line item

        Values are payment_split, interest.

      • line_item_details.amount_cents number

        The value, in cents, of this line item detail

      • line_item_details.balance_cents number

        The balance of the line item, in cents, after this detail is applied

Definition
GET https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/{line_item_id}
cURL example
curl \ -X GET https://sandbox.canopyservicing.com/accounts/17d25206-1012-4576-89f0-c5fe128edd3e/line_items/8f0a3e81-24b9-4d32-b15b-a59257ed7485 \ -H "Content-Type: application/json"
Response example (204)
{ "originating_amount_cents": "2385", "balance_amount_cents": "2401", "total_interest_accrued_cents": "16", "total_paid_down_cents": "1125", "effective_as_of_date": "2018-07-20T09:10:14Z", "line_item_details": [ { "line_item_detail_id": "2e9ad65e-3bf0-4be2-8117-a8c992f08774", "date": "2021-05-04T09:42:00+00:00", "type": "payment_split", "amount_cents": "0054", "balance_cents": "20988" } ] }

Create a charge for a specific account

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

Definition
POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/charges
cURL example
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"}]}'
Request payload example
{ "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" } ] }
Response example (204)
{ "line_item_id": "e58b78c3-0df8-4895-b10c-0fa88b266119" }
Response example (401)
No content
Response example (403)
No content
Response example (404)
No content

Create a payment for a specific account

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

Definition
POST https://sandbox.canopyservicing.com/accounts/{account_id}/line_items/payments
cURL example
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"}]}'
Request payload example
{ "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" } ] }
Response example (204)
{ "line_item_id": "464920a3-d531-422d-adfb-ce61e52255bf" }
Response example (404)
No content