Skip to main content

Akoya
Documentation

Investments Guide

Version Differences

This endpoint is available in API versions 2 and 3. Note the following differences:

Area

V2

V3

x-akoya-interaction-type header

Optional

Required

x-akoya-last-access header

Not Supported

Required

x-akoya-intent-type header

Not Supported

Required

Overview

The Akoya Investments product combines basic consumer account information with balance data and extended investment details to provide your consumer with in-depth insight into their investments.

This product includes the /accounts and /taxlots endpoints.

Accounts returns all data available in both the Account info and Balances products plus all other available data for investment accounts including holdings, contributions, vesting, and more. To use this endpoint, you must have the consumer’s consent and their associated ID token for permissioned data.

The API returns results in JSON in FDX format. While this endpoint is needed to retrieve extended data for the investment account category, you may also use it for other account categories (annuity, deposit, insurance, line of credit, or loans). If used for account categories other than investment, you will receive the same data as with the balances product.

Taxlots allows you to retrieve tax lots of consumer-permissioned accounts. A tax lot records the details of a security’s acquisition.

Common Use Cases

  • Wealth Management: Give users and/or financial advisors the ability to collate investments, assets, and other held-away account information for one sweeping financial picture (in conjunction with Balances and Transactions).

Security

The Investments API requires authentication using a bearer token (id_token assigned to the permissioned user). You should include the id_token in the Authorization header of each request. The actual token lifetime varies by provider, but assume a lifetime of 15 minutes and code your application to automatically refresh the token if it has expired.

Base URL

Like all Akoya APIs, Investments operates in both sandbox and prod:

  • Sandbox:

    • https://sandbox-products.ddp.akoya.com

  • Production:

    • https://products.ddp.akoya.com

Endpoints

Accounts

GET /accounts/{version}/{providerId}

Get detailed account information that includes Akoya products Account Info and Balances for all account types (annunity, deposit, insurance, investments, line of credit, and loan) and adds the Investments product to investment accounts including contributions, holdings, vesting information, and more.

Path Params

Param

Description

{version}

Major API version (e.g. v3)

{providerId}

ID for the financial institution providing the data

Query Params

Param

Type

Required

Description

mode

String

No

BETA. Default is raw. Use standard for FDX-aligned, standardized data values.

accountIds

String

No

Comma-separated list of accountIds

offset

String

No

The number of items to skip before the first in the response. The default is 0.

limit

String

No

The maximum number of items to be returned in the response. The default is 50.

Headers

Type

Required

Description

Authorization

String

Yes

The ID Token for the permissioned user

x-akoya-interaction-type

String (Enum)

v2: No

v3: Yes

Indicates whether a consumer action prompted the request (USER) or the request is part of a batch process (BATCH).

x-akoya-last-access

String (Date-Time)

v2: N/A

v3: Yes

The date and time stamp for the last active use by the user.

x-akoya-intent-type

String (Enum)

v2: N/A

v3: Yes

Indicates whether a transaction involves a payment. Acceptable values are payments or nonpayments.

Example Response

JSON

Supported Data Elements

All Account Categories

Includes:

Name

Required

Description

account info

true

Includes account info data elements

balances

true

Includes balances data elements

Investment Accounts

May also include:

Name

Type

Description

holdings

Array [holding]

Array of holdings

openOrders

Array [openOrder]

Array of open orders

contribution

Array [contribution]

Describes how the account distributes new contributions among the available securities.

vesting

Array [vesting]

Provides the past, present, and future vesting schedule and percentages

investmentLoans

Array [investmentLoan]

Array of investment loans

pensionSource

Array [pensionSource]

Array of Pension Source

equityGrants

Array [equityGrants]

Array of equity grants

Holding

Name

Type

Description

anonymous

Object

none

assetClasses

Array

Percent breakdown by asset class.

assetClasses.assetClass

String

none

assetClasses.percent

Number

Percentage of asset class that falls under this asset

averageCost

Boolean

Cost is average of all purchases for holding.

cashAccount

Boolean

If true, this holding maintains proceeds from sales, dividends, and other cash postings to the investment account.

