Back to Top

API Overview
Canopy allows you to easily manage credit, installment, or other more complex lending programs from a servicing and compliance perspective - whether newly launched or migrated from existing systems. Using Canopy, you can track balances and transactions for each customer of your product, both in real-time and historically. You can see how various policy and product changes would impact your customers, and readily generate compliance reports and minimize your risk with all real-time information always on hand.

Canopy additionally surfaces information around all of your lending activity through its intuitive UI which provides a customer support interface as well as at-a-glance data needed for compliance and insights.

Simply configure your product’s policies through our Create Product API endpoint, and then you can immediately begin adding customer accounts and relying on Canopy for accurate servicing information.

This is the documentation for version 1.8.94 of the API. Last update on Aug 8, 2022.

Base URL
https://sandbox-api.canopyservicing.com

Get started in three easy steps.

1) Review the Authentication tutorial to connect and experiment with our Sandbox environment.

2) Create your own credentials in our public sandbox.

3) Follow the onboarding steps once you've logged into the public sandbox.

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 sample workflows provided by our team, or construct your own using this API documentation.

To create your organization within Canopy, register for our public sandbox. You can find a full guide to authenticating in Canopy in our developer onboarding tutorial.

To get going quickly, we recommend using an API collaboration tool called Postman. You can use the buttons below to import our public collections, which point to our public test environment and already has our API endpoints configured. Be sure to define the required environment variables before sending requests.

If you'd just like to get set up with Canopy and send some requests with pre-populated sample data, we recommend using our Quickstart collection.

Our Use Cases collection contains some workflows that help demonstrate how our API serves business needs today.

When you'd like to start applying some business logic and try formulating what your actual implementation looks like, our Canopy API collection contains examples of all our API calls.

Once you've explored our public sandbox and formulated your business model, contact us to start the conversation on integrating Canopy with your business.

Quickstart: Quickstart

Use Cases: Use Cases

Canopy API: Canopy API

Canopy uses a two-factor basis to drive the order of responses in GET requests with an array of results. They are first ordered by effective_at by when the entity is effective in the system, and second by an internal index to make sure the order is always universal. From the caller's perspective, you can let Canopy know where to start its pagination response by providing a starting_after or ending_before string value. If neither a starting_after nor ending_before value is provided, we'll assume you're requesting the very first page of responses. In subsequent requests, you can simply grab these values from the paging key in the response body from your previous request. If you're aiming to provide your users with a link to the previous page, use the ending_before query parameter in your next request. If going to the next page, use the starting_after value instead.

Canopy currently supports two methods of identifying resources in our API endpoints. Please see your organization's features for which document describes your implementation.
If strict_entity_client_id = true, then see our latest documentation here.
Otherwise, please see our legacy documentation here


Get all API users in your organization

GET /api_users

Returns a list of all API users in your organization.

Responses
  • 200 array[object] | null

    Array of API Users

    • api_user_id Required / string

      The unique ID in Canopy for this API user

    • organization_name Required / string

      The organization to which the API user belongs.

    • name_first Required / string

      The first name of the API user.

    • name_last Required / string

      The last name of the API user.

    • email Required / string(email)

      The email address of this API User

    • phone string | null

      Phone number of the API user

    • role Required / integer

      The role of this user in the API

  • 401

    Unauthorized.

  • 403

    Forbidden.

  • 404

    No Api Users found

  • 429

    Too many requests.

  • default

    Unexpected Error.

GET /api_users
curl \
 -X GET https://sandbox-api.canopyservicing.com/api_users \
 -H "Authorization: Bearer $ACCESS_TOKEN"
Response example (200)
[
  {
    "api_user_id": "dc3d83c5-b31e-48eb-80e7-38f12ac1a6e5",
    "organization_name": "Lever Card 3000",
    "name_first": "Analise",
    "name_last": "Goldberg",
    "email": "marissa@globex.com",
    "phone": "1-123-456-7890",
    "role": 1
  }
]

Invite a new API user to Canopy

POST /api_users

When you create a new API user via this POST request, an email invite will be sent for the new user to join your organization. The email invite includes a link with a unique token that will allow the new user to register to join your team in Canopy.

Body Required

Body of request to invite new API user. Checks permissions of invite-creator.

  • role Required / number

    Assign a role to users to dictate permissions and API access level . Contact our team for a full list of options.

    Default value is 1.

  • email Required / string(email)

    The email address of this API User.

  • name_first Required / string

    The first name of the API User.

  • name_last Required / string

    The last name of the API User.

  • phone string

    Phone number of API user

Responses
  • 200 object

    Successfully invited a new user

    • status Required / string

      Result of API user creation request

  • 401

    Unauthorized.

  • 403

    Forbidden.

  • 422

    Invalid input.

  • 429

    Too many requests.

  • default

    Unexpected Error.

POST /api_users
curl \
 -X POST https://sandbox-api.canopyservicing.com/api_users \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"role":3,"email":"marissa@globex.com","name_first":"John","name_last":"Doe","phone":"1-234-567-8900"}'
Request example
{
  "role": 3,
  "email": "marissa@globex.com",
  "name_first": "John",
  "name_last": "Doe",
  "phone": "1-234-567-8900"
}
Response example (200)
{
  "status": "success"
}

Register a new organization and user

POST /register

When provided appropriate credentials, this route updates an API user's information for registration.

Body Required

Provide valid credentials, this route updates an API User's password.

  • name_first Required / string

    The first name of the API user.

  • name_last Required / string

    The last name of the API user.

  • password string

    The new password of the API user.

  • email Required / string(email)

    The email address of the API user

  • organization_name Required / string

    The organization name

Responses
  • 200 object

    API user successfully registered

    • api_user_id Required / string

      The unique ID in Canopy for this API user

    • organization_name Required / string

      The organization to which the API user belongs.

    • name_first Required / string

      The first name of the API user.

    • name_last Required / string

      The last name of the API user.

    • email Required / string(email)

      The email address of this API User

    • phone string | null

      Phone number of the API user

    • role Required / integer

      The role of this user in the API

  • 401

    Unauthorized.

  • 403

    Forbidden.

  • 404

    Not found.

  • 429

    Too many requests.

  • default

    Unexpected Error.

POST /register
curl \
 -X POST https://sandbox-api.canopyservicing.com/register \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"name_first":"Harriet","name_last":"Martins","password":"newSecretPassword123!","email":"harriet@acmecorporation.com","organization_name":"Acme Corporation"}'
Request example
{
  "name_first": "Harriet",
  "name_last": "Martins",
  "password": "newSecretPassword123!",
  "email": "harriet@acmecorporation.com",
  "organization_name": "Acme Corporation"
}
Response example (200)
{
  "api_user_id": "dc3d83c5-b31e-48eb-80e7-38f12ac1a6e5",
  "organization_name": "Lever Card 3000",
  "name_first": "Analise",
  "name_last": "Goldberg",
  "email": "marissa@globex.com",
  "phone": "1-123-456-7890",
  "role": 1
}

Get summary info

GET /api_users/summary

Get all summarized information pertaining to the API user making the request.

Responses
  • 200 object

    API User

    • api_user_id Required / string

      The unique ID in Canopy for this API user

    • organization_name Required / string

      The organization to which the API user belongs.

    • name_first Required / string

      The first name of the API user.

    • name_last Required / string

      The last name of the API user.

    • email Required / string(email)

      The email address of this API User

    • phone string | null

      Phone number of the API user

    • role Required / integer

      The role of this user in the API

  • 401

    Unauthorized.

  • 403

    Forbidden.

  • 404

    No API user found.

  • 429

    Too many requests.

  • default

    Unexpected Error.

GET /api_users/summary
curl \
 -X GET https://sandbox-api.canopyservicing.com/api_users/summary \
 -H "Authorization: Bearer $ACCESS_TOKEN"
Response example (200)
{
  "api_user_id": "dc3d83c5-b31e-48eb-80e7-38f12ac1a6e5",
  "organization_name": "Lever Card 3000",
  "name_first": "Analise",
  "name_last": "Goldberg",
  "email": "marissa@globex.com",
  "phone": "1-123-456-7890",
  "role": 1
}

Get all available products

GET /products

If you have configured and launched multiple products within Canopy, retrieve information related to all of your configured products at once.

Query parameters
  • limit integer

    The maximum number of products to be returned. Defaults to 10.

    Minimum value is 0, maximum value is 10000.

  • Pass the value from the paging response body in your previous request. If not provided, the zero-indexed starting point will be used. Either starting_after or ending_before may be provided, but not both.

  • ending_before string

    Pass the value from the paging response body in your previous request. If not provided, the zero-indexed starting point will be used. Either starting_after or ending_before may be provided, but not both.

  • is_template boolean

    Retireve only products that are a template

  • Comma-separated list of statuses of the products to filter by (no whitespaces).
    Allowed values: ACTIVE, DEACTIVATED

  • product_type string

    Comma-separated list of the product types to filter by (no whitespaces)

  • Searches by product_name and product_id. Based on the input search parameter, the top responses from our API search, up to or less than the provided limit will be returned.

