Getting Started

Let's get you on your way to launching a credit or lending product!

Getting Started Overview

Accessing the System

Once your instance is ready, an initial invitation will be sent to an admin member of your team.

Additional team members can be added by navigating to the "Team" page located in the Admin menu in the upper right-hand corner of CanopyOS.

Managing Member Access

When you add a new team member, you will be asked to select their role of either Admin, Servicing, or Operations.

Role Permissions
Admin Servicing Operations
API Action Read Add/Edit Delete Read Add/Edit Delete Read Add/Edit Delete
api_users √ √ √ √ √
products √ √ √ √ √
products/{product_id} √ √ √
products/{product_id}/migration_mode √ √ √
accounts √ √ √ √ √ √
accounts/{account_id} √ √ √ √ √ √
accounts/{account_id}/notes √ √ √ √ √
accounts/{account_id}/amortization_schedule √ √ √ √ √
accounts/{account_id}/cards √ √ √ √ √
accounts/{account_id}/cycles √ √ √
accounts/{account_id}/interest_rates √ √ √ √ √
accounts/{account_id}/line_items √ √ √ √ √
accounts/{account_id}/line_items/charges √ √ √ √ √
accounts/{account_id}/line_items/payments √ √ √ √ √
accounts/{account_id}/line_items/payments/payment_record √ √ √
accounts/{account_id}/line_items/payments/payment_transfer √ √
accounts/{account_id}/line_items/refunds √ √ √ √ √
accounts/{account_id}/line_items/loans √ √ √ √ √
accounts/{account_id}/line_items/manual_fees √ √ √ √ √
accounts/{account_id}/line_items/credit_offsets √ √ √ √ √
accounts/{account_id}/line_items/debit_offsets √ √ √ √ √
accounts/{account_id}/line_items/payment_reversals/{line_item_id} √ √ √ √
accounts/{account_id}/line_items/charge_reversals/{line_item_id} √ √ √ √
accounts/{account_id}/line_items/fee_waivers/{line_item_id} √ √ √ √
accounts/{account_id}/line_items/restructures/{line_item_id} √ √ √ √
accounts/{account_id}/line_items/{line_item_id} √ √ √ √ √
accounts/{account_id}/line_items/{line_item_id}/schedule √ √ √ √ √
accounts/{account_id}/statements/list √ √ √ √ √
accounts/{account_id}/statements/{statement_id} √ √ √ √ √
accounts/{account_id}/payment_processor_config √ √ √ √ √
accounts/{account_id}/payment_processor_config/dwolla/plaid_ach_token √ √
internal/plaid/link_token √ √ √
accounts/{account_id}/documents/upload_url √ √ √ √ √
accounts/{account_id}/documents/download_url √ √ √ √ √
accounts/{account_id}/documents/list √ √ √ √ √
accounts/{account_id}/status √ √ √ √
accounts/{account_id}/policy √ √ √ √
accounts/{account_id}/pay_non_financed_amount √ √ √ √
accounts/{account_id}/notification_config √ √ √ √ √
payout_entities √ √ √ √ √ √
payout_entities/{payout_entity_id} √ √ √
customers √ √ √ √ √
customers/accounts √ √ √ √ √
marketing/contact √ √ √
marketing/access √ √ √
customers/{customer_id} √ √ √ √ √ √ √
customers/{customer_id}/accounts √ √ √ √ √
customers/{customer_id}/beneficial_owners √ √ √ √ √ √ √
customers/{customer_id}/beneficial_owners/{beneficial_owner_id} √ √ √ √ √ √ √
customers/{customer_id}/partner_entities √ √ √ √ √
customers/{customer_id}/partner_entities/{partner_entity_id} √ √ √ √ √
customers/{customer_id}/product_offerings √ √ √ √ √
customers/{customer_id}/product_offerings/{product_id} √ √ √
customers/{customer_id}/amortization_schedules √ √ √
customers/{customer_id}/finance_requests √ √ √
customers/{customer_id}/finance_requests/{finance_request_id}/documents √ √ √
customers/{customer_id}/finance_requests/{finance_request_id}/documents/upload_url √ √ √
partner_entities √ √ √ √ √
partner_entities/{partner_entity_id} √ √ √ √ √
accounts/{account_id}/audit_trails/account_status_changes √ √ √ √ √ √ √ √ √
organization √ √ √
organization/account_policies √ √
organization/issuer_processors √ √ √ √
organization/payment_processors √ √ √ √ √
organization/subscribe √ √ √ √ √ √
organization/subscribe/get_webhook_secret √ √ √
organization/subscribe/replay_failed_events √ √ √ √ √
organization/subscribe/test √ √ √
organization/data_direct √ √ √
organization/address √ √ √ √
organization/plaid_config √ √ √ √
organization/nacha_config √ √ √ √
organization/vanity-domain √ √ √
organization/vanity-domain/{domain_name} √ √ √
nacha_files/entry_details √ √ √
finance_requests √ √ √ √ √
finance_requests/{finance_request_id} √ √ √ √ √
finance_requests/{finance_request_id}/convert √ √ √
filters √ √ √
notes √ √ √ √ √ √

Two-Factor Authentication

Enabling Two Factor Authentication
  1. Navigate to the Settings option on your Admin menu in CanopyOS.
  2. Select "Enable Two-Factor Authentication"
  3. You will be presented with a QR code. Scan this code with an authenticator app of your choice from your mobile phone, such as Google Authenticator.
  4. The authenticator app should present a 6-digit code to you. Enter this code into CanopyOS.
  5. Click "Enable Two-Factor Authentication"

After being enabled, each time you log into CanopyOS, you will be prompted to open your authenticator app to acquire a new 6-digit validation code to enter.

Disabling Two Factor Authentication
  1. Navigate to the Settings option on your Admin menu in CanopyOS.
  2. Click on the "Disable" button in the Two-Factor Authentication section. You must again enter a 6-digit validation code from your authentication app before it's disabled.

πŸ“˜

If you no longer have access to your authenticator app device, contact support@canopyservicing.com and we'll assist you in regaining account access.


Getting your API keys from CanopyOS

  1. Go to CanopyOS to generate new API keys.
  2. Copy down the CLIENT_ID and CLIENT_SECRET you'll use these to get a token from the API

Use your API keys to get an auth token

Canopy uses an OAuth2 flow to grant temporary auth tokens that you can use for your application.

  1. Use the Get an auth token endpoint to get an auth token.
  2. curl -s -x POST "https://${CANOPY_HOST}/public/v1/auth/token" \
      --header 'content-type: application/json' \
      --data-raw '{
        "client_id": "${CLIENT_ID}",
        "client_secret": "${CLIENT_SECRET}"
    }'
    
  3. Inspect the response and use the bearer token to make a request to the API:
  4. {
        "access_token": "eyJraWQi......x_IA",
        "expires_in": 22899,
        "token_type": "Bearer"
    }
    

What’s Next