changeInPrice

Number

Change in current price compared to previous day's close

currency

Array [currency]

none

currentUnitPrice

Number

none

currentUnitPriceDate

String (Date-Time)

Current unit price as of date

debtSecurity

Object {debtSecurity}

Information about the security specific to the type of security

debtSecurity.parValue

Number

Par value amount

debtSecurity.debtType

String

Debt type. COUPON, ZERO.

debtSecurity.debtClass

String

Classification of debt. TREASURY, MUNICIPAL, CORPORATE, OTHER.

debtSecurity.couponRate

Number

Bond coupon rate for next closest call date

debtSecurity.couponDate

String (Date-Time)

Maturity date for next coupon

debtSecurity.couponMatureFrequency

String

When coupons mature. MONTHLY, QUARTERLY, SEMIANNUAL, ANNUAL, or OTHER.

debtSecurity.callPrice

Number

Bond call price

debtSecurity.yieldToCall

Number

Yield to next call

debtSecurity.callDate

String (Date-Time)

Next call date

debtSecurity.callType

String

Type of next call. CALL, PUT, PREFUND, MATURITY.

debtSecurity.yieldToMaturity

Number

Yield to maturity

debtSecurity.bondMaturityDate

String (Date-Time)

Bond Maturity date

description

String

Description of the holding

expirationDate

String (Date-Time)

For CDs, bonds, and other time-based holdings.

faceValue

Number

Required for bonds. Face value at the time of data retrieved.

fiAssetClasses

Array

Percent breakdown by FI-specific asset class percentage breakdown

fiAssetClasses.assetClass

String

FI-specific asset class

fiAssetClasses.percent

Number

Percentage of asset class that falls under this asset

fiAttributes

Array [fiAttribute]

[Data provider-specific attribute]

heldInAccount

String

Sub-account

holdingId

String

Long term persistent identity of the holding

holdingName

String

Holding name or security name

holdingSubType

String

none

holdingType

String

none

inv401kSurce

String

Source for money for this security.

marketValue

Number

Market value at the time of data retrieved

mutualFundSecurity

Object {mutualFundSecurity}

Information about the security specific to the type of security

mutualFundSecurity.mutualFundType

String

Mutual fund type. OPENEND, CLOSEEND, OTHER.

mutualFundSecurity.unitsStreet

Number

Units in the FI's street name, positive quantity

mutualFundSecurity.unitsUser

Number

Units in user's name directly, positive quantity

mutualFundSecurity.reinvestDividends

Boolean

Reinvest dividends

mutualFundSecurity.reinvestCapitalGains

Boolean

Reinvest capital gains

mutualFundSecurity.yield

Number

Current yield reported as portion of the fund's assets

mutualFundSecurity.yieldAsOfDate

String (Date-Time)

As-of date for yield value

originalPurchaseDate

String (Date-Time)

Date of original purchase

optionSecurity

Object {optionSecurity}

Information about the security specific to the type of security

optionSecurity.secured

String

How the account secures the option. NAKED, COVERED.

optionSecurity.optionType

String

PUT or CALL

optionSecurity.strikePrice

Number

Strike price / Unit price

optionSecurity.expireDate

String (Date-Time)

Expiration date of option

optionSecurity.sharesPerContract

Number

Shares per contract

otherSecurity

Object {otherSecurity}

Information about the security specific to the type of security

typeDescription

String

Description of Other Security. Required if otherSecurity is included

positionType

String

LONG, SHORT.

purchasedPrice

Number

Price of holding at the time of purchase

rate

Number

For CDs, bonds, and other rate based holdings.

securityId

String

Unique identifier of security

securityIdType

String

Security identifier type

stockSecurity

Object {stockSecurity}

Information about the security specific to the type of security

stockSecurity.unitsStreet

Number

Units in the FI's street name, positive quantity

stockSecurity.unitsUser

Number

Units in user's name directly, positive quantity

stockSecurity.reinvestDividends

Boolean

Reinvest dividends

stockSecurity.stockType

String

COMMON, PREFERRED, CONVERTIBLE, OTHER

stockSecurity.yield

Number