Responses
  • 200 object

    Array of Products

    • results Required / array[object] | null

      An array of information for all products within the requested range.

      Not more than 100 elements.

      • product_id Required / string

        A unique ID to identify the product with for future requests. If not provided at the time of product creation, Canopy will generate one.

      • created_at string(date-time)

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

      • updated_at string(date-time)

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

      • effective_at string(date-time)

        The Date-Time as of which this product is effective on the server.

      • is_active boolean

        Indicates whether the product is active or inactive

      • product_overview Required / object

        A series of static fields about the product.

      • product_lifecycle_policies Required / object
        • The set of policies governing payment due information for the product.

          • After this number of consecutive late events, the account status shifts to suspended with a status subtype of delinquent

            Default value is 1.

          • After this number of consecutive late events, the account status shifts to suspended with a status subtype of charged_off

            Default value is 2.

        • The set of policies governing payment pouring information for the product.

        • fee_policies object

          The set of policies governing fees for the product.

          • Amount of time between when a payment is due and when a late fee is assessed if no payments have been made.

            Default value is 5 days.

          • surcharge_fee_interval string | null

            The interval at which a surcharge fee is assessed.

          • default_surcharge_fee_structure array[object] | null

            The transaction volume structure that dictates a transaction fee.

            • surcharge_start_inclusive_cents Required / integer

              Indicates the starting transaction volume at which this fee will apply.

            • Indicates the ending transaction volume at which this fee will apply. If not provided, the surcharge will apply to any transaction volume above the defined start.

              Default value is 100000000000000000000.

            • percent_surcharge Required / number

              Indicates the surcharge fee as a percent of total transaction volume that will be applied to the account if the total transaction volume during the surcharge interval falls within the provided start and end range.

        • The set of policies governing the billing cycle for the product.

          • cycle_interval Required / string

            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)

          • The amount of time before statement cut that the payment should be due for the billing cycle. If positive, it will count days from the start of the cycle. Note, this field has a signage convention: if negative, it will count days back from the end of the cycle. IE '25 days' indicates that payments are due 25 days after the statement is cut. -5 days indicates that payments will be due five days prior to the cut of the next cycle. Cannot exceed the duration of the billing cycle.

            Default value is -5 days.

          • Defaults to value of cycle_interval. If applicable, the amount of time you would like between origination and the first statement cut. IE '10 days'. If you would like the first billing cycle to be the same length as all other billing cycles, either do not include this field in the request, or set its value to the same as cycle_interval

          • close_of_business_time string(time)

            Defaults to EST Midnight. Time of the close of business. Note* this value will be converted into the product_time_zone This is used for statement cuts and partner-level and issuing bank-level reconciliation

            Default value is 23:59:59-05:00.

          • Timezone denoted as an Olson-style timezone defining the timezone for the product. All times in any response data for accounts using this product will be denominated in this timezone. Shifts due to daylight savings will be accounted for where relevant, and all output timestamps will be denoted as UTC offsets normalized based on this value. Defaults to America/New_York if not provided.

            Default value is America/New_York.

        • The Interest Policy Object

          • interest_calc_time string(time)

            Being deprecated under our backwards compatibility policy in favor of close_of_business time and timezone variables. Defaults to statement cut time Interest for this policy is calculated at this time every X interval.

            Default value is 01:00:00-05:00.

          • Speaks to how interest is calculated for accounts under this product.
            cycle_end_12: interest amount = [principal] * (r/12) :: calculated once at the end of the cycle
            daily_end_365: interest amount = [principal](r/365) :: calculated at the end of each day
            daily_end_360: interest amount = [principal]
            (r/360) :: interest accrues at the end of each day
            avg_daily_12: interest amount = [avg_daily_principal] * (r/12) :: interest accrues once per cycle.

            Values are cycle_end_12, avg_daily_12, daily_end_365, or daily_end_360. Default value is cycle_end_12.

          • The policy that defines how grace periods are mathematically applied to borrower accounts based on borrower repayment behavior.

            Values are NONE or PREVIOUS_STATEMENT_TOTAL_BALANCE_WITH_PENDING_PAYMENTS. Default value is NONE.

          • The policy which defines which balance under an account will accrue interest during the interest accrual calculation. PRINCIPAL accrues interest on the principal loan, TOTAL_ACCOUNT_BALANCE accrues interest on the account's total balance.

            Values are PRINCIPAL or TOTAL_ACCOUNT_BALANCE. Default value is PRINCIPAL.

          • default_credit_limit_cents Required / 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.

            Default value is 0.

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

            Default value is 0.

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

            Default value is 0.

      • promotional_policies Required / object

        If applicable, a promotional configuration for the product.

        • promo_len integer

          The number of billing cycles from account origination during which accounts on this product are on a promotional period.

          Default value is 0.

        • Current due calculation method for the promotional period.

          Values are AM, PERCENT_INTEREST, PERCENT_PRINCIPAL, PERCENT_PRINCIPAL_INTEREST, INTEREST_AND_PERCENT_PRINCIPAL, or NONE. Default value is NONE.

        • If provided, the min_pay in the promo period will be set to this value whenever this value exceeds the calculated min_pay using promo_min_pay_type.
          Note: if the account's total balance is less than promo_min_pay_floor, only the total balance will be due.

        • If applicable, the number of billing cycles from account origination under which this product falls under a purchas window period.

          Default value is 0.

        • Defaults to 100. The percent of new interest in the cycle used to determine the minimum payment.

          Default value is 100.

        • Indicates whether interest accrued during the promotional period is deferred interest.

          Default value is false.

        • If set to true, the promo end date will be reset to end of current cycle + promo_len when the account draws its first charge during the promo period. If no charges occur during the promo period, the promo period will still end on the date set at account creation.

          Default value is false.

        • The rate that serves as the active interest rate for accounts during the promotional period.

          Default value is 0.

        • Optional lower bound for APR Range for the product (i.e. 2 = 2%).

          Default value is 0.

        • Optional upper bound for APR Range for the product (i.e. 5 = 5%).

          Default value is 0.

      • Summary of product information

      • admin object
        • migration_mode boolean

          If migration mode is on, Canopy will stop auto-generating statements for this account.

          Default value is false.

      • metro2_config object

        Metro2 credit reporting configs

  • 401

    Unauthorized.

  • 403

    Forbidden.

  • 404

    Unable to get products

  • 429

    Too many requests.

  • default

    Unexpected Error.

GET /products
curl \
 -X GET https://sandbox-api.canopyservicing.com/products \
 -H "Authorization: Bearer $ACCESS_TOKEN"
Response example (200)
{
  "results": [
    {
      "product_id": "95fea111-d121-40f8-9e8e-a6c335e48a45",
      "created_at": "2019-03-20T09:12:28+00:00",
      "updated_at": "2020-01-20T09:12:28+00:00",
      "effective_at": "2016-11-27T13:19:56+00:00",
      "is_active": true,
      "product_overview": {
        "product_name": "Blue Cash Express",
        "product_type": "REVOLVING",
        "product_short_description": "12mm3apr.",
        "product_long_description": "Student credit card.",
        "product_color": "#0000FF",
        "external_fields": [
          {
            "key": "client_product_id",
            "value": "3e93a899-d267-4193-8509-6dba53c13b7b"
          }
        ]
      },
      "product_lifecycle_policies": {
        "payment_due_policies": {
          "delinquent_on_n_consecutive_late_fees": 2,
          "charge_off_on_n_consecutive_late_fees": 5
        },
        "payment_pouring_policies": {
          "pending_pmt_affects_avail_credit": true
        },
        "fee_policies": {
          "late_fee_grace": "5 days",
          "surcharge_fee_interval": "1 month",
          "default_surcharge_fee_structure": [
            {
              "surcharge_start_inclusive_cents": 0,
              "surcharge_end_exclusive_cents": 0,
              "percent_surcharge": 0
            }
          ]
        },
        "billing_cycle_policies": {
          "cycle_interval": "1 month",
          "cycle_due_interval": "-5 days",
          "first_cycle_interval": "25 days",
          "close_of_business_time": "17:00:00-05:00",
          "product_time_zone": "America/Chicago"
        },
        "interest_policies": {
          "interest_calc_time": "11:21:04-08:00",
          "interest_calc_method": "avg_daily_12",
          "interest_grace_method": "NONE",
          "interest_applicable_balance": "PRINCIPAL"
        },
        "default_attributes": {
          "default_credit_limit_cents": 600000,
          "default_late_fee_cents": 50000,
          "default_payment_reversal_fee_cents": 10000
        }
      },
      "promotional_policies": {
        "promo_len": 6,
        "promo_min_pay_type": "PERCENT_PRINCIPAL",
        "promo_min_pay_floor_cents": 500,
        "promo_purchase_window_len": 5,
        "promo_min_pay_percent": 100,
        "promo_interest_deferred": true,
        "promo_reset_on_first_charge": true,
        "promo_default_interest_rate_percent": 3,
        "promo_apr_range_inclusive_lower": 2,
        "promo_apr_range_inclusive_upper": 5
      },
      "post_promotional_policies": {
        "post_promo_len": 48,
        "post_promo_am_len_range_inclusive_lower": 2,
        "post_promo_am_len_range_inclusive_upper": 5,
        "post_promo_min_pay_type": "AM",
        "post_promo_default_interest_rate_percent": 3,
        "post_promo_apr_range_inclusive_lower": 2,
        "post_promo_apr_range_inclusive_upper": 5
      },
      "product_summary": {
        "accounts_overview": {
          "account_count_total": 10005
        },
        "product_status": "ACTIVE"
      },
      "admin": {
        "migration_mode": true
      },
      "metro2_config": {
        "bloom_metadata": {
          "industry": "CREDIT_CARD_ISSUER",
          "portfolio_type": "REVOLVING",
          "account_type": "CREDIT_CARD",
          "interest_type": "VARIABLE",
          "terms_frequency": "MONTHLY"
        }
      }
    }
  ]
}

