📘

Up to 10 sandbox apps allowed

You’re allowed to have up to 10 apps in our sandbox environment at a time.

Viewing your apps

Apps are organized by environment. Click on the “Sandbox” or “Production” buttons to view apps in each environment.

Sandbox apps

Sandbox apps


🚧

Onboarding required before registering apps in production

You must request production access and fill out our onboarding questionnaire before registering apps in production.


Production apps

Production apps

Registering sandbox apps

Click “Register sandbox app” to kick off the registration wizard. You’ll need to have the following information to complete registration:

  • Display name
  • Description
    • a description of your app
  • Logo URL
    • We recommend using your full logo. We use this image for your end-user consent page. If you don’t have a dedicated app logo, you can use your company logo instead.
    • accepted width & height: 200px - 1024px (square or rectangular)
    • accepted file types: transparent PNG or JPG
    • maximum file size: 2 MB
  • Icon URL (optional)
    • We recommend using a sub-mark logo. We use this image as an avatar for your app in the Hub.
    • accepted size: 40px - 200px (square)
    • accepted file types: transparent PNG or JPG
    • maximum file size: 2 MB
  • “Contact us” URL
    • This is your company or app’s "Contact us" page.
  • Contact email address
    • Emails from our support team regarding this app and any support cases will go to the address listed here. To ensure the correct parties receive these emails, we recommend using an email distribution list.
  • Redirect URI(s)
  • Product selection
    • Select the Akoya products that this specific app will use. The Account Info product is always included. See “Akoya Products” to learn more about our products and their use cases.

Your new app will show up on the “My apps” page after registration is complete. The first time you view this page, a button will display to the right of the client secret field allowing you to download your credentials. This download button will only appear once. If you lose your client secret, you will have to reset it.

A sandbox app entity will appear, along with a randomly-generated client ID and placeholder redirect URI that you can modify later. See “Getting started” for more information about redirect URIs.

Request production access

When you’re ready to move your first app into production, clicking the “Request production access” option in the left navigation bar will trigger our onboarding questionnaire.

This form covers several topics, including:

  • Use cases
  • How your company consumes financial data
  • Actual and anticipated API call volume
  • Number of users supported
  • Technical readiness
  • Security controls

🚧

Form progress cannot be saved!

If you navigate away from the form before clicking the “Submit” button, your progress will be lost. If desired, you can download a PDF copy of the form to pre-plan your answers.

After you submit the questionnaire, you’ll be taken to a confirmation screen. You’ll also receive an email confirmation with a reference number should you have any questions.

Our staff will review your submission and reach out to you regarding next steps.

Registering production apps

After you've been granted production access, the “Register a production app” button will be available in “My apps.” The process to register a new production app is similar to that of a sandbox app.

When you get to the last screen, you’ll notice a banner listing the total number of data providers.


Total data providers to be added

Total data providers to be added


We automatically initiate the registration process for all providers that support the products your app uses.

The connections tab will display the list of newly-processed subscribers with a “New” chip next to their names. This chip will remain visible for 7 days.

Once a connection request is processed, you’ll see a “Pending” chip in the “Status” column. Each provider has to approve your connection request before you can receive data.

🚧

A “processed” provider does not mean your connection is active

After processing, each provider needs to approve your connection request. The time frame varies by provider, but typically, you should be approved within 5-10 business days at the latest.

Your app will auto-subscribe to any new providers we add to the network that support your app’s products.

Provider subscription statuses

Your app status will display next to the provider in the “Subscriptions” tab and may include the following:

StatusDescription
ActiveYour connection is enabled. Data from this provider is available to this app.
PendingYour subscription request is under review.
ProcessingYour subscription request is being processed.

Clicking on a provider will take you directly to that provider’s documentation and inventory page. This area is discussed further in the "Data Providers" section.

There, you can view specific documentation pertaining to that provider, organized into tabs.

Viewing/modifying app details

The “Details” tab displays the following information and functionality:

  • App name (display name) [view]
  • Client ID [view]
  • Client secret [reset]
    • We do not display client secrets for security reasons.
  • Akoya products [view]
    • These are the Akoya products enabled for your application.
  • Redirect URI(s) [view, edit]
  • Description [view, edit]
  • Contact URL [view, edit]
  • Primary logo URL [view, edit]
  • Icon/avatar URL [view, edit]
  • Support email(s) [view, edit]
  • Creation date [view]