Current yield

stockSecurity.yieldAsOfDate

String (Date-Time)

Yield as-of date

sweepSecurity

Object {sweepSecurity}

Information about the security specific to the type of security

sweepSecurity.currentBalance

Number

Balance of funds in account

sweepSecurity.availableBalance

Number

Balance of funds available for use

sweepSecurity.balanceAsOf

String (Date-Time)

As-of date of balances

sweepSecurity.checks

Boolean

Whether or not checks can be written on the account

symbol

String

Ticker / Market symbol

taxLots

Array [object]

Breakdown by tax lot.

taxLots.costBasis

Number

Total amount of money spent acquiring this lot including any fees or commission expenses incurred.

taxLots.currentValue

Number

Lot market value

taxLots.originalPurchaseDate

String (Date-Time)

Lot acquired date.

taxLots.postionType

String

LONG, SHORT.

taxLots.purchasedPrice

Number

Original purchase price.

taxLots.quantity

Number

Lot quantity.

units

Number

Required for stock, mutual funds. Number of shares (with decimals).

Contribution

Name

Type

Description

securityId

String

Unique identifier of security

securityIdType

String

Security identifier type CUSIP, ISIN, SEDOL, SICC, VALOR, WKN

employerMatchPercentage

Number

Employer contribution match percentage

employerMatchAmount

Number

Employer contribution match amount

employeePreTaxAmount

Number

Employee pre‐tax contribution amount

employeePreTaxPercentage

Number

Employee pre‐tax contribution percentage

employeeAfterTaxAmount

Number

Employee after tax contribution amount

employeeAfterTaxPercentage

Number

Employee after tax contribution percentage

employeeDeferPreTaxAmount

Number

Employee defer pre‐tax contribution match amount

employeeDeferPreTaxPercentage

Number

Employee defer pre‐tax contribution match percentage

employeeYearToDate

Number

Employee total year to date contribution

employerYearToDate

Number

Employer total year to date contribution

rolloverContributionPercentage

Number

Rollover contribution percentage

rolloverContributionAmount

Number

Rollover contribution Amount

EquityGrants

Name

Type

Description

grantId

String

Unique identifier of grant.

grantDate

String (Date-Time)

Date of grant.

grantType

String

Type of grant.

seqNum

Number

Sequence number.

grantPrice

Number

Grant price.

grantCurrencyCode

String

Indicates the currency of grant USD vs AUD vs EUR, etc. (for share awards, you will still get a USD).

quantityGranted

Number

Number of options.

quantityOutstanding

Number

Outstanding quantity.

expirationDate

String (Date-Time)

Date grant expires.

vestings

Array

An array of equityGrant.vestings. Provides the past, present, and future vesting schedule and percentages.

vestings.vestedQuantity

Number

Vested quantity (Vested shares total qty of vesting tranche)

vestings.vestedValue

Number

Vested balance at grant (aggregate of all vestings).

vestings.vestingDate

String (Date-Time)

Vesting date

vestings.vestExpireDate

String (Date-Time)

Expiration date, i.e., forfeited unless exercised by this date

vestings.vestedStatus

String

Valid, active, or cancelled

InvestmentLoan

Name

Type

Description

loanId

String

Unique identifier for this loan

loanDescription

String

Description

initialLoanBalance

Number

Initial loan balance amount

loanStartDate

String (Date-Time)

Start date of the loan

currentLoanBalance

Number

Current loan principal balance amount

dateAsOf

String (Date-Time)

Date and time of current loan balance

loanRate

Number

Loan annual interest rate for the loan

loanPaymentAmount

Number

Loan payment amount

loanPaymentFrequency

String

WEEKLY, BIWEEKLY, TWICEMONTHLY, MONTHLY,FOURWEEKS, BIMONTHLY, QUARTERLY, SEMIANNUALLY, ANNUALLY, OTHER.

loanPaymentInitial

Number

Initial number of loan payments

loanPaymentsRemaining

Integer

Remaining number of loan payments

loanMaturityDate

String (Date-Time)

Expected loan end date

loanInterestToDate

Number

Total interest paid to date on this loan