Create a new product

POST /products

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 sending an excel file detailing your preferred configurations to the Canopy team; however, you can also configure and manage products programmatically using this API documentation.

Request body for creating a new product.

Body Required
  • effective_at string(date-time)

    The Date-Time as of which this product is effective on the server. Your product should be older than all accounts enrolled in it.

    Default value is 1900-01-01T12:00:00+00:00.

  • product_id string

    A unique ID to identify the product with for future requests. If not provided at the time of product creation, Canopy will generate one.

  • product_overview Required / object

    A series of static fields about the product.

  • product_lifecycle_policies Required / object
    • The set of policies governing payment due information for the product.

      • After this number of consecutive late events, the account status shifts to suspended with a status subtype of delinquent

        Default value is 1.

      • After this number of consecutive late events, the account status shifts to suspended with a status subtype of charged_off

        Default value is 2.

    • The set of policies governing payment pouring information for the product.

    • fee_policies object

      The set of policies governing fees for the product.

      • Amount of time between when a payment is due and when a late fee is assessed if no payments have been made.

        Default value is 5 days.

      • surcharge_fee_interval string | null

        The interval at which a surcharge fee is assessed.

      • default_surcharge_fee_structure array[object] | null

        The transaction volume structure that dictates a transaction fee.

        • surcharge_start_inclusive_cents Required / integer

          Indicates the starting transaction volume at which this fee will apply.

        • Indicates the ending transaction volume at which this fee will apply. If not provided, the surcharge will apply to any transaction volume above the defined start.

          Default value is 100000000000000000000.

        • percent_surcharge Required / number

          Indicates the surcharge fee as a percent of total transaction volume that will be applied to the account if the total transaction volume during the surcharge interval falls within the provided start and end range.

    • The set of policies governing the billing cycle for the product.

      • cycle_interval Required / string

        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)

      • The amount of time before statement cut that the payment should be due for the billing cycle. If positive, it will count days from the start of the cycle. Note, this field has a signage convention: if negative, it will count days back from the end of the cycle. IE '25 days' indicates that payments are due 25 days after the statement is cut. -5 days indicates that payments will be due five days prior to the cut of the next cycle. Cannot exceed the duration of the billing cycle.

        Default value is -5 days.

      • Defaults to value of cycle_interval. If applicable, the amount of time you would like between origination and the first statement cut. IE '10 days'. If you would like the first billing cycle to be the same length as all other billing cycles, either do not include this field in the request, or set its value to the same as cycle_interval

      • close_of_business_time string(time)

        Defaults to EST Midnight. Time of the close of business. Note* this value will be converted into the product_time_zone This is used for statement cuts and partner-level and issuing bank-level reconciliation

        Default value is 23:59:59-05:00.

      • Timezone denoted as an Olson-style timezone defining the timezone for the product. All times in any response data for accounts using this product will be denominated in this timezone. Shifts due to daylight savings will be accounted for where relevant, and all output timestamps will be denoted as UTC offsets normalized based on this value. Defaults to America/New_York if not provided.

        Default value is America/New_York.

    • The Interest Policy Object

      • interest_calc_time string(time)

        Being deprecated under our backwards compatibility policy in favor of close_of_business time and timezone variables. Defaults to statement cut time Interest for this policy is calculated at this time every X interval.

        Default value is 01:00:00-05:00.

      • Speaks to how interest is calculated for accounts under this product.
        cycle_end_12: interest amount = [principal] * (r/12) :: calculated once at the end of the cycle
        daily_end_365: interest amount = [principal](r/365) :: calculated at the end of each day
        daily_end_360: interest amount = [principal]
        (r/360) :: interest accrues at the end of each day
        avg_daily_12: interest amount = [avg_daily_principal] * (r/12) :: interest accrues once per cycle.

        Values are cycle_end_12, avg_daily_12, daily_end_365, or daily_end_360. Default value is cycle_end_12.

      • The policy that defines how grace periods are mathematically applied to borrower accounts based on borrower repayment behavior.

        Values are NONE or PREVIOUS_STATEMENT_TOTAL_BALANCE_WITH_PENDING_PAYMENTS. Default value is NONE.

      • The policy which defines which balance under an account will accrue interest during the interest accrual calculation. PRINCIPAL accrues interest on the principal loan, TOTAL_ACCOUNT_BALANCE accrues interest on the account's total balance.

        Values are PRINCIPAL or TOTAL_ACCOUNT_BALANCE. Default value is PRINCIPAL.

      • default_credit_limit_cents Required / integer

        The default maximum principal credit (in cents) available for a customer account. For risk-based-pricing, 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 in the Create Account call. Credit limits for an account can also be updated post-account creation.

        Default value is 0.

      • The default late fee for accounts enrolled in this product. This will be used if no late fee is provided at account creation.

        Default value is 0.

      • The default payment reversa fee for accounts enrolled in this product. This will be used if no late fee is provided at account creation.

        Default value is 0.

  • promotional_policies Required / object

    If applicable, a promotional configuration for the product.

    • promo_len integer

      Defaults to 0. The number of billing cycles from account origination during which accounts on this product are on a promotional period.

      Default value is 0.

    • Current due calculation method for the promotional period.

      Values are AM, PERCENT_INTEREST, PERCENT_PRINCIPAL, PERCENT_PRINCIPAL_INTEREST, INTEREST_AND_PERCENT_PRINCIPAL, or NONE. Default value is NONE.

    • If provided, the min_pay in the promo period will be set to this value whenever this value exceeds the calculated min_pay using promo_min_pay_type.
      Note: if the account's total balance is less than promo_min_pay_floor, only the total balance will be due.

    • If applicable, the number of billing cycles from account origination under which this product falls under a purchas window period.

      Default value is 0.

    • Indicates whether interest accrued during the promotional period is deferred interest.

      Default value is false.

    • If set to true, the promo end date will be reset to end of current cycle + promo_len when the account draws its first charge during the promo period. If no charges occur during the promo period, the promo period will still end on the date set at account creation.

      Default value is false.

    • The rate that serves as the active interest rate for accounts during the promotional period.

      Default value is 0.

    • Defaults to 100. The percent of new interest in the cycle used to determine the minimum payment.

      Default value is 100.

    • Optional lower bound for APR Range for the product (i.e. 2 = 2%).

      Default value is 0.

    • Optional upper bound for APR Range for the product (i.e. 5 = 5%).

      Default value is 0.

  • admin object
    • migration_mode boolean

      If migration mode is on, Canopy will stop auto-generating statements for this account.

      Default value is false.

  • metro2_config object

    Metro2 credit reporting configs