Resetting your client secret

🚧

Resetting your secret cannot be undone

Resetting your secret cannot be undone and requires an update to your implementation. This will also invalidate all existing user refresh tokens.

Click the reset icon next to the "Client secret" line item.

You’ll receive a warning message about potential service disruption after the reset. A button will appear, allowing you to download your new client secret. The screenshot below shows a sandbox app, but the process is the same for a production app.

Resetting your client secret is a disruptive action!

Resetting your client secret is a disruptive action!

Modifying your redirect URI

If you’re adding multiple URIs, separate each one with a comma and click “Save.”

Edit your redirect URI(s)

Edit your redirect URI(s)

Separate multiple URIs with commas

Separate multiple URIs with commas

Modifying logo and icon URLs

The app logo and icon requirements are discussed in the "Registering sandbox apps" section. Requirements for company and app logos/icons are the same.

Modifying support email(s)

Click the pencil icon next to “Support emails” to edit (near the bottom of the page).

Search apps

Search for apps based on display name or client ID

Search for apps based on display name or client ID

Search box

Search for a sandbox or production app by display name or client ID. Results will display in the window as you type.

Export subscription data

You can export a complete or filtered provider subscription list to CSV or JSON.

CSV supported fields

FieldDescription
provider_nameprovider display name
provider_idunique provider ID
subscription_statusSee the “Provider subscription statuses” table
supported_productsAkoya product(s) supported by the provider

JSON supported data elements

NameData typeDescription
N/Aa placeholder that refers to any status shown in the provider subscription statuses table.
activeArray(Object)providers that are currently enabled for your app and the Akoya products each provider supports.
pendingArray(Object)provider subscriptions that are in pending status and the Akoya products each provider supports.
processingArray(Object)provider subscriptions that are in processing status and the Akoya products each provider supports.
status.idStringunique provider ID
active.displayNameStringprovider display name
status.clustersArray(Object)all Akoya products the given provider supports.
status.clusters.idStringunique ID of the given Akoya product
status.clusters.nameStringAkoya product name
status.clusters.descriptionStringAkoya product description
status.clusters.requiredBooleanwhether the provider is required to support the given product. Currently, only Account Info should be set to true.
status.subscriptionStatusStringprovider subscription status
Example

Below are sample CSV and JSON exports.

📘

Note

The actual JSON export is unbeautified. The example below has been formatted for easier viewing.

provider_name,provider_id,subscription_status,supported_products
Mikomo,mikomo,PENDING,"account_info,investments,payments,balances,customers,transactions"
{
  "pending": [
    {
      "id": "mikomo",
      "displayName": "Mikomo",
      "clusters": [
        {
          "id": "18owqx33-uf6p-4yhs-hxyf-yiwf9d9lx3em",
          "name": "transactions",
          "description": "Up to two years of transaction data across account types, including amounts, dates, and descriptions.",
          "required": false
        },
        {
          "id": "ex4f8efr-449e-2g5f-vg16-td95mceyl52r",
          "name": "account_info",
          "description": "Account display name, masked account number, type, description.",
          "required": true
        },
        {
          "id": "svm024fm-hvg6-n7x0-dpw4-e0tx9vi1ctjd",
          "name": "investments",
          "description": "Detailed information on underlying holdings and positions of investment accounts.",
          "required": false
        },
        {
          "id": "lqxoc2ha-odfj-qgr2-d719-1ttpnecb4bes",
          "name": "payments",
          "description": "Identifiers necessary to make ACH and RTP payments.",
          "required": false
        },
        {
          "id": "srep6cnk-ze4m-khcx-8cfz-brm86qg6ealb",
          "name": "balances",
          "description": "Balances and rates of bank accounts, credit cards, loans, investments, and more.",
          "required": false
        },
        {
          "id": "6sc1b2sa-36z4-gccp-711z-r0o817nhrufz",
          "name": "customers",
          "description": "Verified contact information on file, including name, email, address, and phone number.",
          "required": false
        }
      ],
      "subscriptionStatus": "PENDING"
    }
  ],
}

What’s Next