loanTotalProjectedInterest

Number

Total projected interest to be paid on this loan

loanNextPaymentDate

String (Date-Time)

The next payment date for the loan

OpenOrder

Name

Type

Description

orderId

String

Long term persistent identity of the order. Id for this order transaction.

securityId

String

Unique identifier of security.

securityIdType

String

Security identifier type. CUSIP, ISIN, SEDOL, SICC, VALOR, WKN.

symbol

String

Market symbol

description

String

Description of order

units

Number

number of units (shares or bonds etc)

orderType

String

BUY, SELL, BUYTOCOVER, BUYTOOPEN, SELLTOCOVER, SELLTOOPEN, SELLSHORT, SELLCLOSE.

orderDate

String (Date-Time)

Order date

unitPrice

Number

Unit price

unitType

String

SHARES, CURRENCY.

orderDuration

String

This order is good for DAY, GOODTILLCANCEL, IMMEDIATE

subAccount

String

CASH, MARGIN, SHORT, OTHER.

limitPrice

Number

Limit Price

stopPrice

Number

Stop price

inv401kSource

String

For 401(k) accounts, source of money for this order. PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER, OTHERVEST, OTHERNONVEST. Default if not present is OTHERNONVEST.

PensionSource

Name

Type

Description

displayName

String

Name of the Source

amount

Number

Benefit Amount

paymentOption

String

Form of payment

asOfDate

String (Date-Time)

Date the system calculated the benefit

frequency

String

Allowed values: ANNUALLY, BIWEEKLY, DAILY, MONTHLY, SEMIANNUALLY, SEMIMONTHLY, WEEKLY

startDate

String (Date-Time)

Assumed retirement date ‐ As of date amount is payable

Vesting

Name

Type

Description

vestingDate

String (Date-Time)

Vesting date

symbol

String

Security symbol

strikePrice

Number

Strike price

vestingPercentage

Number

Vesting percentage

otherVestAmount

Number

Other vest amount

otherVestPercentage

Number

Other vest percentage

vestedBalance

Number

Vested balance

unVestedBalance

Number

Unvested balance

vestedQuantity

Number

Vested quantity

unVestedQuantity

Number

Unvested quantity

Taxlots

GET /taxlots/{version}/{providerId}/{accountId}/{holdingId}

Allows you to retrieve tax lots of consumer-permissioned accounts.

Path Params

Param

Description

{version}

Major API version (e.g. v3)

{providerId}

ID for the financial institution providing the data

{accountId}

Account identifier

{holdingId}

Consumer's holdingId under investments

Query Params

Param

Type

Required

Description

offset

String

No

The number of items to skip before the first in the response. The default is 0.

limit

String

No

The maximum number of items to be returned in the response. The default is 50.

Headers

Type

Required

Description

Authorization

String

Yes

The ID Token for the permissioned user

x-akoya-interaction-type

String (Enum)

v2: No

v3: Yes

Indicates whether a consumer action prompted the request (USER) or the request is part of a batch process (BATCH).

x-akoya-last-access

String (Date-Time)

v2: N/A

v3: Yes

The date and time stamp for the last active use by the user.

x-akoya-intent-type

String (Enum)

v2: N/A

v3: Yes

Indicates whether a transaction involves a payment. Acceptable values are payments or nonpayments.

Example Response

JSON

Supported Data Elements

Name

Type

Description

accountId

String

Unique identifier of the account that owns the holding.

costBasis

Number

Total cost basis of the tax lot, typically calculated as purchase price multiplied by quantity, adjusted for applicable fees or corporate actions

currentValue

Number

Current market value of the tax lot based on the latest available pricing.

holdingId

String

Long term persistent identity of the holding

originalPurchaseDate

String (Date-Time)

Date of original purchase

positionType

String (Enum)

Indicates whether the position is long or short (for example, LONG or SHORT).

purchasedPrice

Number

Price per unit or share paid at the time of acquisition for this tax

quantity

Number

Number of units or shares acquired in this tax lot

securityId

String

Unique identifier of security

securityIdType

String

Security identifier type

Error Responses

See our error documentation.