Responses
  • 200 object

    Product

    • product_id Required / string

      A unique ID to identify the product with for future requests. If not provided at the time of product creation, Canopy will generate one.

    • created_at string(date-time)

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

    • updated_at string(date-time)

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

    • effective_at string(date-time)

      The Date-Time as of which this product is effective on the server.

    • is_active boolean

      Indicates whether the product is active or inactive

    • product_overview Required / object

      A series of static fields about the product.

    • product_lifecycle_policies Required / object
      • The set of policies governing payment due information for the product.

        • After this number of consecutive late events, the account status shifts to suspended with a status subtype of delinquent

          Default value is 1.

        • After this number of consecutive late events, the account status shifts to suspended with a status subtype of charged_off

          Default value is 2.

      • The set of policies governing payment pouring information for the product.

      • fee_policies object

        The set of policies governing fees for the product.

        • Amount of time between when a payment is due and when a late fee is assessed if no payments have been made.

          Default value is 5 days.

        • surcharge_fee_interval string | null

          The interval at which a surcharge fee is assessed.

        • default_surcharge_fee_structure array[object] | null

          The transaction volume structure that dictates a transaction fee.

          • surcharge_start_inclusive_cents Required / integer

            Indicates the starting transaction volume at which this fee will apply.

          • Indicates the ending transaction volume at which this fee will apply. If not provided, the surcharge will apply to any transaction volume above the defined start.

            Default value is 100000000000000000000.

          • percent_surcharge Required / number

            Indicates the surcharge fee as a percent of total transaction volume that will be applied to the account if the total transaction volume during the surcharge interval falls within the provided start and end range.

      • The set of policies governing the billing cycle for the product.

        • cycle_interval Required / string

          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)

        • The amount of time before statement cut that the payment should be due for the billing cycle. If positive, it will count days from the start of the cycle. Note, this field has a signage convention: if negative, it will count days back from the end of the cycle. IE '25 days' indicates that payments are due 25 days after the statement is cut. -5 days indicates that payments will be due five days prior to the cut of the next cycle. Cannot exceed the duration of the billing cycle.

          Default value is -5 days.

        • Defaults to value of cycle_interval. If applicable, the amount of time you would like between origination and the first statement cut. IE '10 days'. If you would like the first billing cycle to be the same length as all other billing cycles, either do not include this field in the request, or set its value to the same as cycle_interval

        • close_of_business_time string(time)

          Defaults to EST Midnight. Time of the close of business. Note* this value will be converted into the product_time_zone This is used for statement cuts and partner-level and issuing bank-level reconciliation

          Default value is 23:59:59-05:00.

        • Timezone denoted as an Olson-style timezone defining the timezone for the product. All times in any response data for accounts using this product will be denominated in this timezone. Shifts due to daylight savings will be accounted for where relevant, and all output timestamps will be denoted as UTC offsets normalized based on this value. Defaults to America/New_York if not provided.

          Default value is America/New_York.

      • The Interest Policy Object

        • interest_calc_time string(time)

          Being deprecated under our backwards compatibility policy in favor of close_of_business time and timezone variables. Defaults to statement cut time Interest for this policy is calculated at this time every X interval.

          Default value is 01:00:00-05:00.

        • Speaks to how interest is calculated for accounts under this product.
          cycle_end_12: interest amount = [principal] * (r/12) :: calculated once at the end of the cycle
          daily_end_365: interest amount = [principal](r/365) :: calculated at the end of each day
          daily_end_360: interest amount = [principal]
          (r/360) :: interest accrues at the end of each day
          avg_daily_12: interest amount = [avg_daily_principal] * (r/12) :: interest accrues once per cycle.

          Values are cycle_end_12, avg_daily_12, daily_end_365, or daily_end_360. Default value is cycle_end_12.

        • The policy that defines how grace periods are mathematically applied to borrower accounts based on borrower repayment behavior.

          Values are NONE or PREVIOUS_STATEMENT_TOTAL_BALANCE_WITH_PENDING_PAYMENTS. Default value is NONE.

        • The policy which defines which balance under an account will accrue interest during the interest accrual calculation. PRINCIPAL accrues interest on the principal loan, TOTAL_ACCOUNT_BALANCE accrues interest on the account's total balance.

          Values are PRINCIPAL or TOTAL_ACCOUNT_BALANCE. Default value is PRINCIPAL.

        • default_credit_limit_cents Required / 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.

          Default value is 0.

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

          Default value is 0.

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

          Default value is 0.

    • promotional_policies Required / object

      If applicable, a promotional configuration for the product.

      • promo_len integer

        The number of billing cycles from account origination during which accounts on this product are on a promotional period.

        Default value is 0.

      • Current due calculation method for the promotional period.

        Values are AM, PERCENT_INTEREST, PERCENT_PRINCIPAL, PERCENT_PRINCIPAL_INTEREST, INTEREST_AND_PERCENT_PRINCIPAL, or NONE. Default value is NONE.

      • If provided, the min_pay in the promo period will be set to this value whenever this value exceeds the calculated min_pay using promo_min_pay_type.
        Note: if the account's total balance is less than promo_min_pay_floor, only the total balance will be due.

      • If applicable, the number of billing cycles from account origination under which this product falls under a purchas window period.

        Default value is 0.

      • Defaults to 100. The percent of new interest in the cycle used to determine the minimum payment.

        Default value is 100.

      • Indicates whether interest accrued during the promotional period is deferred interest.

        Default value is false.

      • If set to true, the promo end date will be reset to end of current cycle + promo_len when the account draws its first charge during the promo period. If no charges occur during the promo period, the promo period will still end on the date set at account creation.

        Default value is false.

      • The rate that serves as the active interest rate for accounts during the promotional period.

        Default value is 0.

      • Optional lower bound for APR Range for the product (i.e. 2 = 2%).

        Default value is 0.

      • Optional upper bound for APR Range for the product (i.e. 5 = 5%).

        Default value is 0.

    • Summary of product information

    • admin object
      • migration_mode boolean

        If migration mode is on, Canopy will stop auto-generating statements for this account.

        Default value is false.

    • metro2_config object

      Metro2 credit reporting configs

  • 401

    Unauthorized.

  • 403

    Forbidden.

  • 422

    Invalid input

  • 429

    Too many requests.

  • default

    Unexpected Error.

POST /products
curl \
 -X POST https://sandbox-api.canopyservicing.com/products \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"effective_at":"2016-11-27T13:19:56+00:00","product_id":"95fea111-d121-40f8-9e8e-a6c335e48a45","product_overview":{"product_name":"BNPL 24 Month Standard","product_type":"REVOLVING","product_short_description":"12mm3apr.","product_long_description":"Student credit card.","product_color":"#0000FF"},"product_lifecycle_policies":{"payment_due_policies":{"delinquent_on_n_consecutive_late_fees":2,"charge_off_on_n_consecutive_late_fees":5},"payment_pouring_policies":{"pending_pmt_affects_avail_credit":true},"fee_policies":{"late_fee_grace":"5 days","surcharge_fee_interval":"1 month","default_surcharge_fee_structure":[{"surcharge_start_inclusive_cents":0,"surcharge_end_exclusive_cents":0,"percent_surcharge":0}]},"billing_cycle_policies":{"cycle_interval":"1 month","cycle_due_interval":"-5 days","first_cycle_interval":"25 days","close_of_business_time":"17:00:00-05:00","product_time_zone":"America/Chicago"},"interest_policies":{"interest_calc_time":"11:21:04-08:00","interest_calc_method":"avg_daily_12","interest_grace_method":"NONE","interest_applicable_balance":"PRINCIPAL"},"default_attributes":{"default_credit_limit_cents":600000,"default_late_fee_cents":3000,"default_payment_reversal_fee_cents":3000}},"promotional_policies":{"promo_len":6,"promo_min_pay_type":"PERCENT_INTEREST","promo_min_pay_floor_cents":500,"promo_purchase_window_len":5,"promo_interest_deferred":true,"promo_reset_on_first_charge":true,"promo_default_interest_rate_percent":3,"promo_min_pay_percent":100,"promo_apr_range_inclusive_lower":2,"promo_apr_range_inclusive_upper":5},"post_promotional_policies":{"post_promo_len":48,"post_promo_am_len_range_inclusive_lower":2,"post_promo_am_len_range_inclusive_upper":5,"post_promo_min_pay_type":"AM","post_promo_default_interest_rate_percent":3,"post_promo_apr_range_inclusive_lower":2,"post_promo_apr_range_inclusive_upper":5},"admin":{"migration_mode":true},"metro2_config":{"bloom_metadata":{"industry":"CREDIT_CARD_ISSUER","portfolio_type":"REVOLVING","account_type":"CREDIT_CARD","interest_type":"VARIABLE","terms_frequency":"MONTHLY"}}}'
Request example
{
  "effective_at": "2016-11-27T13:19:56+00:00",
  "product_id": "95fea111-d121-40f8-9e8e-a6c335e48a45",
  "product_overview": {
    "product_name": "BNPL 24 Month Standard",
    "product_type": "REVOLVING",
    "product_short_description": "12mm3apr.",
    "product_long_description": "Student credit card.",
    "product_color": "#0000FF"
  },
  "product_lifecycle_policies": {
    "payment_due_policies": {
      "delinquent_on_n_consecutive_late_fees": 2,
      "charge_off_on_n_consecutive_late_fees": 5
    },
    "payment_pouring_policies": {
      "pending_pmt_affects_avail_credit": true
    },
    "fee_policies": {
      "late_fee_grace": "5 days",
      "surcharge_fee_interval": "1 month",
      "default_surcharge_fee_structure": [
        {
          "surcharge_start_inclusive_cents": 0,
          "surcharge_end_exclusive_cents": 0,
          "percent_surcharge": 0
        }
      ]
    },
    "billing_cycle_policies": {
      "cycle_interval": "1 month",
      "cycle_due_interval": "-5 days",
      "first_cycle_interval": "25 days",
      "close_of_business_time": "17:00:00-05:00",
      "product_time_zone": "America/Chicago"
    },
    "interest_policies": {
      "interest_calc_time": "11:21:04-08:00",
      "interest_calc_method": "avg_daily_12",
      "interest_grace_method": "NONE",
      "interest_applicable_balance": "PRINCIPAL"
    },
    "default_attributes": {
      "default_credit_limit_cents": 600000,
      "default_late_fee_cents": 3000,
      "default_payment_reversal_fee_cents": 3000
    }
  },
  "promotional_policies": {
    "promo_len": 6,
    "promo_min_pay_type": "PERCENT_INTEREST",
    "promo_min_pay_floor_cents": 500,
    "promo_purchase_window_len": 5,
    "promo_interest_deferred": true,
    "promo_reset_on_first_charge": true,
    "promo_default_interest_rate_percent": 3,
    "promo_min_pay_percent": 100,
    "promo_apr_range_inclusive_lower": 2,
    "promo_apr_range_inclusive_upper": 5
  },
  "post_promotional_policies": {
    "post_promo_len": 48,
    "post_promo_am_len_range_inclusive_lower": 2,
    "post_promo_am_len_range_inclusive_upper": 5,
    "post_promo_min_pay_type": "AM",
    "post_promo_default_interest_rate_percent": 3,
    "post_promo_apr_range_inclusive_lower": 2,
    "post_promo_apr_range_inclusive_upper": 5
  },
  "admin": {
    "migration_mode": true
  },
  "metro2_config": {
    "bloom_metadata": {
      "industry": "CREDIT_CARD_ISSUER",
      "portfolio_type": "REVOLVING",
      "account_type": "CREDIT_CARD",
      "interest_type": "VARIABLE",
      "terms_frequency": "MONTHLY"
    }
  }
}
Response example (200)
{
  "product_id": "95fea111-d121-40f8-9e8e-a6c335e48a45",
  "created_at": "2019-03-20T09:12:28+00:00",
  "updated_at": "2020-01-20T09:12:28+00:00",
  "effective_at": "2016-11-27T13:19:56+00:00",
  "is_active": true,
  "product_overview": {
    "product_name": "Blue Cash Express",
    "product_type": "REVOLVING",
    "product_short_description": "12mm3apr.",
    "product_long_description": "Student credit card.",
    "product_color": "#0000FF",
    "external_fields": [
      {
        "key": "client_product_id",
        "value": "3e93a899-d267-4193-8509-6dba53c13b7b"
      }
    ]
  },
  "product_lifecycle_policies": {
    "payment_due_policies": {
      "delinquent_on_n_consecutive_late_fees": 2,
      "charge_off_on_n_consecutive_late_fees": 5
    },
    "payment_pouring_policies": {
      "pending_pmt_affects_avail_credit": true
    },
    "fee_policies": {
      "late_fee_grace": "5 days",
      "surcharge_fee_interval": "1 month",
      "default_surcharge_fee_structure": [
        {
          "surcharge_start_inclusive_cents": 0,
          "surcharge_end_exclusive_cents": 0,
          "percent_surcharge": 0
        }
      ]
    },
    "billing_cycle_policies": {
      "cycle_interval": "1 month",
      "cycle_due_interval": "-5 days",
      "first_cycle_interval": "25 days",
      "close_of_business_time": "17:00:00-05:00",
      "product_time_zone": "America/Chicago"
    },
    "interest_policies": {
      "interest_calc_time": "11:21:04-08:00",
      "interest_calc_method": "avg_daily_12",
      "interest_grace_method": "NONE",
      "interest_applicable_balance": "PRINCIPAL"
    },
    "default_attributes": {
      "default_credit_limit_cents": 600000,
      "default_late_fee_cents": 50000,
      "default_payment_reversal_fee_cents": 10000
    }
  },
  "promotional_policies": {
    "promo_len": 6,
    "promo_min_pay_type": "PERCENT_PRINCIPAL",
    "promo_min_pay_floor_cents": 500,
    "promo_purchase_window_len": 5,
    "promo_min_pay_percent": 100,
    "promo_interest_deferred": true,
    "promo_reset_on_first_charge": true,
    "promo_default_interest_rate_percent": 3,
    "promo_apr_range_inclusive_lower": 2,
    "promo_apr_range_inclusive_upper": 5
  },
  "post_promotional_policies": {
    "post_promo_len": 48,
    "post_promo_am_len_range_inclusive_lower": 2,
    "post_promo_am_len_range_inclusive_upper": 5,
    "post_promo_min_pay_type": "AM",
    "post_promo_default_interest_rate_percent": 3,
    "post_promo_apr_range_inclusive_lower": 2,
    "post_promo_apr_range_inclusive_upper": 5
  },
  "product_summary": {
    "accounts_overview": {
      "account_count_total": 10005
    },
    "product_status": "ACTIVE"
  },
  "admin": {
    "migration_mode": true
  },
  "metro2_config": {
    "bloom_metadata": {
      "industry": "CREDIT_CARD_ISSUER",
      "portfolio_type": "REVOLVING",
      "account_type": "CREDIT_CARD",
      "interest_type": "VARIABLE",
      "terms_frequency": "MONTHLY"
    }
  }
}

Get all filter values for all endpoints that allow filtering

GET /filters

Get all filter values for all endpoints that allow filtering

Query parameters
  • customers boolean

    Flag to include all possible customer id-value pairs in the response

  • products boolean

    Flag to include all possible product types in the response

  • Flag to include all possible partner entities' id-value pairs in the response

  • Flag to only include customers of customer_type = business

Responses
GET /filters
curl \
 -X GET https://sandbox-api.canopyservicing.com/filters \
 -H "Authorization: Bearer $ACCESS_TOKEN"
Response example (200)
{
  "customers": [
    {
      "customer_id": "can_1234",
      "value": "John Smith"
    }
  ],
  "products": [
    {
      "product_type": "REVOLVING"
    }
  ],
  "partner_entities": [
    {
      "partner_entity_id": "can_1234",
      "value": "Nuts'n Bolts LTD"
    }
  ]
}

Get a customer's product offering

GET /customers/{customer_id}/product_offerings

Get all the products offered to a customer

Path parameters
Responses
  • 200 object

    Array of Products

    • results Required / array[object] | null

      An array of information for all products within the requested range.

      Not more than 100 elements.

      • product_id Required / string

        A unique ID to identify the product with for future requests. If not provided at the time of product creation, Canopy will generate one.

      • created_at string(date-time)

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

      • updated_at string(date-time)

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

      • effective_at string(date-time)

        The Date-Time as of which this product is effective on the server.

      • is_active boolean

        Indicates whether the product is active or inactive

      • product_overview Required / object

        A series of static fields about the product.

      • product_lifecycle_policies Required / object
        • The set of policies governing payment due information for the product.

          • After this number of consecutive late events, the account status shifts to suspended with a status subtype of delinquent

            Default value is 1.

          • After this number of consecutive late events, the account status shifts to suspended with a status subtype of charged_off

            Default value is 2.

        • The set of policies governing payment pouring information for the product.

        • fee_policies object

          The set of policies governing fees for the product.

          • Amount of time between when a payment is due and when a late fee is assessed if no payments have been made.

            Default value is 5 days.

          • surcharge_fee_interval string | null

            The interval at which a surcharge fee is assessed.

          • default_surcharge_fee_structure array[object] | null

            The transaction volume structure that dictates a transaction fee.

            • surcharge_start_inclusive_cents Required / integer

              Indicates the starting transaction volume at which this fee will apply.

            • Indicates the ending transaction volume at which this fee will apply. If not provided, the surcharge will apply to any transaction volume above the defined start.

              Default value is 100000000000000000000.

            • percent_surcharge Required / number

              Indicates the surcharge fee as a percent of total transaction volume that will be applied to the account if the total transaction volume during the surcharge interval falls within the provided start and end range.

        • The set of policies governing the billing cycle for the product.

          • cycle_interval Required / string

            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)

          • The amount of time before statement cut that the payment should be due for the billing cycle. If positive, it will count days from the start of the cycle. Note, this field has a signage convention: if negative, it will count days back from the end of the cycle. IE '25 days' indicates that payments are due 25 days after the statement is cut. -5 days indicates that payments will be due five days prior to the cut of the next cycle. Cannot exceed the duration of the billing cycle.

            Default value is -5 days.

          • Defaults to value of cycle_interval. If applicable, the amount of time you would like between origination and the first statement cut. IE '10 days'. If you would like the first billing cycle to be the same length as all other billing cycles, either do not include this field in the request, or set its value to the same as cycle_interval

          • close_of_business_time string(time)

            Defaults to EST Midnight. Time of the close of business. Note* this value will be converted into the product_time_zone This is used for statement cuts and partner-level and issuing bank-level reconciliation

            Default value is 23:59:59-05:00.

          • Timezone denoted as an Olson-style timezone defining the timezone for the product. All times in any response data for accounts using this product will be denominated in this timezone. Shifts due to daylight savings will be accounted for where relevant, and all output timestamps will be denoted as UTC offsets normalized based on this value. Defaults to America/New_York if not provided.

            Default value is America/New_York.

        • The Interest Policy Object

          • interest_calc_time string(time)

            Being deprecated under our backwards compatibility policy in favor of close_of_business time and timezone variables. Defaults to statement cut time Interest for this policy is calculated at this time every X interval.

            Default value is 01:00:00-05:00.

          • Speaks to how interest is calculated for accounts under this product.
            cycle_end_12: interest amount = [principal] * (r/12) :: calculated once at the end of the cycle
            daily_end_365: interest amount = [principal](r/365) :: calculated at the end of each day
            daily_end_360: interest amount = [principal]
            (r/360) :: interest accrues at the end of each day
            avg_daily_12: interest amount = [avg_daily_principal] * (r/12) :: interest accrues once per cycle.

            Values are cycle_end_12, avg_daily_12, daily_end_365, or daily_end_360. Default value is cycle_end_12.

          • The policy that defines how grace periods are mathematically applied to borrower accounts based on borrower repayment behavior.

            Values are NONE or PREVIOUS_STATEMENT_TOTAL_BALANCE_WITH_PENDING_PAYMENTS. Default value is NONE.

          • The policy which defines which balance under an account will accrue interest during the interest accrual calculation. PRINCIPAL accrues interest on the principal loan, TOTAL_ACCOUNT_BALANCE accrues interest on the account's total balance.

            Values are PRINCIPAL or TOTAL_ACCOUNT_BALANCE. Default value is PRINCIPAL.

          • default_credit_limit_cents Required / 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.

            Default value is 0.

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

            Default value is 0.

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

            Default value is 0.

      • promotional_policies Required / object

        If applicable, a promotional configuration for the product.

        • promo_len integer

          The number of billing cycles from account origination during which accounts on this product are on a promotional period.

          Default value is 0.

        • Current due calculation method for the promotional period.

          Values are AM, PERCENT_INTEREST, PERCENT_PRINCIPAL, PERCENT_PRINCIPAL_INTEREST, INTEREST_AND_PERCENT_PRINCIPAL, or NONE. Default value is NONE.

        • If provided, the min_pay in the promo period will be set to this value whenever this value exceeds the calculated min_pay using promo_min_pay_type.
          Note: if the account's total balance is less than promo_min_pay_floor, only the total balance will be due.

        • If applicable, the number of billing cycles from account origination under which this product falls under a purchas window period.

          Default value is 0.

        • Defaults to 100. The percent of new interest in the cycle used to determine the minimum payment.

          Default value is 100.

        • Indicates whether interest accrued during the promotional period is deferred interest.

          Default value is false.

        • If set to true, the promo end date will be reset to end of current cycle + promo_len when the account draws its first charge during the promo period. If no charges occur during the promo period, the promo period will still end on the date set at account creation.

          Default value is false.

        • The rate that serves as the active interest rate for accounts during the promotional period.

          Default value is 0.

        • Optional lower bound for APR Range for the product (i.e. 2 = 2%).

          Default value is 0.

        • Optional upper bound for APR Range for the product (i.e. 5 = 5%).

          Default value is 0.

      • Summary of product information

      • admin object
        • migration_mode boolean

          If migration mode is on, Canopy will stop auto-generating statements for this account.

          Default value is false.

      • metro2_config object

        Metro2 credit reporting configs

GET /customers/{customer_id}/product_offerings
curl \
 -X GET https://sandbox-api.canopyservicing.com/customers/e163fcb6-f8fd-46a2-9f29-36b2261e37ea/product_offerings \
 -H "Authorization: Bearer $ACCESS_TOKEN"
Response example (200)
{
  "results": [
    {
      "product_id": "95fea111-d121-40f8-9e8e-a6c335e48a45",
      "created_at": "2019-03-20T09:12:28+00:00",
      "updated_at": "2020-01-20T09:12:28+00:00",
      "effective_at": "2016-11-27T13:19:56+00:00",
      "is_active": true,
      "product_overview": {
        "product_name": "Blue Cash Express",
        "product_type": "REVOLVING",
        "product_short_description": "12mm3apr.",
        "product_long_description": "Student credit card.",
        "product_color": "#0000FF",
        "external_fields": [
          {
            "key": "client_product_id",
            "value": "3e93a899-d267-4193-8509-6dba53c13b7b"
          }
        ]
      },
      "product_lifecycle_policies": {
        "payment_due_policies": {
          "delinquent_on_n_consecutive_late_fees": 2,
          "charge_off_on_n_consecutive_late_fees": 5
        },
        "payment_pouring_policies": {
          "pending_pmt_affects_avail_credit": true
        },
        "fee_policies": {
          "late_fee_grace": "5 days",
          "surcharge_fee_interval": "1 month",
          "default_surcharge_fee_structure": [
            {
              "surcharge_start_inclusive_cents": 0,
              "surcharge_end_exclusive_cents": 0,
              "percent_surcharge": 0
            }
          ]
        },
        "billing_cycle_policies": {
          "cycle_interval": "1 month",
          "cycle_due_interval": "-5 days",
          "first_cycle_interval": "25 days",
          "close_of_business_time": "17:00:00-05:00",
          "product_time_zone": "America/Chicago"
        },
        "interest_policies": {
          "interest_calc_time": "11:21:04-08:00",
          "interest_calc_method": "avg_daily_12",
          "interest_grace_method": "NONE",
          "interest_applicable_balance": "PRINCIPAL"
        },
        "default_attributes": {
          "default_credit_limit_cents": 600000,
          "default_late_fee_cents": 50000,
          "default_payment_reversal_fee_cents": 10000
        }
      },
      "promotional_policies": {
        "promo_len": 6,
        "promo_min_pay_type": "PERCENT_PRINCIPAL",
        "promo_min_pay_floor_cents": 500,
        "promo_purchase_window_len": 5,
        "promo_min_pay_percent": 100,
        "promo_interest_deferred": true,
        "promo_reset_on_first_charge": true,
        "promo_default_interest_rate_percent": 3,
        "promo_apr_range_inclusive_lower": 2,
        "promo_apr_range_inclusive_upper": 5
      },
      "post_promotional_policies": {
        "post_promo_len": 48,
        "post_promo_am_len_range_inclusive_lower": 2,
        "post_promo_am_len_range_inclusive_upper": 5,
        "post_promo_min_pay_type": "AM",
        "post_promo_default_interest_rate_percent": 3,
        "post_promo_apr_range_inclusive_lower": 2,
        "post_promo_apr_range_inclusive_upper": 5
      },
      "product_summary": {
        "accounts_overview": {
          "account_count_total": 10005
        },
        "product_status": "ACTIVE"
      },
      "admin": {
        "migration_mode": true
      },
      "metro2_config": {
        "bloom_metadata": {
          "industry": "CREDIT_CARD_ISSUER",
          "portfolio_type": "REVOLVING",
          "account_type": "CREDIT_CARD",
          "interest_type": "VARIABLE",
          "terms_frequency": "MONTHLY"
        }
      }
    }
  ]
}

Create a product offering

POST /customers/{customer_id}/product_offerings

Offer a product to a customer that is visible only to them.

Path parameters
Body Required
Responses
  • 200 object

    Product

    • product_id Required / string

      A unique ID to identify the product with for future requests. If not provided at the time of product creation, Canopy will generate one.

    • created_at string(date-time)

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

    • updated_at string(date-time)

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

    • effective_at string(date-time)

      The Date-Time as of which this product is effective on the server.

    • is_active boolean

      Indicates whether the product is active or inactive

    • product_overview Required / object

      A series of static fields about the product.

    • product_lifecycle_policies Required / object
      • The set of policies governing payment due information for the product.

        • After this number of consecutive late events, the account status shifts to suspended with a status subtype of delinquent

          Default value is 1.

        • After this number of consecutive late events, the account status shifts to suspended with a status subtype of charged_off

          Default value is 2.

      • The set of policies governing payment pouring information for the product.

      • fee_policies object

        The set of policies governing fees for the product.

        • Amount of time between when a payment is due and when a late fee is assessed if no payments have been made.

          Default value is 5 days.

        • surcharge_fee_interval string | null

          The interval at which a surcharge fee is assessed.

        • default_surcharge_fee_structure array[object] | null

          The transaction volume structure that dictates a transaction fee.

          • surcharge_start_inclusive_cents Required / integer

            Indicates the starting transaction volume at which this fee will apply.

          • Indicates the ending transaction volume at which this fee will apply. If not provided, the surcharge will apply to any transaction volume above the defined start.

            Default value is 100000000000000000000.

          • percent_surcharge Required / number

            Indicates the surcharge fee as a percent of total transaction volume that will be applied to the account if the total transaction volume during the surcharge interval falls within the provided start and end range.

      • The set of policies governing the billing cycle for the product.

        • cycle_interval Required / string

          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)

        • The amount of time before statement cut that the payment should be due for the billing cycle. If positive, it will count days from the start of the cycle. Note, this field has a signage convention: if negative, it will count days back from the end of the cycle. IE '25 days' indicates that payments are due 25 days after the statement is cut. -5 days indicates that payments will be due five days prior to the cut of the next cycle. Cannot exceed the duration of the billing cycle.

          Default value is -5 days.

        • Defaults to value of cycle_interval. If applicable, the amount of time you would like between origination and the first statement cut. IE '10 days'. If you would like the first billing cycle to be the same length as all other billing cycles, either do not include this field in the request, or set its value to the same as cycle_interval

        • close_of_business_time string(time)

          Defaults to EST Midnight. Time of the close of business. Note* this value will be converted into the product_time_zone This is used for statement cuts and partner-level and issuing bank-level reconciliation

          Default value is 23:59:59-05:00.

        • Timezone denoted as an Olson-style timezone defining the timezone for the product. All times in any response data for accounts using this product will be denominated in this timezone. Shifts due to daylight savings will be accounted for where relevant, and all output timestamps will be denoted as UTC offsets normalized based on this value. Defaults to America/New_York if not provided.

          Default value is America/New_York.

      • The Interest Policy Object

        • interest_calc_time string(time)

          Being deprecated under our backwards compatibility policy in favor of close_of_business time and timezone variables. Defaults to statement cut time Interest for this policy is calculated at this time every X interval.

          Default value is 01:00:00-05:00.

        • Speaks to how interest is calculated for accounts under this product.
          cycle_end_12: interest amount = [principal] * (r/12) :: calculated once at the end of the cycle
          daily_end_365: interest amount = [principal](r/365) :: calculated at the end of each day
          daily_end_360: interest amount = [principal]
          (r/360) :: interest accrues at the end of each day
          avg_daily_12: interest amount = [avg_daily_principal] * (r/12) :: interest accrues once per cycle.

          Values are cycle_end_12, avg_daily_12, daily_end_365, or daily_end_360. Default value is cycle_end_12.

        • The policy that defines how grace periods are mathematically applied to borrower accounts based on borrower repayment behavior.

          Values are NONE or PREVIOUS_STATEMENT_TOTAL_BALANCE_WITH_PENDING_PAYMENTS. Default value is NONE.

        • The policy which defines which balance under an account will accrue interest during the interest accrual calculation. PRINCIPAL accrues interest on the principal loan, TOTAL_ACCOUNT_BALANCE accrues interest on the account's total balance.

          Values are PRINCIPAL or TOTAL_ACCOUNT_BALANCE. Default value is PRINCIPAL.

        • default_credit_limit_cents Required / 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.

          Default value is 0.

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

          Default value is 0.

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

          Default value is 0.

    • promotional_policies Required / object

      If applicable, a promotional configuration for the product.

      • promo_len integer

        The number of billing cycles from account origination during which accounts on this product are on a promotional period.

        Default value is 0.

      • Current due calculation method for the promotional period.

        Values are AM, PERCENT_INTEREST, PERCENT_PRINCIPAL, PERCENT_PRINCIPAL_INTEREST, INTEREST_AND_PERCENT_PRINCIPAL, or NONE. Default value is NONE.

      • If provided, the min_pay in the promo period will be set to this value whenever this value exceeds the calculated min_pay using promo_min_pay_type.
        Note: if the account's total balance is less than promo_min_pay_floor, only the total balance will be due.

      • If applicable, the number of billing cycles from account origination under which this product falls under a purchas window period.

        Default value is 0.

      • Defaults to 100. The percent of new interest in the cycle used to determine the minimum payment.

        Default value is 100.

      • Indicates whether interest accrued during the promotional period is deferred interest.

        Default value is false.

      • If set to true, the promo end date will be reset to end of current cycle + promo_len when the account draws its first charge during the promo period. If no charges occur during the promo period, the promo period will still end on the date set at account creation.

        Default value is false.

      • The rate that serves as the active interest rate for accounts during the promotional period.

        Default value is 0.

      • Optional lower bound for APR Range for the product (i.e. 2 = 2%).

        Default value is 0.

      • Optional upper bound for APR Range for the product (i.e. 5 = 5%).

        Default value is 0.

    • Summary of product information

    • admin object
      • migration_mode boolean

        If migration mode is on, Canopy will stop auto-generating statements for this account.

        Default value is false.

    • metro2_config object

      Metro2 credit reporting configs

POST /customers/{customer_id}/product_offerings
curl \
 -X POST https://sandbox-api.canopyservicing.com/customers/e163fcb6-f8fd-46a2-9f29-36b2261e37ea/product_offerings \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"product_id":"e163fcb6-f8fd-46a2-9f29-36b2261e37ea","product_overrides":{"product_type":"EXTT_30","product_name":"EXTT_30","promo_len":3,"post_promo_len":4,"first_cycle_interval":"3 days","cycle_interval":"1 month","promo_default_interest_rate_percent":"3.451","post_promo_default_interest_rate_percent":"3.267"}}'
Request example
{
  "product_id": "e163fcb6-f8fd-46a2-9f29-36b2261e37ea",
  "product_overrides": {
    "product_type": "EXTT_30",
    "product_name": "EXTT_30",
    "promo_len": 3,
    "post_promo_len": 4,
    "first_cycle_interval": "3 days",
    "cycle_interval": "1 month",
    "promo_default_interest_rate_percent": "3.451",
    "post_promo_default_interest_rate_percent": "3.267"
  }
}
Response example (200)
{
  "product_id": "95fea111-d121-40f8-9e8e-a6c335e48a45",
  "created_at": "2019-03-20T09:12:28+00:00",
  "updated_at": "2020-01-20T09:12:28+00:00",
  "effective_at": "2016-11-27T13:19:56+00:00",
  "is_active": true,
  "product_overview": {
    "product_name": "Blue Cash Express",
    "product_type": "REVOLVING",
    "product_short_description": "12mm3apr.",
    "product_long_description": "Student credit card.",
    "product_color": "#0000FF",
    "external_fields": [
      {
        "key": "client_product_id",
        "value": "3e93a899-d267-4193-8509-6dba53c13b7b"
      }
    ]
  },
  "product_lifecycle_policies": {
    "payment_due_policies": {
      "delinquent_on_n_consecutive_late_fees": 2,
      "charge_off_on_n_consecutive_late_fees": 5
    },
    "payment_pouring_policies": {
      "pending_pmt_affects_avail_credit": true
    },
    "fee_policies": {
      "late_fee_grace": "5 days",
      "surcharge_fee_interval": "1 month",
      "default_surcharge_fee_structure": [
        {
          "surcharge_start_inclusive_cents": 0,
          "surcharge_end_exclusive_cents": 0,
          "percent_surcharge": 0
        }
      ]
    },
    "billing_cycle_policies": {
      "cycle_interval": "1 month",
      "cycle_due_interval": "-5 days",
      "first_cycle_interval": "25 days",
      "close_of_business_time": "17:00:00-05:00",
      "product_time_zone": "America/Chicago"
    },
    "interest_policies": {
      "interest_calc_time": "11:21:04-08:00",
      "interest_calc_method": "avg_daily_12",
      "interest_grace_method": "NONE",
      "interest_applicable_balance": "PRINCIPAL"
    },
    "default_attributes": {
      "default_credit_limit_cents": 600000,
      "default_late_fee_cents": 50000,
      "default_payment_reversal_fee_cents": 10000
    }
  },
  "promotional_policies": {
    "promo_len": 6,
    "promo_min_pay_type": "PERCENT_PRINCIPAL",
    "promo_min_pay_floor_cents": 500,
    "promo_purchase_window_len": 5,
    "promo_min_pay_percent": 100,
    "promo_interest_deferred": true,
    "promo_reset_on_first_charge": true,
    "promo_default_interest_rate_percent": 3,
    "promo_apr_range_inclusive_lower": 2,
    "promo_apr_range_inclusive_upper": 5
  },
  "post_promotional_policies": {
    "post_promo_len": 48,
    "post_promo_am_len_range_inclusive_lower": 2,
    "post_promo_am_len_range_inclusive_upper": 5,
    "post_promo_min_pay_type": "AM",
    "post_promo_default_interest_rate_percent": 3,
    "post_promo_apr_range_inclusive_lower": 2,
    "post_promo_apr_range_inclusive_upper": 5
  },
  "product_summary": {
    "accounts_overview": {
      "account_count_total": 10005
    },
    "product_status": "ACTIVE"
  },
  "admin": {
    "migration_mode": true
  },
  "metro2_config": {
    "bloom_metadata": {
      "industry": "CREDIT_CARD_ISSUER",
      "portfolio_type": "REVOLVING",
      "account_type": "CREDIT_CARD",
      "interest_type": "VARIABLE",
      "terms_frequency": "MONTHLY"
    }
  }
}

Remove a product offering

DELETE /customers/{customer_id}/product_offerings/{product_id}

Remove a product offering from a customer

Path parameters
Responses
DELETE /customers/{customer_id}/product_offerings/{product_id}
curl \
 -X DELETE https://sandbox-api.canopyservicing.com/customers/e163fcb6-f8fd-46a2-9f29-36b2261e37ea/product_offerings/2f85b8c0-2671-4694-9a30-c358c64af411 \
 -H "Authorization: Bearer $ACCESS_TOKEN"
Response example (200)
{
  "product_id": "d1a844a1-7f5d-438e-828d-c58018c5585a",
  "customer_id": "string",
  "message": "Deleted customer's product offering"
}

Get all accounts for all customers

GET /customers/accounts

Returns all accounts from the perspective of each customer. For instance, if one account has two customers, these are reflected as two separate items in the response array. Similarly, if one customer has multiple accounts, each account is reflected as a separate item in the response array.

Query parameters
  • limit integer

    The maximum number of customer accounts to be returned. Defaults to 30.

    Minimum value is 0, maximum value is 10000.

  • Pass the value from the paging response body in your previous request. If not provided, the zero-indexed starting point will be used. Either starting_after or ending_before may be provided, but not both.

  • ending_before string

    Pass the value from the paging response body in your previous request. If not provided, the zero-indexed starting point will be used. Either starting_after or ending_before may be provided, but not both.

  • Comma-separated list of statuses of the accounts to filter by (no whitespaces).
    Allowed values: ACTIVE, CLOSED, SUSPENDED

  • Comma-separated list of sub-statuses of the accounts to filter by (no whitespaces).
    Allowed values: '', INACTIVITY, INELIGIBLE, DELINQUENT, CHARGE_OFF, GRANTOR_REQUEST, BANKRUPTCY, PAID_OFF, CUSTOMER_REQUEST_PENDING_PAYOFF, GRANTOR_REQUEST_PENDING_PAYOFF, DECEASED, RISK_REVIEW, FRAUD, CUSTOMER_REQUEST, RISK, HARDSHIP/EXEMPTIONS, SETTLEMENT

  • product_type string

    Comma-separated list of the product types of the accounts to filter by (no whitespaces).
    Allowed values: INSTALLMENT, INVENTORY_FINANCING, REVOLVING, LOGISTICS_FINANCING, etc.

  • This API supports searching by name_first, name_last, doing_business_as, account_id and product_name. Based on the input search parameter, the top responses from our API search, up to or less than the provided limit will be returned.

  • Returns customer accounts with an 'effective_at' date more recent than the timestamp passed as a value. Due to format constraints, it is highly recommended to encodeURIComponent() the value before passing it as a query parameter

Responses
  • 200 object

    Array of Customers and their corresponding Accounts

    • results Required / array[object | null]

      An array of information for all customer-account correspondences within the requested range.

      Not more than 1000 elements.

      • address_line_one Required / string

        Address line one.

      • Address line two.

      • address_city Required / string

        Address city.

      • address_state Required / string

        Address state.

      • address_zip Required / string

        Five digit zipcode or nine digit 'ZIP+4'.

      • ISO 3166-1 alpha-2 country code for the customer.

        Values are US, GB, CA, AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AN, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SK, SI, SB, SO, ZA, GS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, or ZW.

      • name_prefix string

        Prefix to the customer's name.

      • name_first string

        Customer's first name.

      • name_middle string

        Customer's middle name.

      • name_last string

        Customer's last name.

      • name_suffix string

        Suffix to the customer's name.

      • passport object
        • number Required / string

          Number on the passport

        • country Required / string

          ISO 3166-1 Two letter code for the issuing country

      • customer_id Required / string

        An ID for the customer.

      • created_at string(date-time)

        The Date-Time which the customer was created in the API.

      • updated_at string(date-time)

        The Date-Time which the customer was updated in the API.

      • Indicates whether the customer has a borrower portal login or not

      • customer_type string

        The customer can be either a person or a business. This is used to explicitly set that and adjust behavior such as validation.

        Values are person or business.

      • is_active boolean

        Value manually maintained - defaults to true."False" generally indicates no additional credit should be granted to this customer

      • The verification status of this customer. The default is 'unverified'. Depending on the system's configuration verification with third parties will happen and the status will be updated based on the result.

        Values are unverified, verified, retry, or document.

      • title string

        Title of the customer if a person OR title of the admin if a business

      • phone_number string

        Customer's phone number in E.164 format

      • ssn string

        Social security number of the customer.

      • Any country-specific unique identifier for the customer.

      • email string(email)

        The email address of this Customer

      • date_of_birth string(date)

        Customer's date of birth in ISO 8601 format

        • The number of active accounts for this customer.

        • The total outstanding balance (in cents) associated with all active accounts for this customer. This balance is comprised of the sum of the following six balance items.

        • principal_cents integer

          The total principal balance (in cents) associated with all active accounts for this customer.

        • The total interest balance (in cents) associated with all active accounts for this customer.

        • The total AM interest balance (in cents) associated with all active accounts for this customer.

          Default value is 0.

        • The total deferred interest balance (in cents) associated with all active accounts for this customer.

          Default value is 0.

        • The total AM deferred interest balance (in cents) associated with all active accounts for this customer.

          Default value is 0.

        • The total fees balance (in cents) associated with all active accounts for this customer.

          Default value is 0.

        • The DBA name of the Business

        • business_ein string

          EIN of the business, expected format in NN-NNNNNNN.

        • business_type string

          Type of business is used in determining the appropriate validation.

          Values are sole_proprietorship, llc, unincorporated_association, trust, corporation, corporation_public, non_profile, or partnership.

        • UUID that references the business classification. This will eventually be supported by a reference api, however, for now refer to dwolla's specific UUID.

        • website string

          URL for the buesiness's website. This should be publicly resolvable

        • controller object | null

          Passport information. required if country is not US

          • address_line_one Required / string

            Address line one.

          • Address line two.

          • address_city Required / string

            Address city.

          • address_state Required / string

            Address state.

          • address_zip Required / string

            Five digit zipcode or nine digit 'ZIP+4'.

          • ISO 3166-1 alpha-2 country code for the customer.

            Values are US, GB, CA, AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AN, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SK, SI, SB, SO, ZA, GS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, or ZW.

          • name_prefix string

            Prefix to the customer's name.

          • name_first string

            Customer's first name.

          • name_middle string

            Customer's middle name.

          • name_last string

            Customer's last name.

          • name_suffix string

            Suffix to the customer's name.

          • passport object
            • number Required / string

              Number on the passport

            • country Required / string

              ISO 3166-1 Two letter code for the issuing country

          • title string

            Title of the customer if a person OR title of the admin if a business

          • phone_number string

            Customer's phone number in E.164 format.

          • ssn string

            Social security number of the customer.

      • metro2_config object

        Metro2 credit reporting configs

      • The role of the customer for the account.

        Default value is PRIMARY.

      • A unique number for the customer on the account. For instance, a credit card number. If none is provided, a Canopy-generated ID can be used.

      • account object
        • account_id Required / string

          This is the ID used to identify the account in your system. For most use-cases, we strongly recommend using the ID from the system the account was originally created in -- for most use-cases, this is created as part of the origination system that approves a borrower. This will be the account that is used to refer to the borrower for all subsequent requests. Note: both strings and integers are accepted.

        • created_at string(date-time)

          The Date-Time which the account was created in the API.

        • updated_at string(date-time)

          The Date-Time which the account was updated in the API.

        • effective_at string(date-time)

          The Date-Time that this account became/becomes active.

          • account_status Required / string

            The Status of the Account. Active upon account creation.

            Values are ACTIVE, SUSPENDED, or CLOSED. Default value is ACTIVE.

          • account_status_subtype string | null

            The subtype of the Status of the Account. Null upon account creation.

            Values are , ADMINISTRATIVE, INACTIVITY, INELIGIBLE, DELINQUENT, CHARGE_OFF, GRANTOR_REQUEST, BANKRUPTCY, PAID_OFF, SURPLUS_BALANCE, CUSTOMER_REQUEST_PENDING_PAYOFF, GRANTOR_REQUEST_PENDING_PAYOFF, DECEASED, RISK_REVIEW, FRAUD, CUSTOMER_REQUEST, RISK, HARDSHIP/EXEMPTIONS, or SETTLEMENT. Default value is ``.

          • is_active_scra boolean

            Denotes whether an account has active SCRA benefits

        • The product associated with the account.

          • product_id Required / string

            The Canopy-generated ID for the product.

            • product_name Required / string

              Name of Product, i.e. Express Card.

            • product_color string

              A color to be associated with the product for UI purposes.

              Default value is #4867FF.

            • Short description of the Product - max of 30 characters.

            • product_long_description Required / string | null

              Description of the Product.

            • Timezone denoted as an Olson-style timezone defining the timezone for the product. All times in any response data for accounts using this product will be denominated in this timezone. Shifts due to daylight savings will be accounted for where relevant, and all output timestamps will be denoted as UTC offsets normalized based on this value.

              Default value is America/New_York.

            • product_type Required / string

              The Type of Product. If not included, defaults to REVOLVING

            • late_fee_impl_cents Required / integer

              The fee charged for late payments on the account.

              Default value is 0.